Uploaded by b3ciman

EFM8BB1-Kinetic-Light-Triangles

advertisement
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
Download