Introduction: HEXA LEDs - Bluetooth Controlled Glowing Hexagons
With this instructables (my very first one !), I propose to you to make this glowing HEXA shaped light for your living room or for your gamer boy's room. As you can see, I was in that last case ;-).
The thing is, you can design your own pattern to fit your wall(s), ceiling or whatever surface to cover. Small one, giant one, everything is possible, thanks to the unique modular piece.
The light panel is controlled by an android app (sorry for the Apple ones !) computed on MIT App Inventor.
9 light patterns are available with a lot of adjustable parameters, such as hue, saturation, brightness, speed for the kinetic patterns, etc...And totally customizable for those who wants to go deeper.
The making of this project is quite simple if you have an access to a 3D printer.
You only need to have basic soldering skills and basic arduino computing skills.
Hope you’ll enjoy !!!
Supplies
What you need to make your own HEXALEDs :
> 3D printer or access to a 3D printer.
> White PLA filament >> White PLA
> Basic Soldering skills + Soldering Iron
> Arduino Nano or Arduino Nano Every >> Nano or Nano Every
> Bluetooth module HC06 >> HC-06
> 1000uF Capacitator
> Adressables RGB Leds (60LEDS/M) WS2812b Length depending on your pattern >> LED strip WS2812B 5M
> 5V Power Supply (20A) Power depending on the nb of LEDs in your project ( 60mA / LED) >> Power Supply
> Wires >> Wires
> BreadBoard PCB 5cmx7cm >> Breadboard PCB
> Simple Switch
> Double sided foam tape (19mm wide, 2mm thick) Length depending on your pattern.
> 3 or 4 wires cable depending on the number of LEDs (<150LEDS 3 wires, >150LEDS 4 wires).
Ideally 5mm diameter >> 4 wires cable
> Female Power plug >> Female power plug
> Female 4 Pins Header connector >> Pin Headers
> Sand paper
> Cyanoacrylate glue
> Hot Glue Gun
Step 1: Let Your Creativity Talk and Design Your Own Pattern
The first thing to do is to print the blank pattern image, take a black marker and draw your own pattern using the 3 branches designs you can connect together.
Your imagination is the limit.
You will need 18 LEDs / Support (around 30cm LED Strip /Support).
You can choose to put the pattern on the wall and/or the Ceiling, even on two walls.
For this instructables I’ll use this pattern for example (both wall and ceiling) (PHOTO 1)
When your pattern is designed you'll start by printing all the parts you need.
Step 2: Print the Parts According to Your Pattern
All the .STL files are available down here. I designed everything with Fusion360.
The tricky part was to keep transparency to the PLA. I made several trials to finally adopt 1mm thickness for the diffusers. It is a good balance between transparency, strength and elasticity (for clip on and clip off to the supports).
Another thing important to me was I didn't want we see the light spots of the LEDs themselves, but just a uniform glow. For that I had to put the LED strip a little far from the visible surface of the diffuser.
Of course you’ll print everything with White PLA to keep this transparency to the diffusers. Think of using the same PLA for all the diffusers. If not, it may appears some differences in their final aspect when they'll be backlit.
What you need to print : Let’s take an example with my HEXA LEDs, which counts 19 Supports (9 on the wall and 10 on the Ceiling) (PHOTO 3)
For this configuration, you will need to print :
· 19 Supports
· 19 Tenons
· 17 Diffusers + 2 Corner Diffusers
· 1 Corner piece
· 1 Start Cap
· 16 End Caps
· 1 Electronic Housing
· 1 Electronic Lid
Open the STL files in your slicer software and generate the GCode.
Supports needed for : Diffuser, Support, Corner Diffuser, corner piece, electronic housing and electronic lid.
My printer settings (PRUSA MK3+) : Layer 0.2mm. Infill 10%. On a smooth bed.
Diffusers, Corner Diffusers and lid will be printed upside down.
It takes about 2 hours for a Support to print , 3 hours for a Diffuser, 5 hours for the electronic box(housing and lid), 30 min for the corner piece and few minutes for an End_Cap, a start cap or a Tenon.
Unfortunately, Diffuser and Support can’t be printed together on my 3D printer bed due to lack of space.
If you have a 3D printer with a bigger bed maybe you could print several pieces together.
Attachments
Step 3: Diagram the Connections Between the LEDs Strips (Data Pins)
The LEDs strip's data pins MUST ALWAYS be connected from DOut to DIn. The green Data wire coming from the Arduino Nano must be connected to the DIn plot of the first strip.
For the End Branches, I prefered connecting them Inwards and not Outwards (It’s up to you, but keep this in mind when installing the LED strips)
The blue arrows on the diagram represent the arrows ON the LEDs strips.
The Red arrows on the diagram are the green wires you need to solder. (PHOTO 4)
If you’re using more than 150 LEDS you'll have to use an extra +5V wire because of the loss of power along the strip of LEDs. (PHOTO 5)
Step 4: Sand the Supports and Diffusers
Before gluing the supports together accordingly to your pattern, you must sand the ends of the supports so they'll fit correctly together.
You can also lightly sand the 3 ends of the diffusers so they can be perfectly flat.
Step 5: Glue the Supports and Tenons With Cyano Glue
If your pattern is large, keep in mind you’ll need some space on your desk or table to assemble the supports together. If you have not enough space think to divide your pattern in 2 or 3 parts before final assembly.
Put a drop of Cyano Glue inside the holes of 2 Supports and insert the tenon between the 2 parts. Maintain firmly during 1 minute. Take care of the good alignment of the 2 pieces. You can use a straight piece of wood (or other) to be sure the 2 Supports are well aligned. (PHOTO 6)
Continue on and on until all the supports are glued together according to your pattern.
Glue the start cap to your first support. Put a drop of glue inside the hole and place the start cap. Press for one minute and that's it. (PHOTO 6a. )
If you plan to create a pattern with wall AND ceiling pieces, glue the corner piece to either the wall or ceiling pattern. The soldering between wall and ceiling patterns will be done during the wall installation, at the end of the project.
Step 6: Cut and Tin the LEDs Strips Before Placing Them on the Supports
According to your pattern cut the desired number of strips (5,6,7 or 12 LEDs /strip). (PHOTO 6b)
5 LEDs/strip Only for the first strip (1 LED less on this strip to get some space for the cables to enter the pattern and soldering them on the LEDs strip)
6 LEDs/strip for the dead end branches
7 LEDs/ strip Only for the support connected to the corner strip (1 additionnal LED for this strip to fill the corner piece). Forget this if you’re making an "one wall” pattern.
12 LEDs/strip for the connection between 2 supports
Take care to cut the strip right in the middle of the copper pad.
Before gluing them on the supports, I recommend you to tin all the end copper plots. (You could also do it when the strips are in place on the supports but you might melt the PLA underneath.) (PHOTO 7)
Step 7: Time to Glue the LEDs Strips on the Supports
Now that your supports are glued together, the LED strips cut and tinned, it’s time to stick the LEDs strips on the supports.
Before peeling the adhesive verify that the strips don’t overlap in the middle of the support. (PHOTO 8)
Just peel the adhesive and put them in place.
Take care of the arrows on the LED strips from beginning to End of the line. (PHOTO 8a)
For this, keep your data line diagram near you when doing this.
I recommend you to number on a sketch the first led and the last led of each strip. You’ll need this information later. Keep in mind that the very first LED is number 0and NOT number 1 (PHOTO 8b)
Step 8: Soldering the LEDs
Here comes the trickiest part of the project.
Cut and tin pieces of copper wire. Small ones for the connections in the middle of the support and longer green ones for the dead end branches data wires. Solder all the strips together. (PHOTO 9)
If your data wire is too thick to enter the small rail on the support, you can enlarge it with the tip of a flat screwdriver. (PHOTO 9a)
+5V with +5V ( Beginning or End of the strip, don’t matter).
GND with GND ( Beginning or End of the strip, don’t matter).
DOut with DIn (PHOTO 10)
Step 9: The Electronics
The choice of the microcontroller :
Depending on the number of LEDs you plan to use in your project, the choice of the Microcontroller is important.
I say that because I experienced an issue with this.
When I was coding and testing the light patterns of my HexaLeds on the arduino IDE, I was making the tests with only the wall part of my pattern (162 LEDs). Everything was OK with the Arduino Nano. But in the end, when I was ready to hang everything on the wall and the ceiling, I wanted to upload the code for the entire Pattern (342 LEDs) and then it went wrong. The Nano had not enough RAM to support the code for such an amount of LEDs.
I needed 2.5Ko RAM and the Nano has only 2 Ko RAM !!!
Only one solution: changing the microcontroller for one which has enough RAM. At least 3 Ko RAM for my project.
The thing was, I already printed the electronic housing, soldered the Nano on the breadboard, and I didn't want to start eveything over. During my researches, I discovered the "Arduino Nano Every" which is the same board as the Nano (dimensions, Pins Out) but with another chip (ATMega4809) which has 6 Ko of RAM (enough for my project) .
So, If you plan to use less than 250 LEDs you can use the Classic Nano.
If you plan to use more than 250 LEDs, consider using the Nano Every.
If you plan to use another board (Mega for example) , you surely need to redesign the electronic housing to fit the bigger board.
Soldering the electronics :
For this project I used a Breadboard PCB ( PHOTO 11).
The connections between the holes are the same as on a classic breadboard.
You’ll find the electronic diagram as well as the breadboard diagram in the image files.
Solder the Nano, the Capacitator (note that in my case I soldered 2 capacitators of 470uF in derivation, for a total of
2 x 470uF = 940 uF) and the jumper wires.
Don’t solder the HC-06 BT Module directly on the PCB. Use the female 4 Pins header connector, so you’ll be able to disconnect easily the HC-06 for uploading the code to the Arduino Nano.
Solder wires on the power plug and on the switch. Connect them to the PCB according to the diagram.
Solder the 4 wires of the cable according to the breadboard diagram.
Between the first Support and the electronic housing, I cut the cable to 75 cm length . Up to you to cut this cable to the desired length.
Where the 4 wires cable enter the start cap : Red wire : +5V on the LED strip, Black wire : GND on the LED Strip, Green wire : DIn on the LED Strip, Yellow wire : extra +5V if more than 150 LEDs. Think to place a shrink tube before soldering the yellow and orange wires ;-) (PHOTO 12)
I recommend you to put some hot glue to secure the cable, both at start (inside housing) and finish (inside start cap).
Put some hot glue underneath the PCB and place it in the case . (PHOTO 13)
Step 10: Time to Test the Hardware
Before sticking everything on the wall, I recommend you to test the LEDs, to be sure that everything is well connected.
Open the HexaTestCode.ino just below in Arduino IDE.
Modifiy the NUM_LEDs variable to fit the number of LEDs in you project.
Modify the LED_PIN variable if not connected to pin D3 on your arduino.
Connect the arduino via USB to your computer. Disconnect the BT Module and upload the HexaTestCode.ino just modified.
(Remember that you MUST disconnect the Bluetooth Module before uploading to the Arduino.)
Insert the male power plug from the 5V power supply into the female power plug on the housing.
Turn On the switch.
The Leds should light up in red, one by one from the first to the final one.
If OK then you’re good to continue.
Attachments
Step 11: Modify the Main Arduino Code to Fit Your Pattern
First you have to download FastLed library from there: Fast LED Library (click the green "Code" Button and Download ZIP).
To install FastLed library : In Arduino IDE : Sketch > Include Library > add ZIP Library. Then point to the ZIP file you just downloaded from GitHub. (PHOTO 13a)
Open the HEXA_LEDS.ino file just below in Arduino IDE. (PHOTO 13b)
The code is fully commented so it will be easy for you to modify even if you’re a beginner in Arduino computing.
>>> NUM_LEDS is the total number of LEDs in your pattern. In my case 342. (Red arrow #1)
>>> LED_PIN is the pin number where you connect the data wire of the LEDs on the Arduino. Default : D3. (Red arrow #2)
>>> int endwall = 162 (Red arrow #3) Enter the number of the last LED of your wall structure (in case of wall + ceiling pattern). In my case, I wanted to split colors between the wall and the ceiling patterns.
If you made a "one wall" pattern, put here the number of the LED you want. The app will split colors between the LEDs before and the LEDs after this number. (Red arrow #3)
>>> int hexa[144]… Change the number 144 with the total number of LEDs shaping entire hexagon(s) in your design.(72 LEDs / Hexagon. So in my case 2 entire hexagons of 72 LEDs = 144 LEDs)
All the following numbers (Red arrow #4) are the numbers of each LED shaping the entire hexagons in my pattern . You’ll have to change these numbers according to your pattern. It will be easy to do with the Number diagram you did earlier ;-) This variable is necessary for the “HEXA” and “HEXA+” Light Patterns.
You don’t need to modify the rest of the code (except if you want to create new light patterns or modify the existing ones).
Attachments
Step 12: Upload the Main Code to the Arduino
Connect the Arduino Nano to your computer, disconnect the BlueTooth Module and upload the HEXA_LEDS.ino file just modified. (Remember that you MUST disconnect the Bluetooth Module before uploading to the Arduino.)
Step 13: Install Android App
I build the app with the MIT App inventor. A really easy way to code an app without any knowledge in app coding. It all works by blocks you put together to build the app (like in Scratch) >> MIT App Inventor
Download the HexaLEDS.apk file just below and install it on your mobile phone.
I also provide the .aia file (the one you can open as a project in MIT app inventor webpage). Just in case, for those who wants to see how it works or implement the app with new light patterns. HEXA_LEDS.aia
Once installed, open the app. Press on BT CONNECT. Default name of the module is "HC-06". If you want to rename it.
If this is the first time you're appairing this module you'll have to enter the password. Generaly 1234 or 0000. Then click ENTER.
The app allows you to control 9 patterns such as Solid, Fire (created by Mark Kriegsman), Rainbow, Beats, Dots, Hexa, Hexa plus, Split and Noise. For each pattern you can change differents parameters such as hue, saturation, luminosity, color palettes, speed, scale, etc…
The app is sending bytes via Bluetooth to the Arduino. These bytes are stocked in an array , taking names : dataIn[0 to 6].
The first byte (dataIn[0]) is always the number 255 which indicates this is the first number of the array. In order to right classify the bytes received.
dataIn[1] : Light pattern or OFF button (Integer between 0 and 11)
dataIn[2] : Thumb position of first slider (integer 0 to 254)
dataIn[3] : Thumb position of second slider (integer 0 to 254)
dataIn[4] : Thumb position of third slider (integer 0 to 254)
dataIn[5] : Thumb position of fourth slider (integer 0 to 254)
dataIn[6] : Palette selection button (integer 1 to 3)
Attachments
Step 14: Installation on the Wall And/or Ceiling
First, you have to install double sided tape on the back of the supports. No need to cover the entire support.
Just 3 or 4 cm per branch is enough. PHOTO 14
Peel the double sided tape and install the pattern with the corner piece first .
You may need a stool to install the structure properly. Ask a friend to help you levelling.
Do the same with the other pattern. No need to glue the second support to the corner piece.
Take care of leveling and orthogonality of the 2 patterns.
You could also put double sided tape on the Electronics housing to stick it on the wall.
Step 15: Connect the Wall and the Ceiling LED Strips
Last soldering...on the ceiling ! : Solder +5V with +5V, GND with GND and DOut(wall) with Din(ceiling).
If you have more than 150 LEDs, solder the wire coming from the power supply (Orange Wire on the picture) to the +5V of the ceiling pattern.
Step 16: Install the Light Diffusers and the End Caps
Simply clip all the diffusers on the supports. Use the Corner diffusers for both supports connected to the Corner piece.
Some adjustments are sometimes needed. A bit of paper sanding on the end of the diffusers and you're good. No need to glue the diffusers.
Install the end caps. If falling, a little bit of cyano glue will help to hold them in place.
And you're done !
Step 17: Enjoy Your HEXA LEDs !
I’m French, so sorry if my English is not perfect…
Judges Prize in the
Make it Glow Contest
11 Comments
6 months ago
Beautiful Project! Instructions are very clear. Will try and make it. Only thing I am not able to find the apk file. Also the QR code is giving an error. Please if you could check and let me know it will be great.
Reply 6 months ago
Hi shabby78,
Effectively, the QR code gives an error. I don't know why...I deleted it
I also attach the apk file I forgot to join ;-)
Let me know if everything's fine.
Reply 6 months ago
Thanks for uploading the file. Now i completed the 3d print, then wired all connections and uploaded the test file and all was ok.
But when i uploaded the apk file to my mobile, the first screen "HEX LEDs , BT CONNECT" (picture 1) is not seen. The app directly starts in the screen where it shows all 9 buttons (picture 2)
When i go to MIT app inventor, and when i click Display hidden components in viewer then it shows that screen but when i uncheck it it just shows the 9 buttons on the MIT app also.(picture 3)
I think the visibility is off for the main screen.
Please le me know how to go about it so i can complete the project.
Thanks once again for this help and for the project.Cant wait to finish it. :)
Reply 6 months ago
Hi Shabby78,
The visibility of the first screen was off !!
I just updated the apk file.
Download it and try, it will work this time !
Let me know when you finish the project.
Reply 6 months ago
Thanks so much for your help. It Works now!!!
7 months ago
This is gorgeous! I'm very impressed. And your instructions and descriptions are very clear. I'm about to buy myself a 3D printer, and this is the first thing I'm going to make. Excellent work! =)
7 months ago
I’ve never been very good with my hands, (not technically inclined) but this looks so awesome that I’m going to give it a shot!!! Thank you so much for posting this instructable! I am looking forward to giving this project my very best effort!
7 months ago on Introduction
Those lights are very very magnificent, bravo because it corresponds perfectly to a video game player's room, the tremendous futuristic shapes only accentuate the gamer universe. Le rendu est du plus bel effet. 🙂
7 months ago
Great project! You might also want to look at WLED firmware for a simple WiFi controlled alternative. It’s very easy to use with lots of animations.
7 months ago
This looks awesome!
7 months ago
This turned out! Great job on your first Instructable :)