The State of the Überclocker Address

It’s the end of January. Where’s my damned robot!?

After about a month of dormancy and on-and-off work, it’s time to get serious… lest I pigeonhole myself, again, in the position of working on the damn thing a day before setting out for Motorama 2013. I’m generally confident that Clocker was designed with the best and latest of my design-for-assembly methods in mind, and the progress (mostly in the past week or so for actual work) should demonstrate that here.

RageBridge and DeWut?

No matter how much I get done, though, the availability of the RageBridge assembled boards and the DeWut?!s will be critical in the robot’s completion. As of even right now, I don’t have a concrete bail plan for the DeWuts in particular if the parts do not arrive in time. Fortunately, I received notification that RB shipped this past Friday, and the DeWut order has been completed and may go out on Monday. Here’s hoping the magic of modern express logistics gets them in my hand by the end of this week. Both will probably need a little legwork on my end before I can offer them up to you all, but that’s all part of the battle plan. On a related note, the Hall sensor boards and mounts are ready for your experimentation!

We begin the build of Überclocker with my favorite production machine, the abrasive waterjet.

These parts were made from one of three plates of 7075 aluminum I caught a great deal for on eBay. 7075 may actually be my most favorite material because it’s one of the strongest aluminum alloys, yet you really can’t tell by machining the stuff. I probably could have made some of the material areas smaller to take advantage of the 50% increased yield strength of 7075 over 6061, but elected to not make design changes at the last minutes to save an ounce or two.

The plates were all machined without incident, save for two of them, where the insides are shifted relative to the border. This is a classic failure mode of constant-height waterjet cutters before motorized Z-axes were fashionable – if any part of the previous cut interferes with the head, the machine generally bumps the part into a new coordinate system.

While the damage was minor enough on one of them (the top X part) that I could have milled out the slots, it would have weakened the joint significantly due to the loss of material-on-material interference in the joint. The other one pretty much needed replacement, since the error occurred (seemingly) right before the final profile runaround.  I elected to redo both parts at the earliest opportunity.

Also lined up for the first batch was the main lift gear. It’s the same pitch as Überclocker’s previous lifter gear, at 12DP, but the reduction ratio is higher (5:1) instead of about 3:1. This is to make up for the loss of the 216:1 integrated dual frankenboxen for speed reduction purposes. While the difference between a DeWalt gearbox in low gear (52:1) and another 5:1 is still outmatched by the reduction ratio of the IDFB, I think it’s less likely to destroy itself. The DeWalt motors are innately more powerful and torque-balanced than the 550 motors, so perhaps a 260:1 reduction is enough. In fact, it’s more than enough, but the maximum top speed of the lift would be an unnecessary ~15 in/s at the periphery. I’ll deal with the increased current draw, though, because hopefully RageBridge’s low speed exponential response and dynamic braking will make up for it. Maybe it’s time for a closed loop speed feedback…

The small gear is a steel pinion I purchased from McMaster whose hub will be removed and bore broached for a 1/8″ keyway.

Round two of parts. The top and bottom plates are made of my most recent favorite top and bottom material, 1/8″ G10/FR4 garolite in black. There’s some of the usual delamination from high pressure piercing. In the past, I’ve taken care of this by injecting copious amounts of CA glue into the bubble and then slamming it in a vise. A perhaps imperfect repair, but it at least brings some of the strength back in the bubble area.

The tensioner and drive sprockets were also cut at this time. These used the profile shifted sprockets I designed for Chibikart to account for waterjet taper. The tensioners are basically sprocket rings glued to a ball bearing as shown in the topmost example.

A little bit of stuffing with Loctite 609 retaining compound later, and I had the tensioner sprockets. The bore was designed such that they were a near perfect tapered press-fit as cut on one of the MIT waterjets I frequent the most. Different machines would necessitate familiarization before I am able to do such a thing.

