Live capture via Web Serial
The Connect button opens the Chromium native port picker, opens the selected USB serial adapter (or Bluetooth serial profile) at the configured protocol settings, and streams bytes into the decoder in real time. Live decode runs against every chunk so the Modbus / NMEA / MAVLink interpretation updates as bytes arrive. The browser remembers granted ports per origin so reconnecting is one click. Requires Chrome, Edge, or Opera served over HTTPS (or localhost); Firefox and Safari fall back to CSV import and paste workflows.
Multi protocol decode
UART / RS-232, RS-485 / RS-422, SPI (CPOL / CPHA modes 0 to 3), I²C (Standard, Fast, Fast-Plus, High-Speed, 7 and 10 bit address), CAN / J1939 (PGN catalog and frame parser), DMX-512 (E1.11), and M-Bus (EN 13757). Each protocol has the correct frame ordering (UART start / data / parity / stop with LSB first transmission and MSB or LSB display), the right wire convention, and the right inter character / inter frame gap interpretation. Inverted logic (idle / active polarity flip) is a one click toggle for TTL probes on RS-232 lines and vice versa.
Modbus RTU interpretation with role detection
The Modbus panel distinguishes query, response, and exception roles based on the function code and the payload shape. FC 1 and 2 responses are decoded into a coil bit grid; FC 3 and 4 responses are decoded into a register table with unsigned, signed (i16), hexadecimal, and binary columns; FC 5 and 6 write commands surface the target coil or register and the written value (with validation that FC 5 writes 0x0000 or 0xFF00). Broadcast addressing (slave 0) is flagged inline. Exception responses (FC | 0x80) are decoded into the exception code, the name (Illegal Function, Illegal Data Address, etc.), and a plain language reason that names the likely cause on site rather than just the code.
Saleae and Logic 2 CSV import
A CSV exported from a USB logic analyzer (Saleae Logic 2, or another capture tool that produces `time, value` columns or an async serial digital channel export) is parsed in the browser. Hex (0x48) and decimal (72) value formats are both accepted. Framing and parity errors detected during the import are flagged inline against the affected bytes, and per byte timestamps are preserved so the downstream decoder can show inter character gaps. The same downstream interpretation runs on imported bytes as on live captured bytes.
Timing analysis with clock tolerance
Validates a baud generator divisor against TX and RX clock tolerance (parts per million). Computes the bit time, the frame time, throughput in kbps, and frame efficiency (data bits divided by frame bits). Common oscillator presets (XTAL, ceramic resonator, MEMS, RC oscillator) populate ppm values for fast sanity checks against the maximum tolerable mismatch (typically 3 percent for an 8 bit UART frame). Surfaces the safety margin so a borderline RS-485 link over a low cost RC oscillator is identified before it fails on site.
RS-485 electrical and bus loading analysis
Signal mode handles RS-485, RS-422, RS-232, TTL, LVTTL, and LVCMOS. Calculates V_OH minus V_IH and V_IL minus V_OL noise margins, RS-485 differential threshold, the differential signal swing, and the common mode range. TIA-485 unit load compliance is checked against 1 UL, ½ UL, ¼ UL, and ⅛ UL devices on the bus (limit 32 UL). The bias network solver returns the fail-safe pull-up and pull-down resistor values needed to keep V_AB above the 200 mV differential threshold at the idle bus, taking V_CC, termination, and bus load into account.
CRC catalogue and reverse search
The errors mode runs the captured bytes through every algorithm in the CRC catalogue: CRC-8/Maxim, CRC-8/J1850, CRC-16/Modbus, CRC-16/CCITT, CRC-16/XMODEM, CRC-32/Ethernet, CRC-32/Castagnoli, and more, plus checksum-8, LRC, XOR, and sum-16. A reverse CRC search takes an expected CRC value (the value a vendor device returned for a known frame) and identifies which algorithm matches, finally closing the argument when documentation says one thing and the device does another.
NMEA-0183 and MAVLink detection
NMEA-0183 sentences ($TTSSS,...*HH) embedded anywhere in the byte stream are extracted, the talker (GP for GPS, GN for multi-GNSS, etc.) and sentence (GGA, RMC, GSV, etc.) are decoded, and the XOR checksum is verified. MAVLink v1 (0xFE magic) and v2 (0xFD magic, 24 bit message ID, optional 13 byte signature) frames are detected and their headers parsed. Useful for marine, automation, and UAV integration work where serial captures often contain mixed protocol traffic.
Decoder presets and quick samples
One click presets for the common configurations: RS-232 9600 8N1, RS-485 115200, Modbus RTU at 9600 8E1, NMEA GPS at 4800, Arduino 115200, SPI Mode 0. Sample data buttons load known good frames (a Modbus FC 3 request, the ASCII string "hello", and a synthetic frame) so the analyser can be evaluated immediately without a live capture or a CSV import.
Browser only computation
Runs entirely in your browser. Captured bytes, imported CSV files, and decoded frames are not submitted to any server. Useful for commercially confidential infrastructure work, OT / SCADA networks under air gap policy, and any environment where information security policy prohibits sending engineering data to third party services.