Learn/GcodePilot/Connection & firmware
Serial Monitor & Logs
At a glance
- Arduino-style live Rx/Tx monitor on the active connection; status heartbeat hidden behind a toggle
- Send raw lines with persistent history; input locks while a program runs
- Every session writes a per-machine serial transcript log, rotated automatically
- The transcript is ground truth for what was sent and what the controller replied
Open the connection badge's menu → Serial Monitor… (available on any connected firmware, even while
a program streams) or run the serial_monitor console command. It's an Arduino-style live view of the
active connection: every line sent and received, with realtime bytes decoded by name. The ? status
poll and its replies fire many times a second, so that heartbeat is hidden by default behind a toggle —
flip it on when you're specifically watching position or state.
Sending raw lines
The input sends lines raw — exactly the bytes you type, with none of GcodePilot's usual processing
(no tool or height-offset rewrites, no NGC expansion) — which is what you want when poking $ settings
or verifying what a controller really does with a command. History persists across sessions like the
MDI field. The input locks while a program runs and when disconnected, so a stray probe can't be
injected into a streaming job.
The transcript log
Whether or not the monitor is open, every session writes a per-machine transcript to
logs/<machine>-serial.log in the app data folder (surfaced in Settings → Paths): a session banner,
then each exchange timestamped and tagged TX/RX with its category — commands, acks, errors, alarms,
feedback. The status heartbeat is filtered out so the file stays a readable command/response record.
Each connect rotates the previous session away, keeping the newest ten per machine. When something went
wrong mid-job, this file is the ground truth for what was actually sent and how the controller replied.