Motors for Makers: A Guide to Steppers, Servos, and Other Electrical Machines (2015)
motorsformakers.com
motorsformakers.com
The challenge is that gear tooth geometry is often more than 2d, so laser cutting may not be the best solution for longevity. For a quick and dirty prototype it's certainly fine.
what i would really love is a set of compatible gears that work from the same shank and would allow easy construction of 1:2 or 1:4 or 1:8 and i could compose. maybe some 1:1 bevels too
For example a single gear shaper cutter is on average $700-$1000, and that's for a pretty standard and brand new cutter.
So without taking into account actual time to set up the machine, program it, and feed it material. You are already having a high overhead. So the only real way to deal with that cost is in volume or cost.
But when looking at the hobby market, volume is out of the question (who wants to buy >1000 of one gear for a personal project) and cost is out of the question ( if it's so expensive, I might as well 3D print or laser cut or waterjet some)
So it's an odd market to get into.
e.g. https://www.amazon.com/EVNSIX-Involute-Cutters-Milling-Machi...
https://www.aliexpress.com/item/1005004936458606.html
in Servos and steppers, there are also weird mixes of metric and standard sizes - e.g. Nema 34 motors often have 1/2" (12.7mm) shafts with 5mm keyways. No idea why.
Finding gears or pulleys for my purposes has 100% of the time resulted in some machining and lathe work to take off the shelf parts and make them work for my applications.
The classic Boston Gear Gearology course is no longer online at Boston Gear, but there's a copy here.[1] This gives a quick overview of the minimum you need to know about specifying gears.
I also can cut involute gears on the (mini-) lathe or mill. You want to practice this skill because being off just a little means you have a useless part. I have found 3D printing more convenient and forgiving.
Buy overpowered motors close to your need, and 'transform' them by software.
I already work with ESP32 and have done closed-loop DC motor stuff before, so I'm just curious if this is something I could drop in and be happy with.
They have a new line of closed loop steppers that would be better suited for that type of motion control. https://www.crowdsupply.com/iq-motion-control/iq-fortiq-bls4... These should provide very smooth and precise position control. These units haven't shipped yet but will be soon.
Contrast with Advanced Motion Controls where it took days of coding before I could even talk to the controller. Not to knock a-m-c: their product is very fast and precise, just far less software help to get going. Manuals are complete but extremely dense reading.
In the factory they magnetize them after assembly. If you take them apart the lower permeability of air causes the rotor to somehow lose much of it's magnetic field. Physicists please chime in, IDK why this happens.
We discovered this after machining some stepper backshells to accept optical encoders.
Is it possible that they magnetized the teeth of the rotor as a Halbach array?
If the magnet is made from a material with very high coercivity, the demagnetization may be negligible, but it is always recommended to store permanent magnets only with a piece of soft iron in contact with their N and S poles.
To reach the maximum remanence possible for a given material, a permanent magnet must always be magnetized after being assembled in the final magnetic circuit.
What I'm asking is: are Neodymium magnets NOT used in these applications?
In, say, a hybrid stepper the magnet is usually a wide thin round disc, sandwiched between two steel rotor lamination stacks. With the link below you can examine the BH curve and load line for a Ø20 mm N52 disc magnet, 2mm thick, at 20 degrees C. (It's not exact because this assumes a magnet in free space and neglects the steel of the rotor - but it's an illustration).
https://www.kjmagnetics.com/bhcurves.asp
You'll notice that the load line (which assumes the magnet is in free air) is already landing within the "knee" where the intrinsic magnetization starts dropping rapidly. That's working too far along the hysteresis curve, where the poles are already starting to flip and demagnetize.
However, if that magnet were surrounded by the steel of the stator, the high permeability of the magnetic circuit would put the load line at a steeper angle, where the magnetic field through the magnet would be much higher. Small changes in permeability around that point would not damage the magnet, but allowing it to fall all the way down below the knee-point would. It would not be completely demagnetized by that, but it would lose some of its original strength.
From the current source's point of view, the voltage across the resistor looks indistinguishable from a voltage source pushing back against it. Even though that voltage is coming from the resistive load, even though that voltage only exists across the resistor because of the 1 amp that the current source is itself driving, the load acts the same as a voltage source fighting to drive current backwards into the current source.
Imagine that your current source is not ideal: it has voltage limits. If you want to squeeze the most power out of your current source, you'll set the resistance up such that the resulting output voltage is near the limit of what your current source can handle while still supplying 1 amp. If you increase the resistance further, you'll exceed the voltage rating and possibly damage your current source. Then even if you return the resistance to a low level after that, you might not get 1 amp anymore from that damaged source.
All of this has been an analogy. Permanent magnets are a lot like non-ideal sources that cannot turn off. To squeeze the very most out of the magnet, you want to configure the load such that it's driving the magnet to its limits. When you remove the rotor from the stator, it now has to push magnetic field through air, rather than through steel. This increases the effective demagnetizing load working against the magnet (known as "reluctance", analagous to resistance). It's no different from the magnet's point of view than if you'd looped an electromagnet wire around it fighting against its magnetization. Permanent magnets are magnetized through a hysteresis process, and with a strong enough demagnetizing field, the internal domains can flip and the magnet gets demagnetized.
The first result is entire PDF though. I remember back in the old days being a poor student trying to save money spending hours trying to find scans of texts (or making scans in the library). Now it’s the first result in Google! Here’s hoping none of us need to make money through writing…
These days, Libgen is much more convenient.
With that said, I personally prefer buying an official book if available, so that the author can get their royalties. Many publishers even offer DRM-free ebooks.
i'd assume pretty soon hardly anybody can still make money through writing as it's easy to ask chatgpt "write me a book titled Motors for makers: A Guide to Steppers, Servos, and Other Electrical Machines".
or maybe i lack vision, maybe soon chatgpt can answer "should i use a stepper or a servo for my robot arm", or "how do i wire up stepper xyz on CNC machine ABC", or even "design a 3d printer with parts <$100 on ali express".
should i use a stepper or a servo for the robot arm i'm designing ?
Stepper motors are best for precise, open-loop control applications where position and speed can be accurately controlled. They are also a good choice for low-speed, high-torque applications. However, they tend to be less efficient than servo motors and can generate more heat.
Servo motors are best for closed-loop control applications where precise position, speed, and torque control are required. They are also more efficient than stepper motors and generate less heat. However, they tend to be more expensive and less precise than stepper motors.
Therefore, if precise control and speed of the arm are the most important factors, a stepper motor may be the better choice. But if overall efficiency and cost are more important, a servo motor may be a better option.
Robot arms should use harmonic drive gearboxes and servos, IMO. In practice, if the loads are not massively high, the important thing is closed loop steppers or servos, with accurate homing routines and good error handling.
3-phase servomotors (which used to be called "brushless DC servomotors") are much more available than they used to be. Drone motors are tiny 3-phase motors, and can be controlled as servomotors. The drone industry has done a lot to make such motors cheaper. The controllers are much smaller and cheaper now, too. They used to be the size of a book or worse. But they're still more expensive than they should be. I was once at a trade show talking to a rep from a motor company I'd used, and noticed they now sold controllers, too. He said, yes, they had to get into the business because others were selling controllers for 10x the cost of the motor, and they cost about the same to make.
For a long time, you had to bolt the encoder on the back of the motor, and encoders cost way too much. Motors with built-in encoders have become more common.
"RC servos" from model aircraft are cheap, but crappy actuators. They're advancing from 1970s pulse width modulation control to 1980s serial, and for under $20 you can now get some force feedback.
(somewhat related): We also had a velocity sensor on the legs -- a simple coil of wire and a magnet (but COTS). This gave us a Velocity signal directly -- rather than differentiating the position measurements. Velocity estimates made by differencing position measurements tend to be noisy, and filtering esp FIR filters introduces phase delay -- things you do not want. Lesson was: If at all possible, get a sensor that senses the quantity you want to sense, so you do not have to integrate or differentiate to get your desired quantity. It's the same reason we had a REAL gyroscope, and not a rate gyro (as in most MEMs IMUs -- in IMUs they call them 'gyroscopes' but they are actually 'rate gyroscopes' -- they only directly measure "theta-dot").
Yes. Which is why you see encoders for sale with a zillion points per rev. Not because the position is that precise, but so that you get enough events per second to calculate velocity. Actual tachometers, which are little DC generators, are sometimes used in servo systems, but not often. The last time I saw one, it was on a mainframe tape drive.
You do want velocity and force feedback if you're doing anything beyond pick and place in a totally controlled environment. Simple preprogrammed blind movement is most of industrial robotics, though. There are fancier systems, but most of them don't sell, because the engineering cost exceeds the value add. Sometimes you see a little force feedback to get something inserted properly, but more often you see some mechanical spring setup to get the same result.
I used to be into legged locomotion, but there's no profitable market. Many of the technical problems have been solved, though. The sensors and actuators are good enough. Electric motors finally are strong enough. (It's sad that Schaft went under. Google bought them and dumped them.)
Perhaps it is just being ackowledged as a time-less epic classic, I don't know.
Software I'm comfortable with, but I'm not really familiar with all of the physical components or how to put them together, when you might use each, etc...
Sparkfun, Adafruit, etc have some good stuff to get you off the ground and building projects almost right away. I think they're great "taster" in how circuits work and what some of the components are for.
Khan Academy has a course for EE, I haven't used it but I've used the site for other stuff like brushing up of my math.
Manufacturers actually make some really nice training materials, if you like analogue stuff, TI's Precision Labs series is a great resource for that. Analog Devices has an intro to electronics wiki series too. https://wiki.analog.com/university/courses/electronics/text/...
For a deeper look, an undergraduate electronics textbook will hold your hand from the very basics through to more advanced concepts. You can ignore some of the more advanced stuff like AC analysis and non-linear components for the most part (Unless they interest you!)
I learned from this book (https://www.pearson.com/en-gb/subject-catalog/p/electronics-...) and found it quite approachable in how it laid out the basics before contextualising them as systems.
Theres also the famous Art of Electronics which is a good book but personally feels a bit dated (even with the new edition) and really analogue heavy. A good reference manual though.
I find the best way to get started is to have an idea of something you want to make, then just buy what is needed for that.
Pick a microcontroller first. Arduino is popular and well documented. Raspberry Pi is overkill in my opinion. I find I like the NodeMCU. The mini D1 specifically as it as an ESP8266 for Wi-Fi support. If you need Bluetooth or whatever look for the ones you need. And use the Arduino IDE to program and code it. From there, most motors need a motor drive and there’s a million of those and it’s typically a separate board (breakout board). You want to stock up on breadboarding supplies.
Openbuilds.com store is great if you have the need and budget for this type of items. You can get anything to build most any type of contraption and generally know it’s going to fit together if you plan correctly.
YouTube is your best resource. I like reading text when it comes to software but reading electrical diagrams is hard for me and it’s so much easier if I can watch someone else. They often tell you the little gotchas too.
Amazon is good for almost everything else. If you’re like me you’ll end up placing 50 orders in the first 2 months. The hardest part is no retail store, even hobby shops, stock these types of items.
I will say I don’t find kits particularly helpful. They can be fun, but at the end of it you’ve just followed the directions and didn’t really learn anything. It’s like putting an ikea dresser together, if you’re trying to learn how to build furniture it’s not very helpful.
I don't think anyone will really have a problem wiring up an H-bridge or whatever to run a motor.
I'm personally wondering how to use the physical properties of a motor to like, move Magic The Gathering cards around, or other real world tasks.
It very quickly becomes a mechanical levers / pullies / motion kinda problem, rather than electrical. And I have no idea how to study mechanical engineering.
-------
Like: how does a damn printer pick up just one piece of paper? Yeah yeah, there is a motor involved, but it's not the hard or interesting part.
There has to be little rotating mechanical fingers, the shape of the basin, the winding path the paper takes internally. Who designed that? How do I study that stuff?
Though printers use rubber rollers on the top sheet in the pile so the friction between the rollers and sheet is greater than the friction between sheets and therefore only the top sheet is fed by the rollers.
Ah, the task of Singulation! The answer is "with a lot of difficulty" :-)
I used to work for a large corp whose specialty is building high-speed paper handling machines for offices and industry. It is a far harder task than it seems on the surface.
I would use a suction gripper on a 2-axis CNC platform.
> How do I study that stuff?
Take a printer apart to see how it works. The pros do it, too.
I hardly can find something worth looking at outside of ebay.
A lot of websites don't have public price lists but ask you to fill forms and receive quotes, but I don't want to order thousands of these (yet?)...
Finally, if you need gearboxes, stepper online has good ones that have held up well for me.
Source: have built/converted several CNCs.
in a typical 3 axis mill with 3 motors of hobby scale, you might buy a teknic IPC5 power supply and a a power hub and a bundle of cables and a backup 24v din rail supply for about $370 after tax/shipping. for a DMM DYN 4 setup, you just run AC power to drives with standard wire and terminals.
If your control box is tight, it can also pay to use AC servos because then you don't have the power supplies in your box. They may be more expensive / motor but can be way easier to deal with later.
Depends on what kind you are looking for.
In the hobby sphere I know about Servocity, Hobbyking, Pololu, adafruit.
If I were looking for something bigger, more professional range I would check if maybe Farnell or RS Components have it.
On the easy hobbyist route, you can get the parts from a nice online store with email support like DamenCNC [0]. You'll need to read the spec sheet to find the speed/torque/resolution though.
On the harder route, you collect a bunch of spec sheets, figure out what features you want, come up with a list of SKUs, find a seller on Alibaba, AliExpress or eBay and ask them for a quote. Not all of them will be responsive but I didn't find it too hard.
For a vague idea of the price, you can usually get the order of magnitude from the listings on the sites I mentioned.
Ultimately though, servos are treated as industrial equipment and take a lot of work for a hobbyist to figure out. If you're not buying a pre-made kit sold by a hobby store, my suggestion is that you should know the manual like the back of your hand and be able to clearly visualise the full installation process step-by-step before you buy anything, as there's a lot of stuff that can trip you up and a lot of ways you can even kill yourself. Servo drivers don't have nice AC wall plugs for example, they have screw terminals, so you need to be able to wire mains voltage electricity without giving yourself an electric shock or causing a fire. The manuals usually say you should get a professional electrician to handle it. All the cables are non-standard and usually per-series so you need to make sure you buy the right ones. The list goes on...
"Surely I just feed it electricity and it spins" you might think but unfortunately it's not that simple. These motors are deceptively complex things.
As others have mentioned though, Teknic is a thing. Those motors are much simpler, they're designed as drop-in replacements for stepper motors and they have an easy to use online store.
I'm not a fan though, for a similar dollar amount and several orders of magnitude more stress and time, you can have high-end A3 servos from Delta with more features than you'll ever need. The encoder is 24-bit! You'll never be able to accurately use that resolution without precision engineering and temperature control but it's nice to know it's there.
[0]: https://www.damencnc.com/en/ac-servo-drive-400w-asd-a2-0421-...
That said, they are simple because they are limited. They give you only 3 inputs: Enable, Step, Direction. they give you one output called "High level feedback" and BOY OH BOY is it high level. it is basically only useful for basic error detection. In the software you have pretty cool tuning options - a visual oscilloscope, the RAS feature (which is really good for DIY CNC machines), and encoder resolution selection.
A DMM, or especially a Delta, will give you a lot more IO to the motors, and a lot more stuff to play with. E.g. direct access to the encoder position (even if the motor is not active), many more error states, warnings, etc. and some more condition specific tuning.
Last bit on clearpaths. I've been talking about the SDSK series motors. those are controlled from an external controller through pulses like stepper motors. They have other series of the same motors that interface differently. Specifically, they have some motors designed to interface with microcontrollers and have a really nice set of C libraries for doing all the basic motor control stuff. If you are building things like conveyor belt automations or material handling stuff, the clearpaths are very much an "easy button" compared to nearly every other kind of motor on the market IMO.
I did the drawings of several drones and robot arms, and accurately computed the needed torque. I target specific precisions for several applications.
I’m a mathematician so the math is straightforward to me though as you said, it’s super easy to overlook something without the appropriate experience, especially since it’s cross disciplinary (ME, EE, SE… etc. All at once yeah!)
I found these for instance on eBay:
* https://www.ebay.com/itm/393967889048
* https://www.ebay.com/itm/275442630163
I can get from them more than 120Nm with the appropriate planetary gearbox without sacrificing too much speed and even more with gas springs compensating the static loads… theoretically… but I’m a bit skeptic about the announced 12Nm and the 51200microsteps/rev resolution for instance.
I think it’s better (in my case) to have access to maximum IO on the encoder side.
I’ll double check the electrical installation with a pro for sure, I already did a mistake in the past that almost destroyed the house boiler in the middle of the winter… lesson learned.
Proper AC servo motors like the A3 series from Delta are - as far as I understand - able to apply their specified torque with "infinite" resolution, in practice limited primarily by the encoder.
In robotics though, BLDC motors are often used. You might want to look into ODrive [1].
Make sure you're choosing an appropriate gearbox too. A planetary gearbox has some amount of backlash associated with it, often around 10 arcmin from what I've seen in data sheets. If that's inappropriate for you, look into harmonic drive. Much more expensive but for a reason.
[0]: https://www.machinedesign.com/archive/article/21812154/micro...
Proper servos with high torque are quite expensive. I wanted to keep the project under a certain amount to scale it.
With the springs to compensate the static loads (gravity) I can use weaker servos but I didn’t yet completed the “sensitivity table” of the generated angular momentums.
Yes indeed, the ~10arcmin should represent something like 5mm at about 1m distance. Plus the ~30mm of the 1.8deg/step again at 1m or 3mm with 10:1 gearbox.
I thought I could tackle it by using more expensive parts (but weaker) at the end part of the arm for instance and write a software to orchestrate all the 6motors together.
I didn’t know about the harmonic drive I’ll look into it.
Thank you again for the references.
But steppers won't necessarily save you either, because that torque specification only applies to full steps.
Harmonic drives are great but unfortunately quite expensive.
What you might want to do is go cheap on most of the components and add a decent-ish encoder and use software to compensate for the imprecision. CUI's AMT series of encoders is widely available and comes with up to 14-bit resolution. I believe this can be a pain in the arse to get right but it sounds like you're comfortable with maths so it might work well for you.
On the one hand there are stepper motors which can withstand lots of radial load thanks to steel shafts and bearings. They also provide some relative position control and no absolute position feedback (at hobbiest prices).
On the other there are servos, which typically have weak components. Plastic gears, shafts and bushings which cannot withstand radial load. But they do allow control of absolute position.
For many robotics projects, a hobbiest has to choose between servos which are physically weak, or steppers which can tear the project apart if they don't home correctly. And of course the hobbiest has to roll their own safety/endstop system every time.
I'd love something physically like a Nema 14/17 stepper but with a servo interface. However I can't find them anywhere at hobbiest prices. Why are there thousands of good value steppers and thousands of models of servos, but nothing in between, I wonder?
RC servos typically have an analog or PWM signal interface. That would usually not be accurate enough for an industrial servo in positioning mode. Industrial servos, like steppers, have a digital interface which might be a serial format or STEP/DIR pulse train. Some drives will accept a -10V to +10V analog signal for velocity or torque control mode.
Anyway, here are some Nema 14/17-sized industrial servos with online pricing, which might be what you're looking for?
https://en.nanotec.com/products/2262-smart-servos-motors-wit...
https://catalog.orientalmotor.com/viewitems/l-categories-ser...
Or many companies offer stepper motors with built-in encoders and controllers to prevent missed steps:
https://catalog.orientalmotor.com/viewitems/az-series-absolu...
The cheapest of RC servos have a lifetime of a couple hundred hours max, even at less than half of their max torque (if their manufacturers would even specify what is the rated torque). I have one fail after two days of operation with a full rotation every 15 seconds with very light load. There are of course properly built RC servos- with serial communication for feedback, metal gearbox, brushless motor- but those start at ~50EUR-100EUR.
IMO the best bet for hobbyist is NEMA17/14 motor with a driver that has rotary magnetic encoder on them- there are cheap and open source options for that.
Next best thing would probably be a BLDC motor (optionally- geared) with SimpleFOC.
Might put this higher up in your comment. Dynamixel robotics servos exist, but at Dynamixel prices.
Weird stuff has weird prices. If anyone made a useful home robot that sold millions of units then robotics servos would get rapidly cheaper, but that hasn't happened yet.
They do sell a blank chassis for classroom stuff: https://edu.irobot.com/what-we-offer/create3
There are a whole set of projects I’ve just not tinkered with because of my lack of knowledge about motors.
For example, I want to make my bicycle hook system run on a motor. But winches are too strong. Don’t need something to pull 1500 lbs. just 100 lbs.
All I know is that it should probably be low rpm and higher torque.
Another is to play with something like curtain opening motors but as long as they are as quiet as possible.
Hope this resource helps with the first principles understanding of how to pick motors, etc.
I suspect with a smart pulley design you could get that down significantly as well
Say I want to hoist a 30 lb bicycle to hang on a 10 foot ceiling. The winch just needs to pull the rope (the pulleys are already installed).
For that, how to go about finding the smallest motor needed (that's also quiet, I love when motors are generally quiet and don't whine). DC Stepper motors seem like the right solution there.
I would suggest to add an affiliate tag to the Amazon link. I once heard that authors make more from the affiliate program than from the book itself. Maybe a modern anecdote but yeah... costs you nothing. As you don't get rich by the book itself, atleast you get some few dollars through the link!
You can interface via UART and CAN and a bunch of other analog/digital options as well
For a DC motor, they are rarely connected directly to the microcontroller. But you can put a diode across the motor terminals to minimise any back EMF.
A stepper would typically have a driver circuit between the microcontroller and the motor.
A small servo would usually just need one signal connection to the microcontroller, there's no back EMF via that path. You would of course also need common ground.