Browse Learn topics

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.