Axis letters are just labels. The motion a cut performs is fixed by the geometry; the letters only decide which motor each instruction talks to. cncfoam.com lets you pick the letters your controller expects — the toolpath is byte-for-byte identical, only the names change.
The native foam axes: X Y U V A
A 4-axis hot-wire cutter has two towers: the left tower moves in X Tiefe Y (height), the right tower in U Tiefe V (height). A rotary table adds A. This X/Y/U/V naming is the standard RS-274 convention for a second linear pair and is what LinuxCNC, Mach3/4 and most dedicated foam controllers expect. It is the cncfoam.com default (foam-native).
Why GRBL / FluidNC needs different letters
GRBL-family firmware — FluidNC, grbl-Mega-5X, grblHAL — does not implement the U/V axis words at all. It only has X Y Z A B C. So to run on one of those boards, the right tower has to be relabelled: U→Z und V→B, with A staying the rotary. That is the grbl-xyzab profile.
Choosing your output format
In Settings → Controller / G-code format pick the profile that matches your machine:
- Foam-native — X Y U V A (default): LinuxCNC, Mach3/4, most foam cutters.
- GRBL / FluidNC — X Y Z B A: ESP32 + FluidNC, grbl-Mega-5X and similar.
- Benutzerdefiniert: type the exact output letter for each axis yourself.
The active format is shown as an … … … … … … … … … … … … … … … badge next to the Download / stream buttons and on top of the live G-code window — click it to change. The live viewer is WYSIWYG: it always shows exactly what will be downloaded or streamed.
Nothing is stored in a controller-specific form
Shapes in the library are always saved in the canonical X/Y/U/V/A form. When you download a library shape it is re-labelled to your active format on the way out, so the same shape serves every controller. Pick your format once and forget it.
Related: Multi-axis & rotary G-code · Transports (USB / Wi-Fi).