<p>I guess you are asking to swap drivers, this should be done on microcontroller pin level in the <code>pins_[board_type].h</code> file from Marlin. This has been described in e.g. <a href="https://3dprinting.stackexchange.com/a/5786/">this answer</a>.</p>
<p>Or, do you mean:</p>
<pre><code>#define Y_DRIVER_TYPE  A4988
#define Z_DRIVER_TYPE  A4988
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define Z4_DRIVER_TYPE A4988
//#define I_DRIVER_TYPE  A4988
//#define J_DRIVER_TYPE  A4988
//#define K_DRIVER_TYPE  A4988
#define E0_DRIVER_TYPE A4988
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988
//#define E6_DRIVER_TYPE A4988
//#define E7_DRIVER_TYPE A4988
</code></pre>
<p>Of the <a href="https://github.com/MarlinFirmware/Marlin/blob/8aca38351cd6d33a1202bf9a13890dc8e5eadd49/Marlin/Configuration.h#L168" rel="nofollow noreferrer">configuration.h</a> file?</p>
<p>The following options are available:</p>
<pre><code> * Options: A4988, A5984, DRV8825, LV8729, L6470, L6474, POWERSTEP01,
 *          TB6560, TB6600, TMC2100,
 *          TMC2130, TMC2130_STANDALONE, TMC2160, TMC2160_STANDALONE,
 *          TMC2208, TMC2208_STANDALONE, TMC2209, TMC2209_STANDALONE,
 *          TMC26X,  TMC26X_STANDALONE,  TMC2660, TMC2660_STANDALONE,
 *          TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE
 * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE']
</code></pre>

CC BY-SA 4.0
2022-06-04T21:46:31.557Z
2024-02-25T10:01:53.470Z
2024-02-25T10:01:53.470Z
0scar
<p>I'm using a TriGorilla 2560 and Marlin bugfix 2.0.x, and two stepper motors that I'm using as two Z-axes.</p>
<p>For some reason, both Z ports, and the E1 port are being driven by the same stepper driver:</p>
<p><a href="https://i.sstatic.net/XjIZe.jpg" rel="nofollow noreferrer" title="Annotated diagram showing E1 port"><img src="https://i.sstatic.net/XjIZe.jpg" alt="Annotated diagram showing E1 port" title="Annotated diagram showing E1 port" /></a></p>
<p>The problem is that only one port is actually working well, meanwhile, the other ports (one Z port and E1 port) make the stepper jag as in <a href="https://youtu.be/7rc7fLnFJgg" rel="nofollow noreferrer">this YouTube video</a>.</p>
<p>Also, there is a driver that looks like it is not being used by anything:</p>
<p><a href="https://i.sstatic.net/IV4nd.jpg" rel="nofollow noreferrer" title="Annotated diagram showing unused port"><img src="https://i.sstatic.net/IV4nd.jpg" alt="Annotated diagram showing unused port" title="Annotated diagram showing unused port" /></a></p>
<p>So I wanted to try to assign that driver, to the E1 port (and a Z port), and see how it goes, if it does fix the issue or not, but the problem is that I have no idea on how to do that on Marlin.</p>
<p>Under the pins section either of TriGorilla and RAMPS, all I can find are the definitions of the ports, so I can swap port usage, but not assign a specific driver to a specific port.</p>
<p>If it helps, <a href="https://we.tl/t-XjTcoWGEHq" rel="nofollow noreferrer">here's my Marlin zip</a>.</p>

<marlin><stepper-driver><stepper>
Marlin 2.0.x bugfix: how do you define a specific driver to be used when driving a specific stepper?
baznao
# Marlin 2.0.x bugfix: how do you define a specific driver to be used when driving a specific stepper?

(Asked by: username_0 on 2022-06-04)

I'm using a TriGorilla 2560 and Marlin bugfix 2.0.x, and two stepper motors that I'm using as two Z-axes.

For some reason, both Z ports, and the E1 port are being driven by the same stepper driver:

[![Annotated diagram showing E1 port](https://i.sstatic.net/XjIZe.jpg "Annotated diagram showing E1 port")](https://i.sstatic.net/XjIZe.jpg "Annotated diagram showing E1 port")

The problem is that only one port is actually working well, meanwhile, the other ports (one Z port and E1 port) make the stepper jag as in [this YouTube video](https://youtu.be/7rc7fLnFJgg).

Also, there is a driver that looks like it is not being used by anything:

[![Annotated diagram showing unused port](https://i.sstatic.net/IV4nd.jpg "Annotated diagram showing unused port")](https://i.sstatic.net/IV4nd.jpg "Annotated diagram showing unused port")

So I wanted to try to assign that driver, to the E1 port (and a Z port), and see how it goes, if it does fix the issue or not, but the problem is that I have no idea on how to do that on Marlin.

Under the pins section either of TriGorilla and RAMPS, all I can find are the definitions of the ports, so I can swap port usage, but not assign a specific driver to a specific port.

If it helps, [here's my Marlin zip](https://we.tl/t-XjTcoWGEHq).

**Tags:** marlin, stepper-driver, stepper


---

## 1 answers

### Answer by username_1 on 2022-06-04. Score: 2

I guess you are asking to swap drivers, this should be done on microcontroller pin level in the `pins_[board_type].h` file from Marlin. This has been described in e.g. [this answer](https://3dprinting.stackexchange.com/a/5786/).

Or, do you mean:

```
#define Y_DRIVER_TYPE  A4988
#define Z_DRIVER_TYPE  A4988
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define Z4_DRIVER_TYPE A4988
//#define I_DRIVER_TYPE  A4988
//#define J_DRIVER_TYPE  A4988
//#define K_DRIVER_TYPE  A4988
#define E0_DRIVER_TYPE A4988
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988
//#define E6_DRIVER_TYPE A4988
//#define E7_DRIVER_TYPE A4988

```

Of the [configuration.h](https://github.com/MarlinFirmware/Marlin/blob/8aca38351cd6d33a1202bf9a13890dc8e5eadd49/Marlin/Configuration.h#L168) file?

The following options are available:

```
 * Options: A4988, A5984, DRV8825, LV8729, L6470, L6474, POWERSTEP01,
 *          TB6560, TB6600, TMC2100,
 *          TMC2130, TMC2130_STANDALONE, TMC2160, TMC2160_STANDALONE,
 *          TMC2208, TMC2208_STANDALONE, TMC2209, TMC2209_STANDALONE,
 *          TMC26X,  TMC26X_STANDALONE,  TMC2660, TMC2660_STANDALONE,
 *          TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE
 * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE']

```


---

