# 5th Axis Activation

The Snapmaker Artisan is not a native 5-axis machine. To work with a 5th axis, the controller first needs to be temporarily adapted to understand and allow that additional rotary movement. This is done through a **runtime adaptation**.

A runtime adaptation means that the machine’s behavior is adjusted **only for the current session**, using G-code commands sent at runtime. No firmware is modified, and nothing is permanently stored unless explicitly requested.

Once the machine is restarted, it returns to its standard configuration. This keeps the setup reversible, transparent, and as close as possible to the stock Snapmaker environment.

### What is adapted during runtime

The runtime adaptation is essentially a deliberate **parameterisation step**. It does not add new capabilities to the controller, but temporarily redefines how existing motion parameters are interpreted for the current session. The **Motion2 port** is used as the physical connection for the additional rotary axis.

{% hint style="info" %}
Before powering on the machine, ensure that all axes are connected.\
The rotary axes should be connected to the ports as shown in the image below.
{% endhint %}

<figure><img src="/files/CR9qwSvbTYzQ5RIRNOH2" alt=""><figcaption></figcaption></figure>

***

#### Software endstops / limits (`M211`)

To allow unrestricted rotary motion, software endstops are disabled globally for this session.

This is done deliberately and pragmatically:

* it is the only method that reliably works without going deeper into firmware-level changes,
* it avoids introducing complexity that would make the setup harder to follow for a general user base,
* it keeps all changes fully reversible and confined to the active session.

In practice:

* software limits are turned off for **all axes**, not just the rotary axis,
* it requires user awareness, as software limits are disabled for the duration of the session.
* this is a necessary step to make 5-axis operation possible, as the standard software limits would otherwise prevent the required rotary motion.

This is implemented using:

* `M211 S0` — disable software endstops for the active session.

{% hint style="info" %}
Later in the workflow, software limits are handled explicitly during G-code generation via the post processor, where axis ranges and motion behavior can be managed in a controlled and predictable way.
{% endhint %}

***

#### Steps-per-unit for the rotary axis (`M92`)

The controller needs to know how to translate commanded rotary motion into physical movement. For the Snapmaker rotary module, a value of **888.89 steps per degree** matches the stock rotary configuration.

This is defined using:

* `M92 A888.89` — set steps-per-unit for the A-axis.

***

#### Establishing a known rotary zero (`G92`)

The Snapmaker user interface does not expose a direct way to zero the A-axis. To establish a known and repeatable reference, the current rotary position is explicitly declared as zero:

* `G92 A0` — define the current A-axis position as zero.

{% hint style="info" %}
At this stage, this zeroing step primarily serves **debugging and validation purposes**, ensuring that rotary motion, indexing, and orientation behave as expected during a session.

Proper and robust zeroing strategies for 5-axis work are a topic of their own and are handled separately, outside of this basic runtime setup.
{% endhint %}

***

### How the runtime adaptation is applied

The runtime adaptation is executed like any other Snapmaker job.\
Load the file on the controller, select it, and start execution.

The controller may prompt for zeroing. This can be skipped, since the job only applies parameter changes and does not trigger any motion.

{% file src="/files/DPCcrh8HZS51KKrmVt8l" %}

***

### Startup warning when using the Motion2 port

When the machine is powered on, the controller will display a warning indicating that the rotary unit is connected to the *wrong port*.\
This warning appears because the additional rotary axis is connected via the **Motion2 port**, which does not match the controller’s default expectations.

Without firmware modifications, this warning will **always** be shown.\
It is a known and expected behavior in this setup.

The warning can simply be acknowledged and does **not** interfere with operation.\
Once accepted, the controller functions normally, and the 5-axis workflow works as intended.

No functionality is lost, and no additional limitations are introduced by this warning.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://miwicnc.gitbook.io/miwicnc/software-and-cam-setup/5th-axis-activation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
