instructables EFM8BB1 Kinetic Light Triangles by acvigue I was inspired to make these after I saw the Nanoleaf light triangles in the store, but I was disheartened to see that each tile cost t w e nt y do lla rs ! I set out to make an equivalent product, but to keep the price per tile around three to four dollars. This project isn't complete, as I still need to have the controller PCBs made, but I currently have 50 tiles assembled and working. I have seen other projects that try to replicate this product, but none that I have seen so far allow for any tile to be connected in ANY direction, allowing for more complex designs and easy rearrangement. This is my rst Instructable, please leave a comment if you have any questions! Supplies: Each tile requires: 1x EFM8BB10F8G-A-QFN20 microchip (Digikey) 9x WS2812E LEDs (LCSC) 1x AMS1117 5.0v voltage regulator (LCSC) 1x AMS1117 3.3v voltage regulator (LCSC) 1x SOD-123 1N4148 diode (LCSC) 1x 10k 8050 resistor (LCSC) 11x 0.1uf 8050 ceramic capacitor (LCSC) 2x 10uf 16v surface mount electrolytic capacitors (LCSC) 1x custom PCB (JLCPCB) 12x TE Connectivity 2329497-2 PCB Spring Fingers for enclosure 1x Linker PCB The controller (in progress) requires: 1x ESP32 DevKit-C 1x 12V power supply 1x DC-DC stepdown (to power the ESP32) 1x 10K ohm resistor 1x 1n4148 diode 2x SPST pushbuttons (LCSC) Tools: EFM8BB1 Kinetic Light Triangles: Page 1 Soldering iron Re ow oven 3D Printer (for enclosure) J-link EDU programmer Wire strippers / cutters / assorted wire (to make programming harness) Fine tipped tweezers for assembly Blank PVC card to spread solder paste Leaded or lead free solder paste https://youtu.be/ATxN3BqEQdE EFM8BB1 Kinetic Light Triangles: Page 2 Step 1: Order PCBs The tile PCB was designed in EasyEDA and was sent to JLCPCB for fabrication. I ordered 50 PCBs because it was actually cheaper to order 50 than it was to order only 10 of them. The PCB was split into 3 pieces to keep production costs down. I used the production options of 1.6mm thickness HASL surface nish 1oz copper White soldermask I have heard that you can link your JLCPCB and LCSC orders so you only pay shipping once, but I was unable to gure it out. I used the cheapest shipping option and both packages came within two weeks of the order date. The design is linked here EFM8BB1 Kinetic Light Triangles: Page 3 1 1 1. easyeda 1. vroom vroom now pcbs here Step 2: Prepare Work Area Place one of the Tile PCBs on a table you don't mind getting dirty and tape two other PCBs next to it to hold it in place like the picture above. Then, tape the stencil down with Kapton tape and make sure the holes are lined up with the exposed pads on the PCB. EFM8BB1 Kinetic Light Triangles: Page 4 Step 3: Solder Paste Add solder paste to the top of the stencil. I used this. Spread the solder paste around the stencil using an old credit card or something similar. Make sure that the tiny holes for the microchip get lled in too. Lift the stencil up by carefully picking up one corner and peeling the tape o . Once you lift an area up, try not to set it back down as it could smudge some of the paste. Before you lift the stencil up, try to get as much excess paste back onto the spreader card to reuse if you are making more than one tile (this stu is expensive $$$) Your PCB should now look like the picture above. 1 1 1. solder paste on stencil 1. stencil taken off Step 4: Assembly EFM8BB1 Kinetic Light Triangles: Page 5 Start by placing the microchip on the PCB. Note the tiny dot on one corner of the MCU. This dot lines up with the top left of the chip footprint on the PCB. Next, place the diode above the microchip. The line on the diode should match what is printed on the PCB. After that, add the 10k ohm 8050 resistor above the diode. Then, place the voltage regulators. The 3.3v regulator is the one closer to the microchip and the 5.0v regulator is closer to the top. Next, place the tantalum capacitors while keeping sure the polarity matches what is printed on the PCB. After that, place all of the ceramic capacitors. Finally, place the 9 WS2812-Eco leds. Each led has a notch in one of the corners, and the PCB has a triangle printed on one corner of where the LEDs go. Make sure to match these up or you may short out the 5V and GND nets. 3 4 2 2 1 1 5 1. note orientation 2. line on diode faces side with line on pcb 3. debug pin 1 4. bad silkscreen, there's only one resistor (should be R1) 5. debug pin for LEDs (attaches to first led's data in) 1. dot on chip - faces top left of pcb 2. busybee efm8 soc 8 bit cpu with 8051 instruction set 24.5 mhz EFM8BB1 Kinetic Light Triangles: Page 6 2 3 1 1 4 1. 3.3 volt reg 2. 5.0 volt reg 3. polarity matters! 4. polarity matters 1. caps caps & moar caps EFM8BB1 Kinetic Light Triangles: Page 7 1 1 1. components 2 1. pcb with all components 2. this will still reflow. it doesn't have to be perfect EFM8BB1 Kinetic Light Triangles: Page 8 1 1. assembled pile Step 5: Reflow the PCB For this step, you will need a re ow oven. If you don't have one, you can get the T962 on eBay for $231 at the time of this writing.Personally, I went the route of modifying an o the shelf toaster oven by removing the front panel controls and wiring a solid state relay to the heaters. A diagram of how I wired this is above. To control the relay, I used the Re ow Master oven controller sold on Tindie. I used a 330 second re ow cycle with a 225C peak temp, a 145C soak temp and a ramp from 20C to 130C over 90 seconds for my preheat phase. I was able to t 3 boards in my toaster oven from Target that I built speci cally for this project. EFM8BB1 Kinetic Light Triangles: Page 9 1 1 1. pcbs in oven 1. the oven 1 1. pcbs waiting to be reflowed Step 6: Connect Sides of Tile EFM8BB1 Kinetic Light Triangles: Page 10 After re owing the PCB, separate the sides of the tile by bending and breaking the tabs that hold the di erent sides in place. Then, sand o any excess PCB left by breaking the tabs so it is easier to t in the printed enclosure. Then, nd the two sides with the letter "B" and solder all 7 side pads together. The remaining one side can only go in one way and solder that as well. The tile should look like the above pictures. 2 1 1 3 2 1. letter b 1. letters 2. solder these 2. letter b 3. all sides seperated 1 1. soldered 1 1. other side soldered EFM8BB1 Kinetic Light Triangles: Page 11 Step 7: Connect Assembled Tile to Programmer BEFO RE CO NNEC T ING T HE T ILE T O T HE JLINK , O PEN JLINK CO M M ANDER AND T YPE " po w e r o n pe rm " T O ENABLE T HE 5V O UT PUT J- Link Co m m a nde r is include d in t he S o f t w a re a nd Do cum e nt a t io n pa ck a v a ila ble he re programming interface which is compatible with the Segger J-Link. I use the EDU version because it is identical to the higher priced versions, but cannot be used for commercial products, which this doesn't fall under. I ordered mine from SparkFun for $72 including shipping. Pin 1 on the connector is the only one with a square pad on the PCB. Each tile has a unpopulated header right above the microchip labeled Debug. This header exposes the C2 3 1 2 EFM8BB1 Kinetic Light Triangles: Page 12 1. programming adapter 2. 2x5 1.27mm 3. 2x10 IDC from J-Link EDU 4 3 2 1 1. to tile 2. if orange, use multimeter to verify no shorts between 3v3 and gnd 3. edu version cheaper but equavalent to base 4. pc Step 8: Prepare IDE & Build Firmware Binary EFM8BB1 Kinetic Light Triangles: Page 13 Download Simplicity Studio 4 from here and install it. Sign in or sign up for a Silicon Labs account to get access to the EFM8 toolchain. Then, download the project code from here and import it to the IDE. Then, click the hammer icon in the toolbar and build the project. You should get a Build Finished message. If a message pops up asking you to enter a license key for the Keil compiler, simply click skip (or you can activate it if you want, its free) Step 9: Upload Firmware Click the button in the toolbar that looks like a stamp over a chip "Flash Programmer." Then, browse for the built .hex le and select that. Click "Program" and accept the terms of the J-Link EDU License. Then, make sure you don't get an error message and the led's on the board should be lit a dim white to let you know that it was successfully programmed. EFM8BB1 Kinetic Light Triangles: Page 14 1 3 1 2 1. flash programmer 1. select programmer 2. click ok 3. serial number 1 1 3 2 4 1. make sure it starts with efm8bb10f 1. select keil 8051 vX.XX.X - Debug OR Release 2. select firmware file 3. should be a hex file 4. click open EFM8BB1 Kinetic Light Triangles: Page 15 1 2 1 1. click program 2. optionally click erase before programming 1. should see this after agreeing to jlink license 1 1. check to see if programmer is connected SECURLY and microchip is reflowed properly. Step 10: (Optional) PCB Test For this step, you will need to enable the Virtual COM port on your J-Link by opening J-Link Con gurator and choosing the attached programmer. Wire the "DAT" line from one of the tile's sides to the circuit attached in the photos above. Open a serial monitor with 112500 baud 8N1 and use these commands 0x08 0xFF 0xFF 0x00 0xFF 0x0A 0x08 is the "set color" command 0xFF is "all tiles" 0xFF 0x00 0xFF is the color 0x0A is a newline character EFM8BB1 Kinetic Light Triangles: Page 16 The tile should now be purple. If not, double check that the diode is wired correctly and try again. 1 1. debugging the WS2812 signal Step 11: 3D Printing Enclosure I designed the enclosure to be originally injection molded to save time instead of 3D printing each tile, but when the cost for only 50 enclosures came to be $6000, I decided against that idea. The enclosure was designed in Inventor 2021 and has two parts, a base and the top di user. The base has holes in the sides to allow tiles to be connected with the connector PCBs (linked below) or wires. If you go the route of using the connector PCBs, you will need 12 of these per tile to allow the PCBs to connect together. If you don't have access to a 3D printer, you can show o the engineering behind these tiles by making a kinetic sculpture and linking the tiles together with copper wire. Just make sure that the wires don't short out! I printed 20 enclosures and I found that these tiles print ne up to 150mm/sec without signi cant quality degradation, which allows around 60% print time reduction. I forgot to take pictures of this step, but you just place the completed PCB in the base and snap the top on. EFM8BB1 Kinetic Light Triangles: Page 17 Step 12: Connecting Tiles The tile linker PCB is available here. These slot into the enclosures and use these connectors. Make sure that the two sides line up. EFM8BB1 Kinetic Light Triangles: Page 18 Step 13: Controller The controller software is work in progress and will be updated here. Follow the schematic diagram to connect your ESP32 to one of the tiles. Upload the software using PlatformIO and connect to the WiFi hotspot to have the tiles connect to your WiFi. Step 14: Done! Mount the tiles in any way you choose, I have put circles on the back of the enclosure for sticky tape to be placed. Enjoy! Leave a comment if you have questions. EFM8BB1 Kinetic Light Triangles: Page 19 1 1 1. 21 tiles mounted on wall. I have set the center LEDs to be disabled. 1. Alternate way of connecting tiles, freeform kinetic sculptures. Really nice job on this :) Thank you! EFM8BB1 Kinetic Light Triangles: Page 20