Browse Learn topics

Learn/GcodePilot/Connection & firmware

Firmware Settings

Updated v2.3.0

At a glance

  • The controller's $ settings with friendly labels and units — Read from device, edit, Write back
  • Signed per-axis Travel drives max travel, homing direction, and direction invert automatically
  • Soft limits follow your travel envelope once homed
  • FluidNC config.yaml generation from the machine profile

Machine Config gains a Parameters node for any machine on a GcodePilot post: the controller's $ settings presented with friendly labels and units instead of bare numbers. Read from device imports the live values ($$); Write to device pushes your edits back ($N=val). The values are stored on the machine profile, so a machine can be configured offline and reconciled on connect. GRBL keeps its motion settings in millimeters internally; the report-units setting ($13) follows the machine's Units automatically.

Travel drives the motion settings

You don't set homing direction, max travel, and direction invert separately — the signed per-axis Travel in the Axes section derives them. Its magnitude becomes GRBL's max travel ($130$132), its sign sets the homing direction mask ($23 — negative travel homes toward the axis maximum, the usual plasma Z), and the per-axis Rev checkbox maps to the direction-invert mask ($3). With soft limits enabled, GRBL then enforces that same envelope once the machine is homed. The full convention is covered in Travel Limits & Bounds Check.

FluidNC: config.yaml instead of numbers

FluidNC has no numbered $ settings — its configuration is a config.yaml file on the controller. GcodePilot generates it from the machine profile (axes and motors, pins, spindle, user I/O, probe, THC tuning) and on connect runs a semantic diff against the file actually on the device. A real value difference prompts a two-way sync: Use JetCad3 config pushes the generated file and reboots, or Import from controller autofills the machine profile from the device. Settings JetCad3 doesn't model are left alone, so a hand-edited section never trips a false prompt — and the connection-badge menu can edit the controller's live config.yaml directly or force a push at any time.