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:

  1. Print the following: 1x TopLeftNode.stl
    • Print the following:

    • 1x TopLeftNode.stl

    • 1x TopRightNode.stl

    • 3x TopCenterNode.stl

    • 20x RegularNode.stl

    • I used carbon fiber PLA. Nail that first layer - it's what people will see.

    • The Top nodes must be printed with supports everywhere. The Regular nodes do not need supports.

  2. Cut 40 segments of LED strips, 14 LED's long. Don't cut off too much of the pads on the ends! We need to solder to it! Cut 40 segments of aluminum extrusion, 25cm each. Deburr the ends so they don't cut into the strips!
    • Cut 40 segments of LED strips, 14 LED's long.

    • Don't cut off too much of the pads on the ends! We need to solder to it!

    • 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.

    • The diffusers should be shorter than the aluminum, or they'll be difficult to snap onto the extrusion after the system is assembled.

  3. Use some heat-tolerant double-stick tape to mount a strip to the center of each aluminum segment. Don't put tape too close to the ends! It'll burn when we solder the strips!
    • Use some heat-tolerant double-stick tape to mount a strip to the center of each aluminum segment.

    • Don't put tape too close to the ends! It'll burn when we solder the strips!

    • The tape may not be necessary if your strips are particularly wide. If the channel in the extrusion holds the strip securely on its own, no tape is needed.

  4. 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
    • 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

    • All other nodes are RegularNodes.

    • 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.

  5. Before continuing, make absolutely sure that the strips and hubs are correctly oriented.
    • Before continuing, make absolutely sure that the strips and hubs are correctly oriented.

    • Double-check that the Top piece keyholes have the narrow bit facing up, and the circular bit facing down.

    • Seriously, be careful. This glue is permanent.

    • 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.

  6. 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.
    • 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.

    • NeoPixels don't have CO and CI pins. If you're using NeoPixels, connect the DO and DI pins as instructed, but forget about CO and CI pins.

    • Do not solder wires to the DI and CI pads of the first strip in each diagram yet. The DO and CO pads of the final strip in each diagram shouldn't have anything soldered to them, either.

    • Due to the tutorial software's limits, the fourth strip sequence is shown in the following step.

  7. Solder up the last group of strips, starting with the strip circled blue and following the arrows. Some connected strips don't share a hub - you need to run these wires in parallel with strips. Use hot glue to tack these to the side so they don't block any LED's. 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.
    • Solder up the last group of strips, starting with the strip circled blue and following the arrows.

    • Some connected strips don't share a hub - you need to run these wires in parallel with strips. Use hot glue to tack these to the side so they don't block any LED's.

    • 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.

  8. 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.
    • 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.

  9. 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.
    • 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.

    • DO NOT PLUG YOUR ESP32 MODULE INTO YOUR COMPUTER WHILE THE STRIPS ARE CONNECTED. IT MAY DESTROY YOUR COMPUTER.

  10. 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.
    • 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.

    • If you don't see your device, I dunno. Ask on the Voidstar Lab Discord!

  11. Connect the DIN and CIN pins to the appropriate terminals.
    • 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 red)

    • 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.

  12. 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.
    • 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.

  13. An EmotiBit is not necessary to use the Chromance, but it makes it way cooler! Assemble, charge, and configure your EmotiBit as instructed by the manufacturer. Download, install, and open the EmotiBit Oscilloscope. Then close it!
    • An EmotiBit is not necessary to use the Chromance, but it makes it way cooler!

    • 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.

  14. 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.
    • 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!

    • You rule.

Finish Line

11 other people completed this guide.

Zack Freedman

Member since: 08/28/2019

1,001 Reputation

4 Guides authored

26 Comments

I don’t own a 3D printer and the quote for the parts was way too much (which I of course inquired about after acquiring all the other bits) so I redesigned them so that they can be cut out of boards and glued together.

The shop that sold me the aluminum profiles didn’t have enough opaque covers, so I ended up using baking paper instead (it works great, but is finicky to install)

When I finally got to programming, I realized that I don’t understand any of the code, so I wrote the code from scratch as well. For those who want to do that - check out wled (I wish I did when I started)

Long story short - I did everything “my own way” and made a crap ton of mistakes along the way, but the thing works and didn’t go up into magic smoke and I love it.

here it is in all it’s glory - https://media.githubusercontent.com/medi...

feel free to yoink my code / models - https://github.com/darksworm/chromance

Thank you for the guide, Zack! <3

Deglis - Reply

Hallo

erst einmal ein fettes DANKE das sie ihren code zur verfügungstellen,

leider habe ich Probleme mit dem code:-(

Bekomme eine Fehlermeldung im wifi.h

denn noch eine Frage welche pin haben sie benutzt? und welche länge haben ihre leds

gruß Karsten

Karsten Krüger -

May I ask what are the 3D Printer-Setting / Nozzle Size / Material Settings etc.. that you used when 3D Printing the NODES??

Jonathan - Reply

Just finished mine. Its on the wall now.

I have made my own variant of the code since I am using WS2812 and 12 leds strips instead of 14.

Ill add a code contribution soon to remove all those ugly magic numbers :P

Thanks again for sharing this really nice project Zach

Simon Benoit - Reply

Out of curiosity why did you choose to write your own software instead of using something like WLED?

Jeffery Jorges - Reply

Add Comment

View Statistics:

Past 24 Hours: 10

Past 7 Days: 90

Past 30 Days: 318

All Time: 9,526