I designed and 3D printed a Brushless Direct Current (BLDC) motor, and used an Arduino to control the motor. All parts of the motor, excluding magnets, solenoid wrapping wire, and hall effect sensors, were printed with a Makerbot Replicator 2. The video shows the completed working motor.
This instructable is available as a pdf here along with cad files and the program for motor control.
Motor control program for arduino:
Feel free to use the files, comment, change the design, or do whatever you please with this!
Step 1: Materials and Tools
A 3D printer, an arduino microcontroller, and access to basic electronic tools like a multimeter, an oscilloscope, a power supply, and electrical components are necessary for this project. The complete list of parts and tools I used.
Table 1 shows the cost to build the motor. Electrical components such as resistors and capacitors were not included as the cost was negligible relative to the total cost of the motor. The total cost to build the motor, excluding the Arduino microcontroller and the batteries was $27.71. It should be noted that cost reduction was not a top priority, and optimization could result in a reduced cost of production.
Step 2: Motor Design
Design specifications for the brushless DC motor were established based on the principle that the motor should be easy to construct with readily available parts, and should provide qualitative performance similar to many commercially available DC motors, such as those used in small electric fans.
The motor was designed as a 3-phase, 4-pole brushless DC motor with 4 - N52 neodymium magnets on the rotor, and 3 wire wrapped solenoids connected to the stator. The brushless design was chosen because of the increased efficiency, reduced number of mechanical parts, and lower friction. The N52 magnets were chosen for their strength, price, and easy availability. Brushless motor control is discussed further in the ‘BLDC Motor Control’ section. Table 2 shows a comparison of brushless and brushed DC motors.
The solenoids are powered at 8-12 volts and controlled by an electrical switching circuit. 3 hall effect sensors will provide location information telling the circuit when to perform commutation.
The following equations were used to estimate the performance of the motor and therefore create the initial motor design.
These equations are messed up if you want to see them take a look at the pdf linked in the intro.
The force between two magnets separated by some distance can be roughly approximated by the following equation: F=BmAmBsAs/4g2
where B is the magnetic field density at the surface of the magnet, A is the area of the magnet, and g is the distance between the two magnets. Bs, the magnetic field of the solenoid is given by: B=NIl
where I is the current, N is the number of wraps, and l is the length of the solenoid. In the motor the max torque was estimated as: t=2Fr
where r is the radius, chosen to be 25 mm.
Combining these equations a linear expression relating the output torque to the input current can be obtained for a given solenoid geometry. f =2rBmAmAsN4g2lI
The desired torque constant was chosen to be 40 m-Nm/A based on the desired performance relative to other available motors .
Step 3: BLDC Motor Control
BLDC motor control requires an electronic control circuit. To rotate the BLDC motor, the windings must be energized in a defined sequence depending on the position of the rotor. Rotor position is sensed using Hall effect sensors embedded into the stator. Figure 3 shows a block diagram of the BLDC motor control scheme.
The Hall sensors, which are embedded into the stator in line with the three motor windings, provide a digital output which corresponds to whether a north or south pole is closest to the sensor. Based on this digital output, the microcontroller provides the commutation sequence to the motor driver, which energizes the corresponding windings. Each commutation sequence has one of the windings energized to positive voltage, one to negative, and one is unenergized. The commutation sequence consists of six steps which relate the Hall sensor outputs to which windings should be energized. An example for clockwise rotation is given below in table 3.
Step 4: Mechanical Design
The final design consists of 4 distinct parts; the bottom enclosure, rotor, top enclosure, and solenoids, shown in figure 4 below.
Figure 4: (a) Bottom enclosure (b) Rotor (c ) Solenoid (d) Assembled motor (e) Top assembly. All parts are displayed in the orientation in which they are printed. The bottom enclosure, shown in figure 4 (a), makes up the bottom cap of the motor. The rotor, shown in figure 4 (b), contains the 8 magnets, 4 used to drive the motor and 4 used to provide position data to the hall effect sensors. The rotor slides onto the bottom enclosure in a journal bearing style as shown in figure 4 (d).
The top enclosure, shown in figure 4 (e), fits over the rotor and couples with the bottom piece to enclose the motor. The top enclosure contains the 3 hall effect position sensors, as well as triangle cutouts which allow for the solenoids to snap into the enclosure.
The solenoids, shown in figure 4 (c), have triangles placed in their center to allow them to be lined up with the holes in the top enclosure, which themselves are vertically lined up with the rotor magnets.
Step 5: Printing
All of the parts previously described were printed on the Makerbot Replicator 2. The parts can be printed all at once, and wide variety of printing parameters will most likely lead to satisfactory results. The final product was printed in clear PLA plastic at 20% infill with a 0.20 mm layer height.
It was found through trial and error that pieces meant to join together without sliding such as the top and bottom enclosures should be printed at 0.25 mm added on all sides, while pieces meant to slide freely such as the rotor should be printed at 0.4 mm space on all sides.
The magnets and hall effect sensors were inserted into assembly by designing a correctly sized internal void in the appropriate place, printing to just below the top of the void, pausing the print and inserting the device, and then continuing the print. The appropriate pause heights are given in table 4 below.
The 3D printed pieces can be removed from the Makerbot, and can be fit together after removing excess plastic from the raft. The pieces should fit together smoothly without much effort.
Solenoids The solenoids require the most post-processing. Each solenoid should be wrapped ~400 times with 26AWG magnet wire. This process can be expedited by turning the solenoids on a drill. Make sure that each solenoid is wrapped in the same direction so that the resulting electromagnet is of the same polarity. Once the solenoids are prepared they should be snapped into the top enclosure. Superglue can be used here to reinforce the connections.
Step 6: Electronics
The circuit components should be wired together according to the following schematic. VCC for the L6234 motor driver can be anywhere from about 7 V up to 42 V, but I would recommend running this motor at no higher than 12ish V.
Step 7: Control Software
The program written for arduino to control the commutation sequence can be found at https://github.com/pi-track/3Dmotor. The program was adapted from this instructable.
Step 8: Future Work
Future improvements to the motor can be broken down into 4 main categories; mechanical optimization, efficiency improvements, control improvements, and applications. The first step to any future work should be to perform testing on the torque-speed and efficiency characteristics of the current motor.
The control of the motor could be implemented using a hardware approach rather than a software approach, which would significantly reduce the cost and size of the implementation. A simple description of how this could be accomplished is discussed here - http://www.instructables.com/id/BLDC-Motor-Control-with-Arduino-salvaged-HD-motor/step12/An-Alternate-Hardware-Based-Approach-to-Commutatio/
The mechanical design of the motor has many areas where it could be optimized. The solenoids could be made to simply snap into the body of the motor. The motor could be reduced in size significantly. The position magnets could be vastly reduced in size to reduce the moment of the rotor. The motor design could potentially be parameterized to be printed at a number of different sizes.
The efficiency of the motor could be optimized by examining the torque-speed characteristics at a range of applied voltages.
If a fully optimized 3D printed motor could be parameterized to be printed at a number of different sizes and ratings, the applications would be very wide ranging.
Step 9: Sources/Further Reading
Here is my evernote notebook with lots of articles and links that I researched while doing this project. https://www.evernote.com/pub/pi_track/seniordesign
Some important sources.
 Brushless DC Motor Fundamentals - Padmaraja Yedamale - http://electrathonoftampabay.org/www/Documents/Mo...
 Understanding DC Motors - http://www.me.umn.edu/courses/me2011/arduino/tech...