Hub Motors on Everything: More Chibikart Motor and Frame!

hi here is a chibbi kart

….okay, so only sort of, but it’s RIGHT THERE!

I have a newfound respect for 80/20. I’m not sure why I’ve never used it before – possibly because I thought it was immensely expensive (the material isn’t too bad – 1 x 1 is on average $20 for 6 feet [1]) and heavy (which is kind of true). That whole frame came together in around 2 hours net work time, which really means like 4 hours with the amount of MITERS ADD I tend to have. Whats’s expensive about the system isn’t the extrusion, but the accessories – slot nuts, for instance, tend to be $8-10 for 50, and little specialty things like hinges or plate fasteners are way overpriced for what they are. I guess it’s like selling printer cartridges and glossy photo paper to make up for the money that selling printers doesn’t earn. Fortunately I’m in a position to generate my own random interface hardware, like the corner joists.

While a fully t-nutted plate frame of the type I typically make would have gone together faster, it would have been far more expensive (necessitating me buying 4 foot or 3 foot plates of aluminum) and not nearly as adjustable.

Here’s a closeup of the underside of the seat. I discovered that the seat mounting bracket was more like 6″ across than the 5 7/8″ specified, but all that entailed was untightening the two mounting rails and moving them 1/16″ further apart. The seat mounts are 3/8″-24 cap screws – overkill under any circumstance except, you know, the seat coming with those.

And the pedals are now mounted too. It’s beginning to look like something!!!!!!

The adjustability of 80/20 slot nuts were very clearly illustrated when I found the CAD model’s seating and foot rest arrangement was “ergonomically incorrect”. The seat is further forward than its surplus website image led me to believe. Solution? Slide the seat back 2 inches and the foot rest forward an inch or so!

The steering wheel, while still for show, is probably going to be final since I still haven’t moved on buying anything to replace it…

A closeup of the placement changes – reference this drawing. In total, things have moved maybe 3 inches further apart. While Chibikart is clearly not for anyone who is not short and Asian, I will say that this still made a ton of difference in terms of comfort.

back to hub motor work

Last time, I test wound one of the stator teeth for Chibikart’s hot-modded Skatemotors. With that in mind, I now needed to mate the copier motor stators to the center shafts.

While in the 100mm skatemotors’ original designs I had called for a plastic (3d printed, injection molded, what-have-you) hub with an integrated “key” to rotationally constrain the stator, I opted for a little bit of machining time and made some aluminum sleeves with key slots cut through them. Nothing goes into the key slot, but the idea is that the OD of the sleeve is very slightly larger than the stator bore such that pressing it into the stator causes the open slot to compress a little, also gripping the inner shaft in the process.

This worked great for 3 shafts. The fourth was…. a little special, but nothing some Loctite 609 couldn’t fix. With the operation complete, I now have four hub motors ready to wind….

….

…crap, I actually have to wind it now?

Also seen above is my choice of retaining for both the stator hub and the can bearings. Those are “low profile retaining rings” for 15mm shafting. On each shaft is an inner and outer set of grooves – the inner set is for holding the stator, the outer set for spacing the bearings exactly apart. This system is one that I enjoy so far – the design change from “weird double sided machined stepped shaft” is welcome, and makes the shaft much easier to manufacture. In fact, it’s designed to be the cross section of stock 15mm metric keyed shafting if I need to poop out a few more; the dominant philosophy being if I can make it on a manual machine in 10 minutes, it will take a CNC lathe like 30 seconds.

The center threaded bore was also drilled out for a 1/4″-20 clearance hole, since I will be bolting the shafts to my axle anchor blocks and running them under plenty of preload.

winding and characterizing the motor

I have to do this eventually, so here goes….

…wait! First, I was curious about these copier stators. They have 3 little ‘toothlets’ on each main tooth, presumably so the motor can act as a stepper motor with finer resolution than flat-topped teeth. There were two downsides to this design which makes it a little suboptimal for hub motor use – the raised ‘toothlets’ vs. the valleys between them meant that the effective average airgap between stator and magnet was larger, resulting in less poorer flux coupling (less torque), and the arms themselves were kind of wimpy and thin in cross sectional area compared to the ends of the teeth, meaning they could saturate when the permanent magnetic field and the stator field aligned (i.e. less torque).

So I used FEMM analysis software made a test winding that was representative of one phase – 36 turns per tooth, four teeth wound.

This technically doesn’t have to carry any current, so easy one strand windings were used. The magnet wire was just run straight out through the slot.

Next came the fun part:

MACHINING THE MOTOR WHILE RUNNING! Like the age-old East Asian practice of consuming living seafood, machining the motor while it runs is a….

