Zero Motorcycles Log File Parser

A free online decoder for the log files stored in your Zero motorcycle's main bike board (MBB) and battery (BMS). Upload a .bin file and see what the bike recorded, including riding and charging, battery and cell readings, faults and errors, in plain language. No account needed.

Select Zero Motorcycles MBB or BMS log file* to upload:
(e.g. 538VIN_MBB/BMS_YYYY-MM-DD.bin)

Step 1:


Step 2:

Results open in the log viewer, where you can also download the plain text (.txt), JSON and original .bin files.

* Works with legacy (SDS / FX platform) and newer (FST platform) bikes. Most log data now decodes on all of them. See what the parser can decode below.

** You can save the results URL for future reference, or send the link to somebody else for viewing.

Updated November 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.

What the parser can decode

This summary comes from running the parser against every log file in our collection, counting each distinct file once. Entries the parser cannot fully decode still appear in the output, with the bytes it does not understand shown as raw hex.

Share of log entries decoded, by bike platform and log type
Bike platform Log from Fully decoded Partially decoded Damaged* Restored* Unknown type Corrupted* Header details read
Earlier bikesLegacy SDS/FX platform Main bike board (MBB) 99.6% 0.3% 0% 0% 0.2% 0% 96.7%†
Battery (BMS) 99.9% <0.1% 0% 0% <0.1% 0% 98.1%
Newer bikesGen3 / FST platform Main bike board (MBB) 96.3% 3.1% 0% 0% 0.6% 0% 99.1%
Battery (BMS) 55.6% 15.3% 10.1% 15.4% 1.3% 2.3% 99.2%
Fully decoded
Every field in the entry is identified and shown with its meaning and units, and every byte came from the file.
Partially decoded
The entry type is understood and its main values are shown, but some bytes inside it are still shown as raw hex because their meaning is not known yet.
Damaged*
The entry is decoded, but a few of its bytes were overwritten inside the log file itself. The parser marks the lost bytes, or leaves out a value it cannot trust, and shows the rest.
Restored*
A text message that lost a few characters in the same way, where the missing characters were filled in from a list of known messages. The filled-in characters did not come from the file.
Unknown type
The entry type is not understood yet, so the entry is shown as raw data.
Corrupted*
The start of the entry was destroyed inside the log file itself, so its type cannot be known and it cannot be recovered.
Header details read
Share of files where the identifying details in the file header were read. For the main bike board these are VIN, model, board revision and firmware revision. For the earlier battery they are the BMS and pack serial numbers. For the newer battery they are the BMS serial number and the battery control board (BCBM) id. A placeholder value the bike itself wrote, such as an uninitialized pack serial, counts as read.

* Damaged, Restored and Corrupted entries are not a decoder fault. In most newer bike (FST-platform) BMS logs, Zero's firmware overwrites 4 bytes at the start of every 128-byte block of the log, destroying part of whichever entries happen to sit there before the file ever reaches us. No parser can get those bytes back. If a damaged entry also has bytes we don't understand yet, it is counted as partially decoded. Counting only the entries that survive in the file, the parser decodes every remaining byte of 83.0% of newer bike battery entries.

† Most of the remaining earlier main bike board logs come from boards that were never programmed with their details, or hold no readable VIN anywhere in the file.

Percentages are rounded, so a row may not add to exactly 100%.

Analysis run November 11, 2026, covering 7,750 uploaded files, 7,505 of them distinct. The table counts 7,472 distinct log files and about 44.3 million log entries. Under 1% of files (22 distinct) could not be read at all, most often a text file saved with a .bin name, a blank download, or a file too short to hold a log.

This site uses the Zero-Motorcycle-Community zero-log-parser script:
Zero-log-parser script on Github

To get your MBB and BMS files, download the "Zero Next Gen" app: Android / iPhone

Go to Performance Screen first:
Zero Motorcycles Next Gen App screenshot - Performance Screen
 
Then download your logs:
Zero Motorcycles Next Gen App screenshot - Log screen

Home