@@ -29,13 +29,13 @@ A high-performance Rust library and command-line tool for parsing BBL (Blackbox
2929
3030Exports blackbox logs to CSV format with blackbox_decode compatibility:
3131
32- - ** ` .XX.csv ` ** : Main flight data file containing I, P, S, G frame data
32+ - ** ` [ .XX] .csv` ** : Main flight data file containing I, P, S, G frame data
3333 - Field names header row in blackbox_decode compatible order
3434 - Time field labeled as "time (us)" for microsecond precision
3535 - All flight loop data (I frames) and status data (S frames)
3636 - GPS data (G frames) when available
3737 - Time-sorted chronological data rows
38- - ** ` .XX.headers.csv ` ** : Complete header information file
38+ - ** ` [ .XX] .headers.csv` ** : Complete header information file
3939 - Field,Value format with all configuration parameters
4040 - Frame definitions, system settings, firmware information
4141 - All BBL header metadata for analysis tools
@@ -44,7 +44,7 @@ Exports blackbox logs to CSV format with blackbox_decode compatibility:
4444
4545Exports GPS data to GPX format for mapping applications:
4646
47- - ** ` .gps.gpx ` ** : GPS track file in standard GPX format
47+ - ** ` [.XX] .gps.gpx` ** : GPS track file in standard GPX format
4848 - Geographic coordinates from GPS frames
4949 - Altitude information with proper firmware scaling
5050 - Timestamp data for track visualization
@@ -54,22 +54,36 @@ Exports GPS data to GPX format for mapping applications:
5454
5555Exports flight events to JSONL format:
5656
57- - ** ` .event ` ** : Flight event data in JSON Lines format
57+ - ** ` [.XX] .event` ** : Flight event data in JSON Lines format
5858 - Individual JSON objects per line for streaming compatibility
5959 - Event types based on official Betaflight FlightLogEvent enum
6060 - Includes sync beeps, disarm events, flight mode changes, log boundaries
6161 - Compatible with log analysis tools expecting JSONL format
6262
63- Where ` XX ` represents the flight log number (01, 02, 03, etc.) for multiple logs within a single BBL file.
63+ ** Filename Logic:**
64+ - ** Single log files** : Clean filenames without numbering (` flight_log.csv ` , ` flight_log.event ` , ` flight_log.gps.gpx ` )
65+ - ** Multiple log files** : Numbered sequence for clarity (` flight_log.01.csv ` , ` flight_log.02.event ` , etc.)
6466
6567** Example files generated:**
68+
69+ * Single log in BBL file:*
70+ ```
71+ BTFL_LOG_20250601_121852.csv # Flight data
72+ BTFL_LOG_20250601_121852.headers.csv # Headers
73+ BTFL_LOG_20250601_121852.gps.gpx # GPS track data
74+ BTFL_LOG_20250601_121852.event # Flight events
75+ ```
76+
77+ * Multiple logs in BBL file:*
6678```
6779BTFL_LOG_20250601_121852.01.csv # Flight data for log 1
6880BTFL_LOG_20250601_121852.01.headers.csv # Headers for log 1
69- BTFL_LOG_20250601_121852.gps.gpx # GPS track data
70- BTFL_LOG_20250601_121852.event # Flight events
81+ BTFL_LOG_20250601_121852.01. gps.gpx # GPS data for log 1
82+ BTFL_LOG_20250601_121852.01. event # Events for log 1
7183BTFL_LOG_20250601_121852.02.csv # Flight data for log 2
7284BTFL_LOG_20250601_121852.02.headers.csv # Headers for log 2
85+ BTFL_LOG_20250601_121852.02.gps.gpx # GPS data for log 2
86+ BTFL_LOG_20250601_121852.02.event # Events for log 2
7387```
7488
7589## Installation & Usage
@@ -340,8 +354,10 @@ Data ver 2
340354
341355Additional output when export flags are used:
342356```
343- Exported GPS data to: flight_log.gps.gpx # When --gpx used
344- Exported event data to: flight_log.event # When --event used
357+ Exported headers to: flight_log[.XX].headers.csv
358+ Exported flight data to: flight_log[.XX].csv
359+ Exported GPS data to: flight_log[.XX].gps.gpx # When --gpx used
360+ Exported event data to: flight_log[.XX].event # When --event used
345361```
346362
347363### Debug Output
@@ -352,15 +368,15 @@ Debug mode adds frame data tables for detailed analysis:
352368=== FRAME DATA ===
353369
354370I-frame data (25 frames):
355- Index Time(μs) Loop accSmooth[ accSmooth[ gyroADC[0] motor[0] motor[1] ... (40 more fields)
371+ Index Time(μs) Loop accSmooth accSmooth gyroADC[0] motor[0] motor[1] ... (40 more fields)
356372 0 0 4 0 0 -5 1270 1270 ...
357373 1 36147802 71168 -163 130 2289 1260 1277 ...
358374 ... ... ... ... (18 frames skipped)
359375 23 36853826 73984 -332 -12 3512 1215 1210 ...
360376 24 36885919 74112 -430 26 3552 1205 1210 ...
361377
362378P-frame data (50 frames):
363- Index Time(μs) Loop accSmooth[ accSmooth[ gyroADC[0] motor[0] motor[1] ... (40 more fields)
379+ Index Time(μs) Loop accSmooth accSmooth gyroADC[0] motor[0] motor[1] ... (40 more fields)
364380 0 18446744073709551615 5 -11 9 27 632 637 ...
365381 1 18446744073709551615 6 -11 9 26 948 958 ...
366382 ... ... ... ... (18 frames skipped)
0 commit comments