… just kidding, this is Lathe-o-mometer. While I have done drill-o-mometer and ever air-die-grinder-with-an-R/C-car-wheel-o-mometer with previous wheelmotor iterations before, the BRAND NEW MINI-LATHE IN THE IDC MINISHOP!!! is a speed-controlled and stable fixture.

The *-o-mometer procedure is to view the back-EMF waveform of the motor on an oscilloscope while it is being spun by an external speed source. The exact shape of the BEMF, and hence the motor’s potential future torque-producing-hub-like behavior, can be deduced from the peak-to-peak voltage and the measured AC frequency. That is,

I set the scope to average a whole bunch of readings (namely 16)  once the lathe spindle spun up to ‘cruising speed’, so the result is a clear snapshot of the BEMF of one phase. And….. what the hell? Why is it triangular? These things are supposed to be trapezoidal. I know a triangle is like a trapezoid with no flat top, but this is ridiculous. Anyways, the “stairstep” ripple in the waveform is the little toothlets of the stator making themselves visible.

One phase doesn’t tell me very much, besides my motor is not totally bullshit. In a typical BLDC motor, two phases are driven at any one time. So to really get the whole picture, I’d need at least 2 of the phases wound. So I did!

At first, though, I managed to wire up phase B backwards – hence creating a motor which mostly canceled itself. Oops.

That’s more like it. The measured line-to-line voltage is approximately 60 volts, which really means a differential voltage of 30 volts across the two phase leads. This problem has confounded me for a long time, but I only understood why it happens very recently – the scope treats a single-ended measurement as a deviation from zero volts, and its own ground is defined always as zero volts. So even though -30v to 0v and +30v to 0v are both 30 volts differential, the swing of -30v to 30v is “60 volts”. If I had used 2 channels and a true differential measurement (ch1 – ch2) with a common ground, then the waveform would actually be 30 volts peak to peak.

The other important number is “203.3 Hz”, which is the electrical frequency of the motor.

To convert 30 Vpp and 203.3Hz into a useful motor torque constant value in V/(rad/s), I multiply 203.3Hz by 2*pi to obtain a value in electrical rad/s, then divide by 7 to obtain a value in mechanical rad/s (because in a 12 tooth / 14 magnet motor the electrical speed is 7 times the mechanical speed). Then 30v is divided by mechanical rad/s to yield V/(rad/s), and the magical number is…  0.164 V/(rad/s) or Nm/A.

This was pretty promising – 0.164 might have been quite a ways off from the original estimate of 0.23-0.25, but at least it 1. wasn’t outright terrible and 2. showed to me that the stator teeth were not saturating all over the place.

With the motor characteristics verified, it was time to beast the windings:


oh god it looks cancerous

Okay, I give up. Hobbyking, how the hell do you guys do this?

While I thought previously that 36 turns was a reasonable count, that test was done on one tooth, very neatly and patiently arranged, and compacted at the end. It turns out that this is not always possible to do with adjacent teeth, and once the turns pile up even a little bit, the destruction of order is very rapid. This stator shows clear signs of “hobbykinging” in the second sense – the windings almost falling out of the slots because they have been piled so messily during the process.

Really, I was able to stuff only 36 or so turns onto 2 teeth on phase A. Everything else is probably 33 turns or so – I some times could not fit the last few at all. I might have to either rethink the hex-28 gauge winding scheme or reduce the turn count officially (sacrificing Kt even more), or just have more patience while winding. We know the latter isn’t going to happen, so I’ll have to go back to playing with other wire sizes. What’s distressing is that the stator is pretty much totally filled out – I’m not sure what single-strand big wire size will get me the same level of turns.

Nevertheless, I pressed forth with terminating this stator. There’s absolutely no hope of ever installing Hall sensors in these windings, so I’m going to pray to Motor Jesus that Jasontroller can start these under load.

I once again took a page from the ICBM (Inexpensive Chinese Brushless Motor) Design Book and just heat-shrunk a section of my magnet wire pigtails to use as main motor leads. Soldering real wire inside the motor takes up previous space that I’m not certain exists in this design. The “star point” was made by running a small length of jumper wire (the red wire) between the endpoints of the phases.

And once I packed it back up inside the skate wheel, here it is back on Lathe-o-mometer and…. wait, did it get worse? Now it pumps 30 volts but at 277 Hz. That’s a performance decrement of over 36%. This is probably caused by my inability to shove the proper number of turns onto the stator in real life.

