Delicious Axial Flux Flapjack


We’re back to über-tech­ni­cal posts again. Today I’m intro­duc­ing my current project, a new beetleweight (3lb) combat bot called Flap­jack.


When complete, it will be a super-compact shell spin­ner where the shell is a unique brush­less motor. Here’s the skinny:

  • Shell 140 mm in diam­e­ter constructed from steel disks sepa­rated by aluminum spac­ers and tool steel teeth
  • Custom axial flux 3-phase brush­less motor built into the shell, driven by a stator made up of spiral coil traces on printed circuit boards (PCBs)
  • Elec­tron­ics pack­age featur­ing High Fruc­tose, my custom controller inte­grat­ing dual brushed direct current (DC) motor drivers, a three-phase brush­less motor driver, and gyro­scope steer­ing correc­tion
  • Four Sanyo-style Pololu gear­mo­tors driving water­jet-cut ultra high mole­c­u­lar weight (UHMW) poly­eth­yl­ene wheels with neoprene tires
  • Light, compact chas­sis made from 3D printed ABS, water­jet-cut poly­car­bon­ate and 7075 grade aluminum
  • Lithium ion poly­mer battery provid­ing up to 300 W of power

After watch­ing Dragon*Con, Atlanta Mini Maker Faire, Geek Media Expo, and now Motorama, I’ve gotten just a bit bored of ultra-destruc­tive spin­ning kinetic energy weapons. Wait, nah; the weapons are always a blast to watch in the arena. What I’m really bored with are the tiny incre­men­tal tweaks made to very solid designs that make weapons and armor harder, faster, and bigger, but only in itty bitty steps that aren’t rele­vant to anyone but other builders.

If I was going to get into the battle­bots game, then I wanted to build a game changer. Or at least an attempt at a facsim­ile of a photo of a game changer. And it’s gotta be a real crowd pleaser too; my previ­ous bot and my first real entry into the hobby, Gyro King, while destruc­tive and nearly bullet­proof, was just not that inter­est­ing to watch1.

So I figured I could either produce a cool, effec­tive design that doesn’t use rota­tional kinetic energy as a weapon (very unlikely) or I could try to make a Great Leap Forward in spin­ner design that makes previ­ous hard hitting bot matches look like church. While I’ve actu­ally achieved neither of those design goals, at least I drew up some­thing where a comi­cally enor­mous propor­tion of the weight, power, and space budgets are reserved by a bizarre-look­ing shell.

Let’s look at a cutaway view of Flap­jack.


Here you can see two of the 28 3/4″ × 1/2″ × 1/4″ neodymium-iron-boron (NdFeB) magnets arrayed between low carbon 1018 steel plates, creat­ing a 14-pole axial flux rotor. Also, check out the stain­less steel stand­offs used to support the inter­nal chas­sis as well as serve as shafts for the weapon’s bear­ings to ride on. In addi­tion, the shell has a 30mm diam­e­ter double-row angu­lar contact bear­ing that can take loads in axial direc­tions (up and down in this case).

Nearly every­thing but the fasten­ers, stand­offs, and magnets are designed for 2/3-axis water­jet cutting. The other excep­tions include the lithium poly­mer battery (in blue), which had more or less deter­mined the over­all height and diam­e­ter of the shell. The stator (in green), a printed circuit board milled out from copper-clad fiber­glass lami­nate, was designed to fit in the airgap of the rotor. Finally, the space inside of the chas­sis was filled by a 3D printed block (in yellow) hold­ing down the gear­mo­tors, battery, and High Fruc­tose (not pictured).

Now, I was rush­ing (along with the rest of the Geor­gia Tech crew) to get Flap­jack done in time for Motorama 2013, which was last week­end. And by rush, I mean I really beasted hard­core. High Fruc­tose went from raw parts outta Digi-Key and PCB Unlim­ited to func­tional motor controller hooked up to a Hobby King radio set in about four days, and Flap­jack went from fresh plates of mate­r­ial from McMas­ter-Carr and Online Metals to a driving 1290 g bot in about three days. Those time­frames are over­lap­ping, too2.

