Robot RGB LEDs

Just a general question, what types / brands of RGB lights does you team use for underglow / robot glow? We tried using 5050 rgbs this year, but had a lot of trouble with soldering due to the fact that the terminal pads on the cut-strips were really thin and broke off too easily (and we would get things that would go wrong and the color would change halfway through the strip or randomly in the middle on one unit).

I want to get some LEDs running (preferably off the roboRIO or an Arduino), so if anyone has any suggestions on what types to get for this purpose, I would be greatful :smiley:

I personally like the Adafruit brand NeoPixels. Lots of supports, but they use standard WS8212 LED drivers on each. Never used them on a competition robot, but I find them wonderful for home projects and some little projects here there for the robot.

Thanks, those look like they are definitely more heavy duty than the 5050, and only require 1 Arduino pin to control (and are individually addressable, so yeah) Thanks! I’ll look in to using them more next season.

I second these. They’re also pretty darn bright; we used them in our LED ring for vision tracking

Adafruit DotStar Led’s. Worked plenty well for us. They have arduino libraries on their website, and here’s our roboRIO java driver for them: link

To be honest, next year I’d like to use an arduino to drive them just to not soak up processor time on our main controller. However, having controlled from the RIO made it easy to tie the colors to different events on the robot (ex: ball in intake).

Other side note - a strand of 60 or so can soak up over 3 Amps at full brightness- more than some of the voltage regulator outputs can handle. Just something to plan for if you have tons of LED’s.

We’ve done some stuff with the Andymark WS8201 strips. The nice thing is that they’re crazy cheap, compared to neopixels or other lights like them. The only problem is that you basically have to check an ancient history textbook to find code for them. I’m not sure where it would be, but if this sounds like an option you’d be interested in, I have some nice example code somewhere that adds a lot more functionality to the rather simple Arduino WS8201 library.

We did RGB LEDs last year and had some fun with them as indicators on our lift and to indicate our alliance color on the drive train.

The LEDs were driven by an Arduino Leonardo that was powered off of USB plugged into the roborio and communicated over I2C. The Arduino sketch was written with the help of FastLED and elapsedMillis for non-blocking delay.

To break it down, you’re interested in:

  • length of strip and number of LEDs
    Gives you a sense of pixel density. We used 5m, 300 LEDs.

  • LED

This number indicates the size of the LED. For instance, a 5050 is 5.0mm x 5.0mm. A 3528 is 3.5mm x 2.8mm. The larger the area of the LED, the larger the power draw and the more light it can put out.

  • addressable vs non-addressable
    Addressable means you can control the colors of the lights independently. Non-addressable means you can only set one color for the whole strip. Strips sometimes indicate a code such as WS2811, WS2812 or LDP8806. This indicates the type of microcontroller used, so it’s usually a good indication that the lights are individually addressable. Just make sure you know what you’re getting.

  • waterproof/sealed vs bare
    Waterproof or sealed typically means the strip comes in a form-fitting silicone sleeve. The sleeve can be removed but getting the strip in and out can be a real pain unless you slit the sleeve. The sleeve does act as a nice diffuser but if it’s silicone, it can provide it’s own challenges to installing securely. I don’t recommend allowing the strip to move when the robot is in motion. It puts a lot of strain on the LED connections which can break easily. Resoldering those connections can become quite the chore if you choose to keep it in the silicone sleeve.

  • cut lines
    If you plan to cut the strip, make sure that it says it has cut-lines/solderpads between lights. Most do. It’s important to check how many lights are between cuts since this can vary. Some will cut between every light but some cut every X lights or every N inches.

Edit:
Forgot the whole reason for posting…

We used Newstyle LEDs bought from Amazon:

They were ok but they were prone to breakage, requiring frequent re-soldering. This may have been in part due to the way they were used. The ones on the lift were tacked on by the silicon with no individual support for each light. Gravity and motion may have been main culprits for our frequent need to re-solder. The strips mounted horizontally on the drive train never required any repair.

The mentor who obtained them for us removed them from the silicon, soldered, and replaced the casing before giving them to us, so I couldn’t tell you how they were upon delivery.

I use an Arduino Trinket ($7) to drive Adafruit Neopixel arrays.
I use DIO ports from the MXP interface to set the various states for the lights.
This is low cost, nearly weight free, and allows someone to develop all of the lighting states and effects in parallel without needing a Roborio. Works great.

I bought a strip of Neopixels. We’ll see how much better they work than the 5050s :slight_smile:

We used generic APA102 LEDs this year, but they were never used at competition since there was a shot along the path and we couldn’t fix it.

In 2014 and 2015 we used neopixel LEDs on our robot powered by an arduino, with a separate voltage regulator spliced in. A power saving tip though: If you set them to full white, they will use an extraordinary amount of power. Try to avoid this if you can.

I have a long post discussing various addressable LED strips somewhere in my post history, I’ll see if I can dig it up. But I will say, regardless of what you decide to use, don’t order from a US dealer like Adafruit unless you absolutely need it within a week. You pay an enormous markup to not wait.

From previous posts:

WS2812 (branded by Adafruit as “Neopixel”) and LPD8803/LPD8806. These are the chips which allow your LEDs to be addressed individually. Regular single-color or RGB strips don’t have these, and they’re part of why addressable strips are so much more expensive.

WS2812 are cheaper and more compact. They place a tiny little control chip inside of the LED module which takes the signal in the wire, instead of going directly to the LEDs. They function through a +5v wire, a data wire, and a ground wire going in and out of each chip. The way data is sent to them is a little funky, because it’s incredibly clock dependent with no way to mitigate problems, beyond breaking strips up. You will need a separate full-fledged arduino just for driving them, to ensure your clock isn’t off.

[Technical Stuff] They transmit signals by having logic highs and logic lows with different square pulse lengths, rather than anything sane. They transmit the full number of one color for the whole line, 8 bits per color per LED on the strip, then the next full set of color data, then the last. Each chip takes its 24 bits off the front of the signal line, then passes the rest on to the next chip. It goes this way until it gets to the end of the line, where bad things happen if the number of bits doesn’t add up to the number of chips. Then, it transmits a 50 microsecond reset pulse and starts over again, with potentially different values. This effectively makes it very, very sensitive to being even a tiny bit off on clock speed.

LPD8803 or LPD8806 strips work a bit different. The chips are actually separate from the LEDs, and are significantly more reliable, but cost way more and look a little funny up close because you have random black rectangles on your light strip. The 8803 vs 8806 thing is just the number of LEDs it can support, either 1 or 2 per chip. The upside to the huge price jump is that they’re significantly smarter. They get 4 wires in and out. V+, GND, and then a Data and Clock wire. They’re standard serial interface, which means they may be more workable on a RoboRio-based solution.

The big tradeoff between the two is reliability vs cost.

To add on since the price has come down into reasonable range, APA102 is another addressable chip that is substantially newer. It’s branded by Adafruit as DotStar, and they’re basically the best of both worlds, unless you absolutely 100% need only 1 wire for signal, and it comes at a substantially higher cost, at least $10-15/m of low LED count strip. With that said, the chips are embedded into the 5050s so they’re not visible like LPD8803s, and they have a clock wire so they don’t need super particular timings like WS2812s.