Maker Pro
Maker Pro

I need a really small, really smooooth motor...

I have a project idea where I need to spin a small (~1.5") thin metal disk as consistently and smoothly as possible.
The disk serves as an optical shutter so it just spins in air, there isn't really any mechanical load placed on the disk or the motor.

The speed range here is 1 to 10 rotations per second (60 to 600 RPMs), and most likely in the 4 to 6 RPS range. I can dedicate a Digispark to the task of spinning this disk alone. That may be overkill but it's easiest for me, and pretty cheap too.

What I don't know is what would turn smoother: a stepper motor or a brushless (RC-type) motor. Or is there some other option?

This motor would have to run for long periods of time, so I don't want to use a motor that doesn't have real bearings. That rules out most stamped-metal camera stepper motors, since they only have very cheap sleeve bearings.

I also kinda want to use a motor that there will be a reasonably-reliable supply of.
You can sometimes find nifty surplus parts dirt cheap, but the same parts new are often impossible to find, no longer manufactured or the manufacturer wants $100 each for a 1000-piece MOQ.

The stepper motor candidate is a nema 8 size, the usual 200-step. Polulu sells some smaller (low voltage & low current) stepper driver boards, and they all do 32x microstepping.
The Polulu DRV8834 board is the smallest:
https://www.pololu.com/product/2134
As far as Google knows, nobody else is building a driver board using the DRV8834 chip. I don't wanna do a PCB so that's what I'd buy.

The brushless motor candidate is a quadcopter-style gimbal motor. This is nice because the front face has no shaft, just 3 threaded holes that would make mounting the disk easy to do. The motor I'm looking at is ~27mm diameter and 13mm long. The problem is I can't find a whole lot of info about driving these motors at really low powers.

Most RC controllers are a hundred times more power than this should take. They're also not really compact for this use.
This guy:
http://www.instructables.com/id/Run-A-CDROM-Brushless-Motor-With-Arduino/?ALLSTEPS
is driving a CD-rom motor using an L293D chip, but it appears to have a minimum of 4.5 volts output.. I think? The spec sheet only gives the maximum. I can't understand what the minimum would be other than it would need to be more than the 1.5-volt noise rejection level.
(I note he is also not using the rotation sensor? but he is using it with no mechanical load...)
,,,,,,
Since the power requirements are so low, an H-bridge may not be needed at all and would avoid a lot of complexity.
Would it be possible to drive one of these motors using the Digispark and three common transistors, and some diodes to block the back-EMF? Is back-EMF even an issue at <1 volt? I have some 1N5817 Schottkey diodes on hand (.32v fwd, 20v rev).

So far I haven't found anyone driving a brushless motor like that, but then, most people are trying to get the MOST power out of their circuits. They don't want to drive tiny amounts of power on purpose...
 
A stepper exhibits some cogging. So does a BLDC at low rpm.
A small DC brushed with a gear box would most likely be the smoothest..
M.
 
Use a small geared motor maybe 3-6v and govern speed / voltage via pwm from a higher voltage supply like 12v. Should give fairly steady speed with your disk attached. Perhaps beef up the thickness of the disk to act more like a flywheel. Plenty of small geared motors on ebay.
 
Last edited:

hevans1944

Hop - AC8NS
If you are using the aluminum disk as an optical "light chopper" and perhaps modulating a weak optical signal to allow its synchronous detection with a box-car integrator or a lock-in amplifier, you need a really constant rotation speed. The best way I know of to get this is with a synchronous motor, but if you need a variable speed for some reason (perhaps to phase lock the modulation with some other signal) then you would also need a variable-frequency motor driver. Stepper motors and brushless DC motors are not the best candidates for this, but either one could probably do in a pinch. Micro-stepping would certainly improve the smoothness of a stepper motor, but the easiest way to get smooth rotation is to brute-force it: mount the disk on a thicker, heavier, well-balanced, cylinder attached to the motor shaft and let angular momentum be your friend... as @Bluejets suggested. A geared motor should be avoided because even the best of them will have periodic fluctuations in speed caused by imperfect gears, although you might need a 'scope with nanosecond resolution to see the jitter. In other words, trigger the 'scope at one point in each revolution and look at the trigger jitter one revolution later using a delayed sweep.
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Another option to reduce jitter if you're using a non-ideal motor is to increase the mass of your disc.
 
A stepper exhibits some cogging. So does a BLDC at low rpm.
A small DC brushed with a gear box would most likely be the smoothest..
M.
I decided to try another way that didn't need such a motor. I did find out a bit about the matter tho.

I would assume that any kind of gears--especially cheap gears--would introduce backlash that would ruin the rotational precision.

Record players--even very expensive ones--just use a big brushed-DC motor geared way down, with a heavy flywheel. I'd have thought that the Monster-cable audiophile silliness would require something more exotic than that, but I guess they're too young to have record players.

The only two motors I found that don't exhibit cogging at all are aluminum disk/eddy current motors and coreless motors.

The eddy current motors I could not find any manufactured examples of, just DIY experiments. The disk has to be uninterrupted (no cuts or holes in it) so I'd have needed another plain disk for the motor, but that is not a big deal. I also have metalworking equipment (a milling machine and a lathe) so making the thing would not be a problem. The motive disk also experiences significant heating, tho this use was for a very small & slow motor. I might throw one together just to see how well it moves.

For the coreless motors, the only brushless examples I could find were industrial parts costing hundreds of dollars, and the prices made them impractical.

The tiny quadcopters use *very* small coreless brushed-DC motors, and these are usually <$1 each. They only come in very tiny sizes tho--the largest size of these I could find is a "720" size, which means that the motor can is 7mm diameter and 20mm long. They will turn at 30 - 50K RPMs with no load and only 3 or 4 volts applied; being coreless means they have much less torque than normal, but they can spin at staggering speeds.... so making them turn slow might be a problem depending on the bearing and brush stiction.
The longer & thinner ones tend to spin faster.
The shortest, fattest one I could find was a 1015 size--10mm diameter x 15mm long, but it still claimed 18K RPMs at 4.2 volts. It only cost $1.50 tho.
The smallest common size of these motors is only 6 x 14mm (!)
....
There is also some matter with these that, having less impedance than normal, brush erosion is much less of an issue,,,,,,,,, in normal use, that is. The quadcopter motors don't last more than a few hours of use, but they are using them at maximum power and they are placing axial loads on the tiny radial sleeve bearings.
 

hevans1944

Hop - AC8NS
Could you elaborate a little bit on what you are trying to DO? How does the disk serve as an optical shutter? A slot? Blades? What percentage of the time is the optical path open during each revolution? Is this for timing or synchonization or is there some other purpose for the "optical shutter"? How about uploading a picture of the disk"?

Variable speed commercial optical "choppers" are readily available, but I suppose you want to do whatever it is you are doing as inexpensively as possible...
 
Older style record players used synchronous motors, they are sync'ed to AC frequency and keep very accurate rpm control, reduction is by synthetic rubber wheel.
This is why if taken to a country where the frequency varies the reduction wheel has to be changed.
Any of the modern BLDC motors including the RC out-runner type are going to exhibit cogging. Unless driven at very high rpm's.
RC motors are usually driven at exceedingly high currents and therefore can only operate at this level for a very short time.

BTW not all gearboxes exhibit backlash, the planetary type are very accurate.
As said, if you state the actual application, more info may be forthcoming
M.
 
Backlash is only an issue if you are reversing the drive or/ if the load is insufficient for the drive.
As I commented and also Steve above, if you use a heavy disc, the load will stabilise the motor speed.
Flywheel effect. :)
 

