Ring Lamp "Halo" V3 (Customizable)
Description
This is the third iteration of my ring lamp (or ring light). This time the two LED strips are directly glued onto each other, facing in opposite directions, creating a great glowing halo effect. Links to the previous versions can be found at the bottom of this text. Both strips are placed inside a huge channel within the ring sections. Since the LED strips are completely covered by plastic. The electronics are completely covered and the only hint is the power strip. This is probably the easiest to build version of the series to far. Printing is easy, assembly is even more easy than with prior versions and the transparent ring transmits the light around the entire ring and not only to the inside or outside. This makes the new version the most kids friendly edition. It also makes it easier to dust the lamp, as there are no electronics exposed. You need a printer with around 220x220mm build plate to be able to print the big version. <h2>Key Features:</h2> When designing this I had some key features in mind: ° simple and clean print ° avoid the led strips glue tape on the back at all cost. ° add a simple compartment for the electronics. ° wire management ° easy to print. ° no flimsy pegs to mount, which fail printing or break away later on. <h2>Requirements:</h2> 1x 5V power supply 1x Power Connector 1x Switch (optional) 1x LED strip. (60 pixel/m or more) <b>WARNING! You need a LED strip without a rubber dome. Just the plain flexible PCB with the LEDs and resistors soldered on.</b> I used a 60 pixel/mm LED strip and ended up using 120 LEDs (60/60) in total for the big version and 70 LEDs (35/35) for the smaller version. <h2>Printing:</h2> You need to print a the socket, the lid and four ring pieces. One of the ring segments has an opening for the wiring. The other file marked with 3x need to be printed three times. Make sure you pick the matching files for the radius. The socket for the 100mm (R100) ring will not fit the 165mm (R165) radius sized ring and vice versa. <strong>It is important to print the ring with 100% infill and 0% supports.</strong> Support will be visible later when the ring is lit. Feel free to experiment with infill. I personally like the unified full plastic glow. As mentioned you must not use support for the ring segments. This is because the LED strip guide would be filled with support, which in the end cannot be removed. So: Do not use support for the ring segments. It is not required. <strong>Another important thing:</strong> Use a raft when printing the ring segments. Yes, rafts take a while to print and eat a lot of plastic as well, but so do the ring segments and one single fail or a warped and thereby unusable ring segment wastes even more plastic. Especially when having issues with temperatures in the print bed corners, a raft saves filament and not the opposite. So adding one hour per ring segment isn't that bad compared to a total fail after 3 hours of printing. Better get it done right the first time, instead of failing several times first. Bonus effect: The ring will look more or less the same on both sides, which is great. I got several request on adding the full rings for big printers. Here they are. You need to feel where the break away slot is, but this should be it. No guarantee this will properly work. Especially inserting the LEDs could end up problematic. So printing the full rings is 100% experimental. Please show the results here, so other can learn from your experience. <h2>Preparation:</h2> Before starting the assembly, you need to ensure the LED strip opening is free and easy to use. Pull a wire through each ring section and make it rattle on the inside to ensure there aren't any printed blobs or walls from stringing blocking the channel. The bottom left ring segment (the 1x one) has a little compartment on one side, which has one very thin outer wall. You need to break away that wall, as that's where the wires sneak into the socket. Now it is a good idea to test the LED strip if possible. There is a test mode build into firmware that you can enable to activate additional testing options. In main.h you find "ENABLE_TESTMODE" turn it on. Since your strip is usually not cut at this state you need to change the number of LEDs per strip to the total number you want to test. So changing the first LED strips LED count to 300 in "configuration.h" should do the job. Just remember to change it back later or the effects will be broken as they assume a longer strip. For testing log into the web interface and turn the test mode inside global section on. A test mode selection will be now visible in misc section. Changing it will effect the strip immediately. You should be able to select red, blue, green and white and confirm that every LED is responding correctly. If not you have to cut the broken LED and resolder the joint. <h2>Assembly:</h2> Lay out the ring sections in print orientation. The sides will look a little different due to the print process. E.g. place the side print bed side down. Make sure the segment with the opening is facing towards you. Remove the sticky tape from both LED strips and push them against each other. Make sure you get them as good on top of each other than possible. I added some pictures to show how it should look like. Also make sure the arrows (data direction) on the strips are facing in opposite directions. You can solder wires to the end of the LED strips right now. It is important you solder the data lines to the side where the arrow point into the strip. For 5V and GND this is not important. This soldering step can be done later, too. Since the strips are in opposite directions you can use a little wire to connect 5V of both strips together at the end and use just one power wire to power them. Same should be possible with the GND connector. The result looks a little blobby and ugly (see pictures), but it gets the job done easy and this way you only need two wires for gnd/power and two for the data lines. Now feed the entire LED strip through the opening of all ring segments starting at the bottom, where the little opening is. As result you should have a loosely connected ring on the table. If not done earlier this is your last chance to solder the wires to the strips ends. Make sure they are long enough. To be on the save side, just use long wires and cut them later. You only need around 100mm to 150mm. Feed the wires though the opening to the outside. Using a little bit of glue the segments are quick attached together. When you printed the ring segments using ABS you can use acetone as glue to weld the sections together, which makes assembly much easier and the result is as strong as if you would have printed the ring in one piece. Why? -> Because of chemical welding. Take your time and let the glued sections harden before moving over to the next section. If you rush it just gets messy very fast. Repeat the gluing step. It is the best to glue the bottom right section to the 3/4 ring last. Make sure the wires are in position, put glue on both ends and press the rings together. Optional you can leave the bottom section without glue. In that case you need to ensure the gab is closed while gluing the socket onto the ring. When the ring is done and fully cured you can do another test run to see if the LED strip survived, but it is not required. If there is no visible damage, then you did not break it. Feed the wires into the socket and glue it on. Align it as you like. It is not required to 100% have the ring opening above the socket opening. Slide in the switch (if you printed the version with the opening for it) into the socket and glue the power connector in place. The power switch connectors pins need to be flattened, to make it fit into the socket. You can solder both components after mounting them, but I found it easier to add the wires and some heat shrink tubing before that. You are now nearly done. Connect the ESP32 and done. This is just basic stuff. Connect all 5V to 5V, all GND to GND and the inner ring light data line to pin G23 of the ESP. The outer rings LED strip data line needs to be connected to pin G22. You can use any kind of software to drive the ring lamps LED strip. Even use an Arduino and some example code. There is an archive containing the source code included. Please check the read me file for further details. I made a video to show the build process more or less in detail. https://www.youtube.com/watch?v=G0Ccoee1Y5A Language is German, so be warned. :D The video is also for the revision 1 of the ring, but beside minor changes the assembly is mainly the same. <h2>Current Features:</h2> ° web interface ° OTA update support ° flash fs settings support ° LED color and temperature correction ° 12 effects (static, rainbow, fire place, RGB fader, ...) ° optional sound support (hour/30 min gong) (requires DFPlayer sound module) ° timed power mode: The ring lamp turns on and off at a specific hours. ° timed dimming mode: The ring lamp changes brightness at specific hours. ° timed sound mode: The ring lamp changes volume at specific times. ° Full fledged Alexa support. ° Optional button support for quick on/off/audio switch. <h2>Customize:</h2> To customize the ring you need at least FreeCAD 0.19.1 or up. The model is fully parametric and you should be able to modify stuff like the size of the opening for the switch by just tweaking the spreadsheet. Of course this also works for all other dimensions. <h2>Parts:</h2> I changed the default design to use a <a href="https://www.amazon.de/-/en/KeeYees-30pcs-Pressure-Switch-Toggle/dp/B07QB22J62/ref=sr_1_19?dchild=1&keywords=ein-%2Fausschalter&qid=1618658646&sr=8-19">standard toggle switch</a> which can be found on coffee makers. For the power inlet I used a <a href="https://www.amazon.de/-/en/Sharplace-Mount-Female-Connector-Socket/dp/B076BQ4QP4/ref=sr_1_6?dchild=1&keywords=power+jack&qid=1618658967&sr=8-6">power jack adapter</a>. You find them on internet routers, USB hubs, scanners and other low power devices. I usually salvage these parts before throwing old hardware away, so I have a bunch of them. The power connector is not optimal, but looks nice, when glued into the base. As said the model is customizable, so you can use what ever you have at hand. If you want to use something different, just change the width and height values inside the spreadsheet. Finally the LED strip. I used this one: <a href="https://www.amazon.de/BTF-LIGHTING-Individuell-adressierbar-Vollfarbiger-DIY-Projekte/dp/B088BPGMXB/ref=sr_1_1?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&dchild=1&keywords=BTF-LIGHTING+WS2812B+ECO+RGB+Legierung+Dr%C3%A4hte+5050SMD+Individuell+adressierbar+5m+60&qid=1625485692&s=lighting&sr=1-1">BTF Lighting WS2812B</a> Any WS2812B strip should do. Just make sure there is no rubber dome above it. Those water resistant versions are not working. Additional Information: Make sure your Router/AP is not using 5Ghz. The ESP32 cannot deal with that. ESP32s will connect and then directed by the AP to a 5Ghz frequency and disconnected. The result will turn the ring into an AP mode, normal mode, AP mode loop. One way is to force your ring light to be in slower bandwidth frequencies, which makes sense as there is basically not data transferred beside the webpage and internet time information once in a while. There is probably a way to avoid that from the ESP32 side, but that is a pure driver issue. Maybe the problem is gone when you compile my code, as the library was altered in the mean time. This is just a warning from my side. :D <h2>Final Words:</h2> If there are any questions feel free to write a comment. Please post a make, so people can see my model really works and I get positive feedback in the same process, too. Version 2 of this RingLight project can be found here: <a href="https://www.thingiverse.com/thing:4877991">Ring Lamp (Code Name: Dual)</a> Version 1 of the RingLight project can be found here: <a href="https://www.thingiverse.com/thing:4817409">Ring Lamp (Code Name: Stargate)</a>
Statistics
Likes
261
Downloads
0