High-Power LED Ring for Vision Tracking

The 5 spikes we have laying around are free too :wink:

Here’s the latest revision. An LMR62014 boost converter boosts the battery voltage up to 20V, which runs 5 parallel groups of a 25mA constant current regulator “diode” (NSI45025) and 5 LEDs in series. The main problem with the last design was that it ran the LEDs in parallel, which can shorten the lifespan of the LEDs due to manufacturer tolerances in forward voltage. Since voltage is limited to 24v for CUSTOM CIRCUITs, a multi-channel constant current LED driver would have to be utilized if you wanted to go for that design instead (with this number of LEDs). This would be quite a bit larger, more complex, and more expensive than going with a boost converter and CCR diodes. Using CCR diodes in place of resistors for current limiting makes it possible to have a constant 25mA regardless of manufacturer tolerances in the LED forward voltages (no need for binning). A design utilizing 12 CCRs without a boost converter could work across the entire range of the battery (8.2v to 20v actually), but you would need an external relay to shutdown the LED ring, which isn’t ideal, and you would be operating very near the total device dissipation (optimistic FR-4 100mm^2 1oz copper, actual area would be smaller) of 208mW with a fully charged battery ((12.5v-3.2v*2)*0.025A = 153mW, vs (20v-3.2v*5)*0.025A = 100mW if boosted to 20v and running 5 LED strings). Not only are you dissipating more power per CCR in that configuration, but you have more than twice as many CCRs.

1 Like

How much variance in light output are you expecting between LED’s? With so many LED’s does it matter if there is some variance in the light output of some of the LED’s. Are your LED’s from different production batches or are you buying them all at the same time? If you are getting them on a tape, they will be from the same production batch and should be very closely matched to each other. The NSI45025 has a ±15% tolerance on the output current at 25 C. It may vary more as it heats up (see Figure 2 in the data sheet). How does this much current variation affect the light output of a LED?

I hope you are following the “Layout Hints” section of the LMR62014 data sheet very closely. With a switching frequency of 1.6 MHz, there is a risk that you start spraying interference around your robot if the layout is not done correctly.

We had a rude surprise when we had Limelight EMC tested. We thought we were all done and ready to ship only to find that it failed testing miserably. We had followed layout guidelines everywhere too so EMC is no joke. Our main switching regulator used the exact layout and from the datasheet! Had to get a guy to help us solve it very quickly, adjust the design, make new prototypes, get tested again, order boards in a major rush - no fun!

3 Likes

The sad thing is that the kinds of malfunctions caused by EMC are very difficult to diagnose with the sorts of equipment (and training) available to FRC teams. I am not an expert in dealing with EMC but have had to do so in quite a few products I worked on. At times, I made use of a real EMC expert like @Hjelstrom had to.

2 Likes

How much variance in light output are you expecting between LED’s?

According to the datasheet, typical forward voltage is 3.2v for 20mA, with a max of 4.1v for 20mA.

With so many LED’s does it matter if there is some variance in the light output of some of the LED’s. Are your LED’s from different production batches or are you buying them all at the same time? If you are getting them on a tape, they will be from the same production batch and should be very closely matched to each other

Ideally all the strings are very consistent, regardless of whether we’re getting them from the same production batch or not. Besides, it’s not much more expensive or complex to use a constant current diode like the NSI45025 over a resistor. I’ve yet to try binning the LEDs myself, and I can’t find any information verifying whether the cut-tape LEDs are binned for the typical 3.2v forward voltage.

The NSI45025 has a ±15% tolerance on the output current at 25 C. It may vary more as it heats up (see Figure 2 in the data sheet). How does this much current variation affect the light output of a LED?

We’re technically using the NSI45025AT1G, which has a +/- 10% tolerance on the output current. According to the LED datasheet it looks like a +/ 10% tolerance on output current would reflect about a +/- 5% tolerance in luminous intensity.

I hope you are following the “Layout Hints” section of the LMR62014 data sheet very closely. With a switching frequency of 1.6 MHz, there is a risk that you start spraying interference around your robot if the layout is not done correctly.

Yes, this design follows the recommended layout in the LMR62014 datasheet very closely.

1 Like

How significant of an issue is EMC in an application like this (genuinely asking, I don’t know)? I figured that following the recommended component choices and layout, along with the LED ring being fairly far away from any sensitive electronics (besides the camera) would mean using a switching regulator wouldn’t be a big deal. I also figured that the RoboRIO and other electronics designed for use in FRC were fairly resilient to EMI, but that might be an incorrect assumption. Did you guys just want to make sure the Limelight had very low EMC emissions since it’s a product intended to be used in a wide variety of conditions/applications, or do you think EMC in something like this LED ring could be a significant issue?

I’ll be completely honest that I don’t know how significant of an issue it is in practice. I don’t know what real problems it would actually cause. Our rational in getting officially tested was that since we were going to sell the product we kind of have to get it tested because you run the risk of insane FCC fines if you’re found in violation. We took the same approach as you, followed the datasheets exactly both in what components we used and their placement and traces. We went into the test feeling very confident that it should just be a “rubber-stamp”. Much to our surprise we were way over the legal limit on several frequencies! I thought if you simply copy the datasheet there should be no problems but like I mentioned before we ended up having to hire an expert and had to add some ferrite beads to the board and several more capacitors to fix the issue. After that the board was extremely clean so it isn’t expensive in terms of parts to fix it, it just takes time and testing (well, the testing is expensive). Talking to the guys at the company who did our EMC testing they did say that LED controllers are a very common cause of EMC failures for products.

I really like your design! You obviously know a lot about electronics! The layout is beautiful and I like the idea of a boost regulator with the current regulating diodes. I also think its good to use more LEDs to spread the light around better.

