Finishing Chibikart’s Steering

Alright, so the past few days have been spent mostly waiting on AmazonSupply McMaster orders and watering my seedlings who are now taller than I am, so I haven’t been able to tool on Chibikart as much. I wanted to get the rear two motors mounted ASAP, but working on the braking mechanism has kept me from finalizing the design for the motor mounting blocks. Therefore, I’ve been focusing more on the front wheels and getting the steering hooked up.

First, though, what the mechanical braking scheme will look like:

While I’ve certainly built plenty of vehicles which featured nonexistent or substandard mechanical braking, it’s just a bad habit to get into. I’ve decided to repurpose the Razor scooter fender brakes that I have collected through parting out quite a few scooters (and other people having done the same). Chibikart’s wheels are conveniently the same size as the standard Razor A and A2 scooter, so it was just a matter of reduplicating the mounting pattern for the brake pivot (relative to the wheel axle) on my own structure.

The more difficult part was actuation. Initially I was going to weld a steel tab or something to the steel fender to use as a pull crank for a standard bike brake cable (with return force provided by the stock torsion spring of the scooter). However, I decided to try something a little different. The cable would instead be wrapped around an offset circular Delrin (or similar plastic) cam, so if I pull the cable, the cam swings down and pushes on the brake. The (rather stiff) torsion spring provides restoring force. This execution ended up being alot cleaner than the design which involved the mysterious welded bell crank. Also, sweet rear fenders.

Onto steering!

Yes, that’s a Kurt vise speed handle. I found it eBay for like 10 bucks, and it was essentially the correct size and everything!

The steering column itself is made from a section of 3/4″ OD, 0.040″ wall chromoly tubing, droppings from the FSAE racing team. I sandpaper-finished the tube on a lathe to take it to the proper slight undersize in order to fit into the steering bushings. A 3/4″ steel hex shaft cutoff was machined down to the ID of the tube, and is retained via a clamping shaft collar.

Chibikart’s steering is just a tower of shaft collars. The leftmost one is a bottom retaining collar and prevents the shaft from being pulled upwards. The one to the right has a built-in mounting flange that I used to attach my “Pitman arm”, the driving link in a standard linkage steering setup. I wish I had known about these things when making a certain other kart’s steering arm. That one was more metal than I think exists in this entire frame.

finishing those damned motors

Over the past few days, I also had a few stretches of 100% HARDCORE NONSTOP MOTOR WINDING. Finally knocked all those motors out… My hands are unhappy, but nowhere near as bad as when I had to wrestle 20 and 22 gauge solid – that stuff takes more tension to get right, where as much of the wire tension on this build was supplied by my little winding jig.

The motor torque constants are scribbled on their cans. As I finished each motor, I lathe-o-mometerd it to obtain its BEMF profile, and the Kt was estimated from that.

Back to steering. Here’s one of the “swivelly block axle anchoring doobobs” which I’m sure have a real name I cannot remember at the moment. They are simple chunks of milled aluminum with a 1/2″ hole through them. A 1/2″ steel pin with threaded ends fits in the hole, and it rides in the flanged R8 bearings. There is no torque transmission to the axle at all – it’s just a slip fit, since the linkage will push on the block directly. I installed around 0.1″ of shims in between the block and the R8 bearing, but I’ve found out that this is not enough – under the weight of a rider, the aluminum block still digs into the plates above and below it!

The reason seems to be that adding shims to the stack seems to only succeed in pushing the bearings out of their holes. I should have designed with the flanges on the inside to prevent this – it seems obvious now, but it’s definitely a manifestation of 5am Engineering Syndrome of which I am probably the patient-zero for.

The linkage itself is bone simple. Those chromate plated ends are control rod ball joints which are convenient because they have a right-angle stud ready to bolt into a linkage. The arms on the axle blocks themselves are “square shoulder plain rod ends“, screwed into the blocks and then locked in place with a jammed nut. The linkage proper is a section of 1/4”-28 B7 threaded rod, not even in tension-compression arrangement.

I like this linkage alot. It gets the point of steering linkages across while being simple to build. The downside is it that is not a true Ackermann style steering linkage – to get that kind of inside-wheel-turns-more behavior, the wheels must be positioned further out so the steering arms could be mounted inboard from the steering kingpin, a design tradeoff I wasn’t willing to make. It is approximately Ackermann for the extremes of its travel because the center linkage is shorter, causing one side to approach toggle quicker than the other.

