Back to Learn Hub
Serial Console Guide

Extract Zero Logs with a Serial Console (PuTTY)

When the app download fails or truncates, a cheap serial cable and a terminal program get you the bike's full log history as plain text — and you can upload that capture here just like a .bin file.

Last updated: July 12, 2026

TL;DR

Wire a 3.3 V USB-to-TTL serial adapter into the bike's OBD-II port (GND→5, RX→8, TX→9, +5 V unconnected), key the bike ON, open PuTTY at 38400 baud (Gen2) with session logging set to All session output, and type eventlogdump at the ZERO MBB> prompt. Save the capture and upload the .txt/.log file to Zero Logs Analyzer.

Why Bother with a Console Dump?

The normal way to get logs is the official Zero app: pair over Bluetooth, then Support → Email bike logs, which sends proprietary binary .bin files. That route has two known failure modes:

  • The app can crash before emailing. On newer Android versions the app is known to crash after downloading logs but before sending them. The files are usually still on the phone at Android/data/com.ZeroMotorcycles/files/, whether or not the email went out.
  • Downloads can silently truncate. We have seen a real MBB .bin of 32 KB where the full MBB EEPROM is 256 KB — roughly 87% of the history missing. The file parses without error, so the truncation is invisible to the owner.

A console dump sidesteps both. Logs obtained over the serial console arrive fully decoded as plain text — no binary parsing needed on the bike's side — and the dump starts with a header like Printing 5806 of 5806 log entries.. that states outright how many entries you captured. That makes it a reliable cross-check against a suspect .bin download, and on Gen2 bikes it walks the full log store.

Side note: BMS logs via the app are only available on 2014+ models (added in app v1.0.8/1.0.9), and BMS extraction over Bluetooth can be very slow — another reason the cable route is popular for battery deep-dives.

Gen2: Connecting by Cable

Gen2 bikes (S, DS, SR, DSR, FX, FXS — roughly 2013–2024) expose a TTL-level serial console on vendor-reserved pins of an OBD-II (J1962) connector. The wiring is not standard OBD-II — an ELM327 scan tool will not work. You talk to the MBB directly with a USB-to-TTL serial adapter and a terminal program, per the ZeroManual Gen2 MBB Console guide.

DIY cable pinout (OBD-II plug side)

Adapter wireOBD-II pinSignal
Black5Ground
White (adapter RX)8MBB transmit
Green (adapter TX)9MBB receive
Red (+5 V)Leave unconnected — never back-feed the bike

Wire colors follow the common USB-TTL cables described in the ZeroManual cable guide; check your adapter's datasheet if it differs. The signals are 3.3 V logic — community testing found some 5 V-only TTL adapters simply don't work, so use a 3.3 V-capable adapter.

Where is the OBD-II port?

Platform / yearsLocation
S platform 2011–2012Tank area, by the fuse block
S/DS 2013Above/behind the motor next to the accessory charge port, left side
S/DS 2014–2015Same spot, right side
S/DS 2016+Under the seat, left side, behind the frame bulkhead
FX / FXS (XMX)Under the left side tank plastics
SR/F, SR/S etc. (FST) 2020+Inside the tank storage compartment

Serial parameters & PuTTY setup

Baud rate by generation

Gen1 (pre-2013): 9600

Gen2 (2013+): 38400

Gen3 (SR/F etc.): 115200

2012 bikes are a gray zone — one owner thread was told 38400 while the wiki files pre-2013 under 9600, so try 38400 first, then 9600. All generations: 8 data bits, no parity, 1 stop bit (8-N-1), flow control off, CR-LF newlines.

PuTTY (Windows)

1. Connection type: Serial; Serial line: your COM port (e.g. COM4); Speed: 38400.

2. Under Connection → Serial: 8 data bits, no parity, 1 stop bit, flow control None.

3. Under Session → Logging: set session logging to All session output and pick a file name (e.g. putty.log) — do this before dumping, so the capture lands in a file.

