Archive for the 'Null Hypothesis' Category


Hurricane Robot Videos

Oct 30, 2012 in CRJ Wallbanger, Null Hypothesis, Project Build Reports, Stuff, Überclocker Remix

Due to the sheer amount of ass-weather that is currently hovering the Northeast, I’ve taken the off-day to actually edit all of my Robot Battles 2012 video! Enjoy the following compilations of Null Hypothesis, Überclocker, and the Carly Rae Jepsen Wallbanger.



Little video snippers from Mike Jeffries, Dale, and Xo were used for some parts where my video was incomplete.

The Dragon*Con & Robot Battles 2012 Recap

Sep 07, 2012 in Bots, CRJ Wallbanger, Events, Null Hypothesis, Überclocker Remix

It’s over.

Again. And this time, it wasn’t total ass. This is probably made obvious by the fact that I’m making the recap report so soon after the event, as opposed to past years where I forgot about everything for, say, a month or two. Here’s how it all ended.

Überclocker (Unicorn):

With a drivetrain that finally approximates reliable, Überclocker actually managed to win matches! Later in the tournament, however, and pretty much expected, the repaired fork gearbox began failing and finally left Clocker without the lift portion of the fork. I briefly was able to use the clamp as a lifter (due to the much larger motor now there), but Clocker ended up losing out of the tournament due to …. unscrupulous… driving.

Null Hypothesis:

Well, it sure worked well as a fast pushybot, so I can’t say it failed, but I just didn’t practice driving in confined spaces enough and most of NH’s losses were due to ‘stagediving”. However, it faced two other powerful drivetrain bots, and I think NH caught several seconds of combined airtime over the course of the tournament, finally losing just due to being outmaneuvered.

The Carly Rae Jepsen Wallbanger:

Oh, poor CRJ. It really only had 1 match in the 12lbers, due to the 12s being run single-elimination out of time constraints. But the one match was fairly good – it caught some air glancing  off Apollyon before getting pushed out, then whacked a few people in the 12lb rumble before getting scooped up.

The Ragebridges:

I’m glad to report that for the first time ever, all of my competition robots ran a full-custom motor controller design. The Ragebridges, with their Semi-Intelligent Current Limiting (a.k.a constant-current mode) worked flawlessly, and the CC mode came in so very handy when Clocker’s lifter gearbox shattered and stalled out both motors. I didn’t realize it at first, so I spent a few seconds pulsing the fork control stick up and down, which certainly could have smoked the motors if there was no limiting. None of the boards had the 15v instability and resetting issue after I changed the regulator inductors, and while they did get hot, there were no burnouts or smokage, probably aided by the CC mode.

But robots wasn’t all that happened. Quite a few things went down during the week, too.

The first mission was to get down there. Same as last year, I rented a car with a sufficiently large trunk/hatch, because air freighting or ground shipping were totally uneconomical (and I would have had to build a crate weeks in advance). Joining me this year with his large blue and green EV magic boxes was Adam Bercu, fellow robot builder of many years and also purveyor of fine murdered-out C80 “melon” motors. I brought along several demoables for the Electric Vehicle intro panel that we were hosting, including Chibikart2, the Kitmotters (demo stand and working motor from Johnscooter), and some random R/C parts and batteries. Adam took up the bigger end of the scale with prismatic Li cells, the giant Manzanita “micro” charger, and a large series DC motor controller along with other doodads.

The con itself was quite a time as it always has been. This year, though, I began noticing far more mechanical and home-built costumes and…. other things.

News flash: Eteks are now steampunk.

Update: Steampunk now officially meaningless.

As much fun as I make of steampunk, stuff like this still tickles me correctly because it shows that more people are getting down to building, no matter how silly and brassy it looks. The fabrication on this mono-tri-wheel-thing was pretty well done.

The same group also had a pretty sweet mono-moped with a ring wheel. Does this constitute a hub motor?!

IS IT STEAMPUNK!? I can’t tell any more.

Other mechanical costume parts abounded, like these deploying… something wings. Not too sure if they’re angel or paraglider or what, but watching it in action was awesome.

They were driven by a single motor meshing with a nicely finished geartrain. The drive parts were all waterjet-cut. This was present in the Waterjetting & Digital Fabrication panel, for good reason.

There was also plenty of more decorative elements involving LEDs and lighting on costumes. I’m not sure what the above character is (furry-rave-angel-quarterback-gunner?), but she had a very well made arm cannon doodad and plenty of LED accents everywhere. While throwing LEDs on things might not seem impressive to the average jaded engineer, for many people doing so is an introduction to hooking up a battery to a thing they made and having it work. That’s how it all begins.

I’m definitely supportive of more people making electronic and mechanical costumes and costume parts, and it kind of makes me want to do it more. I think I suffer a bit from costume one-upsmanship envy because I don’t want to start until I make a fully functional mech or something of that scale.

With the expansion of the Robotics Track to include the maker/hacker movement in general, I’m hoping to see many people make engineered costume bits in the future.

Besides the functional stuff, there was the usual plethora of paper mache and foam oversized objects. I’m fond of oversized tools, so here’s a giant wrench. Hey, one of those 3 is Alice Cooper, right?

Sadly, there was no space in the car for Excaliper, my giant 5.5-foot (real steel) vernier caliper that I brought one year and waved around.

Before the con itself, however, there were more robots. We didn’t go down a whole week beforehand just to sit around and drink sweet tea.

