Here's how the controller's component work together to provide a beautiful, clear interface for selecting colors:
- On/off switch turns on and off the Feather M4
- Feather M4 connected to NeoTrellis for input selections
- Feather M4 sends color data to NeoPixel strip
- 5V DC wall supply powers NeoPixel strip (and shares ground with the Feather M4 and NeoTrellis)
- USB powers Feather M4
The diagram above shows the connections, we'll dive in to further detail as we build it.
For lots of details on the NeoTrellis, check out the guide.
First, we will connect the NeoTrellis to the Feather M4 using a four conductor JST-PH cable.
Cut off one end of the cable, and then strip and solder these to the Feather M4 with the following connections from left to right with the "keyed' part of the connector facing up: (the other end will plug into the NeoTrellis)
- Feather SCL
- Feater SDA
- Feather 3V
You can use markings to keep things straight, and follow the images below for guidance.
The button we're using here has a few connections to make, since it contains both a switch and an LED. You can make more connections if you choose to use it in RGB mode, but here we're using only a single color, red, so four wires are needed. Two for the switch and two for the LED.
We will use arcade quick connectors for the wiring, as shown below. The connections to make are:
- Button R(ed) to Feather GND
- Button LED cathode to Feather D13
- Button Common to Feather GND
- Button Normally Open to Feather En(able) pin
Slide the wire terminal connectors onto the button terminals as shown.
Clip the JST connector ends off of the wires.
Strip the wire ends.
Solder the wire ends to the Feather pins as listed above.
In order to keep things modular, we'll use a three position screw terminal block soldered to the Feather M4's prototyping area for the NeoPixel strip power and data connections.
The DC power from the wall adapter and the NeoPixel USB extension will combine at the terminal block, as well as make the necessary connections to the Feather M4 as listed here:
- DC adapter GND to NeoPixel strip GND and Feather GND
- DC adapter +5V to NeoPixel strip +5V
NeoPixel Data IN (DIN) to Feather pin D5
Solder the pins of the terminal block to three pads on the Feather's prototyping area.
Use a small jumper or bit of wire to connect the left position of the terminal block as pictured to one of the Feather's GND pads.
Solder another jumper wire from the rightmost terminal to the Feather's D5 pin -- this will be used as the data line to communicate with the NeoPixels!
Now, we can prep the panel mount DC power jack. Cut and strip two ~4" / 10 cm lengths of wire -- one red, one black. Solder these to the jack connectors as shown.
It is vital to solder these wires to the proper lugs, or you could fry your project! This type of connector, coupled with our 5V 2A DC power adapter uses a center positive convention. To triple check things, use a multimeter in continuity mode to check that the center post of the jack is connected to the lug to which you are going to solder the red wire.
We want to put a bit of distance between our Ambient Color Control Pad and the NeoPixel strip. To do so we'll repurpose a USB cable. To do so, we need to adapt the input end of the NeoPixel strip to connect to a USB-A cable end. The USB-A female socket to 5-pin terminal block is perfect for this.
Cut and strip the NeoPixel wires as shown. Be sure you have the correct end of the strip! The silkscreen printing on strips can vary, but follow these pictures for guidance, and pay attention to the direction of the data pins. You should see the word 'Din' (data in) printed closest to the left side of an individual NeoPixel and 'Do' (data out) on the right.
Insert the wires to the corresponding positions on the terminal block (the position indicators are molded into the black plastic) Then screw them down tightly.
- Red to +
- Data In (usually white or green) to D+
- Black to -
Prepare the USB cable by trimming the square USB-B end off and then stripping the wires. Note how this USB-A to B style cable has nice, heavy gauge wires, since USB-A cables are meant to power higher current devices.
The first assembly step will be to thread the bare USB cable end into the port on the side of the case frame.
Now, add the DC power panel mount, and screw on the nut from the inside as shown.
Screw in the data wire from the USB cable to the rightmost position of the screw terminal. This is what connects it to the Feather's D5 pin.
Next, join the two red wires of the DC power jack and the USB cable in the center position of the screw terminal and screw it down snugly.
Join the two black ground wires coming from the DC power jack and the USB cable, respectively, and screw them into the leftmost position of the screw terminal.
Remove the crimp connectors from the button and then thread it into the case.
Slip the nut over the wires, reconnect the crimp connectors (make sure to re-connect to the same terminals!) and screw on the nut.
Place the tray insert over the top of the frame, and then plug in the NeoTrellis cable.
Time to make a delicious PCB/Elastomer/PLA sandwich! Snap fit the NeoTrellis onto the tray, making sure the pad marked "1" on the silkscreen is at the upper left of the case as shown.
Next, layer on the elastomer button pad -- note that there are two pairs of elastomer bumps that are keyed to fit into two pairs of holes in the PCB -- it won't lay flat if you turn it 90 degrees off from this position.
Finally, snap fit on the case top -- again, watch the orientation of this part -- there are two side chamfers that fit the case properly.