Browse Learn topics

Learn/GcodePilot/Connection & firmware

Machine Connection

Updated v2.4.7

At a glance

  • GRBL 1.1 and FluidNC (ESP32) over USB serial — same protocol, one driver layer
  • Bundled FluidNC fork firmware with a built-in flasher — provision a blank ESP32 from inside the app
  • Firmware updates arrive without waiting for a JetCad3 release, and you can always revert
  • Machines using a GcodePilot post appear under Motion automatically, no separate setup
  • An eye icon in Machine Configuration hides a machine's workspace row when you don't want it listed
  • Port, baud, and firmware are per-machine settings with live port enumeration
  • Single-owner port arbitration — contention is a clear message, never a cryptic OS error

There is no separate "add a machine" step for machine control: any machine whose post declares Controller: GcodePilot (the bundled GRBL and FluidNC posts do — for plasma, mill, oxyfuel and, as of v2.4.7, router) shows up under MOTION as a GcodePilot workspace, and stays a CAM post target at the same time. If you'd rather a machine didn't appear there — a starter profile that came with a machine-control post attached, say — the eye icon on its row in Edit → Machines hides just the workspace entry, leaving the machine fully usable for posting. The machine's Connection settings hold the serial Port (enumerated live from what's plugged in), Baud (115200 default), and the firmware — auto-detected from the selected post, so picking a FluidNC post puts the machine on the FluidNC driver. Connect from the workspace toolbar.

GRBL and FluidNC

GRBL 1.1 over USB serial is the reference target. FluidNC (ESP32) keeps GRBL's runtime protocol — the same status reports, acks, jogging, and realtime bytes — so the FluidNC driver inherits the whole GRBL runtime and adds what's actually different: config.yaml configuration and the plasma AVTHC features. See Firmware Settings for how configuration reaches each firmware.

Bundled firmware and the built-in flasher

For FluidNC machines, run JetCad3's own FluidNC fork — it ships inside the app and is required for firmware-native jogging and for plasma use (g-code controlled AVTHC). The No Radio image is the recommended and fully supported build, with the complete GcodePilot feature set. Machine Config → Connection includes a built-in flasher that writes the image to an ESP32 or ESP32-S3 over USB with no external tools — it works on a factory-blank board, verifies the image, and refuses to flash the wrong chip family. It also keeps firmware current on its own: newer builds are offered, downloaded and verified in the dialog without waiting for a JetCad3 release, and you can revert to the shipped firmware at any time. See Firmware Flashing & Updates.

One owner per port

Every part of the app that opens a serial port — the connection, the firmware flasher — goes through a single-owner arbiter, so grabbing a port that's already in use produces a plain-language message naming the holder instead of a cryptic OS access error. Once connected, the connection badge's menu is the hub for the rest: the Serial Monitor on any firmware, plus the FluidNC config push/edit and reboot actions. A job runs in the background, so switching workspaces or setting up the next cut never drops the stream.