Above is Adam’s emergency 30lber build in progress. Nicknamed “Blitz”, it was built essentially over 5 evenings. On Monday immediately after arrival, we stopped by the area Harbor Freight and raided them of almost all of their 18v cordless drills. This was the same time I bought the cordless saws for Carly Rae Jepsen. The next day, we dropped by and bought some more.

A few days later, before the big show. Also present during the week was the other quickly-built-for-fun 12lber, Turboencabulator. Blitz’s design was based off the heavyweight champion Sewer Snake, which has a non-actuated extension of its main lifter weapon that swings forward when the lifted is driven under the robot, making for a flipper-like effect.

Also happening during the week was the installation of the new arena hazard in the Bot Arena, courtesy of yours truly and the arena build crew.

Yes, that is the secret thing I worked on through most of July and August. It doesn’t look very exciting from up top, certainly. In lieu of me explaining what is going on, it might be worth watching some of the antweights videos from this year (videos courtesy of Mike from Near Chaos Robotics)

I still need to put up an epicly long build report for this sucker one day.

This contraption is the control panel for the hazard. It has buttons and does things.

Let’s get down to robots. This is the new Atlanta arena.

Seriously. Isn’t it fucking gorgeous? Not only that, but it’s so outrageously modular. It takes a group of 4 guys maybe 15 minutes to set up if we have practice and tools nearby. Rigging the wiring for lights takes longer, but if you needed instant no-frills robot fight, that’s it. It’s also grown to nearly double the space, from 6 x 6 feet to 8 x 8 feet.

The hole. It’s supposed to have a 12″ sanding disc, but I forgot to bring it and nobody seems to sell those in the Atlanta area in a reasonable timeframe. So we had to make do with these little sanding pads. They fell off as quickly as expected.

If you haven’t figured out from the video, the turntable also goes up and down, creating a whirling pit of annoyance.

I didn’t get many good arena shots since i was primarily recording video. Plus, my free 4-year-old fake-DSLR doesn’t stand up to the professional and camera-penis-contestant photographers there anyway. Above is Dominant Mode briefly before it rocketed the pushybot most of the way across the arena.

The tournament this year was really boned for time – we were supposed to have 3.5 hours, but only ended up getting 2.5, and another event was scheduled to set up during out takedown/loadout time. As a result, many matches had to be cut short and the tournament had to be switched to single elimination mid-stream. Next year, though, this should not happen again.

The day after was the big day!

Again with the last minute random even details, the hotel sadfaced at the robots destroying the brand-new stage risers they had purchased just this year. As a result, a few dedicated builders put together a MDF and carpet overlay for the MDF and carpet stage riser surface. Steel plate annoyance bumps were also bolted to this upper layer, but not very securely – the 30lbers started plowing them off one by one.

There were too many 12lbers to run double elimination, but the 30s ended up being double.

Carly Rae Jepsen Wallbanger lost once to Apollyon for a net 0-1 record.

Überclocker won against Nyx and subsequently won against Scary-go-Round before losing to Pinball and then Nyx, for a 2-2 record.

Null Hypothesis faced Pinball immediately and lost (but not before catching some serious air by ramping off the front wedge of Pinball), then lost to Nyx, for a 0-2 record.

The carpet ended up being a little fragile on its own with no strong, bonded substrate (unlike the stage riser carpet). By the end, there were so many holes and tears in it that the duct taped used to fix the stuff became a hazard in its own right. The lint was also very tenacious and got into drivetrains. Quite an interesting element to add to the game, though the builders are now thinking of a better solution for future years in case the hotel requests stage condoms once again.

Yes, that is a sword on Clocker. After all, I did name it Überclocker Ünicorn, right?

After my match with Scary-go-Round, the lifting fork was pretty much totally useless. Both of the gearboxes had shattered completely from the impacts and the motors were totally locked up. I got as much postponement time as I could in order to pull the gearbox and take out the broken gears, a process which took about 20 minutes exactly as I found out. I restored one gearbox to functional status (leaving the other one freewheeling) , there was not enough time to put it together for the Pinball match.

The top clamp has enough force to lift 30lbers, so I just needed an extension to get it to the ground. Hence, emergency death-shank provided by Jamison. It worked exactly once, but not really.

Next version of Clocker is designed with serviceability in mind…

The carpet also destroyed the McMasterbots wheels. Clocker managed to grind the two back wheels right down to the plastic core, which compromised its traction a fair lot near the end. These wheels are clearly one event use – they’re too soft to just leave on, so I guess I need to make them easily replaceable and have plenty of spares hanging out.


I’m glad to say that many people besides just me had cameras at the events, so Clocker and crew have alot of footage from their matches. It’s almost to the point where I don’t have to do anything!

I’m waiting on some video from other people before editing together my own bots’ summary videos, but in the mean time, NCR has a list of almost every match, and Dale’s Homemade Robots has several compilation videos.

outlook for the fall

That’s it. My annual robot party has ended, and it’s now back to the grind of taking classes. This fall I’m going to play a bit of a catchup game in that regard, so I’ve promised myself no large engineery things. Let’s see how long that lasts.

Clocker will be dismantled now, to force me to rebuild it. The earliest I might be able to call it is Motorama 2013, in February. NH will be kept totally as-is, but it won’t go to Moto 2013 (the only category it would be legal in would just make it be more disassembled, not necessarily reversibly so). CRJW might become the inspiration for a new true “melty brain” translate-while-spinning bot next year.

