3 Commits

Author SHA1 Message Date
b6d3eaad82 Implement bfebbx: Betaflight blackbox extractor
Cross-platform (macOS + Linux) C++17 CLI that extracts a Betaflight FC's
blackbox log in one command: auto-detect the serial port, read craft_name
over the Betaflight CLI, send `msc` to reboot into USB mass storage, wait
for the volume to mount, copy btfl_all.bbl to
<craft_name>_<YYYYMMDD>_<HHMMSS>.bbl, and eject.

Native throughout (termios serial, getmntinfo/proc-mounts mount detection,
DiskArbitration/umount eject); the only subprocess is the Linux udisksctl
eject fallback. Includes CMake/ctest build, unit tests for the pure logic
(naming, craft_name parsing, mount diff, serial via pty, CLI parsing),
README with a manual hardware integration procedure, and design/plan docs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 15:13:17 -07:00
50050037ee Add bfebbx implementation plan
Eight TDD tasks: naming + scaffold, craft_name parse, mount
enumeration/diff, serial termios wrapper, betaflight protocol, eject,
CLI orchestration, README/integration test.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 09:01:05 -07:00
be169d1c2a Add bfebbx design doc
Betaflight Extract Blackbox: cross-platform C++ CLI that detects the
FC serial port, reads craft_name, reboots into MSC mode, and copies
btfl_all.bbl to <craft_name>_<date>_<time>.bbl.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 01:41:10 -07:00