V5 Addressable LEDs

Gottem. Thanks @jpearman

38 Likes

Very impressive. Mind creating an explanation/tutorial?

And I assume that this is VRC legal as the rules are currently written?

4 Likes

Yes, these are legal as the rules are written. I don’t have any logic components between the brain and the light strip. The recent firmware update allows this to work. These def don’t warrant a full explanation, as they’re very simple, but basically i would suggest just getting one of these or something similar

Wire the power, ground, and data lines on the light strip to the power, data, and ground lines of a vex 3-pin connector, then plug it into the brain.

James has made a very helpful demo program here that I took and modified to get these colors working

I imagine PROS will support this in the coming weeks.

17 Likes

also im realizing now that at full brightness, the current limiting on the V5 will start to become an issue for my motors…

11 Likes

5090x stay winning

27 Likes

all we need now is some underglow, tilt wheels and a spoiler, and we gonna have tuner car/robots

1 Like

One step ahead of you.

27 Likes

@jpearman would it be possible to port this into PROS? This could help teams that use PROS to integrate into what they currently have.

I am told the PROS team is working on this already/will be as soon as they get the latest SDK.

7 Likes

Whats the max current you can do for the strips? I see from a prior post that it counts against the overall current from the battery.

1 Like

The ADI ports cap at 2 amps I believe.

I have been corrected that using lights like this won’t force the brain to limit current to motors, however it still does count against the overall 20A limit that the battery has in place (20A pulled from it for > 2 seconds = turn off battery for 10 mins)

This being said, 144 ws2812b at max power are supposed to pull 7.2 amps, so how this is working is beyond me.

12 Likes

In my experience with Adafruit Neopixels (same chip) they also tend to be waaaay below the stated max of 20ma per channel per led.

3 Likes

We’re working on it, we will have it ready soon

15 Likes

I do want to point out a couple of issues that will be encountered when driving the addressable LED strips from the 3wire ports. Some strips will work directly without needing to do anything about these, however, some strips may need additional logic to work reliably.

  1. The addressable LEDs (WS2812, neopixel) use 5V logic but the 3wire ports are 3.3V logic. The LED want’s to detect logic 1 at 3.6V or above according to datasheet, so really our logic levels are too low. However, some strips I’ve been playing with work anyway.

  2. The 3wire ports have a 1k resistor in series with the output, this is needed as the 3wire ports have to handle both digital in, out and analog connections and we have to protect from possible errors such as short to ground. This resistor, in conjunction with both internal and external capacitance will slow the edges of the digital logic pulses going to the addressable led strip, again, some strips will handle this, others not

The best solution to both issues is using something like a 74HCT125 buffer inline with the output. The same solution is often used with RasPi and other boards using 3.3V logic. This may or may not be competition legal.

24 Likes

Another thing to note is that it is best to use a 3-Wire expander for this to save any potential damage to the brain (as it was not made to do this).

9 Likes


Why are there so many problems?
It can’t find make,and it can’t find “vex.h”
How can I solve it?

1 Like

Those are just linter errors, disable the PROS extension and clangd and it should look fine.

It should still compile just fine like that, though.

4 Likes

thank you!
it’s clangd problem.

1 Like

it’s working!

18 Likes

Yayyyy im glad you got it working!