How to Set Vref on A4988 and TMC2209 Stepper Drivers
Every stepper driver board on a 3D printer or small CNC has a tiny trimpot that sets the motor current. Too low and the motor skips steps; too high and everything runs hot. What you set with it is a voltage, Vref, and the right Vref depends on the driver chip, the sense resistors on the board, and whether your current is a peak or an RMS value.
The stepper Vref calculator does the sum for A4988, DRV8825, TMC2208 and TMC2209 boards and shows the meter reading and the coil currents. Every number below comes from it. This article covers the part the formula leaves out: reading your board, choosing the current, and measuring the pot.

Why the driver needs a current limit at all
A stepper coil is mostly a resistance of a few ohms. Pololu's DRV8825 page uses the example of a motor rated 1 A with a 5 Ω coil, which on its own should see no more than 5 V. A higher supply lets the current rise faster after each step, allowing higher step rates, so the driver runs from a higher voltage and chops it on and off to hold the coil current at a set level. Vref sets that level.
The driver measures the coil current through a small resistor in series with each coil, the sense resistor. When the voltage across it reaches a level set by Vref, the driver switches off for a moment. So the current limit is Vref scaled by the sense resistance, and the scale is different for each chip.
Step 1: read the sense resistor
The sense resistors are two small black parts near the chip, usually printed with a code such as R068, R100 or R110. The R marks the decimal point: R068 is 0.068 Ω, R100 is 0.100 Ω and R110 is 0.110 Ω. This matters more than which chip you have, because the same chip on two boards can need very different Vrefs.
| Board | Sense resistor | Source |
|---|---|---|
| Pololu A4988 carrier, 2017 on | 0.068 Ω (R068) | Pololu product page |
| Pololu A4988 carrier, before 2017 | 0.050 Ω (R050), green | Pololu product page |
| Pololu DRV8825 carrier | 0.100 Ω (R100) | Pololu product page |
| BIGTREETECH TMC2209 | 0.110 Ω (R110) | BTT wiki |
Clones do not always use the same parts, so read your own resistors.
Step 2: the formula for your chip
A4988
Allegro's datasheet gives the maximum trip current as Vref divided by eight times the sense resistance. Rearranged for Vref:
A4988, 0.068 Ω, 1 A limit
That is the 540 mV Pololu quotes for its carrier. The datasheet allows Vref from 0 to 4 V and says the SENSE pins must never exceed 0.5 V. The trip current is accurate to ±5% at the 70.71% and 100% steps, so any reading from 517 to 571 mV sets the same nominal 1 A within the chip's own tolerance. Do not chase the third decimal.

Now take an older board with R050 resistors. The same 1 A needs only 0.400 V. If you copy 0.544 V from a guide written for the newer board, you set 0.544 ÷ (8 × 0.05) = 1.36 A, 36% more than you meant.

DRV8825
TI's DRV8825 divides by five instead of eight. Its datasheet example puts 2.5 V on Vref with a 0.25 Ω resistor for a 2 A full-scale current. On Pololu's 0.100 Ω carrier the factor 5 × 0.1 is 0.5, so Vref is simply half the current:
DRV8825, 0.100 Ω, 1 A limit
One detail from the datasheet: TI recommends Vref from 1 to 3.5 V and notes that the chip still works from 0 to 1 V but with degraded accuracy. On a 0.100 Ω board anything under 2 A sits below 1 V, so expect the real current to be less exact than the ±5% the datasheet quotes at a Vref of 3.3 V. The chip has its own 3.3 V regulator output, which the datasheet describes as the supply for Vref, so on boards built that way 3.3 V is the practical top of the range.