Continuing the steps of small, easily pressables, I installed the fork shaft bushings and the outboard support bearing for the lifter motor. The bushings needed finish-reaming after installation since this bore wasn’t that perfect – luckily, I was able to borrow a 1″ adjustable reamer from one of the campus shops. A ring of 609 ensures their retention. After the finish-reaming, I decided to increase the diameter a little further to allow for some alignment slop when it came time to assemble the frame, since otherwise bushings will lock up with any small amount of misalignment.

Round 3 of cutting sees the front “reactive outrigger” parts finished and the replacement frame rails also finished. Now I can really get onto assembling the robot’s structure.

The legs, now that I actually hold them in my hand, are massive. If the bot ends up a little overweight, these are the first parts getting selectively lightened!

The order of assembly of Clocker this time mandates the fork mounting structure be assembled first. This then slides, with the frame’s back member, into the sides. In previous Clocker iterations, this would of course have guaranteed the need to disassemble the entire bot before any work can be done on it, but I hope I correctly allotted space this time around to swap motors and repair drive components without needing to do so.

A first look at the assembled frame of the bot. These pieces are just shoved together for now – there are more parts to make and assemble before I can install all of the t-nuts.

Another item of minor fabrication is attaching the clamp hub shaft collars to the components they will be driving. The two fork tine collars will be tightened securely, while the one on the gear will function as the slip clutch for the system.  #10-32 screws were used for this effort since they fit flush into the counterbored holes in the shaft collar, and plenty of high-strength Loctite 262 were dumped into the threads to make sure I can never, ever take these things apart again. Ideally, I would never need to…

With most of the minor assembly complete, I turned my attention to solving an issue that had been on my mind since the first time Clocker was in a tournament. The clamp actuator has always been really slow, in part because I’ve been using highly geared motors on the Acme thread. Many matches in Clocker’s history have had missed grabs because the clamp just didn’t come down fast enough. Other clampbots in the past have used pnuematics and R/C servos for the clamp arm, so they’re quicker (but each has its own downsides).

One way to solve the problem would have been with a fast-travel leadscrew such as the one I used on Make-a-Bot with 8 threads per inch and 2 starts (so basically a 4 thread per inch). that would net me a 2.5x speed increase. Problem is, that would also entail remaking the Acme threaded sprocket – and I didn’t have either nut or sprocket one on hand. I decided that the force loss was acceptable enough to just take out one stage of the Harbor Freight drill innards which made up the gearbox for the clamp motor. This was a 36:1 gearbox, so taking one stage out is a 6:1 increase in speed.  Because Clocker’s clamp is hypothetically not backdrivable (unless something truly terrible has happened), I don’t actually need that much clamping force to hang onto someone, especially with the big squishy rubber bumper on there.

So, onto the lathe the ring gear goes, and one pass with a parting tool was enough.

The actuator, reclosed with 1″ long #6 screws. I forgot about the fact that my little tension roller standoffs existed, though, and had to go back and trim down two of the 1.5″ long screws that were in this duty so they would fit those.

With that matter taken care of, I embarked on Epic Standoff Evening where I popped out many little round threaded things from tinylathe. With the exception of the tubular spacers (for the fork) at the top, These parts are actually all 7075 too – due to the magic of eBay, once again, I caught a great deal on 3/8″ and 1/2″ rods of 7075. Because some of these parts, namely the axle standoffs, were modeled as steel, I ought to be creeping slowly further down from the initial weight estimate, which is good.

Threading the ends of the standoffs led me to come up with quite possibly the worst tapping fixture known to mankind. No taps were harmed (I think…) in the production of this image. I only used the other drill to hold the piece steady – it was not counter-rotated. Really the way this came about was trying to figure out how to hold the round piece still to thread it without damaging the precision-ground surface, like what would happen if I threw it in a vise like I usually do.

One of the other simple operations was to trim off the hub from the spur gear. At this point, my 1/8″ keyway broach had not yet arrived, so I couldn’t broach the thing, but at the very least it can be prepared.

We conclude this address with pretend-o-bot #1. Still to go in this picture are making the drive wheels, machining the fork’s main axle from the giant aluminum shaft, machining the front leg parts, and finish machining the top and bottom plates. I’ve hopefully ordered the last round of random hardware needed to get the build done. Past that, it’s just waiting for the hired out parts, and possibly formulating a ditch plan…

