Another Ambassador Moment: Underwater Camera Ring Light - Part One
2022-02-18 | By Eliot Wachtel
License: Attribution Non-commercial
Hi, my name is Eliot Wachtel and I am both a Digi-Key student ambassador and the electrical lead for the MATE ROV Competition team operating as a part of Slugbotics, the UCSC competitive robotics club.
While I can’t get into the exact specification and implementation of our 2022 ROV, I thought it would be fun (and informative) to showcase the design of a small part of it, the dimmable ring lights meant to illuminate the underwater challenges and improve visibility for both operators and machine vision algorithms.
We determined there was a need for such a lighting system after the automotive trail light we used last year proved too dim in certain conditions, prompting the idea to design a more purpose-built solution.
What is the MATE ROV Competition?
For those who haven't heard of it, the MATE ROV Competition is a yearly underwater robotics challenge organized by the MATE organization. It has five tiers of challenge aimed at groups ranging from middle/high school up to college level teams. Slugbotics competes in the most complicated "Explorer" class whose challenges for the 2022 season can be found at the materovcompetition.org/explorerspecs website.
The main, overarching activities our ROV must do primarily involve controlled movement, computer vision, and manipulating objects underwater all both manually and autonomously depending on the specific task. For most human led control and all computer vision tasks, having a good light source for the onboard cameras is necessary for successful operation.
Requirements:
As with most projects, the first step after identifying the problem to solve was to figure out the requirements for the solution.
Since the goal is to allow for clearer underwater video footage, the list of most important requirements included the following:
- Cast enough light to give good underwater clarity down to the 15 meter depths we would be operating and, ideally, even enough to operate at night.
- Operate on either the 12 or 5 volt supplies available within the ROV’s waterproof enclosure.
- Be low cost and small enough to fit the lights within a waterproofed camera box sized to fit an Adafruit 16 LED RGB ring light and have any extra circuitry neatly in the main enclosure.
- Be able to operate continuously for at least an hour without thermal issues.
To figure out how bright the light needed to be, I searched online for some example light sources.
I found a few recommendations for diving lights ranging from 500 lumens at the low end to upwards of 3000 at the higher powered range.
I initially decided to aim for at least 2000 lumens since reliably increasing the output of a particular LED is much more difficult than decreasing it if it is too bright.
Once I had my initial requirements, I decided to add a list of LED specific constraints since the LEDs I chose have a direct impact on the design of every other part of the system:
Per light ring, I set a requirement of:
- Above 100 lumens generated per watt to ensure reasonable LED efficiency.
- A cost of under $10 spent on the light emitting diodes per ring light.
- A product which came with decent documentation on how to design the EDA footprint or which provided such a footprint readymade.
- A product designed for long periods of continuous operation.
- Individual LEDs which each emitted at least 125 lumens each to ensure I could make a usable light with 16 of them or less.
- And LEDs whose operating voltage would not exceed the 48 Volt limit set by the MATE competition.
Additionally, I needed to be able to place the parts by hand, so size was also a key consideration; SMD parts can go smaller than a grain of sand and I definitely can’t use tweezers well enough to deal with that. A recommendation from stack exchange said to avoid going below a 0805 package with any passive components in order to make hand placing them reasonable, so I decided to set an 0805 minimum package limit on all of the parts used in this design.
Even with my constraints there were a lot of options that fit my requirements.
Concept 1:
Initially, I found the Cree JK3030 package (Digi-Key part number: 2138-JK3030AWT-P-B57EB0000-N0000001CT-ND) which outputs 152 lumens per diode. This means a ring of 14 would output 2128 lumens at a cost of only $1.40. However, with a potential difference of 6 volts across each diode, I would either need 84 volts to run them in series (which is above the 48 volt limit of the larger project this design will be a part of) or a supply capable of giving almost 3 amps plus the drop across all of the protection resistors. The resistors are necessary in parallel to protect the individual diodes and would significantly increase the wasted energy and overall heat generation of the ring.
To find the necessary resistor value to protect each LED, I got some advice from the Electronics Stack Exchange forum where I found a simple formula that consisted of dividing the forward voltage variation by the maximum current variation you can tolerate.
The LED datasheet stated a forward voltage of 5.8 to 6.0 V and a standard amperage of 150 mA with a maximum of 200 mA. That’s a forward voltage variation of 0.2 V with 50 mA of current variation. To be safe, I decided to only allow 25 mA of variation, giving an LED protection resistor value of 8 Ohms.
With an input of 6.2 Volts the resistors would have a 0.3 Volt drop and up to the full 0.2 Amp draw which gives a dissipation wattage of 0.06 Watts. Since I would use 14 of them, the total wasted energy is 0.84 Watts which, while not much compared to the 16.8 Watt draw of the LEDs, is still less than ideal.
The high amperage also meant I would need a separate buck converter circuit per LED ring (or one rated to almost 9 amps of continuous current output), leading to a significantly higher overall project cost.
Concept 2 (what I went with):
At this point, I checked in with a professor who recommended I avoid parallel configurations because of the high waste and higher total amperage which made it much more likely to burn out the diodes.
Since the 84 Volt series version was not within the allowed range, I decided to source a part with higher per-diode lumen output so the required in-series voltage would be lower.
I ended up finding 650 lumen LEDs which each drew 650 mA at 6.1 volts. With that output, just 5 LEDs would output 3,250 lumens while only requiring 30.5 Volts. This was more than enough for our application and within our requirements!
The power and driver ICs:
Since there would be some circuitry in the way, I decided to set a boost conversion from the 12 volt supply to a required 31 volts for LED driving.
To provide the 31 V boost conversion I decided to use the Texas Instruments product search tools to find the ideal boost converter ICs and then source those chips at Digi-Key.
I selected the LM5156 (Digi-Key part: 296-LM5156HQPWPRQ1CT-ND) which can both handle the 12 to 30 volt conversion and includes current monitoring and other protections to ensure the safety and reliable operation of the LEDs.
Current monitoring of the power source, while not as effective as directly monitoring the LED driving circuitry, is useful as a worst case protection to reduce the risk of burned out components and mitigate risk from shorts.
To drive the LED rings from the 30 volt source, I selected the Diodes Inc. AL8843Q (Digi-Key part: 31-AL8843QSP-13CT-ND), a simple, single-output LED driver IC which includes both PWM controllable dimming and its own current limiting protection.
Because the driver has current limiting, the need for protection resistors is fully removed as long as the input voltage matches that needed by the in-series LEDs.
Quick tip: This current protection would not work with them in parallel since the limit would have to be the sum of current draw. Since each LED draws current independently, a summed limit would not protect any individual LED from drawing too much of that total current and burning itself out.
Component Calculations:
Once I had determined the main LEDs and control ICs, it was time to source the passive components which would let the ICs do their jobs.
For the LM5156, Texas Instruments was nice enough to provide both an extensive datasheet and even an attached calculation spreadsheet to handle most of the application specific component calculations.
The calculation spreadsheet tool breaks the bulk of the component selection process down into seven steps which include a mix of user input values and computer generated ones which are dynamically calculated as you enter values.
These steps progress from selecting the operating frequency and desired voltage input/output to selecting the majority of the passive components used in the circuit.
A few key decisions I made while filling out the tool include:
- Picking to run in continuous conduction mode (CCM) mode rather than discontinuous conduction mode (DCM) because I wanted to reduce EMI and cared more about reducing necessary capacitor size than inductor size since large ceramic capacitors are hard to source.
- Specifying an output capacitor resistance of 150 mOhm. As I will explain later, I went with an array of output capacitors and the ideal capacitors I found do not list a resistance so I had to guess based on similar products. This resistance value changed the compensation circuitry a noticeable amount so the fact that I had to estimate is non-ideal.
- Not going with the closest values to the compensation resistor and two compensation capacitors, instead trying to adjust them in values close to those recommended until I got a “most” ideal looking bode plot.
Efficiency/Power Loss Analyzer:
While the main seven are the only section necessary for designing the circuit with tool assistance, the quickstart calculator spreadsheet does have two more, unnumbered sections. They are included to help the designer predict the efficiency behavior of your circuit. When designing, I simply put in estimated values to ensure the prediction was reasonably high when the load was low. With all of my values entered, I achieved an estimated efficiency of over 95% when below 1 amp is drawn. This means that the circuit should be close to 95% efficient when running only one light or running multiple at a reduced brightness (which we will almost certainly be doing given the very high maximum brightness I sourced).
That means the entire system should (under ideal operation) waste only one watt of power when running a single 20 Watt ring at full brightness.
Component Sourcing:
With the spreadsheet complete it was time to source components.
Due to space constraints and the fact that this circuit would be near other sensitive signals in the enclosure, I focused on sourcing parts that produced low EMI and were in efficient SMD packages.
For most of the components, it was simply a matter of taking the calculated values from the spreadsheet and finding affordable parts that were of acceptable quality and satisfied those values and any further constraints recommended by the LM5156 datasheet.
Two important notes:
1) Since only specific values of components are commonly available, a little trial and error was necessary for certain parts that required precise but adjustable values.
2) I chose to use an array of parallel capacitors for the output (COUT) instead of a single larger one. This is both to reduce cost and to ensure that the output capacitance can handle the high expected current by evenly distributing the load.
Tooless sourcing:
Since the quickstart tool doesn’t calculate values for everything in the circuit (skipping the parts that are most affected by external factors) there were a few that I had to calculate and source for myself.
These included: CIN,CVCC, RF, CF, and RPG.
RPG is an optional pull down resistor that can be used to pull the PGOOD pin to ground so it can be read by a supervising microcontroller. The purpose of PGOOD is to simplify the circuit supervision process which is something I don’t need to build into my circuit. However, since SMD resistors in common values are often only $0.10, I decided to include a breakout through-hole to the pin in case I needed to use it for debugging the PCB at a later date and sourced a 12 KOhm pullup resistor based on the datasheet recommended minimum of a 10 kOhm value.
The purpose of the filter capacitor and resistor is to overcome the leading edge spike of the current sense signal. While both RF and CF are considered optional in the datasheet, I decided to source and include them to be safe. The statsheet gives both a recommended value range and an inequality to ensure that the RC time constant will allow CF to completely discharge.
The provided inequality was 3RFCF < 1-D/fSW with recommended ranges for RF and CF of 10 Ω to 200 Ω and 100 pF to 2 nF respectively.
With my selected 460 kHz switching frequency and the quickstart spreadsheet predicted duty cycle of 65% at minimum voltage supply, I calculated that the RC time constant would need to be less than 2.4 * 10-4. The recommended value ranges give a spread of 1*10-9 to 4*10-7 so any of them will work. I decided to source values in the middle of both ranges. I ended up selecting a CF value of 1000 pF and an RF value of 100 Ω.
For the input capacitor it was a bit more difficult. The datasheet seems to assume that a circuit designer knows both the impedance of their voltage source and how much they would need to reduce it for reasonable boost converter performance. Unfortunately, I was designing this circuit without access to the physical power supply we would be using at the competition nor even a general sense of what level of impedance I might be dealing with.
What I decided to do was simply replicate the values used in the datasheet example since the example had a somewhat similar (albeit a bit lower rated) input and output. I ended up going with two input capacitors sourcing one 10 uF ceramic capacitor for higher frequency filtering and one 150 uF aluminum-polymer capacitor for bulk filtering.
For the VCC capacitor, the datasheet states that the “BIAS pin operating range is from 2.97 V to 16 V when VCC is directly connected to BIAS [and the] BIAS pin operating range is from 3.5 V to 60 V when VCC is supplied from the internal VCC regulator.”
Since we are using 12 V, the internal VCC supply is fine. So I simply selected a 1 uF capacitor as used in the datasheet example circuit to bypass VCC to ground.
Here is a table of all of the parts sourced for the boost converter circuit:
Sourcing the LED driver:
The LED driver allows for the PWM dimming control and direct overcurrent protection for each ring light. It only required four external passive components: an input filtering capacitor, a current sense resistor, an inductor to help maintain consistent current, and a diode to allow the current a path to flow from the inductor when the IC is switched off of the source supply.
For the capacitor, the datasheet recommends 4.7 μF to 10 μF as a commonly used value range for most cases. They note that higher values improve performance at lower input voltages, especially when there is high source impedance. Since I don’t expect the boost circuit to have particularly high impedance and am using a high input voltage, I went with a 4.7 μF capacitor.
For the Inductor, the datasheet recommends inductor values ranging from 33 μH to 100 μH with higher inductance recommended at higher supply voltages in order to minimize output current tolerance and improve both the efficiency and stability of the circuit. I decided to try for an inductance value close to 100 μH and ended up finding a good value, 82 uH inductor when sourcing the parts.
For the diode, the datasheet recommends a schottky diode for the high switching speed and with low leakage current and resistance to avoid loss in efficiency. I selected one of reasonable value and capabilities.
For the current sense resistor, the datasheet provided a short equation (Iout(nom) = 0.1/RSET) as well as a table of common resistor values and their corresponding current limit result. The table showed 0.15 Ohms as corresponding to a limit of 667 mA, which is just about exactly where I wanted to put the limit.
Assuming the worst case, I calculated a power dissipation of 0.15*.8 = 0.12 Watts by the resistor with a standard dissipation of 0.1 Watts. That is over 8 times less than the dissipation from my original circuit concept and is a lot safer for the LEDs as well since it results in active (rather than passive) protection.
Here is a table of all of the parts sourced for the LED driver circuit:
Designing the PCB:
Once I had sourced all of the components it was time to design the printed circuit board (PCB) they would be operating on.
Libraries:
The first step of PCB design once you have a list of source components and a plan for the schematic is to collect all of the necessary libraries.
While most did, two of the parts I sourced did not come with EDA libraries so I had to make my own. The first was the larger power in capacitor (Cin2) and the second was the LED driver diode (Ddriver).
- The capacitor datasheet only listed actual part dimensions with no recommendations for an EDA footprint. I decided to create pads that were 0.1 mm wider than the maximum pin width and which extended a bit more than a millimeter further out.
- The diode did include a recommended EDA footprint so I simply replicated it with the addition of some place layer indication of the anode and cathode.
I also decided to make a few custom libraries to assist in the testing and functionality of my PCB. These included:
- A test pad which was sized to allow me to probe the PCB with breadboard wires.
- A signal pin to allow a signal wire from the ROV microcontroller to connect with the LED driver control inputs. For the signal pin, I used a size slightly higher than that of a standard 0.1” pin in an offset slot shape to provide extra pad for creating a strong wire join with a lot of surface area.
- A two pin library that is intended to allow me to connect the output of the boost converter with the inputs of the LED drivers with external wires so those circuits could be cut apart and placed in different parts of the enclosure or be entirely replaced separately if necessary. For this, I used an offset slot shaped pad sized to fit 16 gauge wire so that the power would face very little resistance from the wires used.
For the rest of the components, I simply downloaded the library or script file linked in the product page by Digi-Key and imported them into my project repository.
I then created a schematic using the parts I had designed and sourced along with a few default components like a ground symbol and cuttable trace.
The following are a few choices I made in designing the schematic:
- I pulled the DITHOFF pin to ground to turn on the dithering function of the IC, but did so with a cuttable jumper so I could turn it off if I needed to by simply cutting a jumper and bridging two neighboring pads.
- I placed test points on the power input, power output, PGOOD pin, and ground.
- I broke the boost converter output into four of my custom two pin libraries so that each LED driver could be soldered into the circuit separately (this allowed for more modularity and easier testing).
The PCB:
Placement:
With the schematic made, it was time to work on the board.
Since this design has a lot of parts, I first expanded the board to 200x200 mm to give ample space for organization, moved everything onto the board, and then drew a ground plane spanning the entire thing.
The ground plane removed the Ground connections and could be temporarily hidden with the command ripup @; leaving a much more manageable set of unrouted connections.
From there, I first portioned the parts out into the five distinct circuits making up my design (one boost converter and four identical LED ring drivers).
I then played around with part arrangements until I got roughly minimized footprints and checked that routing seemed possible. At this point, the board had been resized to 100x200 mm but still had a lot of empty space above what was then a row of LED driver circuits extending out from under the boost converter.
By rotating each LED driver circuit 90 degrees and moving one up next to the boost converter, I was successfully able to reduce the board size to 100x100 mm. This is important because the board manufacturer we use prices all boards sized at or below 100x100 mm at the lowest rate. As a result, reducing cost saves on the manufacturing cost and wasted resources resulting from a board that is even just slightly larger.
Since the positions of each circuit were not yet decided, I had decided that this board would be as modular as possible. For that reason, I decided to set it up so each individual circuit could be broken off and mounted elsewhere in the enclosure. To do this, I created a dashed grid of slots and then added at least two m3 (3.4 mm) mounting holes on each section. (I then remembered to take my first picture of this project to show off the slots and holes, shown below.)
Routing:
The next step was to route the traces starting by calculating the width necessary to sustain my power outputs. I used the Digi-Key trace width calculator, specifying my copper thickness of 1 oz/ft^2, a bad case ambient temperature of 26 °C, and allowable temperature rise of 6 °C which would lead to an overall temperature of 32 °C, keeping things well below the ratings of every sourced component.
Different high power parts of my circuit are set to take different amounts of maximum current, so I had to calculate a number for each
For the maximum 14 A quickstart calculator calculated maximum inductor current, it calculated a width of 15 mm however I was only able to get up to a 4 mm trace width within the constraints of my components. Luckily, 14 Amps is only likely to occur for very short bursts so it is unlikely to be a problem.
For the 3.2 A maximum boost circuit output, the tool gave me a required trace width of 2 mm so I used 2.2 mm.
For the 0.7 A maximum LED current draw, it calculated a minimum width of 0.25 mm, so I went with 0.5 mm for most traces, using 0.4 mm where 0.5 seemed a bit too large.
For all other traces, I used the maximum trace width that would comfortably fit, not going below 0.25 mm.
With all of the routes and using both a top and bottom ground plane, I went through the 185 DRC errors and approved all of them since they were all related to manufacturer provided footprint overlaps and traces crossing areas which were marked as restrict (meaning that an auto-router can’t place connections there including from a ground plane).
Here is the routed PCB from a top and bottom layer view:
Here is the routed PCB after running ripup @; to better expose all of the traces:
The last circuit related thing I did was to modify all of the inductor footprints to restrict the bottom layer along with their existing top layer restrict. This was done to ensure there was no risk of induced electric potential in the ground plane.
And with that, the board was one logo away from complete.
The Ring Lights:
With the schematic for the boost converter and LED drivers completed it was time to make the schematic and board for the ring lights.
For the schematic, I simply used one of my custom two pin connectors and attached the LEDs to it in series.
For the PCB, things were a bit more constrained. In terms of the physical shape, the Slugbotics mechanical team specified that the light ring needs to include a central hole to fit a camera lens and be less than or equal to the outer diameter of the Adafruit 16 LED RGB ring light. This limits my ring design to an 8 mm inner radius, and 22.1 mm outer radius.
I decided to go with a 22 mm outer radius and a 10 mm inner radius so as to give the center a bit more room and give the outside a reasonable 3D printing tolerance.
Since the light will have to be encapsulated in the potting resin used to protect the camera, I decided to put as few components in the ring as possible to minimize the number of parts which would need special cooling from within solid resin.
To cool the LEDs, which (obviously) had to be on the resin embedded ring, I decided to design the ring with full width ground and power planes to improve the heat conduction of the PCB and added large solder pads onto the underside with holes for m3 screws to which copper “heat pipes” could be secured.
Below I have depicted my first concept sketch of this technique:
Since I was using five LEDs and had one two pin power input, that left enough room for four heatsink spots as can be seen in my final board design.
This board is pretty simple, but I will point out a few key decisions I made:
- I left as much copper on the top and bottom layers of the board as possible to maximize thermal mass and transfer.
- I connected the heat sink pads to ground to avoid any strange capacitive interference.
- I used a little trigonometry to calculate the correct angle or rotation for each component so that the spacing would be correct and the size of the grounding pads could be maximized.
Conclusion:
This concludes the design process of my light ring system and marks the end of what I have done so far. My next steps are to order the components and boards, assemble them, and validate their functionality. From there, the rings will be integrated into the camera mounts on the ROV and the power circuitry will be integrated into our waterproof enclosure.
As always I hope you learned something. Happy making!
![TechForum](http://www.digikey.com/-/media/Images/Footer/TechForum2.png?la=en&ts=9efa75a7-28fd-48d1-bcf2-3300f3edfa4e)
Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.
Visit TechForum