The Machine Setup tab defines the physical capabilities of your CNC machine, its firmware behavior, and how G-code should be generated. A properly configured machine profile ensures your output matches your hardware's constraints and expectations.
- **Max Spindle** — The highest RPM your spindle supports. This limits the `feed` speeds set in your [CAM operations](/kiri-moto/CAM/ops) to generate proper and safe `S` values in G-code.
Macros insert custom G-code at key stages of toolpath generation. Each tab corresponds to a different context. In these boxes, you have access to [G-code macros](../gcode-macros). Not all macros are available in all contexts, so be careful!
When a machine's file extension is set to `.rml`, Kiri:Moto will use the RML dialect, using `PU` for non-cut moves and `Z` for cut moves. RML commands can be used in the `Header`, `Footer`, `Tool`, `Dwell`, and `Spindle` sections of the Machine Setup tab in the same way that G-code commands are used.
We love to add new machines to the Kiri:Moto library. If you have a tested machine that you'd like to add, you can export your workspace as a `.kmz` file and share it on the [Discord](https://discord.gg/suyCCgr) or [forums](https://forum.grid.space).
If you want to submit a PR, you can find instructions for how to do so [here](https://github.com/GridSpace/grid-apps/blob/master/contributing.md#how-to-add-a-new-machine).