Whistling Birds v2.0 — Change log

Whistling Birds v2 completed gearbox

The main driver for v2 was getting the Whistling Birds ready for preassembled kit production. Since the original release, I have been collecting feedback from DIY builders and making small iterative improvements. That feedback helped, but preparing kits for customers who are much less likely to want to open the unit back up and troubleshoot it forced a deeper review of the design, fit, finish, and manufacturability.

v2 is the result of that review. On the hardware side, the focus was a cleaner gearbox, better fit and finish, lower friction, stronger snap-fit behavior, and geometry that prints more consistently. On the software side, the focus was improved usability and personalization so the module feels easier to operate and easier to tailor to the owner.

Looking for the build docs? The full build guide, assembly instructions, operations guide, and support docs are available here: Whistling Birds Guide Landing Page.


Model changes

The biggest physical change in v2 is the gearbox and front-module system. The entire assembly was reviewed from the perspective of repeatable production, cleaner installation, and long-term reliability. The goal was not to change what the prop is supposed to do, but to rebuild the parts that were creating friction during printing, fitting, assembly, and service.

Nearly every printed part was touched. That includes the short push arms and the inner and middle LED housings: the short arms now retain those rows with printed hooks, and the housings add wire guides on both sides of the lead exit so the printed parts protect the solder joint instead of the wire taking the load. Everything else was rebuilt from the ground up around better geometry, better fit, and more reliable assembly behavior.

All printed parts comparison between Whistling Birds v1 and v2, showing the updated part layout and revised component set
All parts comparison: v2 cleans up the printed-part set, updates several module pieces, and removes older geometry that no longer needs to be printed separately.
Gearbox v1 vs v2 — four views showing the redesigned internal layout. v1 highlighted in orange, v2 in blue.
Left/orange: v1. Right/blue: v2. The gearbox housing was reworked for cleaner access and improved clearances.

Better fit, finish, and print quality across the gearbox

A large part of the v2 effort was improving how the gearbox prints and how the finished parts come together. The geometry was rebuilt to reduce ugly edge conditions, improve how surfaces resolve in print, and produce cleaner-fitting parts with less post-print cleanup. That matters for DIY builders, but it matters even more when building finished kits that need to look and feel production-ready out of the box.

Power button moved to the side

The power button is now on the side of the unit instead of the top face. That makes it easier to press intentionally, less likely to get bumped during handling, and easier to access once the module is installed in a gauntlet.

Power button seated in the side-wall slot of the gearbox battery compartment
v2 power button on the side wall of the battery compartment — less likely to get bumped during handling.

Power button rewired to EN/GND for charge-while-off

The power button is now wired to the microcontroller's EN and GND pins instead of breaking the LiPo line. The battery stays connected to the charging circuit at all times, so plugging in USB-C charges whether the prop is on or off. Earlier revisions required the button to be in the ON position for charging to work — a frequent source of confusion.

Thanks to Keith Rohrer for the tip on wiring the power switch and LiPo battery so the unit can charge while it is off. Wiring details are in the updated harness and gearbox guide sections.

Power button leads soldered to the EN and GND pins on the Prop-Maker Feather
The 5″ long-side leads soldered to EN and GND on the microcontroller — the power button now controls the board's reset line instead of the LiPo path.

JST connectors on the LED array and reed switch

The LED array and reed-switch leads now come pre-terminated with 2-pin JST connectors so the front module and the reed switch can be disconnected without desoldering. A new printed JST bracket at the front of the gearbox cradles the reed-switch connector — the harness side seats from inside the gearbox, and the reed switch plugs into it from outside in the gauntlet. Removing the prop for service no longer requires breaking solder joints.

Thanks to Steve Hunt for the quick-connect plug tips that led to the JST connectors on the LED array and reed switch.

Harness-side reed-switch JST seated in the front-of-gearbox JST bracket
Harness-side JST seated in the JST bracket at the front of the gearbox — ready for the reed switch to plug in from outside.
Reed switch plugged into the JST bracket from outside the front of the gearbox
Reed switch plugged in from outside the gearbox — tool-free service access.

Gearbox cover replaced with a servo clip

The full gearbox top cover and its retention screw are gone. v2 replaces them with a smaller friction-fit servo clip that retains only the gear train. The lower profile drops the overall stack height for tighter gauntlet fits, and the clip installs and removes without tools. To remove it, lever from the sides or back — the retention geometry resists forward pressure (the direction the gear train pushes), so prying from the front fights the clip.

v2 servo clip render showing the smaller friction-fit retainer that replaced the full gearbox top cover
The v2 servo clip replaces the entire top cover and its screw with a smaller friction-fit part.

Continuous bottom and lower side walls

The gearbox bottom is now a continuous wall with no break-out openings, which strengthens the housing and gives every cover a flat, predictable surface to snap against. The side walls were also lowered so the unit clears the inner enclosure of tighter gauntlets like Chamanleon FX without binding.