hevans1944

Hop - AC8NS
It's not so much backlash as gear tolerances when driving in the same direction all the time. All gear trains of whatever type will have minor variations in the tooth engagement and gear eccentricities. Even the finest watches will exhibit these "defects" if inspected closely enough. It's just in the nature of things mechanical. It will show up as minute variations in output shaft angular velocity and these variations will be periodic. AFAIK, there isn't any way to completely remove them, although precision-made gear trains will have very small perturbations. So, given all that, and depending on exactly how constant the rotation speed must be (not specified by the OP), the easiest solution is a direct drive of the disk from a synchronous motor. Just add a tunable oscillator and power amplifier to drive it. A voltage-controlled oscillator will allow you to phase-lock the motor shaft to an external reference with suitable optical feedback of shaft position. A brushless three-phase or two-phase synchronous motor is probably the simplest solution. If phase-locking the rotation, the angular moment of inertia should be as small as possible to achieve a tight control loop, otherwise disturbances can take a long time to correct.

Again, it would help avoid over-designing or over-thinking this problem if the OP would just tell us what they are trying to DO. Let one of our motor wizards like @Minder or @duke37 or @Bluejets offer up some practical solutions. Back in the day, one of the more notable country-western recording artists (Les Paul) used a Cadillac fly-wheel to get good rotational stability from his record player/recorder. See here and here for more information on that. Method still works, but you might not have to go that far.
 