This semester, I’m going to focus on little things which don’t need time spent fabricating. It would be nice to get the Ragebridge boards compactified more and get rid of the discrete Arduino (or “the ATMega328 breakout board” as some have called it). Not to say it won’t use the current Arduino code, but the chip will just be integrated on board. I’d like to reduce the square footage by 25% or more this way. I’ll also try to characterize the Semi-Intelligent Current Limiting some more to see how fast and effective I can make it. Given the discovery of mismatched component values and incorrectly placed parts, tinyTroller might make a reappearance since it has the same power side architecture.

Next, it’s my intention to reduce my gargantuan pile of robot debris some more. I’m currently split between 4 different shelves and storage locations, and even those are becoming hard to handle… I may put quite a few things up for sale here, and if I do, they will be on a separate page.

As for the distant future, next Dragon*Con I intend to make more appearances at the Maker/Robots track. I do want to run Resources and EVs again, but also I want to add How to Shop on McMaster-Carr… one of the seminal skills that hobbyists and amateur engineers have to learn that really makes projects nice.

Null Hypothesis: Finishing Up and Testing the Ragebridge v1

Aug 11, 2012 in Bots, Motor Controllers, Null Hypothesis, Project Build Reports

This it!

The post where my project gets stuck in motor controller hell. It happens to everything I try to build a motor controller for, so be prepared to read about exploding FETs and endless nondeterministic troubleshooting!

Well, the story is actually slightly happier than that. In the past few days,

  • The frame has been put together, all the wheels mounted, and battery pack made
  • The Ragebridge has been installed and the robot successfully tested and driven using it, seemingly exhibiting no adverse noise issues
  • The Ragebridge has been successfully detonated when a motor suddenly locked up.

Let’s start from the beginning.

With the wheels bored out, making hubs was the next step. I decided to make these more consistently on a Nice Thing with digital readouts, courtesy of the Edgerton Shop (They were also the nearest straight knurling tool, incidentally). The knurls will help the hubs not slip and strip out against the soft plastic bore of the McMasterbots wheels.

The hubs are installed with an arbor press.

Two wheels in. The hubs are very conventional “drill hubs” with a 3/8″-24 internal thread and internal shoulder that lets the reverse-threaded 5mm locking screw hold the hub in place against both threads. I’ve always found it funny how the ‘cheap drill’ converged solution ended up using an English and a Metric thread on the same part. The outer thread is not M10 or a metric thread, and the internal thread is definitely 5mm x .8 and not #10-32, which only fit down to a few threads. I’m mildly interested in how shady Chinese factories converge towards which design to copy and paste.

It’s starting to look like a robot now.

I temporarily secured the front wedge on with a few screws in preparation for a test drive.

Okay, robot’s done. Nothing more to see.

Using a spare 7S battery pack (from the long-retired Segfault) and the Botbuttz controllers I bought a while back, I threw together this test rig just to try out how the robot handles. Conclusion: It handles like a pushybot with a wide wheelbase and near-midpoint center of gravity! Unlike Clocker, which is back-heavy out of necessity and so oversteers very easily, this thing is extremely stable in turns. The braking effect of the BB controllers also contributes to snap turning response and smooth starting and stopping. These are all features I want to make sure Ragebridge can duplicate.

I spent a while scooting this around before moving onto the real challenge: the aforementioned Ragebridge.

I soldered up another board (the first one having been put into the Silly Media Lab Vehicle). There were no changes made to the board layout, only the modifications addressed in its first post which included moving the low-side gate drive bypass capacitors into the right place.

After verification of the hardware functionality, I spent the majority of 2 days hammering out an R/C input firmware for the board. I added features in the following order:

  • Radio signal-loss failsafes! I figured if I just wrote a dumb Servo-to-PWM program, it would stay that way forever. ESCs for robots need to have a way to shut off the motor outputs on recognition of signal loss, so the robot doesn’t just keep rolling. This part wasn’t difficult: every time a valid servo pulse is received in the pulse-reading interrupt, a flag is set to indicate the reading was good. A checking routine runs once per half-second to see if there were any channels which did not set their validity flags – if there are, then the gate drivers are shut off until all signals are good again.
  • Command ramping, meaning the ESC takes a small amount of time to slew from one direction to another. This is to prevent instantaneous “step reversing” which can cause huge current draws, up to twice the DC bus voltage to appear at your ESC’s power inputs, exploding motors, and other terrible things. I created quite an epicly named function, mapWithRampingAndDeadBand(); to perform this task.
  • Linear stick response. Directly mapping of the pulse widths to PWM output %, through the ramping limiter. This was just to get the robot driveable so I could add…
  • Invert mode, a feature which allows you to redesignate which end of the robot is forward. Useful for invertible bots like NH because otherwise your robot would drive backwards when upside down, as well as have swapped turning behavior. This is activated by the channel 5 toggle witch on my radio, and just swaps the left and right commands while adding a negative sign.
  • Exponential stick response. This makes the initial response ‘softer’ so the robot can be driven more precisely when moving slowly. It tends to reduce spin-out and oversteer tendencies. It is implemented as a simple lookup table – raw command goes in, expo command comes back.

I began to add a ‘stick calibration’ mode, but decided against it for now. Stick calibration is a luxury, because radios can generally be trimmed and have their endpoints modified to suit just about any desired pulsewidth range.

The current version of the RB firmware is here. It’s written in Arduino 1.0.1 (which finally got rid of the CTRL+SHIFT+M bug!). I generated two exponential response tables, one a little more expo than the other. I found the “more expo” one to be a little sluggish in responding without moving the sticks really far, but your experiences may vary.

Ragebridge v1 installed in the robot on its little standoffs…

After testing the controller out on a power supply first (which has nice features such as non-infinite current output in case of a fault) I put the test battery right back in because I hadn’t gotten to making the actual robot pack yet, then made some test driving videos!

The “basic test” was done right after I finished the linear stick mapping, and the more advanced testing is with exponential.

I like Ragebridge’s functionality in those tests. While open-floor driving is not as strenuous as pushing another robot (trying to push you back), high-current transients like from reversal and stopping will be what causes noise-induced failures and latchups. I didn’t observe any of those issues during that test driving, which bodes well for more sustained heavier loads. Unfortunately I neglected to put a Wattmeter on the thing, so I don’t actually have power throughput figures. Typical drill motor drivetrains in this size robot will draw about 30-40A per motor accelerating or changing directions and about 15 amps spinning out the wheels.

With at least a slim prospect of the robot working properly, I started putting together the battery pack:

The voltage of this pack will be 8S2P in lithium iron phosphate, so 25.6V nominal and 28v peak. This high voltage was just to get the speed I wanted out of the motors, but it could prove to be the proverbial Achille’s Heel… or perhaps Achille’s A123 Cell for the robot.

Those yellow things are PTC thermal fuses. I usually just lay more busbraid across the cells to put them in parallel, but the PTCs add another layer of failsafing by limiting the rate at which the cells can differentially discharge. If one cell suddenly fails (or gets punctured) and becomes a short, then the very low resistance of the bus braid will let the other healthy cell short into it, potentially causing even more damage. The PTCs will at least limit this to a reasonable current.

I chopped up some spare 4S JST balance extension cables for the cell taps. Generally I make my own using JST-XH connector shells and pins (e.g. Digikey’s 455-2217-ND), but it takes longer (and most chargers don’t have slots for 8S pack taps anyway). One JST lead is the lower half of the pack and the other is the upper half.

The balance leads are insulated by some Kapton tape layers as I soldered them in. I didn’t want them laying directly on the cell tops any more, after this happened, but on this pack there’s no space to route the wires only down the sides of the cells (it will be laying flat in the robot).

Since this pack will be more enthusiastically jostled inside the robot, I’m giving it a layer of foamy armor.

And after Giant Heatshrinking! I gave the pack its initial balance-and-charge wakeup routine with my 1010B+ charger doohickey.

While the pack was slow-roasting to perfection, I took care of the last bits of electrical work on the robot itself.

This adorable ABS-printed connector holder houses a Deans connector and an XT-60 connector. The Deans is going to be the master switch via the “Georgia Tech Key” method. In order to prevent myself from being confused at which terminal to charge the battery from versus to bridge together (hint: bridging the battery is a bad thing), I just used a totally different connector for the charge plug. The connector housing is mounted to the bottom plate.

This is the “Georgia Tech Key”, so named because I’ve only seen it on random GT creations before. Technically it’s called a removable link.

I made this loop a little too long and it sticks out the top of the robot by a little, but some tape should keep it down. In the worst case I’ll just replace it with a directly shorted Deans connector.

Alright, here it is. That’s it. The robot’s done.

Now to hand it off to other people and drive it around until it blows up! The best way for me to find the weaknesses of any of my builds is to give it to other people. I subconsciously go easy on things I know may be unreliable (the so called Creator’s Mercy), but other people have no concept of, say, the drills being severely overvolted, or for instance in the case of the Chibikarts, that flooring the throttle from a standstill may not result in satisfactory behavior.

I wasn’t able to whip out the video camera in time to capture the magic moment, but what happened was this:

And this:

What triggered the failure was a MITERS member driving (very happily and enthusiastically) NH into a solid machine frame at pretty close to top speed. The robot stopped moving, and I instructed him to give a little throttle to see if the controller was still working. It’s actually very difficult to judge what people consider ‘a little throttle’ based on experience, so I can only assume that it was near full stick or something. A small explosion was seen inside the case.

The superficial damage was the blown ground trace and one very, very unhappy MOSFET. The actual damage, though, as I found out through subsequent hours of checking and debugging, was pretty much the whole thing. The Arduino Nano was fried (noted when I powered it back on and the ATMega started drawing half an amp…), as were all 4 FETs on the exploded side (gate-to-source shorted through), both of the IRS21844 gate drivers on that side, the gate-to-source protection zeners (which I’m sure did all the protection they could before exploding), as well as half of the 74LS08 quad AND gate that is involved in piping the PWM signal to the gate drivers.


After replacing most of the semiconductors (and the Nano) failed to make the controller work consistently again, I decided to just scrap this board. Some times, enormous transients damage components in ways that are unexpected

And that’s the motor after I took it apart.

I think a combination of being oversped (18v overvolted to 28v) and sudden impact (running into the solid object) must have blown off the commutator segment. These motors are not really what I would call “well made” since the whole drill they come in costs $20. Running 28 volts is certainly up for compromise. But, I enjoy the speed of the bot on such a voltage.

Good thing I have a small forest of these drills!

So the final version of the story is, NH was finished and blown up, and is now unfinished. Putting together a new controller (with some mods I will discuss below) and pitching the bot  back together should not take long.

ragebridge mods

Now that I’ve gotten to know Ragebridge a little better, I have in mind a list of issues and changes I’d like to make when it’s time for version 2. Since V1 actually seems to work fairly well, this is not an immediate task.

First issue to take note of is of course the misplacement of the gate drive bypass caps. This is what led to the very first board not working at all until I changed it. Clearly this is a routing matter and the second version of the board has to address it, but for now it is easy to hack by hanging the little capacitor off the pins of the 21844 chip.

Second, the row of input headers at the top of the board are not in a very useful order. Two of them were designed for “servo” style connectors which are terminated signal-power-ground, and two for ‘potentiometer’ style inputs, terminated power-signal-ground. Well, I got the servo input order wrong anyway – those two headers actually are connected signal-ground-power. So I had to make two different styles of deceptively incompatible servo cables to suit the board because I needed 3 channels of input. I’d just line them all up signal-power-ground in the future, even the “analog” inputs, for better consistency.

Next, and an issue I can hack around for now, is the way that the power traces narrow awkwardly and haphazardly:

Those yellow highlights is where the trace width drops significantly from the average. The ones at the left and right bug me in particular – I was definitely trying to keep the controller within a reasonable width, but the heavy power traces around them are easily double the width and very short too. I was intending to reinforce those with braid or wire, I think, but didn’t actually do it for this board.

The circle near left center is a really obvious design derp. Most of the power stage of the board is basically rotated 180 degrees from eachother, except that current sensor placement. The right side of the board has no corresponding narrowing – current flows down through the vias on the right center two FETs for MA2, and the right side’s current sense path is a straight shot.

Given that these traces are all made in 1 oz copper, they’re exceptionally prone to sudden current overloads, such as a near doubly-overvolted drill motor suddenly slamming to a halt. The current sense path on the left is a little more difficult to reinforce since it’s under that FET, but as long as I’m not using the current sensor on these boards yet, I could hard-jump it with a piece of wire.

Overall, I’m satisfied with how Ragebridge has been behaving (short of being inductively crowbarred by an unhappy drill motor), and I’m going to be building more of them to test on other bots soon…and of course fixing this one.


Null Hypothesis Grand Update: From Zero to Something, I’m Not Sure What

Aug 08, 2012 in Bots, Null Hypothesis, Project Build Reports

What do you mean Robot Battles at Dragon*Con is in 3.5 weeks?!

Again? I swear they move the thing up one week every year just to surprise me. Actually, it’s more like 2 and a half weeks before I get to Epic Road Trip once again from Boston to Atlanta (ideally not through The Sprawl) and temporarily set up base camp at the Invention Studio. So maybe it’s time to start on a robot or something.

Luckily, I’ve actually been working on Null Hypothesis on and off for about a week. As explained in its introductory post, I was needing to separate a large 8 x 48″ panel of 1″ thick UHMW into slightly funny-shaped bars with the waterjet. I test cut one of the less important frame pieces to check for quality of finish, and determined that only cutting on the highest quality was going to even have a hope of getting through the material. UHMW is notoriously hard to do anything abrasive to since it resists abrasion really well.

One mistake I made but only realized later is that I was testing that piece on a setting meant for polypropylene plastic, which machines much easier – one of the most machinable plastics.. Every material is assigned a “machinability” value in the OMAX software, and this is one factor in controlling how fast the jet moves – and cut quality is pretty much a function of slow. Even “generic” plastic and acrylic-specific settings have machining speeds around half of polypropylene. Therefore, I elected to just throw the panel on the machine and hope for the best using the highest quality finish.


By the way, cutting a mushy plastic like UHMW – or any plastic, really – causes a disgusting film of plastic goo to cover the surface of the pool, because the particles both float and stick together. I was skimming handfuls of plastic snot out of the tank as the job progressed.

The job took an hour and a half, which I can’t really say is much faster than me cutting off a bunch of barstock like I would have done Back In The Day. I had bought enough UHMW barstock in the correct size (1″ thick, 2.5″ wide) to make most of the frame anyway because I was uncertain that the huge panel would have been useful. But, with the combination of very high quality cut (slooooow) and actually selecting the correct material properties, the frame pieces came out very smooth and square. I was otherwise prepared to redesign the frame a little to get rid of those hard internal square corners and slots to relieve me of the extra machining.

Also on deck in the same session was the front and rear steel parts, the top and bottom polycarbonate covers, and the internal electronics mounting structure. Above are the front wedge and eventual rear bumper thing. Both are made from annealed 4130 plate steel purchased from McMaster.

While I don’t really have facilities big enough to heat treat these plates short of throwing it on top of a gas fired barbeque grill for an hour, buying a plate of generic mild steel was actually more expensive – a 6 x 36″ plate of 4130 in 1/8″ thickness costs $36, whereas generic 1018 steel in the same dimensions is more like $50. Strange, given how much more versatile 4130 can be -  not only is it stronger even in annealed form than mild steel, but I could harden it to the high Rockwell C40s.

I attribute it to McMaster knowing what people buy most frequently and giving those product some… extra markup.

Here’s the pile of structural parts. The top and bottom plates are 1/8″ polycarb, and the supplementary electronics armor is 3/8″.

I’ve pre-bent the rear bumper because it took me a few tries to get it right. First, the extra-strength 4130 defeated my attempts to bend it using the largest metal brake I could find – a 10 gauge rated, 50″ box-and-pan brake. The cold 4130 plate, a foot wide and at the limit of the machine’s capacity, would not bend.

Next, I tried heating it up with a torch, but I don’t think I got the part nearly hot enough (that or my torch was too small, another possibility). While the hot plate did bend, I didn’t tighten the finger clamps enough or something similarly bad happened, so my bend line slipped about 1/4″ back on one side. Whoops, asymmetric part…

I gave up and recut the plate out of some scavenged 1018 mild steel plate – this bent just fine. Honestly, for Robot Battles I could well make this plate from jello and it would still be enough.

UHMW is almost always manufactured oversize and to rather loose tolerances because its primary industrial application seems to be skid pads and wear plates. For that, precision is not necessary. My 1″ UHMW plate was more like 1.03″ (not 0.003, 0.03), so some of the rectangular slotwork in the top plate didn’t fit. I plowed off the extra thickness in the region of the slots using tinymilll, our super adorable LittleMachineShop mini mill.

The frame standoffs are stock from McMaster. Now, these things come threaded, but I actually just need spacers (unthreaded, pass-through), so I drilled them out.

It turns out that large standoffs only cost about $1 in quantity. McMaster must have found a cheap supplier for standoffs recently, because I definitely remember almost all of the small ones like 4-40s and 6-32s also costing $1 each or so. But now they seem to hover around 30-40 cents.

This is great, because it means it’s actually far cheaper for me to buy a bag of them as “stock” than to machine them myself. Previously, if I needed a bunch of odd standoffs, I’d machine all of them, which takes alot of time, and I’m sure an industrial manufacturing process can produce more consistent parts than I ever care to.

Because I was able to keep the slots and cutouts, the frame acted as its own machining fixture very well. I clamped the parts to the table and drilled where needed. It was pretty much assembled in situ. All of the fasteners are 3/8″-16 button head cap screws. On the top and bottom, I’m going to have 1/4″-20s because larger screws have impractically large heads to countersink into 1/8″ thick material.

The back plate was clamped in place on the bot first, then the mounting holes drilled and tapped in-place. The steel was very slightly too acute of an angle, but the screw pressure was enough to keep it fully flush with the beveled surfaces. I like how this back plate came out.

One advantage of keeping with the strict waterjetting diet is that I was able to easily make these ‘form fitting’ mounts for the drills. Granted, 3 holes and a big center bored hole would have gotten me the same.

Because the material is so thick, the entirety of the gearbox is well supported. The motor is actually fixtured from movement on the outside of the frame rails…

…like so. I’m really hoping these 3D printed ABS hub-things stand up to physical abuse. They’re 100% solid, but ABS is still a pretty soft plastic, especially when laid down in noodle form using the Lab Replicator (because we live in the future now). This let me build the double-D shape of the drill output exactly.

I didn’t actually get to mount the motors permanently – the frame wasn’t done with hole drilling, and I was also missing the correct screws to secure the flange to the frame and those giant set screw things for the motors.

Most of the frame is now completed. The top and bottom plates were also drilled and tapped in-place using the holes in the polycarbonate plates as a template. Afterwards, they were clearance-drilled and countersunk appropriately.

Frame fully assembled now, but without the front wedge holes drilled yet. I was waiting on the correct length 1/4″-20 screws to show up before I mount everything.

In the mean time, I started dissecting drills. I have, in total, 8 dril….err, drive motors for this thing, and hopefully I don’t go through all of them. These are all Harbor Freight p/n 68239, the latest model of shady 18v drill HF offers. They have a verified 24:1 gearbox, though with a plastic first stage (not necessarily bad, in my opinion).

Even 24:1 is a little high ratiowise for the speeds I want to get to with this thing. The bot will hit about 15mph on 26 volts (8S A123s, 3.2 volts each), which is a little on the slow side for my tastes despite Clocker never hitting over 10-11mph. It is, after all, a 100% drivetrain bot. I’m also uncertain that the drill motors will like such drastic overvolting. That question will be answered concretely once I put this thing on the ground and push some things around.

The drills’ torque clutches were hacked in the classical fashion. I used to know many guides on to hack these things, but they were from years ago and many have gone offline as builders retired. Basically, the hole is the perfect size to tap for #10-24 or #10-32. Short set screws are used to entrap the dog clutch element that is the main component of the adjustable torque limiter – without these, the ring gear would just spin freely and no torque can be transmitted to the wheel. Dale has another method of locking the torque clutch which is a bit more compliant.

I decided later to proceed with drilling the wedge mounting holes, since I had a bad idea coming up for the plate itself. The wedge was clamped directly to the frame, aligned horizontally, and the holes drilled and tapped in situ.

The process I’ve been using is first drilling a dimple using a pilot drill of the template hole diameter (in this case, using an F size drill because I designed those holes to clear 1/4″-20 scrws), such that the dimple is reasonably well centered. Next, I switched to the tap drill diameter and let it settle in the dimple, then just freehanded it. Not all the holes are dead square, but that’s just a consequence of free drilling and only practice and experience can get them close.

Alright, so this is the bad idea. Not shown in the robot’s 3D model, but in the works all along, is turning the wedge holes into slots. This would have been a trivial operation if I were actually just slotting, but because bolts protuding from the surface of your wedge is a glaring sign of n00b, I had to make countersunk slots.

It involved a 6-flute metalcutting countersink (no, do not try this with a cheap hardware store 1-flute wood & drywall countersink), lots of cutting oil, and going very slowly. The whole machine would occasionally rumble and generate a small local earthquake every time I began cutting. In the end, countersunk slots!

And they fit!

Well, most of them – there’s at least 2 which I felt were “oversunk” and wouldn’t be as strong as one of proper depth. That’s why there are 16 screws up front, right?