On Linux use Minicom; on macOS CoolTerm or Serial; on Android BlueTerm (set outgoing end-of-line to CRLF). iOS can't do classic Bluetooth SPP at all.

Procedure: plug the cable into the laptop, note the COM port, connect to the bike's OBD port, key the bike ON, open the terminal, and press Enter once or twice. You should see the ZERO MBB> prompt. Read-only commands work without logging in; a login command exists for configuration changes, but its passwords are not published — forum threads asking for them get answered privately, if at all.

The Dump Commands (Gen2)

Type help to see the menu. The ones you want:

CommandWhat it does
eventlogdumpPrints the full event log as decoded text — the main dump for analysis
errorlogdumpPrints the error log (faults and warnings)
dumpallDumps everything — stats, inputs, settings, and logs. Yields around 1 MB of text and can take a few minutes; make sure session logging is on first
help / status / stats / bmsRead-only extras — bms shows live battery data (SoC, per-bank voltages, balance, isolation, temps, cycles)

What the dump looks like

Printing 5806 of 5806 log entries..
 Entry    Time of Log            Event                      Conditions
05688  09/08/2012 17:42:28  Discharge level  065 AH, SOC: 46%, I:-13A,
                            L:3426, l:3383, H:3485, B:059, PT:032C,
                            BT:032C, PV:62418, M:Bike On

Real capture from a 2012 bike's BMS console (community-documented). The header tells you exactly how many entries printed — if it says 5806 of 5806, you got everything.

Destructive commands live in the same menu

eventlogclear, errorlogclear, format eeprom, erase eeprom, settingsrst and an abs_disable setting are one typo away. Stick to the read-only dump commands above.

Early bikes (2012-era) also expose a separate ZERO BMS> console directly on the battery, with its own eventlogdump plus balance / dobalance commands. On later Gen2 bikes each battery's BMS still keeps its own event log, but it's reached through the MBB (and takes longer to access) — direct BMS console access on 2013+ packs is not community-documented.

What About Bluetooth?

Console-over-Bluetooth is done with a relay dongle plugged into the OBD-II port, not the bike's own radio:

  • The DigiNow Data Reaper dongle exposed OBD pins 8/9 as a Bluetooth Serial Port Profile (SPP) terminal. It only works on MY2012–2016 bikes: it powers itself from a 3.3 V supply on OBD pin 12 that appears unwired from 2017 onward. On 2017+ a USB cable still works fine.
  • ECMCables sold a similar OBDDROID SPP dongle (2013–2016 models) — marked as a discontinued product on the community wiki.
  • Don't use an OBD extension cable with these dongles: they draw power from a very delicate small 3.3 V MBB circuit that any extra cable attenuates too much.
  • SPP means iOS cannot connect (iOS only supports BLE for this); Android, PC and Mac can. Pairing PINs aren't documented — check your dongle vendor's docs.
The built-in radio won't do this. The bike's own Bluetooth (Gen2 2013+) is only documented as serving the official Zero app over Bluetooth LE. No source documents reaching the raw ZERO MBB> console over the built-in radio — treat that as undocumented and unsupported.

Gen3 (SR/F, SR/S, DSR/X)

