Updated October 2026: now running the latest updates, running faster, with significantly improved decoding and support for newer log formats.
This parser has been running for many years and has decoded over 7,500 unique log files. Your uploads continue to help the project improve in decoding quality.
This summary comes from running the parser against every log file in our collection. Entries the parser cannot fully decode still appear in the output, with the bytes it does not understand shown as raw hex.
| Bike platform | Log from | Fully decoded | Partially decoded | Damaged | Unknown type | Corrupted | Header details read |
|---|---|---|---|---|---|---|---|
| Earlier bikesLegacy SDS/FX platform | Main bike board (MBB) | 99.6% | 0.3% | 0% | 0.2% | 0% | 92.3% |
| Battery (BMS) | 99.9% | 0.1% | <0.1% | <0.1% | 0% | 70.6%† | |
| Newer bikesGen3 / FST platform | Main bike board (MBB) | 94.3% | 5.2% | 0% | 0.4% | 0% | 99.2% |
| Battery (BMS) | 56.0% | 15.4% | 25.1%* | 1.3% | 2.2%* | 100% |
* Damaged and corrupted entries are not a decoder fault. Newer bike (FST-platform) BMS logs have a 4-byte marker written every 128 bytes, which overwrites whatever entry data was there. If it lands on an entry's header, the entry is lost (corrupted). If it lands inside an entry, only those bytes are lost (damaged), and the rest still decodes. If a damaged entry also has bytes we don't understand yet, it's counted as partially decoded.
Percentages are rounded, so a row may not add to exactly 100%.
Analysis run October 1, 2026, covering 7,610 log files and about 44.6 million log entries. Roughly 1% of files (74) could not be read at all, most often a blank download or an unrecognized file layout.