SensorChibi: Adding Hall Sensors to Chibikart with Hall Sensor Boards

They’ve made some appearances here and there on my website and others already, but if you haven’t seen them yet, now is the time that I’ll make them public. For a while, I’ve been sproadically making Hall Effect sensor “adapter boards” that can be mounted to R/C outrunners for sensored commutation uses, needed for most ground / vehicular applications. It’s about to get way less sporadic:

Yep, that’s a big cake of them to the left. I’ve also added sizes to the collection. Now, 80mm (“melon”) motors and 50mm outrunners are supported, also. I’m still a bit peeved that Hobbyking had to make their new SK3 “63” motors actually 59mm in diameter, necessitating a fourth board design. These boards were sent to my usual slow-and-easy PCB house, MyroPCB, and done up in black.

Why 50mm? My general belief is that 50mm outrunners are about the smallest you can really use for a vehicle before they start getting too fast (Kv rating too high) to easily gear down. I foresee the 50mm motors being useful  more in scooters than anything else, where a low profile helps compared to the chubbier 63mm motors, unless your scooter is the size of a small bus.

But the other reason is that the Democratic People’s Republic of Chibikart (Hereafter known as just “chibikart” because why did I pick such a name?) uses them, and on a go-kart where pushing off with your leg is just ruining the point, sensors are pretty critical. I’ve been at a loss to explain how to add sensors to the motors because there is so much customization involved, so Chibikart was published without sensors, but with the sensor boards and attendant plastic ring things and automagically calibrating controllers, I think I’m getting pretty close to an “official solution”.

I’m confident enough in these little widgets to pitch them up on my eventual web store, Big Chuck’s Robot Emporium (d.b.a e0designs.com). Check out these pretty product pictures:

This stuff is getting too legit. I should still make you place orders in the comment thread.

Anyways, here’s what a 50mm SK3 rig looks like installed on Chibikart:

The rings are held in place by pressure from the motor mounting surface – it has to be flat bulkhead mounted, or mounted using the X-shaped plate that comes with these motors generally, to work. So, a setup like Straight RazEr which directly uses standoffs on the motor would not work with this design.

I used a chunk of ribbon cable that conveniently had blue, yellow, and green wires next to each other to make the connection to the board. Because everyone’s going to have different wiring arrangements, I’ll leave it as an exercise to the user to make their own cable harness.

Chibikart has actually been experiencing some technical difficulties recently, and I took this installation as a chance to tear the whole electrical system down and check everything. The symptom was severe battery voltage drop (seen on the motor controller side, after the switch and fuse), usually leading to the controllers dropping out during acceleration. Some times, it just wouldn’t even accelerate. I noticed this getting worse and worse recently.

I started the teardown by injecting a wattmeter between every load point – at the battery (checked out great), behind the fuse (terrible), and in front of the fuse but behind the main switch (also terrible). So the problem was clearly related to the big key switch. When I took apart the joint, the switch was fine, but the wire had corroded in its somewhat poorly crimped terminal!

With the problem found, I restripped and securely soldered that joint. I don’t really trust regular crimp type terminals, and this episode just reinforced my disdain, but they are popular enough that I can’t just get away from them.

Especially not on the batteries. I noticed one of the K2 bricks had a terminal which was clearly darkened from heat. But only one, and not even the one I cracked open. The heating signs may have indicated a bad connection, but I could find no corresponding contact blemishes on any of my connectors. It may have been there for a long time, like since before I adopted them.

Out of some caution, I replaced the K2 bricks with matching A123 bricks (which, despite A123’s slightly indeterminate state at the moment, will be restocked again, I’m told. Also, the lead image of the linked article is Chibikart 1’s battery. I am an amused hamster.)

 

Well, there was a problem. I’d given the Jasontrollers a ‘haircut’ to minimize the wiring mess, but that also entailed cutting off the Hall sensor inputs on them. Oops!