v2 gearbox housing render showing the continuous-bottom design and lowered side walls
v2 gearbox housing — continuous bottom for stronger snap surfaces, lowered walls for tighter gauntlet fits.

Case covers and snap closures

The surrounding covers were rebuilt with the housing update. The wire cover, MCU cover, and battery cover were all adjusted so the parts seat more cleanly, close with less fiddling, and hold with a more reliable snap fit. This is the kind of change that looks minor in a diff, but it matters immediately when assembling units repeatedly or opening them for service.

v2 wire cover render with the rounded channel that seats against the gearbox housing
v2 wire cover — updated shape seats and closes more cleanly against the housing.
v2 microcontroller cover render with a flat top surface and shorter button guides
v2 MCU cover — the fragile long pegs and front wall are gone, replaced by a flat top surface and shorter button guides for a more reliable closure.
v2 battery cover render showing the integrated side power-button slot and updated retention geometry
v2 battery cover — now houses the side power button, with revised retention geometry for a reliable snap closure.

Lower friction geartrain

The moving parts got a focused cleanup. One of the bigger mechanical issues in v1 was the servo's mounting screw rubbing against the drive-gear axle every cycle. v2 increases the servo-gear diameter to lift the axle clear of the screw, eliminating that drag at the source. The timing gear and drive gear profiles were also revised so the train rotates more smoothly through its full range — less load on the servo, quieter cycles, and a more predictable feel by hand.

v2 servo gear render showing the larger diameter that lifts the drive-gear axle clear of the servo mounting screw
v2 servo gear — larger diameter lifts the drive-gear axle clear of the servo mounting screw, eliminating per-cycle drag. The change also shifts the gear ratio, which is why the servo-angle defaults changed.
v2 drive gear render showing the revised tooth profile
v2 drive gear — revised tooth profile pairs cleanly with the new servo gear and timing gear.
v2 timing gear render showing the revised profile for smoother motion
v2 timing gear — revised profile reduces drag and smooths out the motion path.

Outer LED row: clip replaced with hook-and-tab attachment

The original outer-row connection used a separate clip that was awkward to position and apply. v2 replaces that clip entirely. The long push arm now has a forward-pointing hook at its tip, and the outer LED housing has a matching tab. The short push arms and the inner/middle LED rows were also redesigned around a mechanical tab/slot connection that wraps the wire lead: the small 3×1 mm magnets are gone, the new connection no longer relies on a magnetic latch that can pop loose and leave the dart tips extended, and the printed parts now carry the load instead of the solder joint. To attach: seat each short row fully so the wrapped wire lead and printed slot are captured by the short push arm, then hook the outer row onto the long push arm with one finger and press down and back to engage. To remove: pull the outer LED row forward with a slight upward motion so the tab clears the hook.

Short push arm comparison showing the v1 magnet pocket on the left and the v2 mechanical capture tip on the right
Short push arm comparison: left/orange is the older magnet-pocket tip; right/blue is the new mechanical capture tip that replaces the magnet.
Inner LED row comparison showing the v1 magnet-based connection on the left and the v2 wrapped wire tab-slot connection on the right
Inner LED row comparison: left/orange uses the older magnet-based connection; right/blue wraps the wire lead into a printed tab/slot connection for a more secure mechanical hold.
Middle LED row comparison showing the v1 magnet-based connection on the left and the v2 wrapped wire tab-slot connection on the right
Middle LED row comparison: left/orange uses the older magnet-based connection; right/blue wraps the wire lead into a printed tab/slot connection so the row stays mechanically retained.
v2 long push arm render showing the hook geometry at its tip
v2 long push arm — the new hook at its tip is what makes the one-finger clip-in and pull-to-remove motion possible.
v2 outer LED row render showing the matching tab that engages the long push arm hook
v2 outer LED row — the tab on the housing engages the long push arm hook for a tool-free attach/release.

Gearbox Mounting System replaces velcro

v1 used adhesive velcro to retain the gearbox in the gauntlet, which was inconsistent and made service access harder than it needed to be. v2 introduces the Gearbox Mounting System: a glued nozzle mount at the front and a glued rear retaining clip at the back. The gearbox slides onto them in one motion and sits in a repeatable position every time. Velcro is no longer required.

Thanks to Drue McCombs for the bird cage idea that led to the Gearbox Mounting System.

v2 Gearbox Mounting System render showing the front nozzle mount and rear retaining clip together
v2 Gearbox Mounting System — the nozzle mount (front) and rear retaining clip together, glued to the gauntlet to position the gearbox repeatably without velcro.

Firmware changes

The firmware changes in v2 are focused on usability and personalization. The goal was to make the prop easier to operate, easier to configure, and easier to tailor to the owner without losing the feel of the original behavior. This release also updates the default gear timing values because the revised model changes the effective size relationship between the servo gear and the drive gear.

Servo timing defaults

The default _SERVO_ANGLES in v2 firmware are unchanged from v1: [0, 50, 100, 150]. The revised v2 servo-gear and drive-gear geometry still seats cleanly at the original angles, so a stock v2 build does not require any servo-angle adjustment in config.py.