Docu­men­ta­tion and rigor suffered. All I have to justify the designs are barely compre­hen­si­ble scratches in my note­book. Almost all the hard parts were basi­cally guessti­mated. Blog­ging about Flap­jack is my attempt to go back and legit­imize some of the horri­bly back-of-napkin­loped numbers I used. Jeff said it best when he pointed out that I basi­cally built a legit-ish bot using ass(bot) tech­niques.

I’ll start with the glar­ingly obvi­ously ass part, the perma­nent magnet core­less axial flux synchro­nous motor shell and printed spiral wound trace flux link­ing outer loops, known for short as



You can see in the cutaway that the rotor, while strictly speak­ing a shell, is designed more like a ring spin­ner. So, it really had to respect the outer diam­e­ter of the chas­sis “puck,” which was about 100mm. Given that constraint as well as the weight budget and the magnets avail­able to me, I went with a 14-pole rotor where the lengths of the magnets were lined up tangen­tially.

Two rotor plates with magnets facing "outwards" so that they press against the steel as the epoxy cures

Sadly, I was only able to use 1/8″ of steel for my magnet back iron. Accord­ing to my FEMM simu­la­tion (and real life test­ing), this means a few flux lines will leak out into the world, suck­ing up filings off of other bots and other­wise not contribut­ing to torque produc­tion.


Flux density in the 1/4″ airgap is about 0.8 Tesla, and increas­ing the back iron thick­ness to 3/16″ increases this by more than 10%, as does decreas­ing the airgap to 1/8″. Sadly, the former would make the weapon weigh over 2.5 pounds, while the latter compro­mises the low-hitting abil­ity of the shell and toler­ance to defor­ma­tion.

Going with a 14-pole, 12-coil design is great for iron-stator motors because it kills cogging torque, but in this core­less motor it just provides a conve­niently high Wick­elfak­tor accord­ing to the Bewick­lungsrech­ner3, which helps to produce more torque with less current (I think). This comes into play because I figured that with my P.S. WTFLOLs, other­wise known as PCB trace wind­ings, I won’t be able to have many turns and thus link a whole lotta flux. Instead, I’ll have to rely on my coil config­u­ra­tion & termi­na­tion as well as a high airgap flux density to get a reason­able amount of torque. Speak­ing of wind­ings…

What the Flux Linking Outer Loops?

Occa­sion­ally you have a brain­fart and carry it way too far. This whole robot is like that, except worse, because every compo­nent was taken the whole nine yards in terms of stupid.


Yeah, that happened. It was formed by a bunch of EAGLE commands gener­ated in an Excel work­sheet that I scripted (sigh). I then milled it out on the GVU Proto­typ­ing Lab’s LPKF S62 circuit plot­ter:


Some­thing of note here is that the board is actu­ally 5 oz/ft² copper clad, which is to say that the copper on it is 175 µm thick as opposed to typi­cal copper clad where it’s just 1 oz/ft² or 35 µm thick. The trace width is 1.7 mm, so if I cram 10 A through the coils, that’s about 34 A/mm² of current density, which is incred­i­bly shady.

Also, I measured four of the coils to be 14 milliohms on each four-turn4 side, with about 0.6 µH of induc­tance. Since the board is double sided (the other side is just the mirrored coil spiralling in reverse), and doubling turns (i.e. one coil on top of another) quadru­ples induc­tance, then each full double-sided coil will have 2.4 µH of induc­tance with 28 mOhm of resis­tance.

I’ll be connect­ing four of these in series5, so in a wye termi­na­tion, I’ll have 0.226 Ohms of phase-to-phase resis­tance and 19 µH of induc­tance (I think; I don’t really know how to combine induc­tances in this case).

With induc­tance that low, I’m really think­ing about adding exter­nal induc­tors to smooth out the current ripples in the motor, since other­wise Flapjack’s motor looks more like straight strips of copper and less like induc­tive coils.

Sadly, it’s also a (10 A)² × 0.226 Ohm = 22.6 W loss to just copper heat­ing, and that’s not account­ing for eddy current losses from using flat copper oriented the wrong way and not clear­ing excess copper off of the board. With that effi­ciency (80% max at 111 W input and 59% at 222W input), Flap­jack won’t be driving solar cars any time soon. At least as a core­less motor, I won’t have any stator losses due to magnetic hystere­sis, iron eddy currents, etc.

