Read OBD-II on the CAN bus — see what the scan tool asks.
Trace listens passively on the CAN bus, reassembles ISO-TP messages and decodes the OBD-II services: mode, PID and the measured value with its unit — 1726 rpm instead of 1A F8.
No mail app set up? Write directly to support@trace-analyzer.net.
Access is currently free and granted on request.
- ✓ ISO-TP reassembly
- ✓ Values with units
- ✓ Modes 01–03, 06–0A
- ✓ Listens only, never sends
From the wire to the telegram.
A scan tool asks for the engine speed, ECU 1 answers — followed by the vehicle speed.
Each CAN frame starts with an ISO-TP header (for a single frame one byte: the length); Trace removes it while reassembling, multi-frame answers like the VIN included. RPM = (256 · 0x1A + 0xF8) / 4. Shown abridged.
OBD-II traffic as readable values.
Reassembled, not fragmented
Long answers such as the VIN span several CAN frames. Trace joins first and consecutive frames into one message before decoding it.
Physical values, not hex
More than 80 mode 01 PIDs — RPM, speed, coolant, mass air flow, oxygen sensors, catalyst and oil temperature, fuel rate, odometer and more — appear as physical values with units. Fault codes show as P0143, the VIN as plain text.
A definition you can adapt
Scaling is part of the open TrIML definition: value = raw · scale + offset. More PIDs need one line each — no code.
- SearchFull-text search across all telegrams, even in the live stream.
- RecordingRaw bytes and the finished interpretation in one .msf file.
- Multiple portsSeveral interfaces in one session, on a shared timeline.
- RemoteProbe at the machine, analysis in the browser — no inbound port.
What is still missing.
So you don't have to find the limits by trying:
- Not yet tested in a vehicle. Capture via SocketCAN (Linux) and PEAK PCAN-Basic (Windows) is built; the test with real hardware is still pending. The decoding is tested with synthetic message sequences built to the standard.
- Control requests only as far as standardized. Mode 08 shows which test a scan tool requests – such as the EVAP leak test – and which tests a control unit supports. Anything a manufacturer defines beyond that appears as raw bytes.
- Unknown PIDs end the split. Multi-PID answers and freeze frames are decoded pair by pair. A PID the definition does not know has no known length — its bytes and everything after it in that answer appear as one hex block.
- OBD-II on CAN only. K-Line (ISO 9141, KWP2000), J1939 and UDS are not defined yet.
Scaling is an attribute.
Each PID is a case with its size, factor, offset and unit. The engine applies the formula — the definition only states it.
<!-- Mode 01: value = raw · scale + offset --> <case value="0x05"><byte name="CoolantTemp" scale="1" offset="-40" unit="C" /></case> <case value="0x0C"><word name="EngineRPM" bigendian="true" scale="0.25" unit="rpm" /></case> <case value="0x0D"><byte name="VehicleSpeed" unit="km/h" /></case>
Frequently asked questions
Does Trace query the car itself?
No. Trace never transmits on the bus. With PCAN, Trace switches the adapter to listen-only before opening it and reads the setting back — if that fails, the adapter is not opened. On Linux you switch the interface to listen-only yourself (ip link … listen-only on), otherwise the CAN controller acknowledges frames. To see values, something on the bus has to ask for them.
Which CAN adapter do I need?
On Linux any interface with a SocketCAN driver — bitrate and listen-only are set on the interface with ip link. On Windows a PEAK PCAN adapter (PCAN-Basic), default 500 kbit/s, the usual OBD-II setting. Capture on real hardware has not been verified yet — see "What is still missing".
What about 29-bit IDs?
They are captured and decoded. The OBD-II definition does not interpret the CAN ID, it only displays it — 0x18DAF110 just like 0x7E8. With 29 bits the tester requests functionally on 0x18DB33F1, answers come from 0x18DAF1xx.
Try OBD-II with Trace.
Tell us briefly what you are measuring. We will enable your access — and whatever you find missing goes straight into development.
No mail app set up? Write directly to support@trace-analyzer.net.