OBD-DATA / READING GUIDE

Check a scan log before trusting the chart

A smooth line can hide missing samples, mixed units or channels polled at different times. Start with the export format and the measurement conditions.

Keep units and timestamps

Use clear headers such as rpm, coolant_C and speed_kmh. Preserve the scanner’s original timestamp and module identity in your original file. This viewer plots sample order, not elapsed time, and does not infer units or resample channels.

Keep missing values missing

Blank, non-numeric and non-finite entries are excluded from summary statistics. Gaps break the chart line rather than being joined or converted to zero. A changing polling interval can still distort visual impressions of rate and duration.

Understand what the viewer accepts

Import a comma-separated CSV with unique headers and a consistent column count, up to 1 MB and 10,000 data rows. Quoted fields are supported. Numeric samples use decimal notation; locale decimal commas need conversion first. Input stays in the browser and is cleared when the page is reloaded.

A decoded value is a measurement, not a diagnosis. Encoding limits are not normal operating limits. Confirm vehicle support and the manufacturer’s procedure.

Sources

  1. python-OBD: Mode 01 command table ↗
  2. python-OBD: byte decoding implementation ↗
  3. CSS Electronics: OBD-II PID and response frames ↗
  4. California BAR: OBD test reference ↗

Independent reference; no affiliation with SAE, vehicle manufacturers or regulators. Sources checked 28 October 2026.