What sensors are you using to index balls?

What sensors are teams using this year for ball detection?

We’ve had stadium lights interfere with our break beams in the past. What solutions have teams found to be simple, reliable, and robust?


We have used these photoelectric sensors available from FIRSTChoice in years past with good results. (Note that the 2020/2021 official field used this same sensor for the shield generator level sensing.) The sensor has a sensitivity adjustment, allowing it to be tuned to ignore background “noise” fairly well.

FIRSTChoice also has these and these that I suspect would work well also, though we haven’t actually used those in any production ball indexer applications.

3468 had really good luck with these IR Reflection sensors for Infinite Recharge.

These are functionally similar to the Adafruit Beam Break sensors, but with both the light and sensor in one unit. So you generally want to detect the presence of light as a reflection from the object rather than the absence of light on the sensor from the object blocking the light.

Because you can generally try to mount these fairly close to where the object is being detected, as well as adjust the sensitivity to trigger the sensor, we’ve had much few issues with things like stadium lights triggering them inadvertently.

Also, the entire length of the body is threaded, so you don’t actually have to have wherever you’re mounting them be RIGHT next to the balls, you have ~2in of travel to move these sensors forward by moving the mounting nuts back on the body of the sensor, giving you pretty fine adjustment capability.


We used those in 2020 at the top and bottom of our conveyor. Worked great!

It can be useful to add some opaque shielding, strategically placed to minimize the effect of any ambient light so the light emitted by your sensor dominates at the receiver.


We used these in our 2020 robot, and they worked quite well.

For the 2020 Power Cells we used Roomba Cliff sensors. They worked very well, but are currently out of stock. There are similar sensors that could work. These are all cheap!

Digikey Part Number: 1855-1054-ND

Link to this family of sensors:

For short distances (and if you’re not afraid to use the I2C port), the REV Color Sensor V3 also has a proximity feature that works quite well.

We used REV’s Color Sensor V3’s proximity feature last year; can confirm that it works very well.

This year we’ll be using a Color Sensor V3 too; we were considering using two of them, but due to the I2C problem we’ll likely be using an ultrasonic sensor instead of one.

Did you use any kind of shielding for stray IR?

FRC 1756, Argos is planning to use the PwFusion ToF CAN sensor again this year. We will be releasing a demonstration video of this in action in the next few days, but in the meantime, here’s a link to the sensor in action on the 2020 gamepiece. The sensor measures absolute distance, and can be used to accurately and precisely position balls as it can be used to detect the curvature of the ball as it passes by.

We used several of these in series to facilitate ball pickup and staging on our 2020 robot, and it worked very well.

Owner, Playing With Fusion, Inc
Mentor, FRC Team 1756, Argos


It’s a good idea to put black gaffer tape opposite the sensor to prevent direct reflections from the aluminum or lexan walls.

1 Like

The wall opposite the sensor was polycarbonate, so we didn’t see any problems.


Discourse could really use an audible :rim_shot:.


We are using the MXP port’s I2C to add a second REV Color Sensor V3 this year. I read a little about the two MXP I2C being slightly different, but our testing has shown consistent behavior on both sensors.

Be very very careful, and test your code thoroughly. The onboard I2C bug can cause a full lockup of the roborio requiring a physical reboot.

Have some sample code you used with these sensors? We are using Java as our coding language. Any help is appreciated.

Have any sample code you used with these sensors? We are using Java as our coding language and any help is greatly appreciated.

We used these in 2020 and liked them a lot, using them again this year.


Great product!

1 Like

The 3 sensors are DigitalInput objects in the Conveyor Subsystem. Physically, one sensor was at the top of our Conveyor right before our Launcher to tell us our Conveyor was full. The Other two were at the beginning of the Conveyor and used to swap between our floor Intake and Conveyor to make sure we maintained a gap between the lemons.

We use them in our RobotContainer as the condition for Trigger Objects, which can be used the same as Button or JoystickButtons in terms of scheduling commands. So we used them in deciding when to schedule our various commands.