TMC2209 and TMC2208
Trinamic drivers use a different formula, and the current it gives is RMS. BIGTREETECH's TMC2209 page writes it as:
TMC2209 current from Vref
With 0.110 Ω resistors the first fraction is 0.325 ÷ 0.13 = 2.5 A, and the whole thing collapses to IRMS = Vref ÷ √2. Turned round, Vref ≈ 1.41 × IRMS:
TMC2209, 0.110 Ω, 0.8 A RMS
Watterott, which designed the SilentStepStick boards, gives the same scale: 1.77 A RMS at the top of a 0 to 2.5 V range, so Irms = Vref × 0.71. For the TMC2208 SilentStepStick it gives 1.64 A RMS at 2.5 V instead, so the same current needs a slightly higher Vref on a 2208: 1.218 V for 0.8 A RMS. The calculator reproduces Watterott's 1.64 A by using 0.03 Ω in place of the 0.02 Ω in the formula.
RMS or peak: the source of most confusion
When a stepper driver microsteps, it does not hold the coils at a fixed current. It drives coil A along a sine wave and coil B along a cosine wave, so the magnetic field turns smoothly. Each coil's current rises to a peak, falls through zero and reverses.
The A4988 and DRV8825 formulas set that peak. The TMC formula sets the RMS, which for a sine wave is the peak divided by √2, about 70.7% of it. So "1 A" on an A4988 and "1 A" on a TMC2209 are not the same setting: the TMC2209 at 1 A RMS pushes each coil to a 1.41 A peak.
There is a neat coincidence on R110 boards. Because Vref = √2 × IRMS and the peak is also √2 × IRMS, the Vref in volts equals the peak current in amps. BIGTREETECH says exactly this, and ships its TMC2209 at about 1.2 V, which is a 1.2 A peak and 0.85 A RMS.

Why RMS is a sensible number to set: with a sine on one coil and a cosine on the other, the squares of the two currents always add up to the peak squared. The total heat in the copper is therefore constant, and equal to what a steady current at the RMS value would make in both coils at once. An RMS setting tells you directly how hard you are heating the motor.
Full step is a special case: both coils are on together at 70.71% of the peak, the A4988 datasheet's full-step home position. So an ammeter in series with one coil in full step reads only about 0.7 times the limit. Pololu's example: 1 A per coil in full step needs a 1.4 A limit, about 770 mV on an R068 A4988.
Step 3: choose the current
The motor's datasheet gives a rated current per phase. You do not have to run it there. Watterott's advice for its drivers is to start at about half the rated current and raise it in 0.1 A steps only if the motor loses steps, and it notes that NEMA 17 motors on 3D printers typically run at 0.5 to 0.8 A RMS, a Vref of 0.7 to 1.1 V on a TMC2209.
Take a motor rated 1.5 A per phase, run at 80%, so 1.2 A:
| Driver and resistor | 1.2 A read as | Vref | Peak | RMS |
|---|---|---|---|---|
| A4988, R068 | limit (peak) | 0.653 V | 1.20 A | 849 mA |
| DRV8825, R100 | limit (peak) | 0.600 V | 1.20 A | 849 mA |
| TMC2209, R110 | RMS | 1.697 V | 1.70 A | 1.20 A |
| TMC2208, R110 | RMS | 1.828 V | 1.70 A | 1.20 A |
The TMC rows put more current into the motor because the same number means RMS. To match an A4988 setting on a TMC2209, enter the current as a peak.
Check the board can take it. Pololu rates its A4988 carrier at about 1 A per phase without a heat sink or forced air (2 A with enough cooling) and its DRV8825 carrier at about 1.5 A (2.2 A). Watterott says a small heat sink suffices on a TMC2209 SilentStepStick up to 1 A RMS, and on a TMC2208 up to 850 mA.
Step 4: measure and turn the pot
- Power the board with the motor not stepping. On Pololu's A4988 carrier Vref is derived from the logic supply, VDD, so set it at the logic voltage you will use.
- Set the meter to DC volts. Put the black lead on a GND pin of the driver.
- Touch the red lead to the metal of the trimpot, or to the Vref via that Pololu circles on the bottom of its carriers. On Watterott's SilentStepSticks the chip sits on the underside and the pot can be turned from the top through a hole in the board.
- Turn the pot slowly with a plastic or insulated screwdriver, a little at a time, and read again. BIGTREETECH notes that on its TMC2209 clockwise lowers Vref; check the direction on your own board with the meter.
- Stop within the tolerance band. For the A4988 and DRV8825 the chip's own ±5% means a reading within a few percent is as good as an exact one.
Do not set the current from the power supply's ammeter: Pololu points out that the supply current can be very different from the coil current, because the driver is chopping a higher voltage.

