Pololu Robotics & Electronics
My account Comments or questions? About Pololu Contact Ordering information Distributors

Pololu Forum

Need help choosing motor for DIY contact angle goniometer Modification

I am working on building a motorized tilting stage for a contact angle goniometer we use at my workplace. Ours is static and I am planning on copying this design as closely as possible as it is fairly simple and effective, I just need to build the tilting apparatus and mount our goniometer to it. My question is, what kind of motor is best suited for this task?

Ideally It needs to have as little jitter as possible for smooth rotation, and it needs to be able to rotate at about roughly anywhere from 1/2 rpm to ~1/12 rpm (fast for returning to level, slow for the measurement phase). I recognize that I will absolutely be needing some gearing (probably a worm gear setup) as it will allow me to have very smooth and slow rotation, but what style of motor would be consistent in speed, and ideally quiet? I plan on using an accelerometer to measure the stages angle in real time (I think this should work since its moving so slowly the motion shouldn’t affect the reading, but if it does I can also use a gyroscope to correct for that error).

After a lot of googling I only feel more confused. A stepper that is microstepped would be very smooth and controlled but apparently it seems like it would be harder to adjust on the fly based on the readings from the accelerometer? Because with a DC motor (IDK if brushed or brushless is more ideal here), I can just adjust the speed directly based on the angle readings. Idk, I feel very unsure about what the best option is and would love to have someone more knowledgeable assist me.

The other thing I’m thinking, is that by orienting the axis of rotation close to the center of mass of the setup, there will only be a small amount of torque on the motor to keep the gears in tension while not requiring a ton of torque from the motor.

Thank you so much for any assistance!


Unfortunately, we do not have direct experience with designing goniometers, so what advice I can offer might be limited. Is minimizing backlash from the motor and gear reduction system a big concern in this application? Also, can you tell me whether you will primarily need to use closed-loop position control or closed-loop speed control?

- Patrick

1 Like

Patrick, thank you so much for the response! Don’t worry about not having knowledge of goniometers, the goniometer is already fully functioning, I just want to build a rotation stage similar to the one in the linked video to smoothly rotate the entire apparatus.

Yes, minimizing backlash is a large concern because we are looking at silhouettes of very small drops of water in order to measure the angle they make with a surface, and thus any vibration can cause the data to be unreliable (even something as small as jostling the table the device is on), so ideally the system will very, very smooth when rotating in 1 direction. Use wise, it will be rotated 90° in one direction, often maybe as little as 30°, before stopping and then returning to level. I plan on using a closed-loop speed controller as the number one priority is keeping the speed completely constant and vibration free during the measurement rotation phase. Ideally, the motor and gear system driving this will be powerful enough that it wont have any power struggles and therefore can maintain a consistent rotation speed reliably.

Thank you for your help, I really appreciate it!

I think a stepper motor will be the way to go since minimizing backlash is a high priority . It should be possible to obtain consistent and smooth operation at very low speeds if you use a stepper motor driver that supports sufficiently high microstepping rates; we have a few drivers that can handle 1/256 microstepping. However, if you must use a gearbox to obtain slower speeds, higher torques, or more consistent intermediate angles, then you will need harmonic gears to avoid introducing backlash. We do not have harmonic gears, and I do not have any specific suggestions for any.

If you use a stepper motor, I do not think a closed-loop speed control scheme will be necessary. Your IMU (or an encoder) would still probably be helpful for determining absolute position, but as long as your motor is not missing steps it will only ever be able to step at the frequency you pulse the driver’s STEP pin. That can be demanding on your microcontroller’s timing resources though, so one way to make that easier would be to use one of our Tic Stepper Motor Contollers which you can command to target speeds or positions through several control interfaces and takes care of generating the low level stepping signals to drive the motor for you.

Limiting the audible noise from a stepper motor could be challenging, but there are things you can do to help that. Here is a thread with a good discussion about that.

Please keep in mind that we do not have much experience with designing high precision mechanisms like this, so my suggestions are mostly based on speculation and you might want to try seeking out someone with more direct experience with that. Maybe CNC forums could be a good place to look.

- Patrick

Patrick, after some more research and forming a better understanding of backlash, minimizing backlash is not as much of a concern as I realized now that I know it only happens when changing directions of the motor rotation.

For my use case, what matters most is smooth and stable operation when the motor is turning constantly. Remember as I said, for this device, I will be rotating it 90° in one direction slowly, and then ideally faster to return it to level. If there is some backlash when returning to level and when starting the measurement rotation, it should be ok as the measurements initially don’t matter so any backlash at the start of the rotation is fine, and backlash when returning to level is also fine as no measurements are happening then.

Knowing all of this, here are my needs:

  • Smooth and constant speed during the measurement phase (rotating 20-90° at a rate of about 1/8 rpm)

  • Being able to return the device to 0° (level) accurately and begin the measurement rotation with either minimal backlash or a known backlash, so that the angle is accurate during the measurement phase

Given all of this, do you still recommend a stepper motor? I have been reading that backlash can simply be accounted for on the software/driver side of things, is this true? Because if so, having backlash is absolutely fine as long as it is a KNOWN amount that I can account for and thus use to calibrate the proper angle for measurement. If this is still out of your field of expertise that is totally fine and I appreciate all of your help regardless, thank you!

Personally, I suspect a stepper motor is still the way to go, but if backlash is not a major concern, then that does make using a brushed or brushless DC motor more feasible. However, with either of those types of motors you would need a significant amount of gear reduction for it to be practical to rotate your goniometer apparatus at speeds as slow as you are proposing, even with closed-loop speed control. We do not have brushless DC motors, but here is a link to our selection of brushed DC motors. You might consider one of our Jrk G2, RoboClaw, or MCP motor controllers since they have built-in support for handling feedback from encoders (though the Jrks can only use a single encoder channel for speed control, not position control).

I suspect your question about being able to account for backlash in software depends on exactly what hardware you have and what you are trying to do. It seems like backlash should not be a big concern anyway though considering the extra details you provided.

- Patrick