Delicious Axial Flux Flapjack


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


When com­plete, it will be a super-com­pact shell spin­ner where the shell is a unique brush­less motor. Here’s the skin­ny:

  • Shell 140 mm in diam­e­ter con­struct­ed from steel disks sep­a­rat­ed by alu­minum spac­ers and tool steel teeth
  • Cus­tom axi­al flux 3-phase brush­less motor built into the shell, dri­ven by a sta­tor made up of spi­ral coil traces on print­ed cir­cuit boards (PCBs)
  • Elec­tron­ics pack­age fea­tur­ing High Fruc­tose, my cus­tom con­troller inte­grat­ing dual brushed direct cur­rent (DC) motor dri­vers, a three-phase brush­less motor dri­ver, and gyro­scope steer­ing cor­rec­tion
  • Four Sanyo-style Pololu gear­mo­tors dri­ving water­jet-cut ultra high mol­e­c­u­lar weight (UHMW) poly­eth­yl­ene wheels with neo­prene tires
  • Light, com­pact chas­sis made from 3D print­ed ABS, water­jet-cut poly­car­bon­ate and 7075 grade alu­minum
  • Lithi­um ion poly­mer bat­tery pro­vid­ing up to 300 W of pow­er

After watch­ing Dragon*Con, Atlanta Mini Mak­er Faire, Geek Media Expo, and now Motora­ma, I’ve got­ten just a bit bored of ultra-destruc­tive spin­ning kinet­ic ener­gy weapons. Wait, nah; the weapons are always a blast to watch in the are­na. What I’m real­ly bored with are the tiny incre­men­tal tweaks made to very solid designs that make weapons and armor hard­er, faster, and big­ger, but only in itty bit­ty steps that aren’t rel­e­vant to any­one but oth­er builders.

If I was going to get into the bat­tle­bots game, then I want­ed to build a game chang­er. Or at least an attempt at a fac­sim­i­le of a pho­to of a game chang­er. And it’s got­ta be a real crowd pleaser too; my pre­vi­ous bot and my first real entry into the hob­by, Gyro King, while destruc­tive and near­ly bul­let­proof, was just not that inter­est­ing to watch1.

So I fig­ured I could either pro­duce a cool, effec­tive design that doesn’t use rota­tion­al kinet­ic ener­gy as a weapon (very unlike­ly) or I could try to make a Great Leap For­ward in spin­ner design that makes pre­vi­ous hard hit­ting bot match­es look like church. While I’ve actu­al­ly achieved nei­ther of those design goals, at least I drew up some­thing where a com­i­cal­ly enor­mous pro­por­tion of the weight, pow­er, and space bud­gets are reserved by a bizarre-look­ing shell.

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


Here you can see two of the 28 3/4″ × 1/2″ × 1/4″ neodymi­um-iron-boron (NdFeB) mag­nets arrayed between low car­bon 1018 steel plates, cre­at­ing a 14-pole axi­al flux rotor. Also, check out the stain­less steel stand­offs used to sup­port 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 dou­ble-row angu­lar con­tact bear­ing that can take loads in axi­al direc­tions (up and down in this case).

Near­ly every­thing but the fas­ten­ers, stand­offs, and mag­nets are designed for 2/3-axis water­jet cut­ting. The oth­er excep­tions include the lithi­um poly­mer bat­tery (in blue), which had more or less deter­mined the over­all height and diam­e­ter of the shell. The sta­tor (in green), a print­ed cir­cuit board milled out from cop­per-clad fiber­glass lam­i­nate, was designed to fit in the air­gap of the rotor. Final­ly, the space inside of the chas­sis was filled by a 3D print­ed block (in yel­low) hold­ing down the gear­mo­tors, bat­tery, and High Fruc­tose (not pic­tured).