it’s also being screwed into uhmw.

The ride height of the wedge is adjustable from essentially floor-scraping to about 5/16″ up. The D*C arena/stage/combat surface is not guaranteed to be flat anyhow, so this lets me calibrate the height to the stage as needed.

The last operation of the night is coring out the wheels. These are McMaster’s p/n 2243T41, or “McMasterbots” wheels as I call them, 40A durometer donuts of rubber overmolded onto polypropylene hubs.

As shown in the design previously, these are supposed to partially envelop the motor mounts and use them as a rudimentary secondary bearing. Hopefully, this will make the drivetrain nearly indestructable (from axial and radial impacts like being dropped or flipped) because the majority of shock loads will not be transmitted through the gearbox nose.

The machine of choice for this job is hueglathe, the 19″ LeBlond Regal, because its chuck can effortlessly grab the entire wheel.

Four wheels cored out to the appropriate depth. Can you guess for which one I forgot to tighten down the chuck before plunging the boring bar into it?

This is how it will go together.

Still to come: Making the wheel hubs, permanently mounting the motor and wheels, and then…


That’s about it. This is a pushybot, after all.

A New Pushybot

Jul 24, 2012 in Null Hypothesis


My annual robot party, Robot Battles @ Dragon*Con, is right around the corner. Again.

This is a competition I’ve been attending since 2002 and competing in since 2003 – it’s been my “end of summer festivity” for every year since then, except 2007 when I was retained by the mits for freshman orientation.

For most of my RB history prior to the MITs, I’ve had a primarily drivetrain-centric entry, Test Bot, that worked all the time and was undefeatable so long as I didn’t mess up. After that, beginning with Test Bot 4 in 2006 and really kicking off with Uberclocker version 1 in 2008, I began focusing more on cool actuators and weaponry.  That probably explains why I haven’t won anything since, or really have a robot that can put on a performance without being unreliable. Cool weapons and whirly things are funny until you can’t get it to move straight across the arena to beat the other guy senseless with it.

I’m kind of sick of that. Lack of any real motivation to fix the drivetrain issue with Überclocker Remix thoroughly has led to its losses in 2009, 2010, and 2011. That’s 3 straight years of fail, and I can even name the reasons why. In 2009, the robot lost drive functionality early on because I dared to think that using $2.50 drive motors was a good idea (and brought no spares, also a good idea). I upgraded the gearbox and motor rig to a custom DeWalt solution for 2010, but it slipped a poorly-made output shaft and I didn’t care enough to try and ninja-fix it during the actual event. And finally, last year, with the drive motors finally reliable, the robot ditched chains left and right. Literally. Both of them. Poor tensioning results in the chains catching on… something – I couldn’t tell what was actually going on, but it cost me the tournament. Again, what just totally sucks about it is that it was no fault of the design itself, but just my inattentiveness or ambivalence.


So I’m starting a new 30lb build which will be 100% drivetrain. The goal of this build, really, is to just come up with something that’s fun to drive and run into things with again. Piloting the (comparatively well-handling) Cold Arbor test rig around a few weeks ago reminded me of how important it is to keep your robot short, dense, and 4WD with the center of gravity smack in the middle. Soft wheels helps too, as does an immense amount of horsepower in the motors. This 30lber will act as a baseline to compare all my future designs with. The drive will be modular, with one motor per wheel, quickly replaceable and with easy to find spares (something Clocker has never been very good at). The frame will be pretty damn near indestructable. If I can’t beat the all-drivetrain pushy-brick with a new design, then anything else is pretty much hopeless. It will function as the null hypothesis test of robots – to be a proven design, it has to reject (/defeat) the null hypothesis.

Incidentally, that’s exactly what I’m calling it. Introducing Null Hypothesis:

Well gee, it looks like I’m almost done designing it already. Usually my CAD posts start off with a rectangular extrusion or something equally simple, but I’ve been slowly digesting this design for a little while.

Short rundown of the design: Four 18v Harbor Freight 900rpm type drills (now on sale again as item 68239) direct-driving four 40A durometer “McMasterbots” wheels. 1″ thick UHMW bar frame, and polycarb top and bottom. True 0.75″ ground clearance each side. Classic indestructable pushbot! The outside of the bot measures 18″ x 18″, which is a reasoanble 30lber size.

The design above is the “first pass” appraisal of the concept. It has a solid UHMW front wedge that was intended to be carved from a 3 x 4″ block. That turned out to be $150 of UHMW, which seems to have gotten way pricier since my last UHMW brick in 2006, because UHMW is just condensed natural gas or something.

Note how it gets a little weird and irregular out back – I wanted this bot to have no rear traction gaps. A classic “box” frame leave you a finite, usually less than 45 degree, tip angle before the frame lifts the wheels off the ground (for Test Bot 4.5 this was only about 25 degrees because it’s so damned low). One solution was to cut up a pipe and round off the end of the frame, but this left me little space to mount the motors. Hence, I settled for 45 degree ‘facets’ that can get pushed further back to let me add mounting features for the drill gearboxes.

The ground clearance is called “true” 0.75″ because the top and bottom covers are inset into the frame. This leaves me with a 2.5″ frame that has 2.25″ of internal space given the choice of 1/8″ polycarbonate top and bottom, which actually turns out to be not that roomy.

Here’s a “second pass” of the design. When I do a “first pass”, it’s generally just to puke ideas and generate shapes. Some times I find that the shapes end up being nonsensical or impossible.

