This project uses an RGBW LED ring, a small Arduino-compatible board, and a potentiometer to make a cool and adjustable LED ring light. Depending on your camera, you may need to adjust the size of the filter and LED ring to best suit your needs!
The final product!
This project is designed for use with a lens that uses a 52mm filter. This is a relatively simple project that can be completed with just a hot glue gun and a soldering iron. I used a ShapeOko CNC router to machine an adapter ring to attach the LEDs to the filter, but this project can be completed without it.
The ShapeOko CNC router used to make the adapter ring
Tip: Caution should be used with dealing with tools such as soldering irons, hot glue guns, and power tools. Be sure to follow the manufacturer's safety recommendations.
This project is relatively basic. Below is the schematic I made in Fritzing:
The schematic of the project we are building. Click to enlarge.
The schematic can be seen above. The 10k Ohm potentiometer gets connected to the +5V Bus, Analog 5 (A5), and ground.
The Neopixel ring is attached to the +5V bus, digital pin 5, and ground.
It's generally a good idea to gather all of the parts for a project before you begin. Here is the bill of materials:
NeoPixel Ring - 24 x RGBW LEDs- ~4500K
|Pro Trinket - 5V 16MHz||Adafruit||2000|
|10K Linear Taper Pot w/ Knob||uxcell|
|UV Protection Lens Filter - 52 mm||Amazon||B00XNMWCF8|
An RGB 24 NeoPixel ring
I used a 24 NeoPixel RGBW, the 4500K variant, as the light source for this project. I originally used an RGB ring, but the RGBW ring produces a truer white and has a greater light output. At the time of writing this, the RGBW LED rings are relatively difficult to source, though Adafruit has a few options available. For this project, I used Adafruit part 2862.
An Adafruit Trinket that controls the LEDs
This project uses a 5v 16Mhz Adafruit Pro Trinket, but nearly any Arduino-compatible board can be used. In many cases, the software for this project won't need to be changed.
The 10k Ohm potentiometer used
For this project, a potentiometer is used to adjust the brightness of the LED ring. I used a 10k Ohm single turn potentiometer, but many other potentiometers would also be fine. This particular potentiometer was purchased from Amazon, part number a13060500ux0042.
In order to attach this light to a camera, I used a 52mm threaded filter. You won't need to use an expensive filter since the glass can be carefully removed if desired.
I used an AmazonBasics 52mm UV filter. I was able to remove the glass in the filter by unscrewing the retaining ring.
The AmazonBasics 52mm filter used
Some materials are needed, the quantity of which will vary based on your construction. To make the filter-to-LED-ring adapter thin (approximately 0.1 inches thick) I used plywood. I also used approximately 9 feet of stranded wire, two small zip ties, and a small quantity of heat shrink.
Now that we have a design and all of the parts, it’s time to start building!
A little bit of easy through-hole soldering is required to get this up and working.
First solder on the potentiometer based on the schematic.
In the image below, I have a red wire going to +5v, a black wire going to ground, and an orange wire going to the analog input.
The 10K potentiometer solder connection
Next solder the wire to the LED ring and to the Adafruit Trinket. The length of this wire is up to you, but I used about 3 feet of wire.
In the image below, I have a blue wire going to +5v, a green wire going to ground, and the yellow wire is the signal.
The Trinket and wiring
Tip: Once soldering is done and the connections are confirmed to be working, add a drop of hot glue to the connection point to act as a form of stress relief. I used a zip tie to bundle the wires around the Trinket PCB.
LED Ring Assembly
The CNC router making the adapter ring
In order to have a relatively nice looking completed project, I used a ShapeOko CNC router to machine an adapter ring. Once the adapter was routed out and deburred, I glued the LED ring and 52mm UV filter into place.
LED ring light assembly
I know not everyone has access to a CNC router. If you don’t have access to one, the 52mm filter can be glued or epoxied directly to the LED ring. Care should be taken not to short out traces or pads on the LED ring against the metal 52mm filter.
LED ring on the 52mm filter
With all of the hardware completed, it is now time to download the software!
The software for this project is relatively basic. The code is based heavily around Adafruit's Neopixel library using functions such as “strip.begin()”, “strip.show()”, and “strip.Color()”. These functions make the timing required for the Neopixels an afterthought as the library takes care of it all.
These functions also make the code easy to use and update as needed to fit your application exactly. Additionally, the “colorWipe()” is from Adafruit’s “standtest.ino” example project.
The important line of code in this project is:
colorWipe(strip.Color(analogRead(A5)/4, analogRead(A5)/4, analogRead(A5)/4, analogRead(A5)/4));
This line of code reads the ADC value from pin 5 of the Trinket, creates an RGBW color code, and sends the data to the colorWipe() function.
Below are two download links: One contains software used for this project and the other is for the Carbide Create file for the adapter ring.
In order for this to compile in the Arduino IDE, a newer version of Adafruit’s Neopixel library is required. I used version 1.0.5 without issue. Older versions of the library do not support the RGBW Neopixels.
Instructions on how to install this library can be found on Adafruit’s website.
Get Out and Use It!
The completed LED ring light
I have been using this LED ring light for a few months now and it works great! I use it for nearly all of my teardown articles where macro photography is required.
Here are a few of the images that this light has assisted with:
Photography example 1: Flex sensor
The above image is from my Bluetooth Bathroom Scale teardown. (Pictured is one of the force sensors used in the scale to determine weight.)
For this macro image, I used ambient lighting and the LED ring to obtain a relatively large depth of field. Additionally, the extra light allows me to use a lower ISO, reducing the amount of noise in the image.
Photography example 2: A MEMS microphone and op-amp
This second image is from the Kapture Wearable teardown. (On this PCB there a MEMS microphone and an opamp.) As you can see, the RGBW LED ring outputs a large amount of light relatively evenly. This allows for relatively consistent lighting without oversaturated spots.
This LED ring works greats as a continuous light source that can be used by both photographers and videographers. However, the bright continuous light can be an issue in some situations. To resolve this issue, changes could be made to this project! For example, a photodiode could be used to detect the use of the camera-mounted flash, and in response the Trinket could disable the LED ring. This type of modification can work well for many situations, but may not be well-suited for situations where a fast shutter is required.
If you have any ideas on how to change or improve this project, let us know in the comments below!
I hope you've enjoyed this walkthrough! Get out there and create your own LED light ring so you can take awesome photos, yourself.
Below, you can see a video of my working model: