Überclocker Remix: Round Three; Pop Quiz and NK unofficially canceled

And the beat goes on.

The wire’s coming up fast.My summer internship with iLolbot ends this Friday. After that, I have a solid week where the only damn thing I’m going to do is plug on ‘clocker day and night. In precisely two weeks time, I’ll have to have everything wrapped up and shipped down to Atlanta. Lack of 24/7 tool access means that the state of the robot as of midnight on September 1st is pretty much going to have to be final.

At this point, I doubt I’ll have time to get to Pop Quiz at all. I thought Nuclear Kitten had required only a re-magneting, but it turns out the motor needs a total rework. Additionally, I need to reconsider the drive motors, since I went through two gearboxes last year and do not have any spares at the moment.

The insect status for Dragon Con is therefore tenuous.  NK is a second priority after Überclocker, and only if I think the design is going to be solid. Two events of last-minute rushing have sent me the message that last-minute rushing makes robots not fun.

Hell, if Überclocker doesn’t make it, I’m just going to D*C for the sake of going to D*C. Maybe I can actually take some pics this time.

Überclocker Remix

The build has pretty much reached the point where I’m the only bottleneck. That is, I have to fab all the rest of the part, and I’m slow compared to a CNC anything.

Yeah, I consider that “slow” now.

It’s time to start filling in the pretend-o-bot!

The “shocks” for the springy front legs. These are, like on Überclocker 1, post-op’d waterjet parts. I actually had to rework this design on the fly because I ordered the wrong kind of shoulder screws – 5/16″ diameter instead of 1/4″. The problem was that my springs had a 1/4″ rod-fit size.

Ever machine a spring? It’s not pretty, but a 5/16″ carbide endmill chucked in a lathe tailstock made pretty short work of it. I was expecting some epic disaster with the spring unwinding or just exploding out of the chuck.

This is the leg arrangement with the ‘shocks’ in place. I thought 100 pound/inch springs were going to be too stiff, but the high lever arm ratio of the linkage means the whole thing is still pretty bouncy.

More little shiny round things are now appearing around the robot. These are the drive “standoffs”, which function as dead axles. I formerly made these part of the robot structure, but it was an epic pain undoing the screws which held the body rail/panel to the standoff. Therefore, I just made a shoulder which sits in a bore on the outside walls of the robot. It’s not entirely structural, but will resist cave-ins (from impacts) to a degree.

I did end up putting a threaded hole on the outside end just in case I changed my mind.

The standoffs were made from 12L14 steel, which is something like two beans and a lollipop per six foot rod on McMaster. I have a new appreciation for this stuff – it’s like… steel, but it machines like aluminum.

Then again, how much should I be trusting steel which machines like fucking aluminum?

Hubs!

Well, these are actually functional prototypes of hubs. It was easier to pop four off in one cycle than to switch back and forth between machines, completing one at a time.

Completed hubs, with sprockets. Remember those sprockets with the weird double-D shaped bore? Now you know why.

Simple retainment and power transmission with the aid of the DD and a snap ring. I used to hate retaining rings (snap rings, C-clips, etc…) with a flaming magnesium passion. But after getting a set of snap ring pliers I realized they were the most compact and cheapest way to keep something axially where it should be.

So now I love snap rings. The cool thing is that the sprockets are easily removable, so I can press the wheel on later. This was just an assembly test.

… but wait, what do you mean the chain doesn’t go in my sprocket teeth?

I highly doubted it was a pitch/scaling issue, since some times the chain was able to wrap all the way around and other times not. I suspected that it was more a building up of small incremental errors made by the waterjet as the c hain went around the circle.

The solution was as simple as giving each tooth a really quick flick over the open section of a belt sander. After that, it was still sort of rough, so…

… this is TOTALLY LEGIT GUYS I PROMISE.

I am under no circumstances endorsing this kind of behavior.

Yeah. Right. Anyways, chuck one hub in a powered spindle of some sort (I had a convenient one 10 feet away), and put the other hub on a little axle that you can grab onto.Link the chain between the two sprockets and power the machine on.

Assuming you haven’t been sucked into the spindle yet, pull on the axle, hard.

This sort of grinds the chain into the sprocket teeth and forces it to round out imperfections just by virtue of being under balltastic tention. I was only limited in the pull force by the fear of the whole lathe rolling over onto me.

The sprockets ended up pretty smooth.

So I take back every mean thing I have ever said about 4 jaw chucks. They are wonderful, wonderful creations of man. More epic than the discovery of naturally-occuring sliced bread and the invention of the solar system.

But they’re still a bitch to use. However, it’s totally worth it for some situations.

Such as when you want to square off a section of barstock and insert a symmetrically-located circular feature in one setup! In fact, for situations (not speaking from personal experience at all) where your choice of barstock-portioning implement somehow makes an angled cut in two axes at the same time on both sides, the easiest way to get a known square end might be to cram it in a 4-jaw using the flat sides of the barstock and perform facing cuts.

I was only able to find tutorials on how to center round things online, but not square ones, so I had to invent my own little method first. Essentially it boils down to comparing the minimum deflection of a dial indicator on opposite sides and adjusting the jaws associated with those sides until they are the same. “Minimum deflection” refers to the location where the indicator tip is exactly perpendicular to the surface of the part. Any rotation would cause it to extend more.

…did I mention that 4-jaw chucks are a bitch to use?

Here are the results of a night bitching around with Bitch Chucks. These are embryonic drive gearboxes – more or less repackaged drill motors.

I discovered an annoying feature of one of my digital calipers which caused bore measurements to be .007″ under what they actually are. Imagine my surprise when I discover that a 0.944″ OD bearing passes through a 0.936″ hole.

It turns out the ID-measuring points were bent inwards such that they overlapped slightly.For future measurements I’m reverting back to an older (but less grunged) set.

This probably happened that one time they fell off a moving bike. Don’t ask why I have digital calipers mounted on a bike.

The Eternal Tragedy of the LOLrioKart

The saga continues.

There are three reasons why I work on the kart more than any sane person world. The first is if I’m not doing anything else at the moment and need a distraction from the tribulations of life. The second is if I’m preparing for an event or situation where it would be publicly seen… after all, a working model is better than a nonfunctional sculpture.

And the third is if I have a neat idea or cool part and it HAS to be implemented NAO.

Like some instrumentation. Because operation of the kart is always a game of power electronic dice, I decided that some kind of readout of system conditions was necessary. It just so happened that MITERS had some old skool panel meters hidden deep within its bowels.  There were a few interesting options, such as a leak rate meter… what on earth does that measure?

I decided to start with a simple battery voltage monitor, since I had no convenient Hall Effect sensor,  shunt, or other low-value resistor (besides the SwapFETs’ incredibly low 2 milliohms) or a real constant current supply to calibrate a current meter.

A semi-known fact is that most ammeters are in fact sensitive voltmeters. While it’s easy to make a loop of wire and a magnet respond to 10,000 volts, it’s not nearly as easy to do with 10,000 amps. So a resistor game is played to turn the 10,000 amps into a very small voltage, like 100 millivolts or something. Enough to tick a needle on a voltmeter that has “10,000 amps” written on it.

You can easily convert an “ammeter” to a voltmeter if the “full scale deflection” voltage and current draw are known.

I settled for this meter for the voltage monitor, since the other one actually says amps on it. This one measures “Current-volts-microns”.

I have no clue what kind of SI unit that is, but it was the winner because of its simple 1-millivolt-per-tick scale.

So let’s convert this 100-mV meter into a 100 volt meter.  To not explode the meter, it should span a voltage of no more than 100 millivolts (0.1V). In a 100 volt system, that means 99.9 volts must be dropped across a resistor in series with it before it’s connected to the circuit under scrutiny.

