Install, update, and configure the Whistling Birds firmware.
This page covers the firmware and configuration file on the CIRCUITPY drive. Come here when a new version is released, when you want to change settings, or when you need to reflash after a problem.
This page covers installing or updating the Whistling Birds firmware and configuring the settings on the CIRCUITPY drive. Come here when a new version is released, when you want to change settings, or when you need to reflash after a problem.
Update Firmware
The prop runs CircuitPython on the Adafruit RP2040 Prop-Maker Feather. Installing or updating takes two steps: flash the CircuitPython runtime bundled in the release package, then copy the firmware files to the board. The steps are the same on Windows, Mac, and Linux.
Flash CircuitPython
-
Use the bundled runtime first. The release package includes a tested CircuitPython
10.1.4.uf2inSoftware/circuitpython-runtime/. If you only have the source repository and not the packaged release ZIP, download the board-specific runtime from circuitpython.org/board/adafruit_feather_rp2040_prop_maker. -
Enter bootloader mode. Connect the board via USB-C. Hold
BOOT/BOOTSEL, press and releaseRESET, then releaseBOOT. TheRPI-RP2drive appears. -
Flash the runtime. Copy the .uf2 file to
RPI-RP2. The board reboots and reappears asCIRCUITPY.
Copy project files
Whether this is a fresh install or an update, the project files go to the root of the CIRCUITPY drive.
In the release package, open Software/whistling-birds-firmware/ and copy that folder's contents to CIRCUITPY.
-
Back up anything you want to keep. If updating and you've customized
config.pyor replaced any files inAudio/, copy them offCIRCUITPYfirst so you can restore them after the wipe. -
Clear the drive. Select all files on
CIRCUITPYand delete them. Confirm permanent deletion if prompted. This guarantees that nothing from the previous version carries forward. -
Open the firmware folder. In the extracted release package, open
Software/whistling-birds-firmware/. -
Copy the new files. Copy everything inside
Software/whistling-birds-firmware/and paste it to the root ofCIRCUITPY. Files must end up at the root level, not inside a subfolder. -
Restore your customizations. If you backed up
config.py, compare it with the new version and carry your settings forward. New releases may add settings; always start from the new template and copy your values in. - Wait for the transfer to finish. CircuitPython drives write slowly. Do not eject or unplug until the copy is complete.
Troubleshooting file copy issues
- Drive disappears mid-copy: The board rebooted during the transfer. Re-enter bootloader, reflash CircuitPython, then retry.
-
Copied the folder instead of its contents: Open
Software/whistling-birds-firmware/and move the files inside it to the drive root.code.pymust be at the top level or the firmware will not start.
Configure Settings
Open config.py at the root of the CIRCUITPY drive in any text editor. Changes take effect on the next power cycle. The full reference of config.py settings (defaults, ranges, and what each one controls) is documented in the Operation guide's config.py settings table. Many of these settings can also be changed on-device via the Configuration Mode menu.
-
Choose dart and afterburner colors. Set
DART_TIP_COLORandAFTERBURNER_COLORto any color name listed inlib/neopixel_control.py. Colors can also be changed on the device using the configuration menu. -
Review
SALVO_SIZES. The default[0, 1, 4, 12]is just an example. Edit the list to any sequence of values from0–12, in any order, and repeat values if you want some salvo sizes to appear more than once while cycling. -
Save and verify. Save
config.py. The board restarts automatically after a few seconds. A blue startup flash confirms the updated configuration loaded.
Verify Boot
After copying files or saving a config change, the board reboots and runs the firmware automatically. Watch the LED on the center of the microcontroller.