Aside from that, I just feel bad for completely destroy­ing 10 mil and 15.7 mil end mills at the GVU while milling my ridicu­lous 5oz boards. Notice the differ­ence in qual­ity between that of a fresh end mill (from where I started on the board) and when it got a little less fresh (towards the end of the milling):

Trace beginTrace end

WTFLOL indeed.


I didn’t really feel like setting up a fancier simu­la­tion for this thing, since there’s so much fudge to begin with and my controller has even less rigor applied to its numbers6. Instead I’ll just napkin it up here.

Running 10 A through eight of the twelve eight-turn coils yields, through nibbler (NIBLR):

\tau = 4 \times 4 \times 8 \times 10 \mathrm{A} \times 0.8 \mathrm{T} \times 8 \mathrm{mm} \times 60 \mathrm{mm} = 0.49 \mathrm{N \cdot m}

If you’re on top of this, that’s a Kt of 49.2 millinew­ton-meter/A, or a Kv of 20.3 radian/second/V, also expressed as 194 RPM/V. Now, since I’m using spiral trace coils that don’t link flux nearly as well as normal circu­lar-section wire wound coils, I’m just going to give my torque constant a fudge factor of 0.7, which makes the Kv 1.43 times higher.

Now we’re talk­ing about a motor putting out 0.34 Nm of torque at 10 A and spin­ning 3080 RPM at no-load on a 11.1V battery (three-cell lithium). I know from Solid­Works that all the spinny parts of the shell7 weigh just about 2 lb and has a moment of iner­tia of 3.32 g-m².

If I can control current (and thus torque) to be constant, then I can get to my no-load speed in:

\cfrac{51.4 \frac{\mathrm{rad}}{\mathrm{s}} \times 3.32 \mathrm{g \cdot mm^2}}{0.34 \mathrm{N \cdot m}} = 3.1 \mathrm{s}

Also, the weapon kinetic energy would be:

\frac{1}{2} \times 3.32 \mathrm{g \cdot mm^2} \times \left(51.4 \frac{\mathrm{rad}}{\mathrm{s}}\right)^2 = 173 \mathrm{J}

which is compa­ra­ble to just drop­ping the whole robot 5 stories.

Current progress

I actu­ally beasted this thing to 90% comple­tion in time for Motorama, but then blew it up the night before in the hotel (details later). With that dead­line over, I’m taking some time to relax and go through some details with more rigor (or at least docu­ment the lack of rigor where it exists).

Pancake progress

With that said, it drives pretty well, the stators are milled and ready to be wired up, and I just need to make myself a little jig to hold the stator and rotor for test­ing (the actual chas­sis isn’t easy or safe to grab onto, for obvi­ous reasons).

Await my next post on the elec­tron­ics pack­age I whipped up for Flap­jack, High Fruc­tose. If you’re really impa­tient, you can check out High Fructose’s GitHub firmware repos­i­tory, hfcs (High Fruc­tose corn soft­ware).

  1. Nor to pilot, really, since the drive system was fully auto­mated and the oper­a­tor just pushes a single joystick []
  2. Plus my laptop was out of commis­sion for three days, I took daily show­ers, and I managed to do laun­dry four hours before we left on our road trip to Penn­syl­va­nia []
  3. Relax, I have no idea what I’m talk­ing about either []
  4. “Turn” is used loosely here since it’s a fat spiral coil and the active lengths aren’t really equal []
  5. Prob­a­bly; putting them in a 2S2P config­u­ra­tion puts half the current in each coil, solv­ing the current density issue, but prob­a­bly puts this motor out of High Fructose’s class []
  6. Hell, I didn’t even guessti­mate anything for High Fruc­tose; I just put some compo­nents down and said it looks about right []
  7. Two rotor plates, 28 magnets, two UHMW magnet retain­ers, two tool steel teeth, two aluminum tooth-like spac­ers, eight 8-32 screws, and a UHMW bear­ing retainer []