DIY RGB Fill Light for Photography

by tobychui in Circuits > Electronics

3965 Views, 59 Favorites, 0 Comments

DIY RGB Fill Light for Photography

thumbnail.jpg

Recently I am trying to upgrade my camera setup where I take picture for the products I developed and open source. I realized that most of the time I can spare are close to mid-night and there are rarely any nature night at that time period. As a side project, I decided to make myself a RGB Fill Light. I have a few requirements of such fill light including

  • Battery powered, so I can use it everywhere I am filming
  • Bright, enough to illuminate a corner of my room where I usually film
  • Light weight enough so it can be mounted on phone mounts / tripods
  • Wireless control (base on WiFi and restful API), so if later I want to upgrade my setup even futher to have a centralized control panel like a stream deck, I can use it to control all my lighting in one click and with some simple python / bash scripts.

So that is why I designed this RGB fill light. As this is not one of my major projects, I will just briefly describe how I made it and leave all the details at the git repo.

Supplies

  • PCB (or Wemos D1 + power bank PCB + WS2812B LED strip)
  • A bunch of WS2812B (5V)
  • IP5306 and surrounding components (power management system)
  • ESP8266 and CH340 programmer (MCU section of the PCB)
  • Some SMT buttons
  • 1S, 2 cells 18650 (3.7V, 4400mAh)
  • 3D printed case
  • some M3 x 5 screws

Design the Circuit

Screenshot 2024-04-17 at 21-20-25 EasyEDA(Standard) - A Simple and Powerful Electronic Circuit Design Tool.png
Screenshot 2024-04-17 at 21-20-34 EasyEDA(Standard) - A Simple and Powerful Electronic Circuit Design Tool.png
ip5306.png

The circuit of this RGB fill light is pretty straight forward. From the EDA screenshot, you can see 4 main section.

Front Side (RED)

On the front side (red), you can see on the left the control buttons.

On the lower left corner, you will see a power management module. This is the a standard IP5306 power bank circuit where schematic can be easily found online. The IP5306 power bank circuit have 4 LEDs showing the battery percentage and can output up to 5V 2A (10W).

On the lower right hand corner, you will see the ESP8266 with CH340C. It is yet another really common circuit that is identical to a Wemos D1 mini.

Back Side (BLUE)

On the back side, there are nothing much except a bunch of WS2812B. These are the RGB 5V variant and it basically identical to an WS2812B LED strip but in a different form factor. The 49 LED draws around 10W which is exactly where our power management circuit can output.


PCB Printing

434049394_10221738128917319_6280459428390286992_n.jpg

You can find the Gerber files over at https://git.imuslab.com/TC/RGB_fill_light (under the /prod) folder. I have a 2 production iterations and the latest v8 version fixed the patch wire issue. It is recommend you use that one instead.

In the photo above, I am using the v6 design which a signal wire was missing from the corner. Use white FR4 for better results as green silkscreen solder mask will effect the color due to light reflecting off the PCB and black will make part of the light being absorbed by the PCB (and get turned into heat).

Solder on the Components

DSC00204.JPG
DSC00199.JPG
433930203_10221742894156447_5863525301450373970_n.jpg
434456652_10221765880331087_7312538346371953934_n.jpg

Just like other DIY electronic projects, you then need to solder on all the components. It takes me 3 hours to solder all of them one by one and the completed products will looks like that.

For the patch wire, I forgotten to bridge the signal LED (the one above the buttons) to the back WS2812B LED strip. So I added a patch wire passing through one of the reserved screw hole to fix the issue.

Lastly, I added a few 2 x 2 x 0.5cm heat sinks to the back to better help with the light cooling.


Flashing the Firmware

Screenshot 2024-04-17 213633.png

The firmware was written with Arduino and build for ESP8266 (Wemos D1). The firmware contains 3 basic modes

  • White Color Mode (adjust white color at different color temperature, or K value)
  • RGB Channel Mode (adjust each of the channel independently)
  • Preset Color Palette Mode

There are 4 buttons on the fill light. By default, it do the following

White Color Mode

  • Add = Increase color temperature / brightness
  • Minus = Reduce color temperature /brightness
  • Brightness = Toggle between color temperature and brightness

RGB Channel Mode

  • Add = Increase channel value
  • Brightness = Change Channel (R / G/ B)
  • Minus = Reduce channel value

Preset Color Palette Mode

  • Add = Next color palette / Add brightness
  • Brightness = Toggle between color palette switching and brightness
  • Minus = Previous color palette / Reduce brightness


Wireless Mode

If you hold MODE button when power on the fill light, it will enter Wireless control mode. The control LED will show as yellow when first startup, it means waiting for WiFi. You will be able to setup the WiFi credential using WiFi Manager. After WiFi connection established, the control LED will turn green and you can connect to the RGB fill light with the following API endpoints

  • /api/rgb?r=255&g=255&b=255
  • R = Red channel value, 0 - 255
  • G = Green channel value, 0 - 255
  • B = Blue channel value, 0 - 255
  • /api/temp?k=4500&b=255
  • K = Color temperature
  • B = Brightness, 0 - 255
  • /api/off
  • Turn off all LEDs


Currently I do not have an app for desktop / mobile to control it, but I might make one later after I have completely setup my new mini filming corner in my room :)

(You can also find the source code on my git repo. Instructable do not allow upload zip files so I will just put the code here as independent ino files.)

Designing the Case

434878873_10221749603004164_6350429745224556132_n.jpg
434883812_10221749598884061_135834962093703876_n.jpg
434919883_10221749599204069_911680107575101589_n.jpg
434949456_10221749599804084_4016505952193704123_n.jpg
434958347_10221749598284046_2816008095803438313_n.jpg

Next, I designed a back case for the PCB to hold the battery and hide all the heat sinks. The case can be printed at a 45 angle to reduce supports that is hard to remove or making the surface uneven.

There are 4 screws at the back of the case. It is used for mounting additional structure / adapter for phone tripod. I also designed a phone-tripod-adapter and you can find it in the file list below. Using this adapter, you can mount the RGB fill light onto any clip-style phone tripod or arms.

Mount and Test

DSC00194.JPG
DSC00195.JPG
DSC00198.JPG

After installing the back cover and the adapter, I mount it on a phone tripod and it lights up. I can also switch between different color by pressing the buttons on the back. For example, in the last photo, I switch it to purple using preset palette mode.

Completed!

433920149_10221760761603122_6380806395723356688_n.jpg
434456270_10221760761963131_2598956137667537692_n.jpg
434430243_10221760762123135_5965225366627210966_n.jpg
DSC00201.JPG
DSC00202.JPG

Now I got myself a tiny portable RGB fill light that is also powerful enough to light up my filming corner of my room. In the future, you might be able to see my new projects with photo taken with the help of this little RGB fill light.

As always, you can find all the source files and code on my git repo.

https://git.imuslab.com/TC/RGB_fill_light

This is all for today. Good luck with your next projects!