There wasn’t such an impasse with this design, but I decided to get rid of the solid UHMW brick front. As funny as it might be, I really can’t justify spending $150 on UHMW just to use maybe $70 of it. The wedge ‘sections’ are made of the same barstock now as the frame. A 1/8″ 4130 steel plate forms the business end – I got a plate of the alloy for reasonably cheap, but there might not be an oven big enough for this thing with immediate reach to fully heat treat and take advantage of its strength.

The battery and its retaining mechanism is now shown too. It’s actually really hard to make an all-UHMW 30lb bot – UHMW is just not dense enough, really, so the weight needs to be made up. In this case, it’s with theoretically enough  batteries to run 4 or 5 matches back-to-back. The intended voltage of the system is going to be 25.6 nominal, 8S A123 cells, with 4 effective cells in parallel, physically arranged as two separate 8S2P packs. This should yield a decent top speed of 15mph: not too quick, but also not sluggish. Middle of the road pushybot.

The battery packs will be made with shock mounting padding, then captured inside a 3/8″ or 1/4″ polycarbonate ‘cage’ inside (hard to see, with polycarb being modeled as transparent). The cage is part of the top and bottom plates.

Electronics-wise, I’m trying to decide between the Botbitz controllers that I got to test for Arbor, or my full-custom board (yes, again):

The hell is that thing? I christened it RAGEBRIDGE because, somehow, I have never managed to produce a reliable small H-bridge controller. Landbearshark’s custom controllers were a miserable failure for several now-obvious reasons. I’m also really in need of a synchronous-rectified current-control-capable H-bridge for an outside consulting project – which is really what this board was developed for.

So I took another stab at it. I took every precaution to not loop my grounds and cross my logic with power, so I hope this can become a reliable hardware base.

That is, if i ever receive it. It’s been nearly a month, MyroPCB. The excuse I got was that my order was ‘damaged in fabrication’ and had to be redone. Well hhmm, I hope it wasn’t all those vias….

The reason I’m still holding out hope for these things is because the BB controllers can’t do “true 24v” systems – the Hobbyking ESCs they’re based off of are rated to only 6S lithium polymer cells, or around 26v peak. There are 35v parts all over the place, including the main power capacitors, and the FETs are 30v parts. In other words, a freshly charged 8S A123 battery at 28.8v is most likely too much for them. And I’m not going to back down from that – NH will be too slow if I only run 6S.

Worse come to worst, I have all of those Victor 883s (classic ones, mind you… The FET layout above is clearly borrowed from the Victor883107-7.).

Here’s the front end of the bot. I’m most likely going to just stencil-paint (or laser-etch?) the H_0 onto the front, instead of making it a cut-through, because that weakens the steel too much. Else, I might weld a backup plate behind it.

The top and bottom (and wedge) hardware on this bot is all 1/4″-20 countersunk cap screws, with the side/frame screws being 3/8″-16. Big, meaty threads. I considered using giant lag bolts for maximum grip strength, but they were not available in anything other than “giant oversize decking and timber-clamping Hex head”.

Random little electrical details will be added soon, when I can decide on the choice of electronics.

If you’re wondering where the hell the drill motors are disappearing into…

Hey, first real picture of the build!

Here’s what’s going on. The McMasterbots wheel will use the nose portion of the black flanged piece as a secondary ‘bearing’. This is a scheme to avoid hanging the entire wheel solely off the 3/8″ shady drill steel axle (as is common in drillboxes). The D-shaped nose of the drill gearbox is additionally supported by the mounting flange, giving it more plastic meat. The motor is prevented from torquing and moving axially using fine-threaded set screws (the cross holes in the picture). The flange itself is screwed into the UHMW side rail.

The black plastic piece is made of ABS, rapid-prototyped on the Lab Replicator. The final version will also be made of ABS, and incidentally also to be rapid-prototyped on the Lab Replicator. On a side note, most of my complaints in that post seem to have been wrapped up in the latest firmware for the Replicator – they were probably common enough that an official fix was distributed.

I’ve ordered pretty much everything I’m going to need to make the mechanical bits of this bot in the coming two weeks or so. I have eight drills now, and the buffer pile on my desk is becoming insufferable.

I have to make a decision about how to build the frame. While I was initially going to buy and mill slots in UHMW barstock, I snagged a large plate (48 x 8″) of UHMW on eBay for very cheap. It has all of the square footage needed to build the frame, but separating it into chunks will be a bitch.

While my normal tactic when faced with a giant plate and needing bars and shapes would be to Just Waterjet It, UHMW is well known to be so soft and abrasive resistant that it cuts poorly.

I laid out some test parts (these are the side bumper things) using different qualities to see if any were remotely tolerable. Anything short of high quality (or in Omax terms, “Quality 5″) just doesn’t even make it through all the way, and I can’t get the part out of the material! Even the above piece, which was on Q5, needs all the holes drilled out. The outline is reasonably acceptable, though, and I may make the parts which don’t need to be critically square using the cheap plate. This include those side bumpers as well as the little wedge triangles.

I bought a 4 foot stick of UHMW for the parts that can’t be waterjet-cut, but I might have to get friendly with this plate and a slitting saw in the near future.

This is not it. I have several other robot updates on deck as August rolls in, including:

  1. My kinda-open-secret project of creating a new arena hazard for the new Atlanta Bot Arena
  2. The last round of updates to Überclocker before it will be retired after this D*C event
  3. Maybe a new beetleweight design that I’m tossing around.