If you want the new firmware features without upgrading the hardware, only carry forward the _SERVO_ANGLES that already work for your build if it still uses the older smaller servo gear. Do not copy the rest of a v1 config.py into the v2 release files; those settings are not otherwise compatible.

Config menu changed from double-tap to long hold

The config menu now opens with a long magnet hold while disarmed instead of the older double-tap gesture. That makes menu entry more deliberate and cuts down on accidental triggers from movement during normal handling.

Battery status is the default menu entry

The first thing shown when the config menu opens is now the battery view. That gives quick access to the current charge state without making you step through other items first, which is more useful in real operation than landing on a generic entry state.

Firing mode became a first-class setting

Firing behavior is now configured through two independent settings in the config menu: Firing Mode and Salvo Size. That makes the current behavior visible and adjustable without relying on gesture-only logic.

Firing Mode controls whether and how firing is triggered:

  • Off. The unit arms normally and the LEDs activate, but firing gestures do nothing. Good for arming up, walking around, and getting photos without risk of accidentally firing.
  • Tilt (default). Tilt the wrist left or right to fire. Tilt up or down while armed to cycle through salvo sizes.
  • Shake. A sharp wrist shake fires the weapon. Tilt left or right to cycle salvo sizes — left/right is used here instead of up/down because a shake motion is more likely to accidentally register as an up/down tilt, so the salvo control uses the other axis to stay out of the way.

Salvo Size controls how many darts fire per trigger. The available sizes can be changed in the config file; the defaults are:

  • 0 — Row by row. Darts fire from each row in sequence rather than all at once.
  • 1 — Single dart. One dart fires per trigger.
  • 4 — Small salvo. Four darts fire in sequence — the same burst seen in The Mandalorian Season 1, Episode 2.
  • 12 — Full salvo. All twelve darts fire.

Idle animations were added

Armed idle behavior now offers seven selectable patterns that play on the dart-tip LEDs while the prop is armed. Most adapt to the saved Dart Tip Color as the primary tone and the Afterburner Color as the accent, so changing those colors reskins every animation automatically — Rainbow is the exception and always runs the full spectrum.

Animation What it looks like
Solid Primary Steady dart-tip color across every LED. Lowest-power option and the default on a fresh install.
Breathing All LEDs inhale and exhale in the dart-tip color over a roughly one-second cycle.
Scanner A bright head in the afterburner color sweeps back and forth across the strip, leaving a soft trail over the dart-tip color.
Orbit An accent-colored dot rotates around the ring with a half-blended counter-dot tracking the opposite side.
Heat Pulse A travelling shimmer blends primary and accent colors in a phase-shifted wave — reads like rippling heat or a slow plasma roll.
Sparkle Dim primary base with bright white pops appearing on random LEDs many times per second.
Rainbow The full color wheel scrolls evenly around the LEDs. Ignores the dart-tip and afterburner color settings.

Pick one from the on-device Idle Animation menu item, or set SELECTED_ANIMATION in config.py. The operations guide has the full live-preview behavior.

Volume control in the config menu

Audio volume is now adjustable from the config menu, so owners can dial in the right level for their environment without editing config.py.

Ongoing cleanup for battery life

As always, the firmware work also includes cleanup aimed at squeezing more useful runtime out of a very small battery-powered device. Some of that comes from explicit behavior changes, and some of it comes from incremental housekeeping in how the controller and LEDs behave when the prop is not actively firing.


Upgrading from v1

If your v1 build is working correctly, you do not need to rebuild it immediately. The v2 changes focus on usability, serviceability, and cleaner behavior rather than changing the core concept of the module.

If you are planning a rebuild, the biggest differences to expect are the updated gearbox geometry, the side-mounted power button, the stronger snap-fit behavior across the covers, the lower-friction mechanism cleanup, the easier front-module attachment, the revised servo/drive gear relationship, and the firmware usability updates.

If you are only taking the software update on older v1 hardware, install the v2 files cleanly instead of migrating your old settings forward. If your build still uses the older smaller servo gear, note the _SERVO_ANGLES that already work for your mechanism and re-enter only those values in the new config.py after the update. The firmware update process is documented on the Software and Configuration page and covers the correct sequence: delete the existing files from CIRCUITPY and copy the new release files over cleanly.


Get started

Ready to build? Whistling Birds is available across the build path that fits you best:

  • Digital files — print and source components yourself.
  • DIY kit — printed parts plus the hardware bill of materials, you do the wiring.
  • Completed wiring harness — add to a DIY kit to skip the soldering.
  • Drop-in kit — fully assembled, validated for Chamanleon FX, Galactic Armory, and Great Ape gauntlets. Now open for pre-order.

Not sure which is right for you? The Whistling Birds Guide walks through fit checks, tools, and decisions before you commit. If you'd rather wait for the next batch of finished kits, join the notify list and we'll email you when stock is open.

0 comments

Leave a comment

Please note, comments need to be approved before they are published.