We experimented with a boost regulator plus current limiting diodes ourselves and would have gone that way but we but didn’t find a good way to do dimming with that ‘design pattern’. Last season we had a lot of complaints about our lights being too bright (had to design for full court since we don’t know the game). So dimming (without flickering) became a top priority for us this year. I don’t necessarily think you need dimming so I really like your design.

1 Like

Interesting, well I guess we’ll see whether we have any phantom issues with this design I guess haha. It’s pretty scary to hear that following the datasheet to a tee can still cause issues. Also really interesting to hear that LED controllers are a common cause. I guess the advantage of this just being a hobbyist design though is that it could have crazy emissions and still be fine since it doesn’t have to meet FCC regulations or anything (unlike an actual product like the Limelight), as long as it doesn’t pose a real problem otherwise.

Thanks for the compliments on the design! It is a little unfortunate that we can’t do any dimming, but this IC does have a shutdown pin, so we can at least turn it on/off without using a relay, and worst case scenario if it is too bright (even with only turning it on when we’re using vision) we can swap out the 25mA CCRs for 20mA, 15mA, etc, ones. Fingers crossed this design will work for near full court shots. If it doesn’t, short of just going for higher power LEDs, we might try out something like this with a much smaller apex angle (especially if our strategy ends up being pretty much only shooting from across the field)

Feel free to ignore, but could I ask what design you guys did end up going for? Your implementation is pretty different with fewer and brighter LEDs, but it would still be interesting if you’re allowed to share that. Unfortunately I don’t have a limelight to tear apart, lol.

1 Like

We have a controller per pair of LEDs so that the brightness stays constant down to around 6V. The controllers can adjust the current so we get smooth dimming.

That’s another thing about lighting for computer vision, you don’t want the brightness to change when the robot starts aiming. Some robots aim by turning their drivetrain which puts a huge load on the battery, so the LEDs changing brightness at that point is not a good thing.

1 Like

Ah, cool.

Definitely. This design should work across the entire battery voltage range of like 9v ~ 12.5v, but if the robot battery isn’t capable of supplying sufficient current when turning during the end of the match we might have to add some bulk capacitance or figure out some other solution.

1 Like

Since you are feeding the LED’s with a constant current source, you really need to look at the spec relating light output to current.

The light that arrives at your target comes from all of your LED’s so variations in the light output between the individual LED’s does not actually matter. If you were making something like a flat panel display and each LED represents a different piece of information, you would want the light intensity of each LED to match the others.

Hopefully, you are lucky. Some of those suggested layouts are good. Some are not so good. It takes a fair bit of experience to turn a bad layout into a good one. Most of the switching power supplies in use run in the 10’s of KHz. The one you are using runs at 1.6 MHz. If there are any problems, it will be more difficult to troubleshoot and fix.

@Hjelstrom probably sent the Limelight to a lab like this. The red antenna on the mast is connected to spectrum analyzer to record the emissions.

The best you can do is to connect power to your circuit and see if you notice any difference in your system. This is not a guarantee that there is no EMC. Also, see if it interferes with a walkie talkie. If it does, you may want to use a different boost converter.

Since you are feeding the LED’s with a constant current source, you really need to look at the spec relating light output to current.

Relative luminous intensity is related almost linearly to current.

If we just used a resistor, and we wanted to run the LEDs at 20mA, and we calculated the resistance value for the typical 3.2v forward voltage, we would get a much lower current, and therefore much lower brightness, if the LEDs instead required say 3.8v forward voltage to achieve 20mA.

For example, (20-3.2*5) / (0.020) = 200, so we would chose a 200 ohm resistor. Then, if the LEDs instead had a forward voltage of 3.8v, (20-3.8*5) / 200 = 0.005. The output would be just 5mA, yielding about 20% relative luminous intensity instead of 70% at 20mA.

The reason for using a CCR is to compensate for these differences in forward voltage, therefore current, therefore brightness.

The light that arrives at your target comes from all of your LED’s so variations in the light output between the individual LED’s does not actually matter. If you were making something like a flat panel display and each LED represents a different piece of information, you would want the light intensity of each LED to match the others.

I think saying that inconsistencies in LED brightness won’t cause any issues with vision tracking is a pretty big assumption. I would rather design an LED ring that is consistent so we don’t have to worry about it, especially since, again, it’s not very difficult to swap out the resistors for CCRs.

The best you can do is to connect power to your circuit and see if you notice any difference in your system. This is not a guarantee that there is no EMC. Also, see if it interferes with a walkie talkie. If it does, you may want to use a different boost converter.

Thanks for the tip.

You still have the variations between individual LED’s within a string that you have not quantified. My point is that between the variation in the luminous efficiency of the individual LED’s and the variations between the CCR’s, there is more variation of light output from each LED than you are thinking there is.

Are you saying that I need to compensate for luminous intensity tolerance? I can’t really compensate for that in my circuit at all. If it’s a major issue the LEDs can be binned. I’m only concerned with creating a circuit for driving the LEDs with a constant current.

I am saying that you can’t and I really don’t think it matters. The LED’s emit light in a cone. They are so close together that the cones are mostly overlapping at the distance of your target. My disagreement is over how you have been analyzing the circuit. I think your circuit will work and you will get a decent result but not for the reasons you think.

It’s alive!

3 Likes

I want to confirm, these LEDs paired with the PicoBuck driver are a really solid way to produce HUGE lumens! The current source driver keeps the output of the LEDs constant even when the battery is dipping.
Now, to mach the lumen output of the Limelight 2+ and its 8 LEDs, you will need to drive 4 of these SparFun LEDs. You “might” get away with driving them in series, but that is pushing it. Run 2 sets of 2 in series and use two channels of the PicoBuck to drive them.

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.