Now, I was rush­ing (along with the rest of the Geor­gia Tech crew) to get Flap­jack done in time for Motora­ma 2013, which was last week­end. And by rush, I mean I real­ly beast­ed hard­core. High Fruc­tose went from raw parts out­ta Digi-Key and PCB Unlim­it­ed to func­tion­al motor con­troller hooked up to a Hob­by King radio set in about four days, and Flap­jack went from fresh plates of mate­ri­al from McMas­ter-Carr and Online Met­als to a dri­ving 1290 g bot in about three days. Those time­frames are over­lap­ping, too2.

Doc­u­men­ta­tion and rig­or suf­fered. All I have to jus­ti­fy the designs are bare­ly com­pre­hen­si­ble scratch­es in my note­book. Almost all the hard parts were basi­cal­ly guessti­mat­ed. Blog­ging about Flap­jack is my attempt to go back and legit­imize some of the hor­ri­bly back-of-nap­kin­loped num­bers I used. Jeff said it best when he point­ed out that I basi­cal­ly built a legit-ish bot using ass(bot) tech­niques.

I’ll start with the glar­ing­ly obvi­ous­ly ass part, the per­ma­nent mag­net core­less axi­al flux syn­chro­nous motor shell and print­ed spi­ral wound trace flux link­ing out­er loops, known for short as



You can see in the cut­away that the rotor, while strict­ly speak­ing a shell, is designed more like a ring spin­ner. So, it real­ly had to respect the out­er diam­e­ter of the chas­sis “puck,” which was about 100mm. Given that con­straint as well as the weight bud­get and the mag­nets avail­able to me, I went with a 14-pole rotor where the lengths of the mag­nets were lined up tan­gen­tial­ly.

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

Sad­ly, I was only able to use 1/8″ of steel for my mag­net back iron. Accord­ing to my FEMM sim­u­la­tion (and real life test­ing), this means a few flux lines will leak out into the world, suck­ing up fil­ings off of oth­er bots and oth­er­wise not con­tribut­ing to torque pro­duc­tion.


Flux den­si­ty in the 1/4″ air­gap is about 0.8 Tes­la, and increas­ing the back iron thick­ness to 3/16″ increas­es this by more than 10%, as does decreas­ing the air­gap to 1/8″. Sad­ly, the for­mer would make the weapon weigh over 2.5 pounds, while the lat­ter com­pro­mis­es the low-hit­ting abil­i­ty of the shell and tol­er­ance to defor­ma­tion.

Going with a 14-pole, 12-coil design is great for iron-sta­tor motors because it kills cog­ging torque, but in this core­less motor it just pro­vides a con­ve­nient­ly high Wick­elfak­tor accord­ing to the Bewick­lungsrech­n­er3, which helps to pro­duce more torque with less cur­rent (I think). This comes into play because I fig­ured that with my P.S. WTFLOLs, oth­er­wise known as PCB trace wind­ings, I won’t be able to have many turns and thus link a whole lot­ta flux. Instead, I’ll have to rely on my coil con­fig­u­ra­tion & ter­mi­na­tion as well as a high air­gap flux den­si­ty to get a rea­son­able amount of torque. Speak­ing of wind­ings…

What the Flux Linking Outer Loops?

Occa­sion­al­ly you have a brain­fart and car­ry it way too far. This whole robot is like that, except worse, because every com­po­nent was tak­en the whole nine yards in terms of stu­pid.


Yeah, that hap­pened. It was formed by a bunch of EAGLE com­mands gen­er­at­ed in an Excel work­sheet that I script­ed (sigh). I then milled it out on the GVU Pro­to­typ­ing Lab’s LPKF S62 cir­cuit plot­ter:


Some­thing of note here is that the board is actu­al­ly 5 oz/ft² cop­per clad, which is to say that the cop­per on it is 175 µm thick as opposed to typ­i­cal cop­per 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 cur­rent den­si­ty, which is incred­i­bly shady.

Also, I mea­sured four of the coils to be 14 mil­liohms on each four-turn4 side, with about 0.6 µH of induc­tance. Since the board is dou­ble sid­ed (the oth­er side is just the mir­rored coil spi­ralling in reverse), and dou­bling turns (i.e. one coil on top of anoth­er) quadru­ples induc­tance, then each full dou­ble-sid­ed coil will have 2.4 µH of induc­tance with 28 mOhm of resis­tance.