What I learned while making this linkage was that nylock nuts are in fact nuts in a shell. I needed a non-locknut in 1/4″-28 really quick, and wasn’t sure where to find them. However, I had a bag of 1/4″-28 locknuts. I machined off the nylon part in hopes of finding a plain nut, but instead I discover it’s a threaded insert inside a formed steel shell!

Now, maybe not all nylocks are like that, but this was one of those “oh so that’s how they make it” moments.

No, I still haven’t figured out how they got the ball inside the ball joint.

After receiving my order of axle bolts, here’s one of the front wheels mounted!

I tried to sit on this 2-wheeled arrangment (2 front wheels) and tested the steering, which is when I discovered the scrubbing problem. I’m realizing that “more shims” isn’t the answer in this case. I’ll either have to flip the plates (bearings on the inside) and shave 1/16″ off each side of the blocks, which may or may not actually be possible, or perhaps just mill off a thin layer of everything but a small section in the center to make a virtual shim without changing the thickness of the block substantially.

Or just, you know, pour cutting fluid into it and let it sort itself out.

Next up on Chibikart, attaching the baseplate, making the last two wheel mounting blocks, and throwing some electrons at the thing!

Chibi-Everything, Part II: Copter

Poor Chibicopter.

So I’m proud to announce that I’ve found a solution to the XBee over-the-air code uploading problem. The only catch is that…


…it involves chopping an FTDI cable header onto the board.

Yeah, not groundbreaking or world-changing. But, at least I’ve gotten over my software-induced project fear stage and now have a workable, if slightly convoluted, procedure for uploading code and debugging! The hookup for the FTDI is essentially that of the Sparkfun Pro Mini, but instead of DTR I have RTS from the standard FTDI cable going into my reset isolation capacitor thing.

I really should have just done this like two weeks ago.

Anyways, here’s a picture of me triple wielding XBees in order to get this thing to work. The current signalling protocol is:

  • The Xbee connected to my transmitter (in bypass mode) is address 2, the XBee on Chibicopter is address 1, and my debugging/base station is address 0
  • XBee 2 only transmits to Xbee 1 (ATDL = 1 ATMY = 2)
  • Xbee 1 only transmits to Xbee 0 (ATDL = 0 ATMY = 1)
  • Xbee 0 transmits to the nonexistent XBee #3 (ATDL = 3 ATMY = 0) in order for its serial transmissions to not appear on the others
  • Therefore, my radio transmits commands to Chibicopter, which in turn transmits debugging data to the base station where it appears on my screen.

To reprogram Chibicopter, I remove the Xbee from Chibicopter, disengage the base station XBee adapter and jam the FTDI cable onto Chibicopter. I have to take the XBee onboard out first because there is no selection/domination circuitry which allows both XBee and FTDI cable to use the serial lines at the same time.

It’s quite an overloaded process, but it has at least gotten me to the point of…

…being able to finally read the pulsewidths from my radio. All four of the ones I care about. The Serial buffer reading code needed a bit of tweaking – I had to flush the serial receive buffer after every read or else it would desynchronize because more packets appear as the procedure was executing.

Sadly enough, there is no more Serial.flush() in Arduino 1.0, the functionality having been removed. I wondered why briefly before just writing a dumb serial buffer clearing loop.

Anyways, the good news is that I transferred enough core functionality over from tinycopter such that Chibicopter’s props respond properly to suddenly orientation changes! That means it’s just some tuning of gains away from actually flying.

The bad news is that through some irony of fate, two of the tiny 1S-lithium motor controllers have ceased to function. Just in time, right? I’m uncertain as to why they failed. One possible reason is that since the board has absolutely no logic power supply at all (everything running off the 3.something volt battery) that 5 volts from the FTDI cable was enough to destroy the weaker ones.

Now, I’m also wondering why it is that there is an option for 3.3v-compatible logic but with 5 volt VCC (power supply). If the point is to use it with a 3.3v system safely, isn’t this undesirable?

No matter – I have more spares on the way, but they’ll still take a few days to arrive. In the mean time, I might make a little pass-through board or something which down-regulates the 5v USB power to 3.3v.

and then it will fly I swear guys