Repository navigation
Releases: rsmith4321/fpv-audio-recorder
Release list
Recorder firmware v2 (pre-release): USB drive, one file per flight
Recorder firmware v2 (pre-release)
Flight-tested 2026-10-22; download remains a pre-release. This published v2 build recorded 110.18 seconds of onboard audio in the V7 case, with zero missing encoded frames, a clean Betaflight disarm ending and a flight-controller timestamp. Flight sample and test report.
Known issue: USB sometimes needs a recorder reset before the drive appears. A local startup candidate was installed after the flight; it is not included in this release and has not been flown.
The recorder now stores audio in the XIAO ESP32S3's internal 8 MB flash instead of microSD, and shows up on a computer like a memory card:
- A read-only USB drive named
FPVAUDIOwith one WAV per flight (16 kHz mono),FLIGHTS.CSVandREADME.TXT. - File names use the flight controller's clock (Betaflight MSP, read-only), e.g.
FPV_20261018173825_P0005_F01.WAV, or_NOCLOCKwithout one. Each WAV carries a Broadcast WAV time reference. - About 30 minutes fit; the oldest audio is overwritten when it's full.
- Format: plug into USB, wait 5 s, then hold the button marked B for about 10 s while steadying the plug. The LED blinks, blinks faster, then gives three long flashes. Letting go early cancels.
- LED on while recording. A battery pull loses at most the last 0.5 s.
Assets
fpv-audio-recorder-fw-v2.bin: merged bootloader, partitions and app for the XIAO ESP32S3 Sense (8 MB, OPI PSRAM). Write at offset 0:esptool --chip esp32s3 write-flash 0x0 fpv-audio-recorder-fw-v2.bin. It stops before the recording partition, so stored audio isn't erased. The first flash from other firmware may need B held while plugging in.fpv-audio-recorder-fw-v2-parts.zip: the separate images with their offsets (flash_args.txt).fpv-audio-recorder-fw-v2-source-and-tools.zip: source, host tools (fetch_flash_recordings.py,audio_video_sync.pyfor lining up with DJI O4 Pro clips) and the Mac host test.RELEASE-SHA256SUMS.txt(assets) andSHA256SUMS.json(every file infirmware/v2/).
Install steps, build commands and bench results: firmware/v2. Matching case: case-v7.
Remaining work: USB cold-start/reconnect repeatability, repeated-flight reliability, wind protection and measured in-flight temperature. Easy Eject does not recognise v2 yet, so firmware/latest.json remains on v0.1.0.
The downloadable October 18 packages and their checksums are unchanged; the current field-test documentation is linked above.
Recorder case V7 (pre-release): one-piece SD-free sleeve
Recorder case V7 (pre-release)
A one-piece slide-in TPU sleeve for the camera-free XIAO ESP32S3 Sense recorder running the SD-free firmware v2. No lid and no glue: the board stack slides in from the open back and clicks over a small floor detent.
Printed, fitted and flown with firmware v2 on 2026-10-22. The core DIY build and first real-flight milestone are complete. Flight sample and test report. Downloads remain pre-releases with the documented USB follow-up.
- 23.76 × 20.68 × 11.18 mm, 2.15 g in TPU (V6.5: two parts, about 4.1 g).
- No microSD access. The recorder now stores audio in internal flash and shows up as a USB drive.
- USB window sized to the receptacle (9.44 × 3.71 mm) with a 12.4 mm overmold recess so cable plugs seat fully.
- Mic grille (2 × 3 holes, 1.0 mm) and 2.2 mm poke holes for the B (BOOT) and R (RESET) buttons.
- 1.2 mm side walls; the zip-tie tab from the first draft was removed.
- STL, 3MF (opens standing in Bambu Studio), a socket-removed STL variant, editable OpenSCAD source, previews, photos, dimensions and print notes.
Print it standing, USB face down, as saved. Dry the TPU first to avoid stringing; my first print, laid flat with damp filament, came out stringy.
Remaining evaluation: repeated-flight retention, measured vibration, wind-noise protection and in-flight temperature.
I'm new to 3D printing, so there's probably a better way to design this case. If you come up with a different or improved design, please submit a pull request! Issues with ideas, photos, or printable files are welcome too.
Files: source, specifications and print notes. RELEASE-SHA256SUMS.txt covers the release assets; SHA256SUMS.json covers every file in the package.
Firmware for this case: fw-v2. Previous case: case-v6.5.
The downloadable October 18 packages and their checksums are unchanged; the current field-test documentation is linked above.
Recorder case V6.5 — wider USB and SD access
Recorder case V6.5
Two-piece TPU enclosure for the camera-free XIAO ESP32S3 Sense recorder, with a flush lid, internal locating lip, rear wire exit, microSD access, and a flat underside for mounting tape.
- Body USB/card opening widened to 12.1 mm.
- Lid SD opening widened to 12.9 mm, retaining 8 mm inward depth.
- Both openings add 0.3 mm clearance per side compared with V6.4.
- Fitted case pocket, 26.21 × 22.68 mm outside footprint, and flat mounting bottom retained.
- Includes editable OpenSCAD source, both printable STLs, previews, dimensions, print/assembly instructions, and contribution notes.
The builder approved the previous printed fit apart from the openings and plans to trim that print. The final widened V6.5 openings are mesh-checked but have not been reprinted. This release covers the case only; it does not change or validate the recorder firmware, USB mass-storage access, wind-noise protection, or flight retention.
I'm new to 3D printing, so there's probably a better way to design this case. If you come up with a different or improved design, please submit a pull request! Issues with ideas, photos, or printable files are welcome too.
Print both matching parts at 100% scale: bottom flat base down, lid flat outer roof down with its locating lip up. Dry-fit electronics and confirm card/cable access before bonding.