This new measurement results in a Kt of a little over 0.126. Sadness :(

The resistance of the motor from line to line came out to be about 450 milliohms – I predicted about 400, so this is good to see. However, this could still be too much – say I am running at 20 amps – I’m still losing ((20 amps)^2 * 0.45 ohms) watts to heating! The motor is not going to last long at all being a 200W heater.

But at least it sounds and looks great!

I’m probably going to pull out the Excel spreadsheet or MATLAB script and run some possible combinations of turns vs. wire gauge vs. paralleled strands to see if I can get a reasonable combination of torque production and low core resistance. However, physics constrains me significantly – as packed as the slots are, my losses on average are going to remain the same no matter what. The only thing that will result in more crank is packing more copper into the slots.

The 100mm skate wheel motors have always been underpowered for vehicle moving, but here’s hoping they work out!

Switching Chibis: Chibikart motor and frame work

I think I’ve formulated a reasonable list of next steps in order to solve my weird magic bootloader problem for Chibicopter, including trying different computers with the same hardware, messing with other USB-serial adapter settings, and learning how to logic analyzer in order to record the exact transmissions that are going into and coming out of my XBees. But right now, I just don’t want to see the damn thing (despite the demo season starting up again… uh oh). Fortunately, I have something mechanical and not software-involving to distract me, and that’s Chibikart!

Chibikart took its first few steps towards realization in the past few days, going from entirely CAD model to…

…oh boy. So let’s be clear: that steering wheel is ridiculously oversized and impractical. It was 10 bucks on the surplus channel, so I couldn’t resist throwing it in for kicks. Chibikart’s design is intended for a fairly normal 10″ wheel, and a 14″ one would result in leg clearance issues.

The seat, though, was what I was waiting on so I could more confidently finish the design. I didn’t know anything about the slope or layout of the bottom beforehand, and receiving it meant I could finally make its mounting bracket:

There’s 2 80/20 rails running under the seat and two little ‘crossbar’ type things which join them and also together form the bolt pattern on the bottom of the seat. It also conveniently shelters the battery. Not shown is the one-piece bottom plate, to be made from 1/8″ polycarbonate or similar. I’ve also taken the liberty of modeling up some 350W-type Jasontrollers. While the design shows four in the back, I’m probably going to locate two in the front to avoid running a few feet of extra motor wire that would not only add more resistance but also potentially mess with the sensorless position-detecting algorithms…if one exists inside Jasontroller at all. Long leads are just good to avoid overall, however.

I got the generic go-kart pedals in, so the first thing I proceeded to do was knock them apart to inspect just how shady they were. I noticed the pedal itself was a little…. wobbly. It turns out they are very shady indeed, but a degree of it which seems to let it retain full functionality. I guess that’s the hallmark of a well-engineered product? How incredibly cheap and shoddy you can make it without nobody noticing that it doesn’t work?!

That little arc segment magnet has a continuously varying radial field strength along its transverse (theta) dimension, so the linear hall effect sensor at the base will put out a varying voltage depending on how much you step on the pedal. The continously varying shitty glue joint gap, as it turns out, does not contribute much to said varying voltage. I legitimately thought the crazily positioned gap was the only thing generating the output voltage, but it doesn’t make physical sense for that to be the case.

Otherwise the pedal itself is somewhat underconstrained – it can wiggle side to side,  but given that this changes the magnet’s position very little relative to the sensor, it is negligible. I’m surprised they even bothered with a tiny PCB to mount the sensor to.

Enough about pedals – how about some motors?

I picked four motors’ worth of parts “from stock” (scary I can say that, right?) and pitched them together. Now, the “stock” wasn’t perfect – remember that I sent off “my” fab drawings with these parts, meaning that the concept of allowance vs. tolerance was not distinguished. If I were to do it again (knowing now that mfg.com is legit), I would have more carefully specified dimensions such that I don’t have to, say, shave off 6 thousandths on a second operation on each endcap like I had to do. My total neglect of adding tolerances to 3-significant-figure dimensions means that using the accepted practice of 3-digits-means-0.005-deviation, my parts could have been 0.01″ out of whack.  Clearly if these were actual mass production parts, someone would have lost an asston of money.

So for example, given that the can’s inner diameter is nominally 2.650″ and needs the endcap press-fit into it, a reasonable dimension to use would be 2.650 +0.001/-0.0005 for the can and 2.651 +/-0.0005 for the endcap. Notice the asymmetric deviations – the worst-case interference in this case would be 0.002″, and the other worst case only 0.0005. Yes, there are two worst cases – one too tight, and one too loose.

Remember how the other set of magnets in the other can was a perfect fit? The universe lined up for that one, but not for this set! The custom magnets I ordered were made to 0.003″ tolerance in each linear dimension. This means that they could have been 0.003″ too large or too small. The gap is about 0.026 or so, and therefore in this case it’s probably a combination of “slightly too small” and “can was machined with 0.005 allowable deviation in the diameter which resulted in a maximum circumference change of 0.015”.

This is part of the reason why I will move away from whole-circle magnets, actually. If I can’t be guaranteed a perfect closed circle every time, it’s not really worth bothering with. An installation jig wouldn’t take that much more time, and could deal more easily with slight magnet size variations.

Something like half of all mechanical engineering is based on consistently manufacturing parts/products to minimize deviations and rejection/failure rates, and designing systems which can handle manufacturing variations. The takeaway lesson is that making things on a large scale totally sucks ass. I’m not going to be making 3.6 million of these per day any time soon, but if I’m having this much fun with just 4, then there is clearly room for improvement!

And don’t even get me started on the miserable failure of a bearing fit the endcaps all exhibit. Oops.

And now, a change of pace:

Look at the nice thing! I made myself a miniature Hobbykinging rig using laser-cut acrylic. I hereby christen this the “REEL DEAL”.

The Reel Deal holds six (or up to 9 in this version) little magnet wire spools from which a string of parallel wire emerges for me to wind the stators with. Some zip ties sandwiched between the black frame and the reels adds a bit of tensioning friction. There wasn’t that much friction, though, so I’m still having a bit of fun with occasionally losing a wire off the side – as the reel is used up, this will become less of an issue.

We now move on to a picture more typical of one of my build updates: infinite waterjet! I think this might actually be the first (possibly second) time I’ve waterjetted something this entire semester. What the hell? Aren’t I supposed to do this every other day?

This batch of parts was made from the pile of metal plate that was going to become Super Make-a-Bot before that project was (effectively) abandoned. There were a multitude of reasons for the death of sMAB, one of which was the lack of any real innovation above the field to justify it being really fucking expensive. I estimate that I dumped about $500 into the project and still had to go $5-600 more, for something which isn’t much better than a Replicator (which my research group bought one of recently anyway – more on that when it gets here!).

I executed one of my tightest packings ever on that plate, mostly because I only had one. This was not done in one shot like I usually do, though. My usual procedure of manually routing each part in sequence takes about an hour or so of just staring at OMAX Layout while clicking buttons. This time, I tried the “other” way of routing one part and then nesting them through OMAX Make, right before I fire it off. This worked pretty well a few times (check the 8-piece array of corner trusses), but then things started going wrong.

Almost inexplicably, I started having head-dragging problems, where the machine would mysteriously carry the whole plate, fixture weights and all, an inch or so, destroying the part coordinate system and ruining that area of the stock. I couldn’t locate the source of the problem at first – it’s usually caused by a part or scrap floating up and catching the nozzle as it traverses, but I had all things which could float tabbed in (Hint: “Create Tab” is awesome). Through frustrating recuts and space hunting, I discovered:

  • The aluminum started warping. This plate must have had asymmetric residual stresses from rolling or something, but after the first few parts came off, the whole thing was bending up almost an eighth inch from corner to corner. I’ve actually not encountered this before. This might have caused some head bumping problems, but not as much as…
  • …1:1 aspect ratio hole centers. By this, i mean the little donut-hole left over when the machine finishes cutting a circle. If its cross-section diagonal is about the same as the ID of the finished hole, then it could turn sideways and stick up from the surface of the part as the machine blasts the last bit of connecting material away. I only discovered this after picking up a scrapped part and finding such a sideways hole plug sticking up with a huge gouge mark from the head. This is also something which, oddly enough, I have not experienced before.

I’m going to write alot of this off to forgetting little details of machine operation from not doing it in a while, but the end result is that after the next few part sets, I was down to cutting one-by-one in any possible space which would host the part.

After cleanup.

So this plate is actually 5052 alloy, more commonly found on boats and truck-mounted tool boxes than machine parts, but I bought it for sMAB because it was cheaper than 6061 and 3d printers really don’t need that much beef (it’s about 75% as strong as 6061). The perk to it, though, is that it’s shiiiiiiiiiiiiiny. I’m not sure if it’s just a polished finish or if it actually has a pure aluminum (“Alclad”) coating, but damn is it shiny. Looks way better than the typical streaky mill finish of 6061.

The good news is that all the tabs and slots fit (Yes! Haven’t lost that skill yet…). The bad news is that I inch ever closer to having to finally wind all four of those motors…

That’s it for now! I’ve also prepared the shafts for the motors, which also needed a little bit of material shaved off for a reasonably tight but slideable fit. This whole ‘real manufacturing’ thing sucks. Hmph. I was almost better off making the four motor cases from scratch this time.

I’m working on a system for mechanical braking which reuses the fender brakes from standard Razor A scooters. This will be put on the back wheels so I have a backup when the Jasontrollers’ regenerative braking fai….. wait, they don’t have any, that’s right!

Next: Cutting 80/20!