On a typical “Cartesian” machine, each actuator (a motor and a linear rail, named alpha, beta, gamma) corresponds to an axis (like X, Y, and Z).
However, on other machines, the position in Cartesian space (X, Y, Z) must be converted, using math, into a more complex position for the actuators.
This is the case, for example, of linear delta (often just called “delta”) machines.
Smoothieware supports multiple arm/motion solutions to accommodate different machine architectures. The table below shows which solutions are available in each firmware version:
| Setting | v1 | v2 | Description | Documentation |
|---|---|---|---|---|
| ✅ | ✅ | Standard X/Y/Z configuration where each motor directly controls one axis | Cartesian | |
| ✅ | ✅ | Three vertical linear rails in triangular configuration (Rostock, Kossel) | Delta | |
| ✅ | ✅ | Crossed-belt system where both motors contribute to X and Y movement | HBot/CoreXY | |
| ✅ | ✅ | Crossed-belt variant where both motors contribute to X and Z movement | CoreXZ | |
| ✅ | ✅ | SCARA-style robotic arm with two parallel rotary joints | Morgan SCARA | |
| ✅ | ✅ | Delta variant using rotating joints instead of linear slides (experimental) | Rotary Delta | |
| ✅ | ❌ | Cartesian system rotated by a specified angle (v1 only) | Rotatable Cartesian |
linear_delta, delta, rostock, or kossel all select Linear Deltahbot or corexy both select HBot (they use the same implementation)morgan selects Morgan SCARATo configure your machine for the right type, see its specific page linked in the table above.
Each arm solution has its own configuration parameters and requirements. The
V1 Configuration (flat namespace):
arm_solution cartesian
For example, to configure a linear delta printer:
arm_solution linear_delta
V2 Configuration (INI sections):
[motion control]
arm_solution = cartesian
For example, to configure a linear delta printer:
[motion control]
arm_solution = linear_delta
If no arm solution is specified, cartesian is used by default.