I was able to pull them out just far enough to solder to the wires, so I spliced on a new connector:

Protip: A 4S (4 cell) Lithium battery balance connector is basically a keyed 5 pin connector with wire pigtails attached.  It’s much easier to splice wires than to try and crimp and install these tiny connectors, or solder pin headers, in my opinion, so they might be the Recommended Solution for these sensor boards as a product. It took under 10 minutes to splice both sides, ribbon cable and Jasontroller stubs.

The final setup. Chibikart now has a little fluffy bunny tail made of unused Jasontroller wiring connectors, but in case I ever find that they are useful for something else, I won’t cut them off for now.

The process of tuning the controllers was extremely easy:

  1. Line up one of the sensors with the dead center of a stator winding slot – this guarantees that the 120 electrical degree spacing square waves generated by the Halls have at least one edge that is the zero-radial-flux region  between 2 magnets.
  2. Run the Magical Autotune routine of the Jasontrollers for each side. I decided to do it explicitly using the “self train” wire, but it was clear to me that one side had already picked it up when I was done “training” the other.

I’ll have to write this up officially for the product pages, but if the controller did not have Magical Autotune, the process is much more involved and painful, and for a known working set of 3 sensors it might go:

  1. Line up one sensor with the dead center of a stator winding slot
  2. Fix the Hall Sensor cable combination (for instance, Hall sensor signals [A,B,C] get connected to controller inputs, [A,B,C] for the resulting connection [AA,BB,CC]).
  3. Label the controller phase wires (e.g. [u,v,w]) and the motor phase wires (e.g. [x,y,z])
  4. Start with connecting the motor and controller phases in any combination (e.g. [ux,vy,wz]) and see if the motor turns. If it does not continously rotate (e.g. just wobbles, or moves a small amount and locks up), swap two wires. For instance, the example hookup might become [uy,vx,wz].
  5. If the motor still does not turn, swap the two wires you didn’t swap before.  For instance, the example hookup might become [uy,vz,wx] after this point.
  6. Repeat step 5, continuing to swap the 2 wires you didn’t swap before. There are 6 total ways to arrange 3 unique things with 3 other unique things (3 nPr 3). The example connections list might be
    1. [ux,wy,vz]
    2. [uy,wx,vz]
    3. [uy,wz,vx]
    4. [ux,wz,vy]
    5. [uz,wx,vy]
    6. [uz,wy,vx]
  7. If none of the 6 combinations result in motor rotation, then you have to pick 2 Hall sensor wires to swap. For example. [AB,BA,CC]. Repeat step 5 through 6.
  8. If the motor spins with a combination, but in the wrong directions, then cyclically shift the entire connection. For example, [ux,vy,wz] becomes [uz,vx,wy].
  9. If the motor does not turn any more, cyclically shift one more time. At least one of the shifts will be rotation in the reverse direction. One more cyclic shift and you would arrive back at the first again.
  10. Once rotation has been established, you must time the sensors correctly. This involves an AC or DC ammeter, and the goal is to move the sensor board along its slotted mounts in very small amounts while monitoring the current draw at a reasonable motor speed. Move the sensor board to the point where the current draw is the lowest, for that speed.

In other words, Hall sensors actually suck. Incredibly so – which is why I am so glad the Jasontrollers get the hell out of sensored mode as soon as they can! The timing you establish using that procedure is only the minimum for that speed. For instance, if you time the sensors while the motor is spinning very slowly, then the timing will be too retarded for high speed operation, resulting in high current draw. If you time the sensors at wide open throttle, the timing will be too advanced for low speed running and the motor could have trouble starting since the phases will “fire” too early.

Maybe I’m opening a huge can of magnet wire shaped worms by introducing these things, but hey.

test video

Check out this sweet video of Chibikart totally not needing a punt to start from standstill, even on carpet, while turning! Still no reverse, though.

These sensor rigs will be available on e0designs.com as soon as I hammer out the shopping cart and payment details. If you’re really aching, feel free to email me, though!