Load the firmware, build the wiring harness, and test each component before it is installed in the gearbox.
Test as you build — with the firmware running first, each connection can be checked as soon as it is made, while everything is still easy to reach and correct.
Before you start
All BOM components in hand
Data-capable USB-C cable
Soldering iron and 30 AWG wire
Printed gearbox housing for wire-length fitting
You'll complete
Firmware installed and boot-tested
Power, sensor, speaker, and LED wiring prepared
All 12 LEDs tested
Speaker and reed switch verified
Servo connector prepared for the low-profile cover
Time & difficulty
1–3 hours
Soldering and basic electronics
Install the Firmware Before Wiring
Flash CircuitPython and copy the project files onto the microcontroller before any wiring begins. With firmware already running, you can verify each solder joint with live tests as the harness comes together: a wiring fault found at this stage takes 30 seconds to fix; the same fault buried inside a completed gearbox can take 30 minutes.
The full install procedure (Windows one-click install.bat, plus a manual fallback for Mac/Linux/advanced users, plus the complete config.py reference) lives in the Software and Configuration guide:
The power switch wires to the board's EN and GND pins to turn the prop on and off. The battery-level and USB power detection dividers land on the same GND pad as the switch: everything is placed on the board first and soldered together in a single pass at the microcontroller, because the GND pad is soldered once, not reworked per component. The 2-pin JST in the middle of the harness keeps the switch detachable for service.
Stock switch as received, still in the vendor housing before any disassemblyFinished switch plugged into the microcontroller, ready for final install
Prepare the Switch
The switch is rewired to the lengths the gearbox needs. The current 13mm switch has no housing, so the housing-removal step is skipped; the original 18mm switch from earlier kits comes out of its vendor housing first. Everything else is the same for both.
Power switch prepped: long side trimmed to 3 3/4″ (board side), short side stays long until trimmed for an exact fit at the gearbox.
18mm switch only: open the switch housing. Use a small flathead screwdriver at the seam to pop the case open and remove the switch from the stock housing. The housing is discarded. (The 13mm switch ships bare; start at the next step, using a 2-pin JST pair from the connector set.)
Desolder the stock switch leads. Remove the existing wires from the switch terminals so the tabs are clean. Keep the wires and the inline 2-pin JST; both are reused.
Trim the long side to length. Cut the long (board-side) leads to 3 3/4″ (3.75″). Strip and tin the bare ends. The short (switch-side) leads stay long for now; they'll be trimmed for an exact fit after the JST is positioned in the gearbox.
Position the JST in the gearbox. Seat the JST connector about halfway along the wall in the battery compartment of the gearbox. This sets the run length for the long-side leads going up to the microcontroller and lets you route them cleanly before soldering.
JST positioned in the battery compartment, leads routed toward the MCU
Battery Level Sensing
Battery level sensing uses two 100kΩ resistors arranged as a voltage divider between BAT and GND, with the midpoint feeding the microcontroller's A3 analog input. The firmware reads A3 to report LiPo charge level. This divider is part of the standard v2.5 build; the schematic below shows where each resistor lands on the Prop-Maker Feather.
Standard for v2.5 builds. Without this, the board only knows it is plugged in when a computer completes the USB data handshake; a wall charger or power bank supplies 5 V silently. Two more 100kΩ resistors put the USB 5 V line where the firmware can read it directly: any power source registers as plugged in, and the prop wakes the moment a cable is connected instead of sleeping through it. Unlike the battery divider, this one draws nothing while unplugged: the line it sits across is only live with a cable in.
USB ----[ 100k ]----+----[ 100k ]---- GND
|
+---- D5
5 V halves to 2.5 V at D5 (a solid logic high, safely under the 3.3 V limit), and the lower resistor holds the pin at 0 V when the cable is out, so the reading is defined in both states. The resistors go onto the board in the wiring steps below, in the same single soldering pass as everything else. The firmware ships with detection enabled (VBUS_SENSE_PIN = "D5" in config.py), and the divider is verified end to end once the LEDs are connected at the terminal block.
If the setting is on but the resistors are not fitted (an earlier build running the stock v2.5 configuration, for example), the firmware notices the contradiction on its own, ignores the pin, and falls back to computer-only detection. A one-line note on the serial console says so; nothing else about the prop changes.
The USB power divider runs from the USB pad to D5, sharing the back of the board with the battery divider
Wire the Board
Position all leads on the microcontroller before soldering. Place every connection that lands on the board first, so the GND pad is soldered once with every attachment together:
Switch long side: one 3 3/4″ lead at EN, the other at GND.
Battery level sensing: one 100kΩ resistor between BAT and A3; a second 100kΩ resistor between A3 and GND. Tuck both resistors flat under the board near the A3 pin so they don't stand proud of the PCB.
USB power detection: one 100kΩ resistor between USB and D5; a second 100kΩ resistor between D5 and GND. Tuck these flat like the battery divider.
Either switch lead can go to either of EN or GND; the switch is just closing a circuit between them.
Solder all pads in one pass. Heat each pad once: BAT, A3, USB, D5, GND, and EN. The GND pad takes the switch's GND lead and the GND-side resistors of both dividers in a single joint; place everything before soldering so the pad is reflowed only once.
Long-side switch leads soldered to EN and GNDBoth dividers tucked against the back of the board: battery level at A3, USB power at D5
Clip and check. Clip any excess resistor lead length. Confirm the divider center junctions sit at A3 and D5 and there are no solder bridges between pads.
Finish and Test the Power Wiring
Trim the switch side for an exact fit. With the JST seated in the battery compartment and the long side soldered to the microcontroller, trim the switch-side leads so the switch sits cleanly in its slot on the side wall, typically about 1 1/2″ (1.5″). Strip and tin the bare ends.
Solder the short side to the switch. Solder the trimmed leads to the switch terminals. The switch is not polarized; either lead can go to either terminal.
Protect the switch joints. Add a small dab of hot glue over each soldered switch joint once the wiring is confirmed and the leads are positioned correctly.
Verify continuity. Use a multimeter on the JST pins to confirm the switch closes and opens cleanly with each click. Functional ON/OFF behavior is verified later when the JST is plugged onto the microcontroller during gearbox assembly.
Confirm USB power detection is enabled.config.py ships with VBUS_SENSE_PIN = "D5", so the standard build needs no change. Wired the divider to a different pin? Set that pin's name. The firmware also self-checks the wiring: if the pin is set but the divider is not actually wired (or is on a different pin), the serial console prints a [usb_power] warning while a computer cable is connected and ignores the pin until the next boot.
Reed Switch
The reed switch arms and disarms the system using a magnet on the hand plate: no buttons, no exposed contacts.
Wiring: green → Btn · black → GndFinished reed switch with heat-shrink
Prep the JST lead. Use the 2-pin JST connector and attached wires for the reed switch. Strip and tin the two loose wire ends.
Bend the leads 90°. Bend each reed switch lead 90° to create a flat solder surface, then solder the JST leads. Either lead can go to either reed switch leg; reed switches are not polarized.
Protect the joints. Slide 12 mm sections of heat shrink over each lead and apply heat to secure.
LED Arrays
The twelve dart LEDs are built as three linked arrays: seven outer, four middle, and one inner. The strip is cut into those segments and reconnected with flexible 30 AWG wire so the short links between rows can move freely as the assemblies extend and retract. Build and test one row at a time so any wiring fault is found before the joints are insulated.
Each segment: red → 5V · black → GND · green → Data. Data direction follows the arrow on the strip.Completed LED array: all 12 LEDs
Outer row (7 LEDs). Use the 3-pin JST connector and attached wires for the outer row. Strip and tin the three loose wire ends, then solder them to the entry end of the outer segment. Ensure the data arrow on the strip points away from the terminal block (toward the LEDs). Slide 4–5 mm of heat shrink over each joint; do not shrink yet. Connect to the microcontroller (5V, GND, Neo) and trigger the reed switch to verify. Shrink after a successful test.
Middle row (4 LEDs). Cut 2″ of red, black, and green wire for the link between the outer and middle segments. Solder one end to the middle segment, position heat shrink (do not shrink), then solder the other end to the outer-row wires. Test before shrinking.
Inner row (1 LED). Cut 2″ of red, black, and green wire for the link between the middle and inner segments. Same process: solder one side, position heat shrink, solder the other side to the middle-row wires, test all 12 LEDs, then shrink.
Troubleshooting LED issues
No LEDs at all: Check 5V, GND, and Data for connectivity between the strip and the microcontroller.
Some LEDs off or flickering: Cold solder joint or broken data trace at a cut point. Reflow suspect joints.
Strip won’t fit in housing: Heat shrink is over a resistor or LED chip. Re-open and reposition so tubing sits only on the flat solder pads.
Terminal Block
The board's terminal block is the final connection point for the reed switch, speaker, and LED array. No soldering is required at the board: strip each prepared lead, secure it in the labeled terminal, and tug-test it before moving on. The speaker needs no wiring work at all: it ships with a JST connector, so its pigtail screws into the terminal here and the speaker itself quick-connects when it is installed in the gearbox.
Terminal block pin assignmentsCompleted harness, ready for installation
Component
Wire
Pin
Reed switch
Green (Data)
Btn
Reed switch
Black (GND)
Gnd
Speaker pigtail
Black
SPK−
Speaker pigtail
Red
SPK+
LED strip
Red (5V)
5V
LED strip
Black (GND)
Gnd
LED strip
Green (Data)
Neo
Strip the wire ends. Strip about 5 mm of insulation from each lead and twist the strands so they hold a clean shape inside the screw terminal.
Reed switch: green → Btn, black → Gnd. Loosen each screw, insert the lead, tighten, then tug-test; the wire should not pull free.
Speaker pigtail: black → SPK−, red → SPK+. Loosen, insert, tighten, tug-test. The speaker itself connects to the pigtail's JST plug; quick-connect it now for testing, or during gearbox assembly.
LED strip: red → 5V, black → Gnd, green → Neo. Loosen, insert, tighten, tug-test.
Final test. Power up the board over USB-C and verify: magnet triggers the reed switch, all three LED segments light up, and (with the speaker plugged onto its pigtail) sound plays when triggered.
Verify USB power detection. With the LEDs connected, plug into a wall charger or power bank (not a computer), and the battery view should appear on its own. That confirms the divider end to end.
Servo Terminals: Low-Profile Bend
The three servo terminal posts must be bent flat to fit the microcontroller inside the low-profile gearbox cover. The goal is enough clearance for the MCU cover to seat without pressing on the servo connector. Take your time and make small incremental bends; bending too quickly at the solder base can lift pads from the PCB.
Posts bent flat: connector seated in the MCU cover without compressing the pins
Place the servo connector on the tips of the posts. Balance it on the top of the three pins without pushing down. Confirm signal/voltage/ground orientation before bending.
Support the PCB near the header to prevent torsion at the solder joints.
Apply gentle, even pressure to bend the posts over. Press the connector slowly toward the USB port; the plug acts as the lever, bending all three posts together. About 45° is typical, but the real success criterion is the cover seating cleanly, not the angle. Pause and check for kinks or cracked bases if you feel resistance.
Test fit under the MCU cover. The connector must seat without compressing the pins. Verify the servo still powers and responds.