<p>In the <a href="https://github.com/MarlinFirmware/Marlin/blob/bugfix-2.0.x/Marlin/Configuration.h" rel="noreferrer">configuration.h</a> file of <a href="https://github.com/MarlinFirmware/Marlin/tree/bugfix-2.0.x/Marlin" rel="noreferrer">Marlin 2.0.x</a> you can define which stepper driver type is used to drive the stepper in the <code>Stepper Drivers</code> section.</p>

<p>You can choose to use the following constants from the array to configure the correct driver:</p>

<pre><code>['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE']
</code></pre>

<p>And update the section that links the steppers to the stepper driver by updating the following section of the <a href="https://github.com/MarlinFirmware/Marlin/blob/bugfix-2.0.x/Marlin/Configuration.h" rel="noreferrer">configuration.h</a> file.</p>

<pre>
//#define X_DRIVER_TYPE  A4988
//#define Y_DRIVER_TYPE  A4988
//#define Z_DRIVER_TYPE  A4988
//...
//#define E0_DRIVER_TYPE A4988
//...
</pre>

<p>by removing the <code>//</code> in front of the driver specification and update the constant of the correct stepper driver:</p>

<pre>
#define X_DRIVER_TYPE  DRV8825
#define Y_DRIVER_TYPE  DRV8825
#define Z_DRIVER_TYPE  DRV8825
//...
#define E0_DRIVER_TYPE DRV8825
//...
</pre>

<p>This results in the use of specific timings for the specific drivers. To be honest I have never set these constants when I used DRV8825 stepper drivers on my RUMBA board and my motors are operating smooth without these settings.</p>

<p>What you do need to look out for is when you replace stepper drivers is whether the micro stepping jumper settings on the board are correct for your stepper driver! I needed to set the jumper switches in a certain position to enable the 1/32 micro stepping functionality for the DRV8825 drivers. Knowing that the maximum micro step for the A4988 is 1/16, you also need to look out for the steps/mm; with more micro steps, you need twice as many steps per mm when you go from 1/16 to 1/32; e.g.:</p>

<pre><code>#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, 500 }
</code></pre>

<p>would need to be changed to:</p>

<pre><code>#define DEFAULT_AXIS_STEPS_PER_UNIT   { 160, 160, 8000, 1000 }
</code></pre>

<p>Also, did you tune the new stepper drivers correctly? When you receive the stepper drivers, they are usually not tuned and the position of the potentiometer on the driver board is undefined! You need to calculate the correct <span class="math-container">$ V_{ref} $</span> for your stepper driver in use for the specific stepper you have (max current that the stepper can handle). For DRV8825 stepper drivers, the maximum current is defined as:</p>

<p><span class="math-container">$$ A_{max} = V_{ref} \times 2 $$</span></p>

<p>For example, if you have a stepper motor rated for 1.4&nbsp;A, you limit the current to 1.4&nbsp;A by setting the reference voltage (<span class="math-container">$ V_{ref} $</span>) to 0.7&nbsp;V. More details are found <a href="https://reprap.org/wiki/Pololu_stepper_driver_board" rel="noreferrer">here</a>.</p>

CC BY-SA 4.0
2019-01-12T15:10:16.307Z
2019-01-12T15:30:29.643Z
2019-01-12T15:30:29.643Z
0scar
<p>I have an Anycubic Delta with a Trigorilla board. I have swapped out the A4988 drivers for DRV8825.</p>

<p>Currently, I am assuming it is using the A4988 drivers as the steppers are making a quiet growling noise. Kinda like a grating, coarse hum.</p>

<p>When I put the A4988 back in they are as smooth as always.</p>

<p>Where do I tell Marlin 2.0 that the assigned board has the DRV8825 drivers?</p>

<marlin><stepper-driver>
Marlin 2.0 - set stepper drivers?
LinuxFerLife
# Marlin 2.0 - set stepper drivers?

(Asked by: username_0 on 2019-01-11)

I have an Anycubic Delta with a Trigorilla board. I have swapped out the A4988 drivers for DRV8825.

Currently, I am assuming it is using the A4988 drivers as the steppers are making a quiet growling noise. Kinda like a grating, coarse hum.

When I put the A4988 back in they are as smooth as always.

Where do I tell Marlin 2.0 that the assigned board has the DRV8825 drivers?

**Tags:** marlin, stepper-driver

---

## 1 answers

### Answer by username_1 on 2019-01-12. Score: 5

In the configuration.h file of Marlin 2.0.x you can define which stepper driver type is used to drive the stepper in the Stepper Drivers section.
You can choose to use the following constants from the array to configure the correct driver:
['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE']

And update the section that links the steppers to the stepper driver by updating the following section of the configuration.h file.

//#define X_DRIVER_TYPE  A4988
//#define Y_DRIVER_TYPE  A4988
//#define Z_DRIVER_TYPE  A4988
//...
//#define E0_DRIVER_TYPE A4988
//...

by removing the // in front of the driver specification and update the constant of the correct stepper driver:

#define X_DRIVER_TYPE  DRV8825
#define Y_DRIVER_TYPE  DRV8825
#define Z_DRIVER_TYPE  DRV8825
//...
#define E0_DRIVER_TYPE DRV8825
//...

This results in the use of specific timings for the specific drivers. To be honest I have never set these constants when I used DRV8825 stepper drivers on my RUMBA board and my motors are operating smooth without these settings.
What you do need to look out for is when you replace stepper drivers is whether the micro stepping jumper settings on the board are correct for your stepper driver! I needed to set the jumper switches in a certain position to enable the 1/32 micro stepping functionality for the DRV8825 drivers. Knowing that the maximum micro step for the A4988 is 1/16, you also need to look out for the steps/mm; with more micro steps, you need twice as many steps per mm when you go from 1/16 to 1/32; e.g.:
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, 500 }

would need to be changed to:
#define DEFAULT_AXIS_STEPS_PER_UNIT   { 160, 160, 8000, 1000 }

Also, did you tune the new stepper drivers correctly? When you receive the stepper drivers, they are usually not tuned and the position of the potentiometer on the driver board is undefined! You need to calculate the correct $ V_{ref} $ for your stepper driver in use for the specific stepper you have (max current that the stepper can handle). For DRV8825 stepper drivers, the maximum current is defined as:
$$ A_{max} = V_{ref} \times 2 $$
For example, if you have a stepper motor rated for 1.4 A, you limit the current to 1.4 A by setting the reference voltage ($ V_{ref} $) to 0.7 V. More details are found here.


---

