Skip to main content

Quick Start

This guide gets you from zero to seeing live NMEA 2000 data in a few minutes.

Prerequisites

  • A running lplex-server connected to a CAN bus (see Installation)
  • lplex installed 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