Last edited:
In a book* I once read, it said that cogging free motors were made with the armature in a helix so that as one part was pulling, another part was pushing. I do not know where these can be obtained. These are obviously more expensive, perhaps a couple of motors connected out of phase would work.

I use a 24V motor to drive my coil winder, this has little cogging. I tried a much bigger 12V Ford fan motor but this had strong cogging so it would not run at very low speed. Maybe a motor with a field winding instead of a magnet would work (car dynamo?), then the strength of the cogging could be adjusted to the output torque required. At work, I used a 250kW DC motor, this could be turned by hand with no discernible cogging.

*book
A collection of rectangular papers with marks, usually black. Now obsolete.
 
Maybe a motor with a field winding instead of a magnet would work (car dynamo?), then the strength of the cogging could be adjusted to the output torque required.

Yes, that was my thoughts when I said about driving a lower voltage motor (say 6v) with pwm from 12v.
(Along with the flywheel)
Some good points there Hevans. :)
 
Could you elaborate a little bit on what you are trying to DO? How does the disk serve as an optical shutter? ...
The point of this was I was trying to think up a way to make a relatively cheap and simple absolute rotary encoder, that was not tied to the limitation of bit-depth of an ADC.

The image shows the major parts of the device.
There would be a dedicated microprocessor onboard to run this (an Arduino pro mini) tho that part is not shown.
Also all this would be mounted inside a closed case, with only the input shaft sticking out:

A motor (part 6) running at a constant speed, spins a thin metal disk (part 4) with a single slot cut in it.
A ring-shaped light source (part 5) illuminates the metal disk from one side.
A single photodetector (part 3) is mounted stationary inside the case opposite the ring light, and is used to monitor the actual rotation speed of the metal shutter disk.
The input shaft (part 1) rotates on the same axis as the motor, and carries another photodetector (part 2) so that it also detects the shutter disk slot, but can rotate freely without hitting the first/stationary sensor (part 3).

Both photodetectors are used as binary sensors (through a comparator) and only produce a high or low output--they are not analog.

Each revolution of the shutter disk, both photodetectors generate one positive pulse. The time difference allows figuring an absolute position of the input shaft.
It does take at least one revolution of the disk to do that, which is a consequence of the electromechanical design--but the resolution is only limited on the shutter disk RPM and the microprocessor's timing speed.

For example: an arduino pro mini 16mhz can time intervals as small as 4 microseconds (IIRC) without resorting to interrupt timer code.
If the shutter disk was spun at 4 rotations per second (240 rpms) then the theoretical resolution would be 62,500 pulses per turn. IF you wanted that many measured intervals-per-turn. You don't have to use all those intervals if you don't want to...

And you would need to stop the axis from moving and wait 1/4 second for a current position reading, but for hobbyist use that's not such a horrible deal. If you spun the disk at 10 rotations per second, the wait time would be ~1/10th second and the microprocessor should still have no problems catching a few thousand intervals between rotations--considering that the on-board microprocessor literally has nothing else to do.

Even better I think: with other absolute encoders you only get 128, or 256, or 360, or 512, or whatever-amount-of-intervals. The intervals that a typical absolute encoder can read is fixed. With this setup, the disk RPM and the timing intervals can be altered by just changing settings in the microprocessor code to hit any number of intervals-per-turn desired. 128, 256, 512, 90, 180, 360, 1440, or even odd numbers of intervals: 7, 29, 61, 199.