Checklist
- Read the sense resistor code: R050, R068, R100, R110.
- A4988: Vref = 8 × Rs × I. DRV8825: Vref = 5 × Rs × I. TMC2209 on R110: Vref ≈ 1.41 × IRMS.
- Remember TMC numbers are RMS; the peak is 1.41 times higher.
- Start near half the rated current and raise it only if steps are lost.
- Measure from GND to the pot with the board powered, and turn slowly.
For any other board or current, open the stepper Vref calculator, pick the chip, enter the sense resistor and the motor current, and read the Vref, the peak and RMS currents and the full-step current. How a driver switches current through a coil in the first place is covered in the H-bridge motor driver explained.
Sources
- Allegro MicroSystems, A4988 datasheet, A4988-DS Rev. 8 (ITripMAX = VREF / (8 × RS); VREF 0 to 4 V; SENSE pins 0.5 V maximum; trip error ±5% at 70.71% and 100%; full-step home position at 70.71%; output ±2 A)
- Texas Instruments, DRV8825 datasheet, SLVSA73F (ICHOP = VREF / (5 × RISENSE); example of 0.25 Ω and 2.5 V for 2 A; recommended VREF 1 to 3.5 V, degraded accuracy below 1 V; V3P3OUT 3.3 V; accuracy ±5% at 71% to 100%; 2.5 A full scale)
- Pololu, A4988 stepper motor driver carrier (0.068 Ω sense resistors since 2017, 0.050 Ω before; 540 mV for 1 A; 770 mV for 1 A per coil in full step; Vref depends on VDD; about 1 A per phase without cooling, 2 A with)
- Pololu, DRV8825 stepper motor driver carrier (0.100 Ω sense resistors; current limit = Vref × 2; full-step coil current 0.7 times the limit; about 1.5 A per phase without cooling, 2.2 A with)
- BIGTREETECH, TMC2209 wiki (IRMS formula with RSENSE + 20 mΩ; 0.110 Ω resistors; Vref equals peak current; factory Vref 1.2 V ± 0.1 V; clockwise lowers Vref; 2 A continuous, 2.8 A peak)
- Watterott, SilentStepStick FAQ (Irms = Vref × 1.77 A / 2.5 V for TMC2209, 1.64 A for TMC2208; NEMA 17 at 0.5 to 0.8 A RMS; start at half the rated current; heat sink limits of 1 A RMS and 850 mA)
Frequently asked questions
What Vref should I set on an A4988?
Vref = 8 × Rs × I, where Rs is the sense resistor and I is the current limit. On a Pololu carrier made since 2017, with 0.068 Ω resistors, that is 0.544 V for a 1 A limit. Older carriers with 0.050 Ω resistors need 0.400 V for the same 1 A.
What Vref should I set on a TMC2209?
With the usual 0.110 Ω sense resistors, Vref is about 1.41 times the RMS current you want: 0.707 V for 0.5 A RMS, 1.131 V for 0.8 A RMS. The highest the pot can set at 2.5 V is about 1.77 A RMS.
Is the TMC2209 Vref formula RMS or peak?
RMS. The Trinamic formula used by BIGTREETECH and Watterott gives the RMS coil current. The peak of each coil’s sine wave is √2 times higher, and on a 0.110 Ω board the Vref in volts happens to equal that peak current in amps.
Where do I measure Vref?
Put the meter’s black lead on a GND pin of the driver and touch the red lead to the metal of the trimpot, with the board powered. Pololu also brings Vref out to a via on the bottom of its A4988 and DRV8825 carriers. Turn the pot slowly and read again.
Should I set the driver to the motor’s full rated current?
Usually not at first. Watterott suggests starting at about half the rated current and raising it in 0.1 A steps only if the motor loses steps. Pololu’s carriers also need cooling above about 1 A per phase for the A4988 and 1.5 A for the DRV8825.