Overview
Sound Board with Prop-Maker
Use an Adafruit Feather M4 and Prop-Maker FeatherWing to make a portal NeoTrellis soundbox! Play and trigger motion activated audio samples with CircuitPython. Build and assemble the 3D printed enclosure to make your own with built-in speaker and rechargeable battery!
Each button has its own NeoPixel so you can make them any color. Assign audio wave files and set custom triggers for loops and latching using python code. Use the accelerometer to detect shake to shuffle the playlist or trigger motion activated sound effects.
CircuitPython USB Drive
Use microUSB port to update the code.py file, drag and drop audio files on to the circuit python USB drive. Recharge over USB with Adafruit Feather's built-in battery charging circuit.
Parts
A copy and paste friendly list of parts used to build this project.
Hardware
Screws, standoffs and nuts required in this build.
Additional Parts
Page last edited March 08, 2024
Text editor powered by tinymce.
Circuit Diagram
Circuit Diagram
This provides a visual reference for wiring of the components. They aren't true to scale, just meant to be used as reference. This diagrams was created using Fritzing software.
Adafruit Library for Fritzing
Use our Fritzing parts library to create circuit diagrams for your projects. Download the library or just grab the individual parts. Get library and parts from GitHub Adafruit Fritzing Parts.
Wired Connections
The Prop-Maker FeatherWing is fitted on top of Adafruit Feather M4 Express via extra female headers on the Feather M4 and male headers on the Prop Maker FeatherWIng. The speaker is connected via a molex picoblade connector.
Powering
The Adafruit Feather M4 Express can be powered via USB or JST using a 3.7v lipo battery. In this project, a 1200mAh lipo battery is used. The lipo battery is rechargeable via the USB port on the Adafruit Feather. The RGB LED pushbutton is wired to the enable and ground pins on the Prop-Maker FeatherWing.
NeoTrellis
- INT from NeoTrellis to Pin #5 on Prop-Maker FeatherWing
- VIN from NeoTrellis to 3V on Prop-Maker FeatherWing
- GND from NeoTrellis to Ground on Prop-Maker FeatherWin
- SCL from NeoTrellis to SCL on Prop-Maker FeatherWing
- SDA from NeoTrellis to SDA on Pro-Maker FeatherWing
RGB LED
- red pin (R-) to red pin on Prop-Maker FeatherWing
- green pin (G-) to green pin on Prop-Maker FeatherWing
- blue pin (B-) to blue pin on Prop-Maker FeatherWing
- voltage pin (V+) to V+ pin on Prop-Maker FeatherWing
Push Button
- button to SW pin on Prop-Maker FeatherWing
- button to –(ground) pin on Prop-Maker FeatherWing
Speaker
- Voltage and ground to Prop-Maker speaker port
On/Off Switch
- Middle pin to enable pin on Prop-Maker
- Far left or right pin to ground on Prop-Maker
Reset Button
- button to RESET pin on Prop-Maker FeatherWing
- button to ground pin on PropMaker FeatherWing
Page last edited March 08, 2024
Text editor powered by tinymce.
3D Printing
3D Printed Parts
Parts are designed to be 3D printed with FDM based machines. STL files are oriented to print "as is". Machines with dual extrusion or single extrusion setups are listed below with parts name and description. Parts require tight tolerances that might need adjusting slice setting. Reference the suggested settings below.
CURA Slicing
Parts were sliced using Ultimaker's CURA software and tested with an Ultimaker 3 and Flashforge Inventor II. The kit requires a minimum build volume of 50mm x 50mm x 190mm. No support material is necessary for any of the parts. Double check parts are positioned in the center of the build plate before printing.
Settings
Use these settings as reference. Values listed were used in Ultimaker's CURA slicing software.
- 0.2mm Layer Height / 0.4mm nozzle
- 0.38mm Line Width (inner & outer widths)
- 40mm/s printing speed
- 20% infill
- Supports: No
Parts list
- bottom.stl – This has a spot for the 1200mAh battery
- cover.stl – Fits the button pad and metal tactile button
- frame.stl – Had holes for panel mounted button and switch
- pcb mount.stl – Fits Feather using M3 holes for M2.5 screws
- tray.stl – Secures NeoTrellis PCB and metal tactile button
Heat Set Inserts
Frame.stl features four mounting holes sized for these M3 heat set inserts. You'll need to install four inserts by heat press installation using a soldering iron. For great results, use a special installation tip. For more info on how to install heat set inserts, check out our guide.
Installing Heat Set Inserts
The inserts should be installed from the bottom of the part. Orient the frame so the flat surface is facing up. Place an insert on top one of the mounting tabs. The edge without the knurling should press fit into the hole. This will hold it in place while installing. Heat up your soldering iron to 380ºC. Insert the tip of the iron into the insert to heat it up for a few seconds. Gently press down to install the insert until it's flush with the bottom surface. Slowly pull out the tip from the insert. Allow a few seconds too cool before proceeding to the remaining tabs.
Mounting Tabs
The tabs are approximately 4mm thick so they should be level with the length of the heat set inserts.
Heat Sets Installed
Proceed to install heat set inserts into the remaining mounting tabs. Take your time with these! It's important to be cautious as the part could be damaged if inserts are pressed too deep. If you're new to this, perhaps try on some test parts first.
Designing Things
The Fusion 360 source file is included and features original sketches and feature timeline along with easily editable user parameters. The parts can further be separated into small pieces for fitting on printers with smaller build volumes. Note: the STEP file is included for other 3D surface modeling programs such as Onshape, Solidworks and Rhino.
Layer by Layer
Interested in CAD tutorials? Check out the playlist on YouTube – There's over 100 of them! My personal favorite is the snap fit tutorial for cases and enclosures.
Page last edited March 08, 2024
Text editor powered by tinymce.
Software
Install CircuitPython
The Adafruit Feather M4 ships with CircuitPython but lets go ahead and update it to the latest version. It's super easy with the circuitpython.org website, just click the link below to launch the page. There you can choose to install stable release or beta.
Quick Start
- Connect board to computer via a known good USB data cable and double press the reset button.
- Download the CircuitPython UF2 and upload to the FEATHERBOOT drive.
- Open CIRCUITPY drive and upload the required libraries (listed below) and code.py
Adafruit Circuit Python Libraries
Download the CircuitPython library bundle and unzip the folder. Create a new folder in the CIRCUITPY drive and name it "lib". The following libraries are required to run the code properly. Double check to ensure all of the files and folders are inside the lib folder on the CIRCUITPY drive.
- adafruit_bus_device (directory)
- adafruit_lis3dh.mpy
- adafruit_neotrellis (directory)
- adafruit_rgbled.py
- adafruit_seesaw
- neopixel.mpy
- simpleio.mpy
Mu Python Editor
Check out Mu, it's a simple Python editor that works with Adafruit CircuitPython hardware. It's written in Python and works on Windows, MacOS, Linux and Raspberry Pi. The serial console is built right in so you get immediate feedback from your board's serial output!
# SPDX-FileCopyrightText: 2019 Anne Barela for Adafruit Industries
#
# SPDX-License-Identifier: MIT
# NeoTrellis Soundbox Remix - CircuitPython
# Noe and Pedro Ruiz, code by Anne Barela
# for Adafruit Industries, MIT License
import time
import os
import random
import board
from board import SCL, SDA
import digitalio
import busio
import audioio
import audiocore
import adafruit_rgbled
from adafruit_neotrellis.neotrellis import NeoTrellis
import adafruit_lis3dh
# Color definitions
OFF = (0, 0, 0)
RED = (25, 0, 0)
YELLOW = (25, 15, 0)
GREEN = (0, 25, 0)
CYAN = (0, 25, 25)
BLUE = (0, 0, 25)
PURPLE = (18, 0, 25)
WHITE = (127, 127, 127)
# Create the i2c object for the trellis
# If you get an error, your PropMaker Shield needs to be snappped on
i2c_bus = busio.I2C(SCL, SDA)
# Create the trellis
trellis = NeoTrellis(i2c_bus)
print("NeoTrellis created")
# Enable PWR Pin to enable NeoPixels, audio amplifier and RGB LED
# See https://learn.adafruit.com/adafruit-prop-maker-featherwing/pinouts
enable = digitalio.DigitalInOut(board.D10)
enable.direction = digitalio.Direction.OUTPUT
enable.value = True
# Set up RGB for switch RGB LED
RED_LED = board.D11
GREEN_LED = board.D12
BLUE_LED = board.D13
led = adafruit_rgbled.RGBLED(RED_LED, GREEN_LED, BLUE_LED)
led.color = GREEN
# Enable button use on PropMaker Wing Switch input
push_switch = digitalio.DigitalInOut(board.D9)
push_switch.switch_to_input(pull=digitalio.Pull.UP)
# Set up Accelerometer on I2C bus
int1 = digitalio.DigitalInOut(board.D5)
accel = adafruit_lis3dh.LIS3DH_I2C(i2c_bus, int1=int1)
# See https://circuitpython.readthedocs.io/projects/lis3dh/en/
# latest/api.html for adjusting settings for the accelerometer
accel.range = adafruit_lis3dh.RANGE_4_G
# accel.set_tap(1, 80) # Single tap, second value is sensitivity
# Set up playing audio on A0 and interruptable playing
myaudio = audioio.AudioOut(board.A0)
audio_file = None
def play_file(audio_filename):
global audio_file # pylint: disable=global-statement
if myaudio.playing:
myaudio.stop()
if audio_file:
audio_file.close()
audio_file = open("/sounds/"+audio_filename, "rb")
wav = audiocore.WaveFile(audio_file)
print("Playing "+audio_filename+".")
myaudio.play(wav)
# Process wav files in the flash drive sounds directory
wavefiles = [file for file in os.listdir("/sounds/")
if (file.endswith(".wav") and not file.startswith("._"))]
if len(wavefiles) < 1:
print("No wav files found in sounds directory")
else:
print("Audio files found: ", wavefiles)
PUSH_COLOR = GREEN
ANIM_COLOR = WHITE
COLORS = ["RED", "YELLOW", "GREEN", "CYAN", "BLUE", "PURPLE", "WHITE"]
COLOR_TUPLES = [RED, YELLOW, GREEN, CYAN, BLUE, PURPLE, WHITE]
buttons = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
button_colors = [OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF,
OFF, OFF, OFF, OFF, OFF, OFF, OFF, OFF]
shuffled_colors = list(button_colors)
Shuffled = False
# Time to process the filenames using the special file name syntax
# Currently nn-color-name.wav where nn = 2 digit number 0 to 15
# color is lower or upper case color name from above and
# name can be anything. BUT these all must be separated by a "-"
# Example 02-blue-firetruck.wav is valid. Note leading 0 for 0 to 9
wavnames = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]
shuffled_names = list(wavnames) # Duplicate list, wavnames is our reference
shuffled = False
for soundfile in wavefiles:
print("Processing "+soundfile)
pos = int(soundfile[0:2])
if pos >= 0 and pos < 16: # Valid filenames start with 00 to 15
wavnames[pos] = soundfile # Store soundfile in proper index
shuffled_names[pos] = soundfile
skip = soundfile[3:].find('-') + 3
user_color = soundfile[3:skip].upper() # Detect file color
print("For file "+soundfile+", color is "+user_color+".")
file_color = COLOR_TUPLES[COLORS.index(user_color)]
button_colors[pos] = file_color
shuffled_colors[pos] = file_color
else:
print("Filenames must start with a number from 00 to 15 - "+soundfile)
# this will be called when button events are received
def blink(event):
# turn the LED on when a rising edge is detected
if event.edge == NeoTrellis.EDGE_RISING: # Trellis button pushed
print("Button "+str(event.number)+" pushed")
if event.number > 15:
print("Event number out of range: ", event.number)
trellis.pixels[event.number] = WHITE
if shuffled_names[event.number] != "":
play_file(shuffled_names[event.number])
# turn the LED off when a rising edge is detected (button released)
elif event.edge == NeoTrellis.EDGE_FALLING:
trellis.pixels[event.number] = shuffled_colors[event.number]
for i in range(16):
# activate rising edge events on all keys
trellis.activate_key(i, NeoTrellis.EDGE_RISING)
# activate falling edge events on all keysshuff
trellis.activate_key(i, NeoTrellis.EDGE_FALLING)
# set all keys to trigger the blink callback
trellis.callbacks[i] = blink
# cycle the LEDs on startup
trellis.pixels[i] = ANIM_COLOR
time.sleep(.05)
# On start, set the pixels on trellis to the file name colors chosen
for i in range(16):
trellis.pixels[i] = shuffled_colors[i]
time.sleep(.05)
while True:
# call the sync function call any triggered callbacks
trellis.sync()
# Check push switch, reset trellis buttons randomization if pressed
if not push_switch.value:
myaudio.stop() # Stop any audio playing
print("RGB Switch Push - reset shuffle if needed")
shuffled_names = list(wavnames) # Reset with clean lists
shuffled_colors = list(button_colors)
for i in range(16):
trellis.pixels[i] = shuffled_colors[i]
time.sleep(.05)
Shuffled = False
led.color = GREEN
# Check accelerometer
if accel.shake(shake_threshold=15): # Change shake(val) to tapped
myaudio.stop() # Stop any audio playing
print("Unit Tapped - shuffle sound files to random buttons")
shuffled_names = list(wavnames) # Copy lists
shuffled_colors = list(button_colors)
for i in range(len(wavnames)): # Do the shuffling
random_i = random.randrange(len(wavnames))
# Swap current name with a random slot
name = shuffled_names[random_i]
shuffled_names[random_i] = shuffled_names[i]
shuffled_names[i] = name
number = shuffled_colors[random_i]
shuffled_colors[random_i] = shuffled_colors[i]
shuffled_colors[i] = number
for i in range(16):
trellis.pixels[i] = shuffled_colors[i]
time.sleep(.05)
print(shuffled_names)
print(shuffled_colors)
shuffled = True
led.color = RED
# the trellis can only be read every 17 milliseconds or so
time.sleep(.019)
Audio Files
The sounds used in this project are sampled from popular music and movies. The pack contains various sounds that are already in the supported audio format. The file names must contain a two digital number followed by a color and single phrase description (00-15). For example:
- 00-red-bird.wav
- 01-blue-cat.wav
- 02-green-dog.wav
The two digit number represents the button pad on the NeoTrellis. Located on the top of the PCB are labels with numbers 1-16. For example, the file name with "00" will be mapped to the first NeoPixel #1. A total of 16 audio files can be used.
Audio files must be in a directory named "sounds".
Adafruit CircuitPython supports 16-bit, Mono, 22.050kHz .wav audio format. See this guide to help format any audio files you might want to use in this project besides the files provided.
NeoPixel Colors
Supported colors are in the list below. Optionally create custom colors using RGB values. List of colors are located in the code on line 17.
# Color definitions OFF = (0, 0, 0) RED = (25, 0, 0) YELLOW = (25, 15, 0) GREEN = (0, 25, 0) CYAN = (0, 25, 25) BLUE = (0, 0, 25) PURPLE = (18, 0, 25) WHITE = (127, 127, 127)
Additional colors must be added to the array on line 87 and 88.
COLORS = ["RED", "YELLOW", "GREEN", "CYAN", "BLUE", "PURPLE", "WHITE"] COLOR_TUPLES = [RED, YELLOW, GREEN, CYAN, BLUE, PURPLE, WHITE]
Page last edited March 08, 2024
Text editor powered by tinymce.
Feather Headers
Header Installation
Use a 12-pin and 16-pin female headers on the Feather M4 Express. Insert the headers from the top of the PCB.
Use a 12-pin and 16-pin male headers on the PropMaker FeatherWing. Insert the headers from the bottom of the PCB.
Prop-Maker FeatherWing Breadboard
Use a breadboard to make soldering easier. While holding the headers in place, press the the male header pins down into the breadboard. With the PCB secured in place, solder all of the pins. Once finished, remove from the breadboard and inspect solder joints. Make sure all of the solder joints are solid.
Feather PCB Vise
With the male header pins now soldered to the FeatherWing, install the female headers to the male header pins. Make sure the Feather M4 Express is properly seated into the female headers. The two PCBs should be sandwiched together. Use a PCB stickvise to hold it in place while soldering. Solder all the pins.
Page last edited March 08, 2024
Text editor powered by tinymce.
Cables for RGB LED Pushbutton
The RGB LED pushbutton requires a total of six wired connections. To make the assembly easier, use a 4-pin and 2-pin JST cable set. These allow the component to be easily connected. The cables are a bit long for this project, so cut them so they're about 7cm(3in) in length.
Tinning 4-pin cable
To make wiring a bit easier, it's a good idea to tin the strands of wire to prevent them from fraying. Use wire stripper to remove a bit of insulation from each wire. A third helping hand tool and help keep the whiles steady while soldering. With the wires exposed, add a bit of solder to tin them. Repeat for the accompanying 4-pin JST cable set.
Tinned Wires
Here are the two cables, tinned and ready to wire. Pieces of heat shrink tubing and help keep the wires together. Take a moment to check the tinned wires and length of the cables. If they're too long, it may not fit inside the enclosure. Obversely, too short and they won't reach the components.
Connecting to Button
The RGB LED pushbutton will need a single 4-pin and 2-pin JST cable. The accompanying cables will connect to the Prop-Maker FeatherWing. Pick either the female or male connectors to attach to the RGB LED button.
Soldering Wire to Buttons
Before soldering, take a moment to plan which wires to connect the leads. The bottom of the button has the following labels.
- C+ (common anode)
- R (red LED)
- G (green LED)
- B (blue LED)
Here's how I connected them.
- C+ to black wire
- R to red wire
- G to green wire
- B to white wire
Wired Button
Proceed to solder the 2-pin JST cable to the two unlabeled leads on the push button. These leads are for the button switch, not the RGB LED. Polarity does not matter for switches, so the colored wires can go either way.
Take a moment to inspect the soldered connections. Spacing is a bit tight so you'll need to be precise.
Page last edited March 08, 2024
Text editor powered by tinymce.
Switch Wiring
Switch 2-pin JST Cables
Use one of the 2-pin JST extension cables to connect the toggle switch to the Prop-Maker FeatherWing.
Cut the extension cable so each connector has a wire length of about 6cm(2in).
2-pin JST wire tinning
Using wire stripper, remove a bit of insulation from each wire. Use a third helping hand tool to keep the whiles steady. Add a bit of solder and tin the stands of wire. Repeat for the accompanying 2-pin JST cable.
Solder Wires to Switch
Decide which cable you'd like to connect the switch (doesn't matter which). Tin the leads using a bit of solder – This will make the wires "stick" better. Solder the two wires to the middle pin and either far left or right pin.
Wired Toggle Switch
Double check the wires are properly soldered. The solder joints should be solid. A pieces of heat shrink tubing will keep the wires bundled together.
Page last edited March 08, 2024
Text editor powered by tinymce.
Reset Wiring
Reset 2-pin Wire
Use a 10-wire silicone cover stranded-core ribbon cable. Cut a piece so the cable has a length of 6cm(2in). Then, peel off a 2-wire bundle. Use this wire to connect the metal ball tactile button.
Reset Wire Tinning
Using wire stripper, remove a bit of insulation from each wire. Use a third helping hand tool to keep the whiles steady. Add a bit of solder and tin the stands of wire. Pieces of heat shrink tubing will keep the wires bundled together.
Soldering Wire
Secure the metal ball tactile button to third helping hands or a panavise to keep it in place. Tin two of the leads on the button (the side where the leads are protruding). Then, solder the wires to the two leads.
Wired Metal Ball Tactile Button
Check the wires are properly soldered. The solder joints should be solid. A piece of heat shrink tubing will keep the wires bundled together.
Page last edited March 08, 2024
Text editor powered by tinymce.
NeoTrellis Wiring
NeoTrellis Cable
Grab the left over 10-wire ribbon cable that was used for the reset button. Peel off a 5-wire bundle from the cable. The length of the wire should be 6cm (2in).
NeoTrellis Wire Tinning
Peel apart the ends of each wire. Using wire stripper, remove a bit of insulation from each wire. Use third helping hands to hold the cable in place. Add a bit of solder to the strands of wire to tin them.
NeoTrellis Wiring
Secure the NeoTrellis PCB to a panavise or PCB stickvise. Reference the photo for the correct set of pads. Add a bit of solder to that set of pads. Note the orientation of the wires – This will make the assembly much more clean and tidy. Carefully attach each wire to each pads by heating up the solder.
Check Point
At this time, gather the wired components. The NeoTrellis, RGB LED button, reset button, and toggle switch will connected to the Prop-Maker FeatherWing via the accompanying JST connectors. Note. The reset button will be wired directly to the FeatherWing.
Page last edited March 08, 2024
Text editor powered by tinymce.
PropMaker Wiring
RGB LED Wiring
Connect the wires from the 4-pin JST cable to the RGB pins on the Prop-Maker FeatherWing. Reference the wiring from the RGB LED button so the colors match. Use a PCB stickvise to secure the PCB in place while soldering. Solder the wires from the bottom of the Prop-Maker FeatherWing.
Enable Wiring
Connect the accompanying 2-pin JST cable from the toggle switch to the enable and ground pins on the Prop-Maker FeatherWing. Insert the wiring through the strain relief hole. Solder the wires from the top of the PCB. Polarity doesn't matter.
Switch Wiring
Connect the accompanying 2-pin JST cable from the RGB LED pushbutton to the switch and ground pins on the Prop-Maker FeatherWing. Solder the wires from the top of the PCB. Polarity does not matter.
Reset Wiring
Connect the wires from the metal ball tactile button to the RESET and ground pins on the Prop-Maker FeatherWing. Reference the photo or the labels on the Feather M4 Express. Ground wire is soldered to the existing header pin. Solder the wires from the top of the PCB.
NeoTrellis Wiring
Connect the cable from the NeoTrellis to the following pins on the Prop-Maker FeatherWing.
- INT from NeoTrellis to Pin #5 on Prop-Maker FeatherWing
- VIN from NeoTrellis to 3V on Prop-Maker FeatherWing
- GND from NeoTrellis to Ground on Prop-Maker FeatherWin
- SCL from NeoTrellis to SCL on Prop-Maker FeatherWing
- SDA from NeoTrellis to SDA on Pro-Maker FeatherWing
Page last edited March 08, 2024
Text editor powered by tinymce.
Speaker Install
Installing Speaker
Gather the mini oval speaker and 3d printed case. Locate the spot inside the case for the speaker – It has several holes and two raised edges. The speaker will be fitted in this spot.
Speaker Case
The mini oval speaker should have a loose fit. Instead of a friction fit, we'll "stick" it to the surface.
Remove Sticker Backing
Peel the protective backing from the speaker. Handle with caution to avoid accidentally dropping.
Secure Speaker
Get the speaker inside the case and position it so it's directly over the spot. Note: The wire is pointing away from the holes. Carefully reposition and adjust so the speaker is lined up as close as possible. Reference the photo as needed. Press firmly to adhere the speaker to the case.
Installed Speaker
The speaker cable has just enough length to reach the audio out port on the Prop-Maker FeatherWing.
Page last edited March 08, 2024
Text editor powered by tinymce.
PCB Mount
PCB mounting screws
Gather the Feather M4 Express and PCB mount. Use the following hardware to secure the Feather to the mount.
- 4x M2.5 x 10mm
- 4x M2.5 hex nuts
Install Screws
Insert the M2.5 x 10mm nylon screws through the top of each mounting hole on the Feather M4 Express. Insert them all the way through so the screw heads are flush with the PCB.
Installing to PCB mount
Orient the PCB mount so the mounting holes line up with the Adafruit Feather M4 Express. Reference the photo for correct placement.
Installed Screws
While holding the screws in place, insert the threads of the screws through the built-in standoffs on the PCB mount. The standoffs should have a loose fit allowing the screws to pass all the way through.
Install Hex Nuts
While holding the screw down, insert a hex nut onto the thread of the screw from the bottom of the PCB mount.
Installed Hex Nuts
Repeat this process for the remaining screws. Finger tighten the hex nut and try not to over tighten.
Page last edited March 08, 2024
Text editor powered by tinymce.
Connect Components
Install PropMaker to Feather
Get the Pro-Maker FeatherWing and snap it on top of the Feather M4 Express. Handle the wiring and components gently to avoid any stress or damage.
Connect Battery
Get the 1200mAh battery. Insert the cable through the bottom of the PCB mount. Reference the photo for correct placement. Plug in the JST connector from the battery to the battery port on the Feather M4 Express.
Connect Speaker
Get the case with the installed speaker. Grab the cable from the speaker and plug it into the speaker port on the top of the Prop-Maker FeatherWing.
Install PCB Mount
Get the PCB mount ready to install into the case. Orient the case and PCB mount so the Feather's USB port is lined up with the cut out on the case.
Installed PCB Mount
Place the PCB mount into the case at an angle. The speaker will be in the way so start with that side. Press the part down so it's flush with the tabs on the case. The Feather's USB port should be line up with the cutout on the case.
Setup Case
The PCB mount is loosely fitted inside the case. In the next page we'll secure the standoffs and finalize the rest of the assembly.
Page last edited March 08, 2024
Text editor powered by tinymce.
Install Standoffs
M3 Standoffs
Get 4x M3 x 20mm standoffs – female to male. These are available in an assortment kit purchased from Amazon.
M3 Screws
To make assembly easier, go ahead and fasten a M3 x 6mm flat head screw into each standoff. Do not over tighten.
Install Standoffs
Insert the standoff with the male thread going in through the tab on the PCB mount. Guide the thread into the heat set insert on the case. Fasten the screw to tighten the standoff. Repeat this process for the remaining mounting tabs.
Remove Screws
With the standoffs now installed, you'll need to remove the flat head screws from the standoffs. While holding the standoff, begin to unfasten the screw. The tray for the NeoTreliis PCB will be fitted on top of the standoffs so the screws need to be removed.
Secured Standoffs
Double check and make sure the standoffs are tightly fastened. In the next pages, you'll panel mount the remaining components and complete the assembly.
Page last edited March 08, 2024
Text editor powered by tinymce.
Switch Installation
Connect Switch
Get the toggle switch and connect it to the accompanying JST cable from the Prop-Maker FeatherWing.
Install Toggle Switch
The toggle switch is panel mounted to the side of the case. Locate the 6mm diameter hole on the side of the case. Insert the stem of the switch through the mounting hole. Press the body of the switch up against the wall.
Secure Toggle Switch
While holding the switch, insert the washer onto the stem. Begin to fasten the accompanying hex nut to the threading on the stem. Use pliers to tightly fasten the hex nut.
Panel Mounted Switch
The orientation of the toggle switch can be adjusted. The toggle switch can be positioned so it's flipped up/down or left/right depending on how you've mounted it. Note: This is the "power" switch – It will turn the device on and off. Adjust to your desired preference.
Page last edited March 08, 2024
Text editor powered by tinymce.
The RGB LED button resets the audio arrangement or you can customize the code for triggering different modes.
Install RGB LED Button
Insert the RGB LED button into the 16mm diameter hole on the side of the case with the wiring going in first.
Secure RGB LED button
Get the accompanying hex nut and insert it through the wiring. Place hex nut over the threaded body and begin to fasten. Proceed to fasten until hex nut is tightly secured.
Connect RGB LED
Plug in the 4-pin JST cables together. Take caution when handing the wires. These connections are for the RGB LED inside the pushbutton.
Connect Button
Plug in the JST cable from the RGB LED button to the JST cable that is wired to the SW pin on the Pro-Maker FeatherWing.
Panel Mounted Components
Take a moment to adjust wires and make sure components are secured in place.
Page last edited March 08, 2024
Text editor powered by tinymce.
Tray Installation
NeoTrellis Tray Installation
Get the tray for the NeoTrellis PCB and the 4x M3 x 6mm flat head screws.
Installing NeoTrellis
Insert the NeoTrellis PCB through the bottom of the tray. The PCB should fit through at an angle.
Installed PCB
The PCB should have a tight fit inside the tray. The PCB can be repositioned to your desired orientation. Reference the labels on the NeoTrellis PCB for desired placement.
NeoTrellis PCB Tray Installed
The PCB should be flush with the tray. If the PCB doesn't fit, you can sand away the mouse bite marks from the edges. PCBs normally have these left over from the depanelization process. Use a power rotary tool, sandpaper or filing tool. Be sure to wear a proper breathing mask when sanding FR-4 PCBs in a well ventilated area.
Install Reset Button
Place the metal ball tactile button over the square plank on the tray. Reference the photo for best placement.
Installed Reset Button
The metal ball tactile buttob rests over the plank. Once the top cover is fitted over, it should stay in place. The leads on the button should grip onto the sides of the blank. Take caution if bending the leads – you don't want to snap them off!
Insert Tray
With the NeoTrellis PCB and metal ball tactile button installed, begin to install it into the case. Reference the photo for best placement. While holding the tray and case together, flip the build over and adjust the wiring so they're inside the case and none of the wires or components are being pinched or kinking.
Installing Tray
Press the tray into the case and line up the mounting holes with the standoffs. Double check the placement of the tray.
Secure Tray
Begin to insert and fasten the 4x M3 x 6mm flat head screws into the mounting tabs of the tray.
Page last edited March 08, 2024
Text editor powered by tinymce.
Final Assembly
Install Button Elastomers
Get the 4x4 button elastomers and orient so the registration keys line up with the holes. Place the pad over the PCB and press down. Make sure the registration keys are fully seated.
Install Top Cover
Grab the top cover and orient so the cutout for the metal ball tactile button is lined up. Press down on the cover to snap fit into place. The cover features snap fit feathers that clamp shut.
Battery Tack
Use mounting tack/putty to secure the 1200mAh lipo battery to the bottom cover. The bottom cover features a dedicated spot for the battery.
Closing Bottom Cover
Handle the case and bottom cover and begin to close it up. Make sure the bottom cover is orientated so the battery can be fitted inside the case. Adjust the wiring as necessary.
Final Build
Flip the switch to turn it on and test it out! The top and bottom covers can be removed using finger nails or praying tool. The battery can be recharged via the microUSB port.
Page last edited March 08, 2024
Text editor powered by tinymce.