Aug 12th, 2019
How To: Design a 3D Printed Motor
An example to follow on how to design a 3D printed motor and all of the variables that go into them, where to find good resources, and which parts are known to have working models.
Getting Started
There’s a lot that you can learn about motors in general, but after designing my own BLDC Motor from scratch, I would say its really quite simple once you get the general idea figured out. If I were to rate the difficulty of this project, I would probably only give it 2/10.
Here is an outline of this blog post so you can either skip to see what I did, or dive into learning on your own:
To answer some of these questions and understand the content I would suggest referring to the resources I’ve given below and doing some of your own research online to get a good grasp of how these motors work before continuing to the rest of the post.
Resources
For this project I scoured the internet for a while looking for online resources but eventually settled on a book which helped a lot. I will say though that if you decide to do the same research I did, I would suggest reading up on the general idea behind brushless DC motors and how they work before diving into a book. With my limited knowledge on the subject I was only able enough to get a good idea of how to design motors, but not do any of the math behind them. I’m sure I could learn all of it with time, but this was only a week long project at best.
Here are the resources I referred to the most while deciding on the parameters for my motor:
- Wire Gauge Table
- Gauge Calculator
- Pole and Slot Combinations
- Emetor Winding Calculator
- Winding Diagram Calculator
- Christoph Laimer 3D Printed Motor
- Brushless Permanent Magnet Motor Design by Dr. Duane Hanselman (2nd Edition)
Parts
Listed below are the exact parts that I used in my project (minus other general house hold tools used during the making):
- 8MM Flanged Shaft Collar
- M4 Nuts
- M4 Threaded Rod
- 8MM Locker Collar
- 8MM Motor Shaft
- 688ZZ Bearings
- DC Speed Controller
- 60x10x5 Neodymium Magnets
- PETG Filament
- And, of course, a capable 3D printer. I own the MakerGear M2.
Design Considerations
Now that we’ve gone over the general resources above and have the parts needed, we can start on our design of the motor. There are 3 main parameters to consider: slots and poles, winding pattern, and torque vs speed. I will walk through each segment below and describe why I chose my specific parameters.
Winding Pattern
Concentrated Vs Distributed
So far I have only came across two types of winding patterns: concentrated and distributed. With a concentrated winding, all coils share slots with each other and are easier to wind. As for distributed windings, each coil has its own slot, effectively doubling the amount of slots you need per pole.
Personally, for my use and experimentation I went with a distributed winding as it looks nicer when finished and I personally feel that it adds more structure to the print and is easier to keep track of what order of the winding you’re on.
Winding Direction
Personally I have not looked into different winding directions as I wanted to keep things simple for my first motor. For this I would suggest reading the book suggested above and any others that you can find.
For the motor designed in this post all coils were wound the same direction for simplicity and ease of keeping track of where you are at.
Poles and Slots
There is a blog post here that outlines the basics of good slot and pole combos.
The general rule of thumb that I have found is to take the number of poles desired, divided by two, and then multiply by the 3. Given a motor consisting of 8 poles, we would end up with 12. Now depending on your wiring pattern discussed above, you will either need 12 slots for a concentrated winding or 24 for a distributed winding. Either way works and it just comes down to your needs and confines of motor application. This seems to be the most generic working formula for a general purpose motor and gives a balanced motor with sufficient torque.
Another note in the section is torque: the more poles you have, the more torque you will have. The trade off here is that your RPMs will also go down due to needing more modulations between your phases to turn the same distance around the shaft.
Torque and Speed
This ultimately comes down to your use case, how big your motor is, and how much copper you can fit into each slot. If you have a high amp system, you can choose to do a few number of windings with thick wire. On the other hand if you have a high volt system you can do many thin wires. I have not done a lot of research or testing in this department as the motor I built was purely to test designing motors and if I could get it to work. I would like to visit this again at some point and do testing between windings and wire thickness.
For my motor I based my design on the inverse of the motor designed by Christoph Laimer. He used 4 windings at 6 strands of 26 gauge wire. For mine I used 3 windings of 10 strand 24 gauge wire.
Any future designs I would suggest to opt for thicker wire and not move above 4-6 strands per bundle. I found it difficult to work with and had trouble keeping all the wires together. I have not played around with it yet, but 14 looks like it would be my optimal choice as one strand alone should be able to take around 15-30 amps. Relatively speaking, you can find some cheap bulk bundles of 14 gauge wire on Ebay as well.
If messing with the winding, copper used, or slot sizes is not an option. The next way to achieve better torque is simply better magnets or a better arrangement such as a Halbach array.
Modeling and Design
First off, if you would simply like to have my design and or follow along with it as reference. You can download the model below:
.blend fileNow that thats out of the way, lets go over the parameters I chose for my motor:
- Wire: 10 strand, 24 gauge
- Winding Type: Distributed
- Pole Count: 8
- Slot Count: 24
The first step is simply to model all the parts for reference and designing for clearance:
Given the parts I was using, the smallest sensible motor was to use 8 of the magnets in alternating fashion along the rotor. I simply used an array and curve modifier to rotate the magnet model around in a circle. The parameters for the offset can be adjusted to bring the magnets about 3mm apart and then simply sizing the curve down until the magnets were evenly distributed. This blender stack exchange was a good method to ensure the dimensions of our magnets don’t change. I simply designed the rotor to the diameter of our shaft, added 4 screw holes for our collar, removed space to save on printing, and then scaled the magnets up slightly and used the boolean modifier to cut them out of our rotor core.
Next is to design a winding core that can be wound from the outside and later inserted into our stator frame. This makes it much easier to handle all the winding, adds more strength, and ensures our wires don’t interfere with the clearance between rotor and stator. This was simply designing two slots (one with a raised channel to help with winding), then using an array modifier and an empty object to rotate them around the center. Found here is a very good example of how to achieve this.
I would suggest modeling your wires and using them as a guide for the size of the slots. I would definitely over estimate how much space is needed. I intended to wrap 4 times around each slot but only ended up with room for 3 windings.
After those two main things, its fairly simple: decide what design you want for your stator frame, make a lid, and print it all out after checking dimensions!
I would highly recommend downloading the blend file and checking my design out for yourself.
Assembly
Assembly is quite simple aside from the winding, so we’ll save that for last.
The easy parts:
Clean the threads for our stator frame and ensure the lid fits: I had trouble fitting things together, so you may want to play with the model or your print settings.
Assemble your rotor: The rotor should be a very tight fit and grasp the shaft enough that it could turn it by itself. The collars and bearings can then be assembled as seen in the blend file.
Insert Magnets: I ended up using a bit of hot glue to make sure they stayed in.
Wind the copper: Below I discuss the winding and management of the wires.
In the example above, you can see the basic wiring of the three phases. You’ll start with phase A and come down any of the slots, you’ll then skip over two slots and end up over from the initial slot by 3. You’ll wind this 3 times and then set aside your roll of wire and bring in your next one. For phase B, you will want to do exactly the same thing, except your starting point will be the second slot closest to the right inside phase A.
Phase C follows the same pattern as above, as do the rest of the windings after that. You simply start over and keep rotating through each phase as you go. You should end up with something similar to the figure “Finished Wind Core”.
This can then be assembled as shown in the image below and then slotted into the stator frame and sealed up.
Testing
Unfortunately at the time of writing I do not have the necessary equipment to get the specs of this motor. The motor runs quite well, the only issues are some vibration in the rotor at high speeds, and awful torque. My design includes holes to add screw weight to the rotor in order to balance it evenly so this should be a non issue and just requires some tweaking. As for the poor torque, I feel this could be fixed with a better controller that can handle a higher amperage and voltage.
Until I can fix these things and get accurate specifications for this motor, here is a video of it running!
Hopefully you found this post helpful! Let me know if you have any questions in the comments below!
What did you think?