Now it may be more obvious why the motor has to spin absolutely smooth. Any intervals from cogging, a stepper motor or from a gear train would limit the possible resolution.

Also the whole assembly would only be ~1 inch diameter. There is not really any practical room for using a weighted flywheel very well.

It would still be possible to use a stepper motor, but that would produce a much lower, fixed interval rate. A normal 1.8° angle (200-step) stepper motor run on 32x microstepping would give 6,400 intervals per revolution. An advantage of a stepper motor here is that it would not need to be kept spinning constantly, since the motor steps act as an indirect form of timing.
 

Attachments

  • analog_encoder_001_web_export.jpg
    analog_encoder_001_web_export.jpg
    67.5 KB · Views: 96
In a book* I once read, it said that cogging free motors were made with the armature in a helix so that as one part was pulling, another part was pushing. I do not know where these can be obtained. .
You may be referring to the likes of DC motor armatures of high end and servo style motors, where the lamination slots are skewed, in this way the armature coils are wound at an angle WRT the field.
Making for smoother rotation, most high end motors are wound this way.
M..
 
Don't know how you are going to get info from a moving sensor.
Hall effect would be a better option as long as you use say rising edge and that point is known.
Not sure if a "ring" of light would be absolutely necessary if you are looking for "turn on...turn off point".
Many unforeseen problems with the idea I think.
 

hevans1944

Hop - AC8NS
I like your concept. I don't recall ever seeing anything like it. And absolute encoders get quite expensive as the resolution increases, whereas your concept doesn't!

But here are a few suggestions... do away with the "ring of light" because it is an unnecessary complication. Mount an LED on the input shaft with a "U" bracket, opposite the photo-diode (or whatever) on the other side of the slotted disk that senses the slot spinning by. The fixed reference position sensor can then also be illuminated with an LED. No "ring of light" required!

This will of course require three slip-ring contacts on the input shaft to provide electrical connections to both the photo-sensor and its LED, unless you limit the range of input shaft rotation. See my last comment later on about this. However, since these are high-level digital signals, there should be no noise problems that are the bane of slip-rings used with analog signals. You can probably make up your own slip-rings if the input shaft is not rotated too fast, say, hand operated like a volume control or radio tuning knob. If the input shaft rotates very quickly, and you need to know it's position very quickly, then this will of course affect the motor shaft speed requirement for a given update rate (as you mentioned) and better precision is required of the slip-rings..

There will be problems "seeing" the slot accurately time-wise. A very narrow slit (for good angular resolution) means higher intensity illumination or more sensitive photo sensors or both are required. And there will be diffraction of the light passing through the slit, so it is important to ignore the "fringes" and detect only the central peak. OTOH, a relatively wide slit could also work since only the leading edge is of interest. Diffraction from the leading edge will still be something to consider for maximum angular resolution, but I am sure you can discover an optimum slit width with a little experimentation without delving into complicated optics and equations. The key will be how accurately and repeatably you can measure the time difference between the two edge events from the two photo-detectors. More on this later.

And that's where rotational stability of the "encoding motor" comes in. I would recommend that you use something like a hysteresis-synchronous clock motor for your prototype. I know these have simple sleeve bearings, but they will run forever on these because there is very little shaft load.The clock motors are readily available and inexpensive. Discard the gear-train that comes with it, and remove the end cap to expose the thin aluminum rotor. You can leave the pinion gear exposed on the other end of the rotor shaft.

The slotted disk must be very low mass, a thin sheet of photographic film stock with the slit exposed and developed on it, and then carefully glued concentric to the exposed aluminum rotor is what I recommend. Or a photo-lithographically manufactured, very thin, aluminum disk could be used. It only needs to be slightly larger in diameter than the rotor disk to clear the motor case and allow you to position an LED and photo-diode near its edge as shown in your drawing. Getting it glued in place could be an exercise in frustration however. You don't want any wobble there. You could attach the disk to the pinion gear, and it might be easier to get it centered properly there, especially if made from thin sheet aluminum stock..

