Smooth actuation with DRV8880

Hello there,

I’m getting some uneven motion when using the DRV8880 to drive a linear actuator.

For context, I’m using a linear actuator to push a syringe at a constant rate. There’s a force sensor in between the linear actuator and the syringe so that I can measure the force of pushing the syringe. This force is a function of things like dimensions of the syringe, viscosity of the fluid inside the syringe, rate of actuation. Right now, I’m using a tinyG to control the motion of the linear actuator and an arduino to read the output of the force sensor.

It works well enough, but it’s a bit annoying because I have to use one program (tinyG recommends CoolTerm) to control the tinyG, and another program (arduino) to read the input. To simplify things, I was trying to do both tasks with the arduino. So I bought a Pololu DRV8880 carrier board to interface between the arduino and the linear actuator.

And I’ve gotten it to work well enough, except that the force reading oscillates over time, though
it used to be steady when I used the tinyG. I have a few questions and a few ideas of things to look into, but perhaps someone on this forum could tell me if these ideas have any merit?

  1. I currently have a 10 uF capacitor across the power pins next to the board. I know that 47 uF is recommended, but is this something that might play into the smoothness of the motion? (I’ll get a 47 uF capacitor. I just didn’t have it on hand when I made the board, and a 10 uF seemed close enough at the time.)

  2. I get pretty smooth results when I use the tinyG to control the linear actuator. Is there

  3. Does anyone have experience w/ using the tinyG? Is it possible to control it using the arduino? I looked into this as a possibility, but I couldn’t figure out how to do that.

Let me know if any other info is helpful for debugging.

Thanks,

Hello.

Do you have a datasheet or any specifications for your stepper motor you could post? What kind of power supply are you using? Did you set the current limit on the driver using the VREF pin and if so, what did you set VREF to? What frequency are you trying to step at, what microstepping mode are you using, and what is the frequency of the oscillations you are observing? Are you using any kind of acceleration limits in your Arduino code?

We don’t have any relevant experience with the tinyG.

-Nathan