LEDs in robot

Does anybody have any recommendations for how to put LEDs on our robot? This is a little late for this season but maybe for next season or offseason.
Any help would be greatly appreciated.:slightly_smiling_face:

1 Like

I am not on electrical, so I can’t help with wiring, but one thing I would like to suggest is using a light diffuser. LEDs are blinding and ugly when exposed, so a light diffuser is good at dispersing and softening the light.


There are a few ways you can do LEDs.

Option 1: Directly in the RIO
Option 2: With a co-processor
Option 3: With a CANdle from CTRE

We did it directly on our RIO this year. For this, you just get a sweet LED strip, which should be WS2812B or WS2811. Pay attention to the voltage needed, it will either be 5V or 12V. 5V seems to be more common, so ours is on the 5V/2A part of our power regulator, with the signal going to a PWM port on the RIO. It probably doesn’t make a difference, but for good measure, we also have the ground from the LED strip attached to the regulator and the ground of the PWM port. Just the degree in me making sure ground is common on the whole circuit.

The strip we used:

Use the “AddressableLED” functions found in the API, assuming you use Java.

A good tutorial:

If you go the coprocessor route, I highly recommend an arduino and the FastLED library.

I’ve never used a CANdle, but I’m sure someone on this site has.


For some reason the docs are missing this, but one cool thing about the Addressable LEDs on Rio approach is you can see them in the simulation GUI, so you don’t even need to have the Rio or strip available to test your patterns code. It even supports 2D arrays!



For the longest time, my team used the REV Blinkin. It was great for what we needed, but we wanted something with more control over the LEDs and more fun patterns and colors. It is controlled software-wise as a Spark or an AddressableLED and possibly some others that I am unaware of.

Nowadays, my team uses the CANdle, and has had great success with it! The biggest difference is the Blinkin is PWM controlled and the CANdle is . . . well maybe you can tell. Anyway, my team liked this because it’s easier to run CANbus somewhere than PWM for us since CAN is already in most places. The CANdle also had 8 on board LEDs!

Both are great options, but nowadays I’d recommend the CANdle. Little pricier, but some small things make it a better option for us.

As of now, both are out of stock :slightly_frowning_face:. (The Blinkin has been OOS for a while!)


That’s lit

I will second the diffuser idea, they make LEDs look so much nicer. Also one thing to note for the Addressable LEDs is that it only supports 1 LED strip, i.e. that all of the LEDs have to be designated as one complete strip, and arrays have to be used to designate strips or sections instead.


Thank you for all the ideas.
We will probably try this one first but thanks for the other input.

The Blinkin and CANdle are good, but it’s very much extra when you can use a cheap buck-boost converter for power and control them from the rio using the AddressableLED class built into wpilib. You can see a bunch of AddressableLED implementations of varying complexity from teams 1108, 1672 (my team), and 6328.


How do you wire a led strip into the rio

Wire the signal wires to the PWM port then wire the power to a 5v converter (assuming 5v led strip)

1 Like

It should look roughly like this:

1 Like

You might want to have the grounds all connected to get accurate signaling

All the grounds are connected - there’s only 1 battery on the robot…

What ports do you signal it with?

Couldn’t you still have a voltage difference depending on the wire runs in between?


We are planning to use BTF-LIGHTING WS2812B RGB 5050SMD Individual Addressable 16.4FT 60Pixels/m 300Pixels Flexible White PCB, the question here is if the way to wire them to the roborio and the voltage regulator the same, also what regulators do you recommend, is it advisable to connect them to the VRM?


We use a 25W 12v-5v dc converter on a 5A circuit breaker to power our LEDs, but we are only using 60-150 LEDs and I’d probably increase for 300 LEDs. At full brightness, ws2812b can draw 50 mA per LED, so that is 15A max.

Here is most of the connections:

We only powered one end, but it might be helpful to connect power from both sides on longer strips. And another idea would be to split the data signal and run two sides as mirrors.

Any of the PWM ports

1 Like

That’s the same converter I used for our infinity mirror driver station. Good stuff.

I’d also recommend not running the lights at full power all the time. I’ve done a lot of light applications, and found I never really have much a use case to go over 100/255.

1 Like