The clock motor needs to be driven from a several kilohertz crystal-controlled oscillator, divided down to somewhere near 60 Hz and then filtered to produce a clean sine wave to drive the motor. You will count pulses from the oscillator between "triggers" to measure angular position. Not much power is required to drive the motor... a few watts will probably suffice, but measure the motor input power requirement before committing to a motor driver. You will be able to vary the clock motor speed somewhat by varying the excitation frequency, but experimentation is required to find out how much rotational speed variation is possible and practical. If I understand your original concept correctly, you only need speed variation to determine response time... faster rotation allows faster response to input shaft position changes. For your working prototype, a fixed rotational frequency seems more appropriate.

Back in the day, I used a chip that had a sine-shaping diode network to generate variable-frequency audio tones, but I don't know if those chips are available today. The circuit is easy to implement with a handful of signal diodes and resistors and a couple of op-amps. It has the advantage of not being sensitive to frequency (if the diodes and op-amps are fast enough). LC filters can also do the sine-shaping filtering job over a limited frequency range, so for 60 Hz that's what I would use.

Alternatively, you can use a voltage controlled oscillator phase-locked to either the 60 Hz power line frequency or to a crystal-controlled oscillator to obtain a constant rotation speed, but there may be short-term variations if the power line is used as the frequency reference. In any event, you would run a binary counter off the high-frequency oscillator and use your "trigger" pulses from the two photo-sensors to gate pulses to the counter. The Arduino Pro mini might be fast enough to implement the counters, but I would build the counters from discrete logic and interface their parallel bit outputs for reading by the Arduino. It is sooo much easier to do high-speed timing in discrete CMOS logic than to futz around doing it in software. Your mileage (or kilometers) may differ.

Anyway, this project reminds me of an (unsuccessful) attempt I made a few years ago to measure the velocity of sand propelled by pressurized air for a sand-erosion experiment. A local university had a sophisticated sand erosion laboratory that used a laser doppler interferometer to measure the sand velocity, but their services were way beyond what we could afford. And of course buying a laser doppler do-hickey was out of the question. So I got the bright idea of mounting two slotted disks coaxially on a motor-driven shaft, separated by a few inches. The theory was the sand would enter through the slit on the first slot and exit through the slit on the second slot provided the shaft rotated at just the right speed. So (theoretically) we would get a little spurt of sand through the slot on the first disk and by the time that spurt reached the second disk it would have rotated far enough to be in position to pass the spurt of sand through its slot. Measured velocity of the sand spurts would then be just a function of shaft speed and separation distance of the two slotted disks.

I know for a fact that this "time of flight" measurement works with beams of light and ions and such, but sand moving through air was somewhat less cooperative. Plus this arrangement really restricted the quantity of sand that reached the target we were testing for resistance to sand erosion. I never could get it to work right because the sand didn't move in a straight line between the two slits. We finally reverted to measuring how long it took to "blast" a measured volume of sand, which depended on orifice size and air pressure, but at least was repeatable. I have no idea how the scientist performing the test converted time and mass flow to average sand velocity.

Best of luck with your shaft position-measuring concept. I think you can get a prototype up and running pretty quickly. Perfecting it and making it practical might take a bit longer. Let us know if you need any help with the electronics.

BTW, I would ignore using slip-rings on the prototype. Just attach a lever arm to the input shaft and measure rotation position with a dial indicator or a micrometer and see what kind of resolution you can get and how repeatable it is. You can also just phase-lock a high-frequency oscillator to the power line frequency and use your "trigger" pulses to count the oscillator pulses, running the motor from the power line frequency. Keep it simple until you have "proof of concept" working.

Hop
 
Last edited:
The input shaft sensor may not need to be mounted on the arm.

And using the same method, the ring light may not be necessary--but the sensor on the input shaft must be accurately triggered anywhere around its rotation, without blocking the stationary sensor, that is needed to accurately time the disk's complete revolution.

The main issue is how smoothly the motor can rotate, since if there is any kind of surging intervals present that would greatly diminish the possible resolution down to whatever frequency the surging is at.
 
Top