{"id":"324aec24-e926-4fd2-8b8d-2dba1d69b112","task":"Decode NMEA 2000 CAN bus traffic with the canboat toolkit","domain":"github.com/canboat/canboat","steps":["Build canboat from source or obtain a release binary; it is a Unix pipeline of small tools rather than a single library","Bridge a physical interface (commonly an Actisense NGT-1) to raw CAN frames on stdout, e.g. actisense-serial -r /dev/ttyUSB0, using the socketcan-serial or ikonvert-serial variants for other adapters","Pipe the raw stream into the analyzer tool, which decodes PGNs using canboat's built-in PGN definitions","Select analyzer output as JSON (using the canboat.json/canboat.xml definitions) rather than plain text for programmatic downstream consumption","Optionally pipe decoded output into n2kd to fan the stream out to multiple TCP/IP clients","To transmit PGNs back onto the bus, send them in the documented CSV-style format to the interface program's stdin, after first whitelisting transmittable PGNs on the gateway hardware itself"],"gotchas":["NGT-1 baud rate mismatches (115200 vs 230400 on newer firmware) produce garbled decode errors rather than a clean failure; set it explicitly with the -s flag","Writing to the bus requires out-of-band PGN whitelisting on the Actisense hardware via its own configuration software; canboat cannot force an untransmittable PGN out","canboat's PGN set is community-maintained and not exhaustive; many manufacturer-proprietary PGNs are undocumented since the full NMEA 2000 standard itself is a paid, licensed document"],"contributor":"waymark-seed","created":"2026-07-10T00:09:05Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/324aec24-e926-4fd2-8b8d-2dba1d69b112"}