Introduction
Turn your most boring wall into a big statement with this lavishly illuminated RGB decoration. It's easy to assemble and looks phenomenal - and if you have an EmotiBit, it'll even visualize your heartbeats and sweat spikes in perfectly synchronized pulses.
Watch the video: https://www.youtube.com/watch?v=g6n8XLmZ...
Download the firmware: https://github.com/ZackFreedman/Chromanc...
Grab the STL's: https://thangs.com/ZackFreedman/Chromanc...
Bill of Materials:
- 10m LED channel w/ white diffuser, pref. black - https://amzn.to/3nFEC3w
- 10m DotStar LED tape, 60 pixels/m - https://www.adafruit.com/product/2239?le...
- OR: 10m WS2812B (NeoPixel) LED tape, 60 pixels/m - https://amzn.to/3gTGzYS
- 1x Node32S-style ESP32 module - https://amzn.to/2QO9brO
- 2.54mm headers - https://amzn.to/3ujX4S0
- 1x 8-position 2.54mm-pitch terminal - https://amzn.to/3uerfKd
- 1x 2-position 5mm-pitch terminal - https://amzn.to/3gU5WJV
- 1x 2.1mm barrel jack, PCB mount - https://amzn.to/33bmpRS
- Stripboard - https://amzn.to/3aXs2Yc
- Epoxy (I like JB Kwik-Weld) - https://amzn.to/3xHL1jp
- 5V PSU w/ 2.1mm barrel plug 5A or higher - https://amzn.to/2RkIL0A
- 1/2" wide double stick tape, at least 3m - https://amzn.to/3gT8mst
- 3D printer filament - I used carbon-fiber PLA - https://amzn.to/3xHIwh6
- Lots of wire, solder, and flux
- Hot glue
-
-
Print the following:
-
1x TopLeftNode.stl
-
1x TopRightNode.stl
-
3x TopCenterNode.stl
-
20x RegularNode.stl
-
-
-
Cut 40 segments of LED strips, 14 LED's long.
-
Cut 40 segments of aluminum extrusion, 25cm each. Deburr the ends so they don't cut into the strips!
-
Cut 40 segments of diffuser plastic, 23cm each.
-
-
-
Use some heat-tolerant double-stick tape to mount a strip to the center of each aluminum segment.
-
-
-
Assemble the network - but don't glue it yet! Remember that the node names are backwards, because this is sitting upside-down.
-
TopRightNode goes here.
-
TopCenterNodes go here
-
TopLeftNode goes here
-
Make sure the strips face the directions indicated. There should be arrows on the strips, but if there aren't, the pads named DI and CI are the start of the strips, and DO and CO are the end.
-
-
-
Mixing small batches at a time, epoxy the segments into the hubs. They should bottom out into their slots.
-
Ventilate the room with fresh air, and allow the epoxy to fully cure before continuing.
-
-
-
In the accompanying diagram, locate the strip marked with a red circle. Solder a wire to the pads marked DO and CO at the end of that strip, where the arrow begins.
-
Follow the arrow to the next strip. Solder the DO wire to that strip's DI pad, and the CO wire to the CI pad.
-
Continue soldering DO to DI and CO to CI, to link each strip to the next strip connected an arrow. Repeat for the black and green diagrams.
-
-
-
Solder up the last group of strips, starting with the strip circled blue and following the arrows.
-
Solder wires to the DI and CI pads of the first strip in each of the four diagrams. These are circled in the diagrams. Route the wires out of the bottom node.
-
At each hub, wire all the VCC pads together, then wire all the GND pads together. DO NOT connect any VCC pad to GND.
-
Solder wires to the two VCC and two GND pads in the bottom node and route them out the bottom.
-
-
-
Cut a segment of stripboard 21x30 holes wide.
-
Using a sharp knife or Veroboard tool, split the stripboard’s copper conductors where indicated by green lines.
-
Solder in two wire jumpers, a 2.1mm jack, two female 19-position headers, a 5mm 2-position terminal, and a 2.54mm 8-position terminal as shown.
-
Solder headers to the Node32S module and mount it.
-
-
-
Open the Arduino software and open its Preferences. Add the following to the Additional Boards Manager URLs field, then restart Arduino: https://dl.espressif.com/dl/package_esp3...
-
Navigate to Tools --> Board --> Boards Manager. Find 'esp32' and install it.
-
Navigate to Tools --> Manage Libraries. Install Adafruit_DotStar, ArduinoOSC, and ArduinoOTA.
-
Plug the ESP32 module into your computer and allow any drivers to load.
-
-
-
Select your ESP32's serial port. Pick Tools --> Board --> ESP32 Arduino --> Node32s.
-
Open the firmware. Change the SSID, password, Gateway, and Subnet to fit your router configuration. Pick an IP address that's unused, preferably outside your router's DHCP range. Pick a recv_port, ideally above 16000.
-
Upload the firmware. Allow the ESP32 to reboot and connect to the network.
-
Go to Tools --> Port and look for a Network Port. If you see your selected IP address, you're ready for OTA updates! Your USB cable is no longer necessary.
-
-
-
Connect the DIN and CIN pins to the appropriate terminals.
-
Strip 1 (marked with blue arrows in previous diagrams) goes in the terminals furthest from the jack.
-
Strip 2 (marked green) is next
-
Then Strip 3 (marked yellow)
-
Finally, Strip 4 (marked black)
-
The DIN lines are further from the jack (yellow wires in my picture) and CIN lines are closer.
-
Put the VCC wires into the left 5mm terminal, and the GND wires into the right.
-
Plug in the PSU and plug it into the jack. If your project catches fire, you've made a mistake.
-
-
-
Watch the ripples. They should begin after a few seconds and proceed smoothly through all strips.
-
If one or more strips fails to light up, check for shorts, breaks, and boo-boos. Pads can get ripped off very easily - in that case, remove and replace that strip.
-
If a ripple jumps around on a specific strip, it may be backwards. Adjust mapping.h to reverse it. The nodes and strips are numbered right to left, top to bottom.
-
-
-
Assemble, charge, and configure your EmotiBit as instructed by the manufacturer.
-
Download, install, and open the EmotiBit Oscilloscope. Then close it!
-
Open C:\Program Files\EmotiBit\EmotiBit Oscilloscope\data\oscOutputSettings.xml (or whatever it is on Linux or Mac). Edit the <output> section to match the IP address and port you put in the firmware earlier.
-
Connect your EmotiBit, and enable OSC in the Output List.
-
-
-
Put your EmotiBit on and ensure data is streaming through the Oscilloscope
-
Your heartbeats and EDA changes should immediately start firing ripples through the Chromance!
-
Adjust the biometric settings in the firmware to respond accurately to your emotional state.
-
Set up a chair, smoke a fat (legal in Colorado) doobie, and enjoy the show.
-
If you enjoyed the project and want to support the next one, head to patreon.com/zackfreedman and give me a huge pile of money!
-