I’ll be con­nect­ing four of the­se in series5, so in a wye ter­mi­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 real­ly know how to com­bine induc­tances in this case).

With induc­tance that low, I’m real­ly think­ing about adding exter­nal induc­tors to smooth out the cur­rent rip­ples in the motor, since oth­er­wise Flapjack’s motor looks more like straight strips of cop­per and less like induc­tive coils.

Sad­ly, it’s also a (10 A)² × 0.226 Ohm = 22.6 W loss to just cop­per heat­ing, and that’s not account­ing for eddy cur­rent loss­es from using flat cop­per ori­ent­ed the wrong way and not clear­ing excess cop­per off of the board. With that effi­cien­cy (80% max at 111 W input and 59% at 222W input), Flap­jack won’t be dri­ving solar cars any time soon. At least as a core­less motor, I won’t have any sta­tor loss­es due to mag­net­ic hys­tere­sis, iron eddy cur­rents, etc.

Aside from that, I just feel bad for com­plete­ly destroy­ing 10 mil and 15.7 mil end mills at the GVU while milling my ridicu­lous 5oz boards. Notice the dif­fer­ence in qual­i­ty between that of a fresh end mill (from where I start­ed on the board) and when it got a lit­tle less fresh (towards the end of the milling):

Trace beginTrace end

WTFLOL indeed.


I didn’t real­ly feel like set­ting up a fancier sim­u­la­tion for this thing, since there’s so much fudge to begin with and my con­troller has even less rig­or applied to its num­bers6. Instead I’ll just nap­kin it up here.

Run­ning 10 A through eight of the twelve eight-turn coils yields, through nib­bler (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 millinewton-meter/A, or a Kv of 20.3 radian/second/V, also expressed as 194 RPM/V. Now, since I’m using spi­ral trace coils that don’t link flux near­ly as well as nor­mal cir­cu­lar-sec­tion wire wound coils, I’m just going to give my torque con­stant a fudge fac­tor of 0.7, which makes the Kv 1.43 times high­er.

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 bat­tery (three-cell lithi­um). I know from Solid­Works that all the spin­ny parts of the shell7 weigh just about 2 lb and has a moment of iner­tia of 3.32 g-m².

If I can con­trol cur­rent (and thus torque) to be con­stant, 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 kinet­ic ener­gy 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 com­pa­ra­ble to just drop­ping the whole robot 5 sto­ries.

Current progress

I actu­al­ly beast­ed this thing to 90% com­ple­tion in time for Motora­ma, but then blew it up the night before in the hotel (details lat­er). With that dead­line over, I’m tak­ing some time to relax and go through some details with more rig­or (or at least doc­u­ment the lack of rig­or where it exists).

Pancake progress

With that said, it dri­ves pret­ty well, the sta­tors are milled and ready to be wired up, and I just need to make myself a lit­tle jig to hold the sta­tor and rotor for test­ing (the actu­al chas­sis isn’t easy or safe to grab onto, for obvi­ous rea­sons).

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

  1. Nor to pilot, real­ly, since the dri­ve sys­tem was ful­ly auto­mat­ed and the oper­a­tor just push­es a sin­gle joy­stick []
  2. Plus my lap­top was out of com­mis­sion for three days, I took dai­ly show­ers, and I man­aged 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 loose­ly here since it’s a fat spi­ral coil and the active lengths aren’t real­ly equal []
  5. Prob­a­bly; putting them in a 2S2P con­fig­u­ra­tion puts half the cur­rent in each coil, solv­ing the cur­rent den­si­ty issue, but prob­a­bly puts this motor out of High Fructose’s class []
  6. Hell, I didn’t even guessti­mate any­thing for High Fruc­tose; I just put some com­po­nents down and said it looks about right []
  7. Two rotor plates, 28 mag­nets, two UHMW mag­net retain­ers, two tool steel teeth, two alu­minum tooth-like spac­ers, eight 8-32 screws, and a UHMW bear­ing retain­er []