Products for USB Sensing and Control
Products for USB Sensing and Control


Unit 1 - 6115 4 St SE
Calgary AB  T2H 2H9
+1 403 282-7335

Beam Break Phidget

ID: PRX2300_0
Recommended for new designs: This product (or a similar replacement with a compatible form, fit and function) is estimated to be available for ten years or more.

This sensor can detect objects that break a beam of IR light by passing through the slot.


Quantity Available: 966

Qty Price
5 $9.50
10 $9.00
25 $8.00
50 $7.00
100 $6.50
250 $6.00
500 $5.50
1000 $5.00

For applications that involve detecting or counting small objects passing through a narrow space, this Phidget is the perfect fit. When there is no object blocking the beam, the signal will drop low. When an object breaks the beam, the signal will jump up. You can adjust the sensitivity using the trim potentiometer depending on the type of object you're trying to sense or count. For more details, see the User Guide tab.

The PRX2300 connects directly to a VINT port using the VoltageInput or DigitalInput channel class. Have a look at the Connection & Compatibility tab for a list of compatible VINT Hubs, and check the User Guide tab for recommendations on which channel class to use for your application.


This device can be controlled by a VINT Hub. For more information about VINT, have a look at the VINT Primer. You can use a Phidget Cable to simply and easily connect the two devices. Here's a list of all of the different VINT Hubs currently available:

Product Board
Image Part Number Price Number of VINT Ports Controlled By
HUB0000_0 $30.00 6 USB (Mini-USB)
HUB5000_0 $60.00 6 Local Network (Ethernet or Wi-Fi)
SBC3003_0 $120.00 6

Phidget Cables

Use a Phidget cable to connect this device to the hub. You can solder multiple cables together in order to make even longer Phidget cables, but you should be aware of the effects of having long wires in your system.

Product Physical Properties
Image Part Number Price Cable Length
3002_0 $2.00 600 mm
3003_0 $1.50 100 mm
3004_0 $3.00 3.5 m
3034_0 $1.50 150 mm
3038_0 $2.25 1.2 m
3039_0 $2.75 1.8 m
CBL4104_0 $1.75 300 mm
CBL4105_0 $2.00 900 mm
CBL4106_0 $2.50 1.5 m

Part 1: Setup

Welcome to the PRX2300 user guide! In order to get started, make sure you have the following hardware on hand:

Next, you will need to connect the pieces:

PRX2300 Functional.jpeg
  1. Connect the PRX2300 to the VINT Hub using the Phidget cable.
  2. Connect the VINT Hub to your computer with a USB cable.

Now that you have everything together, let's start using the PRX2300!

Phidget Control Panel

In order to demonstrate the functionality of the PRX2300, the Phidget Control Panel running on a Windows machine will be used.

The Phidget Control Panel is available for use on both macOS and Windows machines.


To open the Phidget Control Panel on Windows, find the Ph.jpg icon in the taskbar. If it is not there, open up the start menu and search for Phidget Control Panel

Windows PhidgetTaskbar.PNG


To open the Phidget Control Panel on macOS, open Finder and navigate to the Phidget Control Panel in the Applications list. Double click on the Ph.jpg icon to bring up the Phidget Control Panel.

For more information, take a look at the getting started guide for your operating system:

Linux users can follow the getting started with Linux guide and continue reading here for more information about the PRX2300.

First Look

After plugging the PRX2300 into your computer and opening the Phidget Control Panel, you will see something like this:

PRX2300 Panel.jpg

The Phidget Control Panel will list all connected Phidgets and associated objects, as well as the following information:

  • Serial number: allows you to differentiate between similar Phidgets.
  • Channel: allows you to differentiate between similar objects on a Phidget.
  • Version number: corresponds to the firmware version your Phidget is running. If your Phidget is listed in red, your firmware is out of date. Update the firmware by double-clicking the entry.

The Phidget Control Panel can also be used to test your device. Double-clicking on an object will open an example.

Part 2: Using Your Phidget


The PRX2300 shines a beam of infrared light between its prongs, and can detect when the beam is broken by a small object. This sensor's signal can be read using the Digital Input channel class when it is connected to a VINT hub.

Explore Your Phidget Channels Using The Control Panel

Double click on the Digital Input channel class under the port your PRX2300 is connected to.

PRX2300 Panel Example.jpg

Part 3: Create your Program

1. Setting up your Programming Environment

2. Phidget Programming Basics

Part 4: Advanced Topics and Troubleshooting

How do I know what channel, serial number, or hub port to use in my program?

Before you open a Phidget channel in your program, you can set these properties to specify which channel to open. You can find this information through the Control Panel.

1. Open the Control Panel and double-click on the red map pin icon:

