Grounding the A4988 Rosc pin

A4988 Rosc

Please Login to Comment

I've read a few things on the web that drew my attention to a lesser known feature of the A4988 drivers. Delta printers tend to show artifacts or ripples on prints. The A4988 drivers have a mode that can be used by grounding Rosc (IC pin 13).

I decided to lift a heatsink on the unused Z2 stepper driver, and find out if it's easy to ground Rosc. It turns out, it's not super easy but if you can solder (or even just remove) SMD resistors, then bridge the gap with solder, that's what it takes.
I highly recommend trying the suggestion from user rq3: Leave the resistors on the board, just add solder on top to bridge them.

I began by taking photos then removing the Trigroilla Pro motherboard to work on it. Then I located and traced the Rosc pin to "R49_"... X, Y, Z and E. This resistor seems to connect between Rosc and Gnd, so bridging it is what I did.

I didn't get it right on the first try. One motor worked. I had the Z motor endstop in the probe endstop socket. After that, one motor still wouldn't go. The logical reason for that is if the solder bridge didn't make proper contact. It turns out, if Rosc is left floating that motor driver won't rotate. It will simply hold the motor in place.

I haven't confirmed if this did actually set the Rosc mode properly, but the printer still works afterward so I'll leave it like this.

A video of soldering is here: https://www.youtube.com/watch?v=blBsU985R-c&feature=youtu.be

The resistors are below the heatsinks, which stay in place.

Overview of the stepper chip: Thu_Jan_09_15-43-10.jpg
Chip closeups: Thu_Jan_09_15-40-42.jpg and Thu_Jan_09_15-40-35.jpg

Tracing the PCB track and via: Thu_Jan_09_15-42-11 is the top side
PCB from underneath, tracing the vias: Thu_Jan_09_15-41-41
Those last two photos are meant to indicate pin 13 goes to a via, then on the other side of the PCB it heads down to another via before emerging at R49.

There's a Gnd via to the right of the Rosc one. Both are right above the resistor (Thu_Jan_09_15-40-26.jpg and Thu_Jan_09_15-39-56.jpg)

Is there a way to measure vRef and adjust it, on the stock board?

I have not heard of this before, what does this mode do?

It's meant to help give slightly smoother low speed movements, and prevent missed steps. The drivers don't give perfectly smooth sine waves when running slow, until this mod is done.

From the datasheet, the drivers can suffer from "Missed steps in low-speed microstepping", unless auto mixed stepping is used.
The mod gives "Continuous stepping using automatically-selected mixed stepping (ROSC pin grounded)"

A sine wave is shown here, with both those situations with/without Rosc set to automatic mixed stepping

Configuring Rosc is done by either having at 10K ohm resistor (from Gnd) or shorting to Gnd.

The datasheet has a little info about it: https://www.allegromicro.com/en/Products/Motor-Drivers/Brush-DC-Motor-Drivers/A4988

van0014, the Rosc resistor isn't an "either/or" value. It's value in ohms determines what percentage of time the driver spends in mixed decay mode. The stock Tri-Gorilla board from Anycubic uses a 1% 10K resistor, like yours. Increasing that value would make the driver spend less time in mixed decay, and reducing the value to zero (a short, as you have done) forces the driver into mixed decay all the time. At all speeds.

Be aware that "running slow" according to Allegro, is on the order of 10 steps per second or so, or about 30% of the driver chips main oscillator frequency. You can modify "running slow" by changing the main oscillator capacitor value, but your fix is cleaner and easier. These drivers don't even begin to task the maximum speed of the motors, especially at 24 volts, so grounding the Rosc pin on the Allegro A4988 can only be good for us.

For what it's worth, just "bridging" R49 with some solder is just as effective as removing the resistor and bridging the remaining pads. 10Kohm in parallel with zero ohms is zero ohms. Less potential board damage, and you can just remove the solder bridge on the resistor to get back to where you started.

Thankyou so much for fully explaining Rosc. Your idea of leaving the resistor in place is certainly the better way to do it. I misread the datasheet, thinking that having 10K can also give the same effect as shorting to Gnd (without knowing the stock resistance).

The 10K stock resistance should be 12uS, according to the formula tOFF = Rosc / 825. It gets set to 30uS when grounded. But I guess it's not the same as automatic mixed decay. The faster tOFF time might not be equivalent to auto mixed decay.

For the record, I don't know with absolute certainty if R49 is Rosc. I counted anti-clockwise from pin 1 of the IC to find it. If it was actually clockwise from the top of the IC, then I actually grounded the 'Step' pin. That would explain why the motor wouldn't go on open circuit

The first 2 attatched photos show the left and bottom edges of the chip, but that would be irrelevant if it's the right edge that has pin 13