Gen3 bikes do have a serial console — same OBD-II-port approach at 115200 baud, with the port inside the tank storage compartment (confirmed both by the ZeroManual Gen3 console reference and Zero's own SR/F service bulletin). Owners have built the same DIY cable for MY2020 SR/F. The event-log commands differ from Gen2:

CommandLong formWhat it does
eld #eventlogdumpEvent log dump (# = last n entries, optional)
elde #eventlogdumpexhaustiveExhaustive dump — the most complete text export
eldd #eventlogdumpdateDump from a date (MM DD YYYY HH MM SS)
eldheventlogdumphexHex dump — needs a log decoder, skip it
  • There is no separate errorlogdump on Gen3 — faults live under the faults command instead. (The exhaustive elde variant is Gen3-only; Gen2 has no equivalent.)
  • Honest gaps: whether the Gen3 dump commands need a login first is not documented, and the wiki's real captures show asynchronous DEBUG fault lines printing into the session, which will interleave with your dump. Our parser tolerates that noise.
  • The everyday route on Gen3 remains the mobile app (Support → Email bike logs) — those .bin files upload here as usual. Dealers instead use the Zero Diagnostic Utility over a CAN interface, which has "Pull All Logs" built in.
Firmware updates erase the bike's logs. Zero's own service bulletin instructs dealers to pull logs before updating "because this process erases the existing logs" — and on Gen3, OTA updates can arrive over cellular once the bike is registered in the app. Export your logs before any firmware update.

Uploading Your Capture to Zero Logs Analyzer

Take the file PuTTY wrote (e.g. putty.log) and drop it on the upload page — .txt and .log captures are accepted alongside .bin files. Two things to know:

1
Tell us which bike it belongs to

Console captures don't reliably contain your VIN, so the uploader asks you to pick one of your bikes or type the 17-character VIN.

2
MBB or BMS is detected automatically

Leave the log type on auto-detect, or set it manually if you know which console the dump came from.

3
Same analysis as a .bin file

The parser extracts the timestamped entries — rides, charges, SOC, cell voltages, temperatures, errors — and feeds the same timeline, battery health, and diagnosis views. The whole session capture is fine to upload; prompts and help output around the dump are ignored.

4
Completeness is checked automatically

The dump's own Printing N of M log entries header says how many entries the log holds; after parsing we compare that against how many we actually read, and flag the report as suspect incomplete if the capture looks truncated — so a cut-off terminal scrollback never passes silently as a full history.

Safety & Caveats

  • Community consensus, stated plainly: talking to your MBB or BMS is at your own risk and might affect your warranty.
  • Use a 3.3 V-logic serial adapter; 5 V-only TTL adapters are reported not to work — and leave the adapter's +5 V wire disconnected so nothing back-feeds the bike.
  • The bike must be keyed ON for the session. Long dumps can outlast the idle timeout (Gen2 default secidle is 7200 s) — the community advice during long extractions is to occasionally blip the throttle to keep the bike awake.
  • Stay away from the destructive commands listed above; only run the read-only dumps.
  • Common sense (not a sourced procedure): disconnect the cable before riding.
  • Gen1 tinkerers probing the MBB board headers directly: watch out for the high-voltage J5 header — it can fry your tools.

FAQ

Do I need a password to dump Zero Motorcycle logs over the console?

On Gen2 bikes, read-only commands like help, status, and eventlogdump work without logging in. A login command exists for changing configuration, but its passwords are not published. Whether Gen3 dump commands require a login first is not documented.

Will a normal OBD-II scanner (ELM327) work on a Zero Motorcycle?

No. Zero uses the OBD-II connector shape but wires vendor-reserved pins to a TTL-level serial console, not standard OBD-II protocols. You need a 3.3 V USB-to-TTL serial adapter and a terminal program, not a scan tool.

Can I reach the console over the bike's built-in Bluetooth?

No documented way exists. The bike's built-in radio is only documented as serving the official Zero mobile app over Bluetooth LE. Console-over-Bluetooth is only documented via aftermarket relay dongles plugged into the OBD-II port, and those only power up on MY2012-2016 bikes.

Which file do I upload to Zero Logs Analyzer after a console dump?

Upload the whole PuTTY session capture (putty.log or any .txt/.log file). Prompts and help output around the dump are fine — the parser locates the log entry table automatically. Select your bike or enter your VIN during upload, since text captures do not reliably contain it.

Is a console dump better than the .bin files from the Zero app?

Both are supported. A console dump arrives fully decoded as plain text and its "Printing N of M log entries" header states exactly how many entries you captured, which makes it a reliable cross-check when app downloads fail or silently truncate.

Note: zeromanual.com is occasionally unreachable; if a wiki link is down, the Wayback Machine has snapshots of every page cited below.

Console access details are based on community documentation and reverse-engineering, chiefly the Unofficial Zero Manual. Zero Motorcycles does not officially support owner console access — proceed at your own risk.