Skip to content

Ergonomic cli to convert BetaFlight & INAV logs into csv

License

Notifications You must be signed in to change notification settings

blackbox-log/bbl2csv

Repository files navigation

bbl2csv

CI dependency status license

This is a cli frontend for blackbox-log inspired by the original blackbox_decode.

Feature comparison

blackbox_decode bbl2csv
Log format v1 ✔️
Recent Betaflight logs ✔️
Raw output ✔️
Write output to stdout ✔️
GPS data merged, separate, or gpx separate
Current meter simulation ✔️
IMU simulation ✔️
Change output units ✔️
Filter output fields ✔️
Parallel log parsing ✔️

Benchmarks

As of 2b28331, with this log:

$ exa -lbs size --no-time --no-permissions --no-user LOG00001.BFL
6.6Mi LOG00001.BFL

$ hyperfine -w 10 -L bin ./bbl2csv,blackbox_decode '{bin} LOG00001.BFL'
Benchmark #1: ./bbl2csv LOG00001.BFL
  Time (mean ± σ):     598.2 ms ±  13.6 ms    [User: 542.6 ms, System: 46.6 ms]
  Range (min … max):   574.4 ms … 622.6 ms    10 runs

Benchmark #2: blackbox_decode LOG00001.BFL
  Time (mean ± σ):      1.072 s ±  0.013 s    [User: 1.019 s, System: 0.044 s]
  Range (min … max):    1.056 s …  1.098 s    10 runs

Summary
  './bbl2csv LOG00001.BFL' ran
    1.79 ± 0.05 times faster than 'blackbox_decode LOG00001.BFL'

LOG00001.BFL contains only one log. Files with multiple logs will see even larger improvements since logs are decoded in parallel using rayon.

License

In accordance with the GNU FAQ's guidance that ports are derivative works, all code is licensed under the GPLv3 to match the Betaflight and INAV projects.