Monday, September 23, 2013

tinyKart Black

tinyKart is back, in black:

The last time I saw tinyKart in one piece was almost a year ago at Maker Faire NY 2012, where it was torn apart in the name of impromptu power wheels racing, including 50 or so rain-soaked endurance laps after it had already lost an entire side worth of drive and brakes in two crashes. To be fair, it was already beat up from a couple years of abuse, off-roading, snow rallying, more snow rallying, and parking garage climbing.

It was certainly not built with this in mind.
I'm actually amazed it lasted as long as it did. It was originally designed as an ultralight go-kart, one that was not a burden to move around and that took advantage of modern electric motor and battery technology instead of loading up on lead, copper, and steel like certain other go-karts. It more than fulfilled its mission in that it was not only as light and portable as envisioned, but also more powerful and fun to drive than we thought it might be given the weight compromises.

If anything, it's weight-saving tradeoffs became secret advantages: chassis flex from the aluminum extrusion frame helps keep all four wheels in contact with the ground; narrow tires match the weight and power to give it a nice, predictable traction envelope. The result was that, somewhat to my surprise, I actually wound up liking the way it drove a lot more than Cap Kart, which was more of a no-nonsense, high-power, infinite traction machine. And unlike Cap Kart, we could take it out whenever we wanted since it serves as its own hand truck.

So I was sad to see it broken and in pieces for so long. Though, it did make it easier to package for shipping to Seattle when I moved out in this direction:

Picture frame box? You mean go-kart box?
Anyway, it's been a long, slow process putting it back together. Mostly because every time I would strip down another layer, I would discover another problem. It essentially came to breaking down the entire kart and rebuilding it from scratch, replacing parts as needed. And since I would have it down to atomic pieces anyway, why not paint it? Except I suck at painting things so pretty much the only color I could pull off would be flat black. Turns out to be a pretty good color anyway.

But first, an assessment of the post-Maker Faire 2012 (and indeed two year sum total) damage that it stared with:
Bent front frame plates, bent front-right spindle shaft, necessitating brake caliper removal.
Bent front frame on the other side. We were originally thinking of leaving these corners off...glad we didn't.
Bent spindle shaft and steering linkage.

As I stripped parts off, I found more and more damage:

Drive pulleys essentially destroyed. One belt had changed itself from a toothed belt to a flat belt with help from a corner of the motor mount.
The set screws had eaten away most of the motor shaft circumference...
This is a good example of the general state of all the hardware.
So in the spring when I first attempted to quickly put the kart back together, I decided instead to take it even more apart:

Every single piece of hardware was removed. Even parts that had come as a whole (the motors) were disassembled to be cleaned and fixed. While I had the kart in a state of maximum entropy and while the weather was nice, I sanded, cleaned, primed, and painted every flat piece of aluminum. That process alone took a week.

Main front frame plates, unbent and sanded to a shiny finish.
Multirotor-assisted drying of special extra-nasty aluminum etching primer.
At this point it's been reduced to a box of parts plus some plates and 80/20 extrusions.
I rebuilt the front half of the kart first, since it had taken the most mechanical damage. Plates were mostly salvaged and the bent spindle shaft was simply refaced, sacrificing a tiny bit of length to recover a flat and perpendicular end surface. The damaged steering linkage was easy enough to replace, and I also took the opportunity to replace the steering thrust bearings and just about every piece of hardware.

A good look at the internal structure of the front half of tinyKart.
Finishing off the sandwich.
Refitting the steering column. The bowl of Rusted Flakes breakfast cereal that is the old hardware.
Half the steering linkage rebuilt, and starting to lay out the rear frame.
Maybe the second-biggest and first-most-futile task of the rebuild was fixing the EMP 6374-200 motors. (I would link to them, but they no longer exist since Leaders Hobby has dissolved and Hobby King/Turnigy has moved on to the less-satisfying SK3 line.) The first step was actually taking the motor apart, no easy task when the shaft is so mangled:

Then, I machined entirely new shafts for the motors out of 1566 carbon steel. I decided to make the shafts long enough to fit entirely through the drive pulley to the second, outrigger bearing. In the previous iteration, a second idler shaft was used on the outside of the drive pulley to complete the structural loop. The planned advantage of the longer shaft was so I could have four total set screw engagement points, two on each side of the pulley, to help torque transfer.

New shafts (left two) vs. old shaft (right).
New shafts also required new drive pulleys. I made them using the same trick of upgrading the hub of a standard Stock Drive Products HTD pulley.

The process involves carefully boring out the stock pulley to be a tight interference fit (0.002" diameter undersized) for the 10mm prop adapters that come with the motors. I luckily happened to find four more prop adapters to use for this round of pulleys. One gets pressed into each side of each pulley, with a healthy dose of Loctite 609 to aid the press fit. The result is a much beefier pulley hub that I modify even more by drilling out the 4mm set screw holes and re-tapping for 10-32 set screws.

New megabeef pulley (left) vs. wimpy old pulley (right).
Original SDP/SI pulley set screw (left) vs. prop adapter set screw (center) vs. my set screw (right).
I hoped that the combination of larger and more set screws would help improve torque transfer and stop the gradual mangling of the drive shaft that happens when you routinely run an RC airplane motor at peak torque into an inertial load. It turned out to be a moot point, which I will get to in just a moment, but first the remainder of the drive module reassembly:

The new shafts were pressed and Loctite 609'ed into the rotor cans. Probably a bad decision, in retrospect.
Anti-giant-prop-shooting-off clip added to the motor. I wish I had considered how little I need this, given the many other ways the shaft is constrained axially.
And two completed long-shaft motors, ready to re-install.
The eccentric roller tensioner is one of my favorite parts of tinyKart.
Back in place with the new pulley. The long shaft passes all the way through the outside bearing now.
I also took this opportunity to upgrade the Kelly controllers from 2x KBS36101 (36V/100A) to 2x KBS48121S (48V/120A) with high-speed firmware. Even though 100A is plenty for this kart, it was hard to achieve that number with the KBS36101 and these motors. My complete guess as to how the Kelly controllers handle current, purely based on experimental evidence, is that they perform average current control but have an additional overcurrent protection at some margin of safety higher than the maximum rated current. The addition protection will cause errors and sometimes controller shutdowns if current peaks exceed the hard-coded current limits. So, to keep the current spikes below these limits, I would have to set the maximum controlled current to about 80% (80A).

The problem is compounded by two factors: Surface permanent magnet brushless motors are about the worst-case scenario for current control, since they have very low resistance and inductance. (Okay, coreless motors are worse.) Small variations in PWM will cause large, quick changes in current. External Hall effect sensors also need to be very carefully timed or they will trip commutation in the wrong place and cause excessive current spikes. Timing the sensors was an arduous task with the KBS36101, but in order to even get to 80% of the rated current without tripping faults it was necessary to be very accurate on the timing.

The new controllers have several advantages that help keep the overcurrent faults under control. They have a bit more current overhead (120A maximum rated current vs. 100A), so if the hard-coded overcurrent fault scales proportionally, so will the controlled current limit I can achieve. But it's also the high-speed firmware version of the controller. Although it's not documented on the Kelly website, the myth is that the high speed firmware also has 32kHz PWM instead of the normal 16kHz. Higher PWM frequency means lower current ripple. If the average current is being controlled, lower current ripple could very well keep the peak currents from tripping the overcurrent limits on these low-inductance motors. Or so my thinking goes...

I left some racing stripes of bare aluminum for heat sinking the new controllers.
And after a bit of sensor timing, the left rear drive is back in action.
To further optimize the sensor timing, I drilled a set of alternate sensor board mounting holes 60edeg ahead of the existing holes:

The sensor boards have slots that allow 60edeg of adjustment already. Rotating the three power wires going to the motor gives a 120edeg shift. So that covers three alternating 60edeg segments of the possible sensor position. To get the other three slices, I had been playing games with reversing sensor and phase wires that I was never quite sure were working. By adding a new set of holes 60edeg offset from the existing holes, I am guaranteed an easy way to find the proper forwarding timing.

Pretty much the only thing from tinyKart that has survived without needing any care at all were the 12S3P A123 B456 26650 battery packs. This is how I found them after a year of sitting on a shelf unattended:

I wouldn't be surprised if that was the exact voltage they were at the day after Maker Faire NY 2012.
After fine-tuning the timing on each side and charging up the battery, it was time for the first tinyKart test drive in almost 12 months:

I think of tinyKart as a nocturnal vehicle, a little bit.
It survived it's first half-torque (60A each side) test drive with no problems, so I decided to go for 75% torque (90A each side) the next day. Then, disaster:

The brand new motor shaft that I machine fractured right at the retaining ring groove after only a few minutes of driving. I don't think the failure was entirely due to the slight increase in torque from the previous implementation of tinyKart. Such a clean break is more likely a brittle fatigue failure caused by misalignment of the inner and outer bearings, now that the single shaft passes through both. There could be other factors as well:
  • The retaining ring groove was deeper than that of the stock shaft.

  • The groove was cut with a rather high SFM. It could have work-hardened the outer layer at the bottom of the groove, which is the most important part for torque transmission.
  • The new shaft material may be harder and more brittle than the stock shaft. It didn't seem that way, but I don't have a hardness tester to confirm.
In any case, it's the first time I've seen a motor shaft fail this way. It broke during some particularly hard cornering, so it could also have to do with shock loading coming back through the belt. This was I think the only time in my life that I was hoping it was a sheared set screw or mangled flat.

All hope was not lost, however. While digging through my box of random motors, I found this:

I left most of my large motors in Massachusetts, but this one somehow made it through to the west coast with me. We bought four of these original SK6374-170's back when tinyKart was nothing more than a CAD model. The other three have been chewed up and spit out by tinyKart already. They are the predecessors to the SK3 line, and are actually 63mm in diameter with a 10mm shaft. They do not have rotor can bearings and the overall build quality is not as good as the EMP motors or the SK3s. But, they are smaller and lighter than the EMPs, they have less drag, and they're a bit more powerful (thanks to an extremely low resistance of 23mΩ line-to-line).

Not expecting it to be a permanent solution, I quickly patched the last of the SKs in to the right rear drive using the old method, an idler shaft to the outside bearing, coupled by the drive pulley itself. This leaves only the two set screw flats for torque transmission, but that's no worse than old tinyKart. Because the motor Kv ratings are different, I set the maximum speeds proportionally in the Kelly software so it would not tend to "pull" at full speed. (I don't think you'd feel it, but the motors would start to fight each other and waste power.)

I'm happy to report that even on mismatched motors and restricted to 75% torque, new tinyKart is every bit as fun as it used to be. Since this is Seattle, initial test driving would not be complete without a little bit of wet surface testing. (I know, I know, the new paint won't last long anyway.) Joining me for testing on the first day of fall, just after an afternoon storm, was none other than Ryan Archer of RC airplane fame, who happened to be in town.


We both took it relatively easy (read: only a little bit of sliding induced), since the kart is running on one motor that tinyKart's already eaten three of and another with a shaft that's likely to break at any moment. I've preemptively ordered three new motors from a cool site that I just found called Alien Power System. They have a lot of RC stuff that is useful on small EVs, including dual brushless ESCs with reverse. Their 63mm motors don't appear to have can bearings, but beggers can't be choosers in this post-Turnigy-Grapefruit-post-Leaders-Hobby world of 63mm motor scarcity. One thing that do mention is keyed shafts. Not sure if this is optional or included...guess I'll find out. It would be nice to solve the torque transmission problem once and for all.

But for now, tinyKart is running again. I managed to sneak it in just before the end of summer. It performs as well as ever, and is looking way better than it ever has. I'll leave off with some glamour shots of the new paint job before I totally destroy it:

Vertical storage configuraiton takes up very little space at the shop.