The meter drew approximately .5 milliamps (0.0005 amps) at full scale deflection. So the resistor in question must drop 99.9 volts while passing 0.0005 amps. Now just pimpslap Georg Ohm and you have the resistance value needed – (99.9 / 0.0005) = about 200,000 ohms. Actally 199800, but I didn’t have one of those, and the kart isn’t going into space or something.

…yet.

Zip tied to the kart.

Through this meter, I found out that the batteries drooped in voltage under a good hard launch from 61 volts (freshly charged) to about 56. So they’re not too dead.

Or they are, but even being completely fucked are still awesome just by virtue of being cacknormous.

In a continuation of Reason #3, I found a road blinkie. You know, those things on top of orange construction barrels. It contains a few amber LEDs, runs off D-cells, and automatically switches on and off via photocell.

Well that was easy enough. A half inch bolt threaded through a spacer and into the mounting point of the light and I had improved the road safety of the kart hundredfold.

Let’s move onto more imporant things. For the past while, the kart has been randomly cutting out. The 12 volt DC/DC converter has been resetting for apparently little reason – not just under acceleration, but even sitting still. I wasn’t sure what was causing it, but suspected some sort of transient effect scaring the DC/DC unit.

In tearing down the electrical system, I decided that it was a good time to build a more legitimate motor driver.

It was time to get away from the cobbled-together hardware PWM generator. Producing signals in software makes for a much more versatile controller that can be reconfigured easily. I happened to have some Arduini kicking around, and a Protoshield kit leftover from last year’s Überclocker build.

Rounding out the components is an IXYS 6 amp dual gate driver with isolated high side. Using a halfbridge driver like this lets the controller perform regenerative braking. The high side required an isolated power supply, so I yanked out this 12v-12v DC/DC converter-converter from another motor driver board. I wanted some more electrical isolation between the fragile microcontroller and the harsh environment of my non-EE projects, so I salvaged some optocouplers from some weird board that had to have been made in the 80s.

Finished a few hours later.

I was able to use the Arduino language’s built-in PWM command, so the software was extremely simple. Normally it operates at 500Hz – far too slow. But changing the timer/counter initial counts causes the PWMs to run substantially quicker. I ended up going with the 4kHz option.

The two gate outputs are on the bottom side of the board. The left is the high side, and the right is the low side. For now, to keep backwards compatibility, I left the high side unconnected in the kart.

Scoping the gate driver outputs. This was using some test code where I had independent control over each channel. The waveforms look good, except for a bit of twanging in the high side, which I suspect is just a ghetto scope probe.

Making the driver board fully modular meant that the system wiring could be cleaned up substantially. Before, I had a mess of signal wiring and power wiring all meeting at the terminal strip. However, I could now devote the entire terminal strip to power connections. The system DC/DC converter (a 12 volt, 3 amp unit) fans out into 5 outputs now, so I don’t have to try putting two wires into one terminal. Overall, everything became more organized.

So did it work?

No, of course it all blew up. The problem obviously does not lie within the gate driver system, because everything worked fine for about 20 minutes. Then the aforementioned DC/DC converter began repetitively cutting out.When it dies, the entire kart shuts off because the contactor opens up.

I had gotten into the bad habit of curing these brownouts by hard-cycling the battery switch to reset the converter. It worked a few times.

Then when I hit the switch again, the drive FET made a muffled popping noise and the kart jumped for a split second. Then all was quiet.

Okay, so this explosion wasn’t as spectacularly fire-filled as the other 5 or 6, but I still have to remove the whole electrical system to replace the brick. Amazingly enough, the gate driver assembly survived the whole ordeal.

Explanations that my EE friends (who still refuse to just build me a working controller, eh guys?) offered up include transients on the 12v rail resulting from inductive spikes coming from the contactor, or the lack of a local bypass capacitor  on the input side of the converter causing very short voltage dips to shut the converter off.

Either way, the DC/DC unit is now the problem child. The ghetto moves to another part of the city.

At least I got this cool Volvo dashboard gauge cluster  for free at Swapfest. Sort of defeats the purpose of me adding my own voltmeter.