The locate Phidget button is found in the device information box

2. The Addressing Information window will open. Here you will find all the information you need to address your Phidget in your program.

All the information you need to address your Phidget

See the Phidget22 API for your language to determine exact syntax for each property.

VoltageInput or DigitalInput?

You can use the PRX2300 by plugging it into a VINT Hub port and opening that port in VoltageInput or DigitalInput mode. For applications that involve opaque objects large enough to block the whole beam at once, we recommend using DigitalInput mode. For small or translucent objects, using VoltageInput may be necessary since a partial beam break may not result in a voltage high enough to register a state change (e.g. 1.8V in the case of the HUB0000).

Calibrating the PRX2300

The PRX2300 has a small trim potentiometer on board to adjust the voltage offset.

PRX2300 pot.jpg

If you're using this Phidget in DigitalInput mode (are detecting large opaque objects that will strongly break the beam), rotate the potentiometer counter-clockwise toward the (+). No further calibration is needed.

If you're using this Phidget in VoltageInput mode, we recommend adjusting the voltage offset until it sits at around 1.25V when the beam is not blocked. Next, you should write a short program that will log all of the voltage data to a text file or spreadsheet (and set the data interval to the minimum value in order to catch all of the data), so you can determine which voltage spikes indicate and object and which voltage spikes are just noise.

For example, suppose you tested the sensor and observed 4 objects pass through, resulting in the following data:

PRX2300 graph.jpg

If we assume the first two peaks are actually one object that just happened to allow some of the beam to pass, and the fifth peak is a false positive, then we can assume the peaks indicated by the four yellow arrows are the data that correspond with the four objects. In order for our program to correctly identify these, we need to set a high trigger (indicated by the green line) well above the fifth peak, but below the sixth peak. Similarly, in order to prevent the first two peaks from counting as two separate events, we must set the low trigger below the dip in between them, but above the dip between the next two peaks.

Once you've done enough testing to determine where your high and low triggers should be set, you just need to add a bit of logic to your voltage change event. If the voltage is higher than your high trigger, you can set a global variable that indicates that an object has been sensed, and you should not reset that variable until the voltage has dropped back down below the low trigger. Here's and example of what the event handler might look like in Python if our high trigger is 3.75V and our low trigger is 2.7V:

eventTriggered = 0

def onVoltageChange(self, voltage):
    if voltage > 3.75 and eventTriggered == 0
        eventTriggered = 1
        print("Object detected!")

    if voltage < 2.7 and eventTriggered == 1
        eventTriggered = 0
The digital input is stuck on "False" even when the beam is unbroken

Try adjusting the sensitivity trim pot on the PRX2300. If it's turned all the way clockwise, you will get this behavior. If it's still stuck on "False" after adjusting the sensitivity, try cleaning the emitter and receiver on the inside of the prongs to clear away any debris that could be blocking the infrared beam.

Product Specifications

Sensor Properties
Controlled By VoltageInput or Digital Input
Sensor Type Proximity (Infrared)
Detecting Distance Max 15 mm
Electrical Properties
Current Consumption Min 17 mA
Current Consumption Max 21 mA
Customs Information
Canadian HS Export Code 8473.30.00
American HTS Import Code 8473.30.51.00
Country of Origin CN (China)


Product History

Date Board Revision Device Version Comment
July 20200N/AProduct Release

This device doesn't have an API of its own. It is controlled by opening a DigitalInput or VoltageInput channel on the Phidget that it's connected to. For a list of compatible Phidgets, see the Connection & Compatibility tab.

You can find details for the DigitalInput and VoltageInput API on the API tab for the Phidget that this sensor connects to. For more information on which of these two channel classes you should use, see the User Guide tab.

Have a look at our proximity sensors:

Product Sensor Properties
Image Part Number Price Controlled By Sensor Type Detecting Distance Max
1103_1B $9.00 VoltageRatio Input Distance (Infrared) 100 mm
3523_0 $35.00 Digital Input (5V) Proximity (Capacitive) 8 mm
3524_0 $50.00 Digital Input (5V) Proximity (Capacitive) 15 mm
3525_0 $50.00 Digital Input (5V) Through-Beam (Photoelectric) 10 m
3527_0 $35.00 Digital Input (5V) Proximity (Inductive) 15 mm
3528_0 $10.00 Digital Input (5V) Proximity (Inductive) 5 mm
3560_0 $2.50 Digital Input (5V) Proximity (Magnetic) 19 mm
3562_0 $2.50 Digital Input (5V) Proximity (Magnetic) 12 mm
PRX2300_0 $10.00 VoltageInput or Digital Input Proximity (Infrared) 15 mm