Video: Carl Bugeja
I started out by just wanting to make a very small drone. But I quickly realized that there was a limiting factor in just how small and light I could make any design: the motors. Even small motors are still discrete packages that have to be attached to all the other electronic and structural elements. So I began wondering if there was a way to merge these elements and save some mass.
I drew inspiration from how some radio systems used antennas made from the copper traces on a printed circuit board (PCB). Could I use something similar to create a magnetic field strong enough to drive a motor? I decided to see if I could build a motor of the axial flux type using electromagnetic coils fashioned from a PCB’s traces. In an axial flux motor, the electromagnetic coils forming the motor’s stator are mounted parallel to a disk-shaped rotor. Permanent magnets are embedded in the disk of the rotor. Driving the stator coils with alternating current causes the rotor to spin.
The first challenge was making sure I could create enough magnetic flux to turn the rotor. It’s simple enough to pattern a flat spiral coil trace and run current through it, but I limited my motor to a diameter of 16 millimeters, so that the overall motor diameter was comparable to that of the smallest off-the-shelf brushless motors. Sixteen millimeters meant I could fit only about 10 turns per spiral and 6 coils in total, arranged under the disk of the rotor. Ten turns just isn’t enough to produce a sufficient magnetic field. But the nice thing about PCBs is that it’s pretty easy today to make one with multiple layers. By printing stacks of coils, with coils on each of four layers, I was able to get 40 turns per coil, enough to turn a rotor.
A bigger problem emerged as the design progressed. In order to keep a motor spinning, the dynamically changing magnetic field between the rotor and stator must be synchronized. In a typical motor that’s driven by alternating current, this synchronization arises naturally due to the arrangement of the brushes that electrically bridge the stator and rotor. In a brushless motor, control electronics implementing a feedback system are required.
Pile Up: Each layer of the motor’s printed circuit board has a set of coils, stacked on top of each other and interconnected to make continuous traces Photo: Carl Bugeja
Turn, Turn, Turn: The finished four-layer printed circuit board (top). Pulsing these coils drives a 3D printed rotor with embedded permanent magnets (middle). Although not as strong as a traditional brushless motor, the PCB is cheaper and lighter (bottom). Photos: Carl Bugeja
In a previous brushless motor driver that I’d built, I measured the back electromotive force as feedback to control the speed. Back EMF is produced because a spinning motor acts like a little generator, inducing a voltage in the stator coils that opposes the voltage used to drive the motor. Sensing the back EMF gives feedback about how the rotor is spinning, and lets the control electronics synchronize the coils. But in my PCB motor, the back EMF was too weak to use. So instead I mounted a Hall-effect sensor, which can measure the change in a magnetic field directly, to gauge how rapidly the rotor and its permanent magnets were spinning above the sensor. This information was then fed into the motor control electronics.
To make the rotor itself, I turned to 3D printing. Initially, I made a rotor that I fitted onto a separate metal shaft, but then I simply began printing the snap-fit shaft as an integral part of the rotor. This reduced the physical components to just the rotor, four permanent magnets, a bearing, and the PCB that provides both the coils and structural support.
I soon had my first motor up and spinning. Testing showed it could deliver a static torque of 0.9 gram-centimeters. This wasn’t enough torque to meet my original goal of building an integrated drone motor, but I realized that the motor could still be used for propelling small and inexpensive robots along the ground on wheels, so I persisted (motors are typically among the most expensive parts of robots). The printed motor can operate with voltages from 3.5 to 7 volts, although it does heat up noticeably at higher voltages. At 5 V, its operating temperature is 70 °C, which is still manageable. It draws about 250 milliamperes.
Currently, I’ve been focusing my efforts on increasing the torque of the motor (you can follow my ongoing efforts on Hackaday). I’ve been able to almost double it by adding a ferrite sheet to the back side of the stator coils to contain the coils’ magnetic field lines. I’m also looking into designing other prototypes with different winding configurations and more stator coils. In addition, I’ve been working on using the same techniques to build a PCB linear actuator that can drive a 3D-printed slider down a row of 12 coils. And I’m testing a flexible PCB prototype that uses the same printed coils to perform electromagnetic actuation. My goal is—even if I can’t take to the sky yet—to start making new robots with smaller and simpler mechanisms than is currently possible.
This article appears in the September 2018 print issue as “The Printable Motor.”
About the Author
Carl Bugeja is an embedded-software developer based in Malta who works on open-source-hardware robotics projects in his spare time.