Quick Start
This guide gets you from zero to seeing live NMEA 2000 data in a few minutes.
Prerequisites
- A running
lplex-serverconnected to a CAN bus (see Installation) lplexinstalled on your machine
1. Connect and stream
If lplex is running on your local network with mDNS enabled, lplex will discover it automatically:
lplex dump
Or specify the server address directly:
lplex dump --server http://inuc1.local:8089
You should see frames scrolling:
2026-03-06T10:15:32.123Z seq=1234 prio=2 pgn=129025 src=10 dst=255 [8] 5A1F2B3C4D5E6F70
2026-03-06T10:15:32.145Z seq=1235 prio=3 pgn=130306 src=22 dst=255 [8] 01A4060000030000
2. Filter by PGN
Only see position reports (PGN 129025) and wind data (PGN 130306):
lplex dump --server http://inuc1.local:8089 --pgn 129025 --pgn 130306
3. Decode PGN fields
Add --decode to see human-readable field values:
lplex dump --server http://inuc1.local:8089 --decode
Output now includes decoded fields below each frame:
2026-03-06T10:15:32.145Z seq=1235 prio=3 pgn=130306 src=22 dst=255 [8] 01A4060000030000
{"sid":1,"wind_speed":1.7,"wind_angle":0.0,"wind_reference":"apparent"}
4. View connected devices
Open a browser to see all devices on the bus:
curl http://inuc1.local:8089/devices | jq
[
{
"src": 10,
"name": "0x00A1B2C3D4E5F600",
"manufacturer": "Garmin",
"model_id": "GPS 19x HVS",
"packet_count": 45023,
"byte_count": 360184
}
]
5. Get last-known values
See the most recent frame for each device and PGN:
curl http://inuc1.local:8089/values | jq
Or with decoding:
curl http://inuc1.local:8089/values/decoded | jq
6. Use a buffered session
For reliable delivery with replay on reconnect:
lplex dump --server http://inuc1.local:8089 --buffer-timeout PT5M
This creates a server-side session that buffers up to 5 minutes of data. If lplex disconnects and reconnects within that window, it replays missed frames.
7. JSON output
Pipe to other tools with JSON output (auto-enabled when stdout is not a terminal):
lplex dump --server http://inuc1.local:8089 --decode | jq .pgn
Or force JSON mode explicitly:
lplex dump --server http://inuc1.local:8089 --json --decode
Offline development
If you don't have a live CAN bus, you can replay recorded journal files through a full HTTP server using lplex simulate:
# Replay a single journal file
lplex simulate --file recording.lpj
# Replay all journals in a directory
lplex simulate --dir /path/to/journals/
# Or use Docker — no local install needed
docker run --rm -p 8090:8090 \
-v /path/to/journals:/data:ro \
--entrypoint /lplex \
ghcr.io/sixfathoms/lplex:latest \
simulate --dir /data
This starts a server on port 8090 with all standard endpoints (/events, /ws, /devices, /values, /history), so you can develop and test clients without a boat. Use --exit-when-done for CI pipelines. See Simulation & Testing for the full guide.
What's next
- Configuration for all server options
- Streaming to understand ephemeral vs buffered modes
- HTTP API for building your own clients
- Cloud Replication for remote access