Franklin Institute Robot Conflict: The Retirement of Überclocker Advance, and BattleBots SEASON 2!

The NERC Franklin Institute event has been one which I’ve meant to go to for a few years, but always found it a bad time of of the semester. Not this time, however! Fresh off the #hype of MassDestruction, I decided that Clocker should have one more event. I meant to retire it at Dragon Con 2015. Hell, I meant to retire it after Motorama 2015. The design has been around since early 2013, and I would prefer to move onto something else. However, my continued corner-cutting at Dragon Con 2015 forced me to not accept letting my most winning and best performing bot retire because of a stupid Charles thing. It needs to either go out with a blaze, or go out on top.

So I finally made real hubs.

See? They’re made of STEEL!

Ironically, I only had a hex bar of 4140 steel remaining. Annealed, but still! Clocker’s hubs have went from under specified torque needs to way overboard. I was planning on using aluminum – until I discovered that what I thought was my remaining 3/4″ aluminum hex bar was actually 7/8″.

What the hell did I get that for? Anyways, short of machining the 7/8″ into 3/4″, I substituted for steel. To compensate for the weight difference, I had to make them larger and more hollow. They’ll have a Delrin insert for a bearing surface. I was planning on using bronze bushings with the aluminum design.

To make the Delrin insert, I machined some raw slugs, pressed them in, and then drilled the slugs to the correct bore in-place. Here’s the new hubs fitted with inserts!

Clocker refitted with correct wheel hubs. Now what are those things on the right….

Another artifact of FI is that the event is held in an indoor space in a museum. The limited ability to “emit stuff” means that the common lithium ion cell – whether in R/C lipoly mode or otherwise – is banned in anything larger than 3lbers. I therefore had to put together an A123  (lithium iron phosphate) pack for Clocker.

The best I could do for weight was 7S1P, or 23v @ 2.3Ah. Clocker has run 1P A123 packs before (in the version 2 configuration from 2010 to 2012), so I knew it would last exactly 1 match and require changing. I made two packs so one was always ready and charged. That way, if needed, Clocker could still run back to back matches, which could happen if it entered the finals.

And as a final touch….

The addition of a few inside jokes is of course critical.

This “bumper sticker” very quickly became…

To get to the Franklin was a simple van hop-and-skip to Philly, upon which I spent half an hour alone trying to figure out the system of one-way streets that led to the Museum – then spent another 20 minutes figuring out the network of one way streets that led to museum parking. Seriously, Philly… what is up with the “one way grid punctuated by wide-ass Garden City avenues with no permissible turns but small one-way side avenues that selectively lead to one-way streets”? Is it because you’re close to New Jersey, where ‘turning’ is frowned upon?

The arena was a very nice piece of work, and apparently it’s been around for 10 years! I sure as hell had not paid attention to FI events until now, but that’s pretty awesome. The museum had it built and takes care of it and stores it, in addition to providing staff to cover its operation the day of. This is one hell of a deal and I would like to support the event in any way possible from now.

The pits were some of the most dense ones I’ve seen though, necessitated by the limited space in the room. This made moving bots in and out quite difficult, however, especially as people tended to keep toolboxes and the like in the walkways. It doesn’t help that Clocker is one big pokey fork thing.

Photo Credit: Ken Franklin

My first match was against Piston Wax, a bot I’ve battled before at Motorama in an earlier, weaker form. They have the hammer rather well dialed in now, and I tried to avoid crossing the danger zone. However, they did get an overhand strike on me once:

I’m glad I had the 1/32″ titanium underplating! The garolite sheet was pierced through, but it dispersed the impact well. I won against Piston Wax and moved on to face Magneato:

Photo Credit: Ken Franklin

Magneato is a flywheel-powered flipper; Clocker fought it in a previous incarnation as Jack Reacher, and Zac has made both power and reliability improvements to it for this build. There was a lot of flying action in this match. For the most part, I tried to stay away from the flipping arm, but there was one moment where I made the mistake of “grabbing the whole Magneato”. I won this match also in a decision – here’s the video.

So what the  hell is that on my head, you ask… Well, it’s the new and improved Internet-destroying cat ears of loathing. I was presented with a set of these for my birthday this year, because of course they did. Naturally I had to make improvements.

While the ear caps are now “my style”, the headband is still much too small, and was very clearly designed for cute petite Asian girls. Three of those attributes do not apply to me; can you guess which ones?

Clocker actually caught the full flipping energy of Magneato. This pulled apart the clamp actuator, but was visually spectacular because everyone assumed Clocker absorbed the flip without damage. Well, it did absorb the flip energy…

The front plate of the actuator was sheared right in two at the screw line.

Luckily, with a vise, hammer, and big pliers, I flattened everything out. But the mounting screws had both been torn right off. To fasten the plate back on, I carefully drilled some #6-32 screws very close to the inner corner of the tabs, and then used washers to cover the inner corner as much as possible.

Here’s the repaired actuator re-mounted. Check out the 5/16″ grade-8 bolt that was bent by Magneato’s flipper.

Photo Credit: Ken Franklin

The next match was against…

It’s a shell spinner made of a drum. No, not a robot weapon style drum, a literal drum. Called Drumthing Special, it was built by the same person who built The Cone which I almost lost to because of material property laws. Time for some revenge.

There was a lot of “clampbot gymnastics” in this match, which Clocker was built to do, and which pleased the audience. Basically first thing in the match, I grab it and…. do some kind of lift-pirouette. I’m not sure what I was going after, but that looked totally intentional and if I’ve learned anything about robot matches, it’s that you always make it look intentional.

After Drumthing Special, I faced Dorno, a pizza box with a “rotating lifting device” i.e. a very slow spinner up front. The idea is it gets under you with said lifting device and drives you around. I was able to stay out of its way for the most part and got some good tosses and throws in. There’s no video of this match that I’m aware of yet, so here’s one of Dorno vs. Magneato.

The thin plate front legs are showing a lot of wear as the tournament draws on. As I was running up on the weight limit with the rest of the bot, there wasn’t really a way to beef them up any further.

Clocker was now up in the finals against…. Magneato! The rematch went quite swell, and there was a lot of back and forth between the two bots, a substantial amount of airtime (by myself and Zac), and was a great close to the tournament. At one point, Magneato’s flipper caught the clamp arm again, and the repaired and weakened actuator exploded once more. At this point, I had no clamp function left, so kept trying to roll Magneato over and waste his shots. Luckily, the clamp arm is still biased by gravity, so I could still move it up and down slowly, which I did at the end to “show the judges” it was still functional.

Here is the once-again Magneato’d actuator!


In the end, Clocker went undefeated and 5/0 this event. Amazing what bots can do when they can, you know, actually move correctly. While Clocker’s retired from competing, I’ll probably keep this version together and operational for the occasional display or demo.

What’s in store for Überclocker generation 4? The answer is uncertain. In the fall of 2012, I retired Überclocker Remix (version 2) and had version 3 running by Motorama 2013. But there has been recently a new development…

Oh dear. It would seem that Überclocker version 4 might well be Overhaul 2.0…

Motorama 2015 Part II: The Pitfalls of Used Überclocker Ownership and Unmodeled Dynamics of Candy Paint & Gold Teeth

Let the masses rejoice, for I’ve decided to go ahead and post my Motorama 2015 trip summary, having been satisfied by the newbies, finally *ahem*. I mean, that and the fact that I have backed up way too many other things to talk about waiting on you guys to finish. One of the consequences of writing up an event report a month and a half post facto is that everything I remembered from the event and wanted to talk about really really badly is now… wait, what was I talking about again? See what I’m talking about?!

Additionally, for the past month or three, I’ve been working some black projects which will be excellent once revealed, but I feel like need a little more time to develop before I drop the bass. Rest assured it will not be disappointing.

Anyways, onto the event!

Read more “Motorama 2015 Part II: The Pitfalls of Used Überclocker Ownership and Unmodeled Dynamics of Candy Paint & Gold Teeth”

Motorama 2015, Part I: RageBridge v2 Drama

Let it be known! I shall not update my blog with the Motorama event report until all other MIT-based Motorama competitors update theirs. If you see the Part II, it means I’ve finally been satisfied… or got sick of waiting. I am a man of unyielding principle. For some background on this, through a spectrum of high-pressure sales tactics and peer pressure, an astounding number of new builders are attending; by my estimates, we had 6 totally new entries (and attendant totally new builders). One group elected to complete in the Antweight (1lb) tournament that runs on Friday, something that even I don’t normally do!

As I mentioned last time, none of the bots were in bad shape pre-Motorama, but I’ve been expending immense energy trying to get RageBridge v2 working in time. So why not start with it?

RageBridge v2

Previously in the adventures of RageBridge, I had gotten the bulk of the automatic input-reading organized through a depth of register-diddling greater than what I’ve ever dared do before. If you know me and how I program embedded systems, you know that registers are my most favorite things about the process, and there’s nothing I look forward to more when starting a new microcontroller project than hunting through the thousand-page programming manual and trying to write bit manipulation expressions.

Now, with the retching out of the way, time to try writing an input-taking routine.

One programming challenge for RageBridge v2 was the automatic input-mode detection. I don’t have a rail of jumpers to select the operating mode, and don’t intend on having one since the board is already SLAM-PACKED WITH RAGE!If I can get a reliable automatic input detection, then great! If not, then different firmwares will be made available.

The inputs to decide between are R/C, Serial packets, and analog. On power-up, Rage will take a second to let the inputs stabilize and any partner electronics like receivers and master microcontrollers boot up. Then it will, ever second, check for…

  • Serial buffer byte presence. It will read the first few bytes of the serial buffer and check for 64 or 192 (out of 255, an 8-bit value). These are “idle” commands for left and right motors. This convention is common to several robot controllers that have “simple serial” protocols, where 1 – 127 controls one motor and 128-255 controls the other. If these bytes are present, then assume Serial operation.
  • If there are no valid serial bytes, it will set up the channels 1 and 2 input pins for analog voltage reading. Additionally, it checks if the MIX jumper is set. MIX assumes “joystick mode” where the sticks are centered at 2.5v, so both inputs have to be at this level (within a small deadband) to select that mode. Else, if MIX is not in, it assumes 0-5v with 1-4v as the active range, meaning the signal must be approximately 1V (within a small deadband) to select.
  • If the analog voltages aren’t within the correct band (or it’s pegged to 5v due to the internal pullups) it will initialize the R/C inputs and wait to collect input pulses. Once valid input pulses for both Channels 1 and 2 are received – which must be 1500us +/- a deadband – then the mode is selected. The forced neutral-only mode selection acts as a zero-power-on-startup check too.

This pattern repeats once per second, and the motors will not drive until the appropriate signals are received. Overall, the code looks something like…

I had thought the Analog part would be the most difficult, with the deadband requirement and all. But in fact it was quite easy. With a few test potentiometers and scooter throttle handles, I could get it to reliably pop into Mix or non-mix mode every time. R/C mode proved to be the issue – no matter how much delaying or waiting I had it do, across different receivers even, I couldn’t get R/C mode to work!

As a bit of background, I use the PinchangeInt library to capture R/C pulsewidth signals without having to use the blocking (prevents rest of program from doing anything) pulseIn() function in Arduiono. After writing up a quick R/C only input-taking test program, I noticed something peculiar. All of the inputs read, no matter one channel or the other, simply looked like they were overflowing the variable over and over:

The PinChangeInt interrupt service function takes the difference between the micros() calls of two functions, a rising edge and a falling edge, to get the delta-time. micros() is an unsigned long (32 bit) type, and my R/C pulsewidth variables are signed integers (to be used later in mapping/scaling math). The pattern of values said to me that something was just counting further and further up – not taking the difference at all.

Checking with an oscilloscope confirmed that only one interrupt was being serviced:

I set and cleared a pin on the chip whenever the rising edge or the falling edge interrupt was being triggered. As expected, only one edge appeared. With this test, however, I couldn’t tell if it was the rising or falling edge…

…especially when it seemed that SOME TIMES, both interrupts were working! This shot clearly showed a 1000us pulse width, with two triggers. So what the hell was going on?

By the way, this is the first official usage of the DSO Nano 4 channel digital scope I picked up in Shenzhen! All of the initial debugging shenanigans happened at my desk as a result.

I reached out to the Arduino Forum, where the developer of PinChangeInt had a thread about the library, and learned some interesting facts… namely, that the code should never have worked the way I wrote it in RageBridge 1, and a couple of projects before that.

Well, hmmm.

To clarify without having to read the thread, here’s the difference. I’ve written all my R/C input code in the form of two separate interrupts, RISING and FALLING edge, since 2011 when I first started using the library. The form is similar to this, which was an excerpt from TinyCopter:

The takeaway is that there are two interrupts per pin. Allegedly, this should never have worked!

Yet, compiled in the latest version of Arduino, with the latest version of PinChangeInt, this is what happened. The same kind of nonsense I saw in my initial testing. It seemed to me that only the interrupt I defined last was executing, which contradicted what I saw on the oscilloscope – that some times both interrupt service routines did execute. But I freely admit that this could have been a oscilloscope artifact.

Pictured above is the structure that SHOULD HAVE been used this whole time – a single interrupt service routine, executed whenever the pin CHANGE’d states, and which subsequently read the state of the pin:

As the collected 1500us (approximate) pulsewidth shows, this works fine.

So what gives? Not even the developer knows, apparently! My “two interrupt” form was never supposed to work. I can only assume that between Arduino version 1.0.1 from 2013 andthe current 1.6, and from the first version of the PinChangeInt library I used to the current, that enough changed such that whatever loophole I used was no longer possible.

Either way, with the solution found, I backtracked a little and modified my “two interrupt” program to show which interrupt “won”, so to speak.

I changed the two-interrupt type to only increment or decrement a variable depending on which component was called. As I suspected, the last ISR to be declared always “won”. Here, vol_ch1_pw is being sampled by the main program loop, which shows it always decreasing. if I swapped the declaration order, it would keep increasing.

Whatever. Chalk it up to falling victim to the stochastic nature of Arduino developers, and y’all can lecture me about this is why you always use the programming manual yadda yadda I-don’t-care. It works now:

The PINC & [byte gibberish] portions of each ISR simply “select” the pin to read. Notice how it starts at 0b00000100 – this is because the first two bits represent the first two pins of port C, PC0 and PC1, which are reserved for the current sensors. PC2, PC3, and PC4 are the three channels of input.

With that mystery resolved, the entire automatic mode detection code worked instantly:

Shown above is Analog (unmixed, with a scooter throttle) and R/C mode inputs. Serial inputs are hard to capture on video since it’s one microcontroller talking to another. I assigned different blink patterns for the different modes to help during debugging, but they will be retained for actual operation.

The blink routine itself is interesting by itself. It’s the first time I’ve used an otherwise unused hardware timer (Timer 2 in this case) exclusively as a blinking machine. Here’s the code snippet that makes it work:

The software “prescaler” portion was carried over from my previous different motors controllers’ code, where it was part of the main loop. Either way, something executes that if() and builds up the prescaler variable. After enough times of this happening, it executes the blink part of the code.  Timer 2 was set up during the initialization as a simple counter with a hardware prescaler of 64 from the system clock of 16MHz. This resulted in a counting speed of 250KHz – every 4 microseconds, the count would increment. Left to its own devices, this count would overflow after 256 counts, or 1.024 microseconds. To obtain a clean (to us humans) number, we start the count at 6 (BLINK_INITIAL_VALUE) such that it only has to count 250 times per overflow, giving a clean 1 millisecond timer. With some frills, that’s basically the millis() function re-implemented. I could have included this in the main loop as a call to millis() and it probably would have worked just fine, but I wanted it on a separate interrupt to not hog main program loop time.

Next up is that horrific line of bit manipulation that somehow worked the first time. What this line does is turn PB5 – a.k.a Arduino pin 13, the LED, on and off according to the state of a byte that is being used purely as an 8-bit array, where a 1 means “LED on” and 0 means off. current_blink_pattern is this byte, and it’s assigned whenever the mode changes so the blinking pattern changes.

The line first takes PORTB (the output status of the pins) and masks off PB5. Next, it grabs a copy of current_blink_pattern and shifts it right by some number of bits – basically an array counter that is reset at the bottom every time it exceeds 7. It logical ANDs this with 0x01 to isolate the least sigificant bit (rightmost bit). Finally, it moves this bit leftwards 5 positions to line up with PB5, and jams the two together.

The result is that PB5 is always turned off every cycle but the result of (current_blink_pattern >> blink_index) & 0x01 turns it back on (or leaves it off for this cycle).

With BLINK_INTERVAL set to 100 and the interrupt happening every 1 ms, the result is a 0.1 second blink duration where the LED can on or off. Now, strictly speaking, with 8 bits I can only make 0.8 second-long blink patterns. That’s fine, I don’t care.

Yes, I get all the way to the end of this timing problem and don’t even care that I get clean 1-second long patterns.

One thing that all the scoping to get to the bottom of the interrupt issue was discovering that the input filter capacitance I put on the input pins, which are shared by both analog and digital signalling, was too great.

Ouch, that’s a 10us rise time there. The fall time is about twice as fast, but still bad. I put 4.7nf input caps on the pins, which I guess is too much for another little microcontroller’s pins to drive. I might have to compromise analog signal stability (or implement software filtering at some point) in favor of making the edges sharper.

Once the bizarre library behavior was accounted for, and the automagic mode selector finished, the rest of the code was actually quite easy. In concept, it was just like RageBridge 1, but better implemented.

First, the inputs are sampled and cleaned, with erroneous signals replaced with the “last known good” one and a signal-bad flag set. Next the signal is mapped to an output variable. The output variable is bounded by a maximum increment per loop (ramped), and the result deciphered into PWM + direction and output to the drivers.

Whereas in RageBridge 1 all of this took place messily within 1 loop, I organized it all into procedures so the different modes can be better isolated, even thought hey still acted on global variables:

Of course, right now, I only have the R/C code written.

I did away with the incredible machine that was the mapWithRampingAndDeadband() function of RB1. That was basically broken up to its constituents – the deadband was taken in the input processing stage, and the ramping output mapping just a compare and += or -=.

Soon, it was time to test. Without having made compatible heat sinks yet, I, uhh, created an innovative board clamping system to secure it to the old style Ragebridge 1 heat sinks.

Innovative. That’s the word.

It’s totally not “two binder clips and some electrical tape”.

The test subject was Clocker. By this point, it was Wednesday afternoon, so this was going to be a determinator as to whether or not I try running the new boards at Motorama or not.

During a few on-the-bench tests of pegging the throttle back and forth, I was able to get the board to reset several times. This is not a good sign, as it shows the design has noise coupling into it in some place that is making it all the way to the logic. I have a few suspects, namely the long analog power and ground traces feeding the current sensors and the less than optimal placement of the logic power supply taps from the main board power planes.

My first battle tactic is always to insert capacitance where it doesn’t belong to see where the noise was coming from. For starters, all the 0.1uF logic circuit buffering capacitors were changed to 1uf. Now, strictly speaking, I suppose it was capacitance that was there in RageBridge v1 but was removed, since all of those on version 1 were 1uf to begin with. I also changed the primary input bypass capacitor (on the Vcc pins of the micro) from 1uFto a 10uF.

For the most part, as far as I could tell, this resolved the issue. But capacitors are band-aids to the real problem, which is layout. I’m going to have to take a closer look at how the logic power is feeding in and out of the big patches of battery voltage and ground planes, all being switched hard tens of thousands of times a second.

There was also one particular pin connection on the A3941 gate drivers which I was unclear about, which may also contribute to noise coupling via ground fluctuation, but I will address that once I put together some more boards. In the mean time, I taped the board back into Clocker for some hard driving.

For the most part, the test went quite well…

This test revealed a very important hidden flaw in the drivetrain that I’m glad was caught. Namely, when I last took apart the DeWuts on Clocker to change the motors, I neglected to recheck the torque-limiting clutch screws. The clicking, clutch-slipping noise in the video is exactly that. A little bit of hex key wiggling – no sprocket removal even needed – and things were tightened up again.

During this and subsequent bench tests, I couldn’t get it to lock up or reset no matter how much I gunned the motors around. In fact, I did it so hard that…

What you see is a thin pall of DeWalt smoke from some rapid input reversal testing gone wrong. It seems that one of the motors had a borderline commutator short, which quickly became non borderline when rapidly smashed with +/- 26 volts.

The resulting quick short also took out one gate drive chip and two FETs on the half of the controller driving that motor. I replaced them both in 5 minutes, along with sending this motor to the pile of sad motors.

I ended up deciding not to run RageBridge v2 (board revision 1) in Clocker for this event, since I didn’t want to have to do ESC debugging in the field while my match is 2 minutes away. What I did do in the remaining day was add in the much-requested combine mode, which hard-parallels the two channels together at the hardware level. This enables Rage to function as a single large 1 channel ESC.

That part was easy. In combine mode, only channel #1’s current sensor is read and the assumed current is just twice that. The current control loop output calculated for channel 1 is applied directly to channel 2, making the assumption that the two halves, driven off the same PWM timer with the same gate driver, will switch on (within a small fraction of the total switching time) with eachother. This is not the most robust method, as it totally slaves channel 2 to channel 1’s mercy, and a failure on channel B will probably cause the whole thing to grenade. Maybe it’ll get revisited shortly.

Why did I put Combine mode together? Because another bot this time needed it…. and for that, we’ll need to wait for Part 2.

The Motorama 2015 All-Bots Update: The Revival of Candy Paint & Gold Teeth, Überclocker Advance Inspection

With Boston getting mashed by blizzard after blizzard literally once every weekend for the past month, there’s not much to do save for hunting baby seals for their meat and blubber working on robots! Especially as wave after wave of cancellations hit MIT to the point where I’ve had to reschedule several shop orientations as well as cram 2 days of lecture content into one for a new black project class I’m helping with… but more about that later. And suddenly, Motorama 2015 is but a week away! And Dragon Con 2015 is next Tuesday, clearly.

Contrary to previous years, I have a temporary moratorium on new bot construction, choosing instead to try and make my current fleet a bit less fail before moving on. This was spurred on mostly by Überclocker being basically perfect by placing at the past 3 events: Motorama 2014 and Dragon Con 2013, and finally winning at Dragon Con 2014, for which I redeemed my karma points on the return trip. I thought it only fair to give Candy Paint & Gold Teeth the same treatment this time around. Last year, due to a whole stack of beginning-of-semester shop issues, I only had days to work on it and the whole bot was extremely rushed on the last mechanical details and the entire electrical system. In large part, the internals were held in by hot glue. This year, as I act as mentor to a host of new MIT-area based builders (who I’ll definitely introduce on this site in the event report!), I’m going to integrate the lessons learned (read: all of them) from last Motorama and finish the bot like I intended.

The following work was from maybe Mid-January to about 2 weeks ago…

Step 1? Actually look at the damn thing! I knew it was all hot glue and zip tied by Adam and company last year, but not how badly. And I will just say… my god.

Now, in reality, I think those lipoly packs are more secure in there with their 10 square inches of Velcro, half-dozen zip ties, and generous fillets of hot glue per each, than anything else I can come up with – including the original sheet metal battery cages. But this also makes them utterly irreplaceable, and Candy Paint ended the event with a dead cell, so these had to definitely go.

The placement of the motor controller was also not optimal, and… well, should I really waste time listing everything that’s wrong with an on-the-fly wiring job?

The next course of action, much like pre-NYMF Chibi-Mikuvan, was to rip everything out and start over. This actually took much more effort than it sounded. Recall that both lithium packs were held in by no less than 10 square inches of Velcro. Real 3M-branded Velcro. We might as well have welded them in.

I got as far as heartstoppingly buckling one of the packs in half by a few degrees before trying other solutions.

It’s actually very, very hard to remove sticky-back Velcro of reputable source, such as if real 3M adhesive is behind it. I ended up pouring acetone into the cavity that surrounds the battery and waiting several minutes while slowly applying upward pressure on the battery wires. The acetone slowly damages the adhesive along the peel front, so the whole thing very slowly lurched upwards and eventually gave up.

Extracting the smoked controller to inspect the depth of destruction. Two of the phase wires desoldered themselves, and the 3rd leg was also a total loss. Ouch…

One of the higher priorities for me was rewinding the weapon motor. The original winding had a short-to-core to begin with, which might have contributed to the controller’s untimely death. I couldn’t identify the location exactly, but there are at least 2 spots per phase where I pulled the wire bundle over bare metal, so the chances were good that I would have shorted something a little.

The issue is that I ran out of the specific size of 70mm stator used in the motor. I have a handful of 70mm stators spread across two types – one with a 32mm center bore, and another with a 26mm one. I designed the motor around the 32mm type, and the only ones I had left were damaged salvage cores from copier motors. Due to how much epoxy I poured over the first stator, I decided it was still better to repair the ones with damaged coatings.

Pouring epoxy over the exposed metal is actually a very unreliable fix, because of the way the original coating wraps around and smooths the edges of the steel. Instead, I had something better:

I had these sheets of “electrical grade hard fiber” from McMaster from past projects. It’s also called “fishpaper”, contains no fish nor shellfish, is gluten-free, and is a resin-impregnated heavy cardstock-like material. Laser cuts beautifully into stator-shaped pieces. I used the model of the stator that I measured up to design the motor for the 2D profile, with the arms and tooth ends purposefully thickened a few percent to not leave any metal exposed. This whole sheet was then applied to the cleaned steel surface with epoxy.

Next up was rewinding. My goal was not only to make a clean winding, but also slow the weapon down. Wait, even more?

The two fights Candy Paint got in at Motorama 2014 showed that the weapon already had enough impact power for my liking, and I try to favor reliability over the so-called “brushless penis contest” in the combat robot world of ever-larger motors and spinning weapons, often to impractical proportions. Trust me, I used to be one of the young boisterous men responsible.

Candy Paint’s bar was designed to spin at 180mph. I would be perfectly content with 120 or even 100, with super rapid spin-up time and excellent “upside-down flailing” torque. To get to this point with the same gear ratio meant increasing the turns on the weapon motor’s stator poles by 50%, which entailed going to… oh, six turns per tooth instead of four. Still easy compared to my 36+ turn hub motors! Either way, a new piece of string to measure the wire length needed was test wound around the four teeth of a phase.

The “hobbykinging rig” was, like last time, wrapped 3 times around a set of 10ft-apart table legs to generate 3 parallel bundles of 9 parallel wires. This gave the motor the equivalent of 14 gauge windings, except far, far easier to wind than a single solid 14 gauge bar.

A half hour or so later… a motor appears! See, low turn-count motors are super easy to wind! A custom hub motor often takes me like 2 or more hours each.

The aluminum bearing cap was thoroughly covered in thickened epoxy before I started pulling wires over it. I left roughly 10″ on each winding end and put heat shrink tubing over them to use directly as output wires.

But the next issue was, once again, how to solder bullet connectors to them. Enamel-coated magnet wire is difficult to solder without resorting to disgusting measures, such as dunking in molten sodium hydroxide or highly acidic fluxes. Or torches and mechanical removal (sanding, scraping). Doing that on a 27-strand bundle was out of the question. I did that last time…

I started haunting the Internet for anecdotes of the “Well, my mama told me to use yak milk and that’s never failed me!” nature. Could I get yak milk around here? Probably, if I look hard enough. But one curious substance showed up repeatedly: average automotive brake fluid. Hey, I don’t have a yak, but I have something about yak-sized that needs brake fluid, so I have some bottles of brake fluid!

When I thought about it a little more, it made sense. DOT 3 and 4 brake fluid is made of glycol esters, which are also found in paint strippers. In fact, brake fluid itself often has “do NOT get on your paint, like seriously” written all over it. So when you heat it up, of course it’s going to attack and damage the enamel coating too.

I was fairly certain from MSDS-haunting that burning brake fluid was not acutely toxic, but also sure that it isn’t good for me in any way, so this step was done with plenty of ventilation.

Well I’ll be damned. Dip the end of your magnet wire bundle in a tiny little bit of brake fluid, and using a large iron, solder as normal. I would estimate the solder flowed 1/3rd as fast as it would on a bare wire, but each of these joints was made in under 15 seconds. None of the inconsistent flowing, burning, blobbing up of flux, etc. I’ve experienced in the past.

This has been your “Well, I’d say don’t try this at home, but that defeats the purpose of putting it on the Internet” moment of this post.

Now, it’s important to point out that DOT 5 brake fluid is made of silicone and probably won’t work in this application.

Installing the motor for a quick spin and fit test!

Finally, I folded the sheet aluminum battery retainers. Each battery will still have a few square inches of more reasonably-placed Velcro padding underneath it which should handle the majority of loads, and this cage is just to prevent them from being sucked into the spinning cheese-grating pulley below them!

Before putting the batteries permanently in, I wanted to try and fit the motor controller in the same region as the motor. This is so the wiring was less chaotic up front, and the controller at least had a modicum of convective cooling available.

Keeping the wires down was more of a challenge than packing the ESC in. I made these polycarbonate retaining strips that have their ends heat-bent up into a hook shape, and are quite difficult to remove. I’ll probably back this area up with a cable tie or two to more guarantee the plastic not flying away.

The ESC has been switched to the 150A K-Force since I’m only running 6S in this bot now. There’s no need to specify a high-voltage 12S capable ESC! Architecutrally, it’s identical to the “Sentilon” HV version.

Final installation of the wiring. There’s a sad empty spot to the right that needs filling with some gaudy mood lighting or something…

This isn’t it, however. All of these wires are sort of too tall and interfering with the volume that the drive pulley needs:

For basic flight testing, I stuffed everything in using massive amounts of gaffer’s tape, but this isn’t a permanent solution.

In this configuration, I found out that the bearing block was either milled 1/16″ too deep, or the bearings are collectively 1/16″ shorter than their nominal dimensions. I had to insert 0.06″ of shims into the spindle in order to have it not wobble.

I took the opportunity to swap in one of the spare pulleys I had made, since the first one was showing “bowtieing” on the D-bore due to how loosely it had been mounted before.

To resolve the wire height issue, I finally finished the bottom plate that was supposed to go on originally. To the underside of this plate are glued a succession of rigid foam rubber blocks which keep pressure on the wires, especially near the cheese-grater pulley. Notice the “0.06 of shims” that I wrote to remind myself how many shims to stuff back in…

I need to find a good hiding spot in order to get a good spinup video of this thing, or even better, some actual testing. MIT is in general so space-constrained though it’s difficult to find a location to do this in. The loading dock is all concrete, but too tight. I’d preferably want to be on a different elevation from the blade, and behind a solid concrete object…

Candy Paint on full drive power is fast. Faster than any spinner has any right to be, with a design speed of just under 16mph. I’m hoping that this balance of drivetrain and high-torque and reliable weapon will be a favorable one. It’s also very squirrelly when turning due to how short the wheelbase is, so I’ll be keeping the dual-rates switched on for this one.

One of the details that completely derailed any plans of Candy Paint domination last year was the unmodified blade. I bought this from a builder who made this blade for an invertible bot, which didn’t care which orientation it was in. Candy Paint is non-invertible by design, and the double bevel caused it to “coin” into the air on any non-perpendicular impact (read: like all 3 of them).

Solution? Just grind the bevel off. This step took a while, since the steel is hardened and my angle grinder is small (the Civilization Destroyer is only equipped with a skinny cutting, not grinding blade).

I only ground 1 bevel off on each side, so the blade can currently only “spin” one way – I made sure that this time it was in the tighten direction, instead of last time where the blade slowly worked itself off since the motor torque was trying to un-spin the nut…

Almost armed up fully. Notice how I also stripped all the paint off? This is because…


Can’t test it? Might as well paint it. Candy Paint and Gold Teeth is finally getting some of its namesake. The candy paint: A can of fluorescent safety orange applied like 10 layers thick and glossy-clear coated. The gold teeth: Some Rust-Oleum “gold metallic” spraypaint that, to my utter surprise, actually worked okay.

And here it is, all pretty and shiny-like. I was definitely surprised at how well the paint job turned out. Maybe my many minutes of van bodywork, being forced to spraypaint something other people are forced to look at, helped.

Like I said, I’m still searching for an opportunity to whip this thing up to full speed and run into something. It’s probably going to have to be in some deserted basement, at night, on a weekend, peering from around a corner. I’ve driven the bot around plenty, and have whipped it up to maybe 33% speed, but haven’t planted the blade into anything yet.

That’s all for the Candy Paint reboot. Time to move it off the work mat so I can take a look at …

Überclocker Advance

As mentioned originally, Clocker has been steadily growing out of its awkward engineering bug stage, from suffering several issues at Motorama 2013 to almost winning Dragon Con 2013 to almost winning Motorama 2014, to finally winning Dragon Con 2014. Now, with my #1 nemesis for 2 past Motoramas not going to this tournament, and with the Banebots wheel swap being extremely successful at Dragon Con 2014, leads me to believe that Clocker has a fair shot at the 2015 championship.

IF something stupid doesn’t happen.

That’s a well known failure mode with stuff I make. So, as long as I have plenty of time, let’s take the bot apart as much as possible and check for possible impending stupid things. A wire about to become unsoldered, one of the RageBridge FETs about to pop off, the DeWalt gearboxes falling out of gear, etc. Anything at all.

So apart Clocker goes! On deck for a look-over include…

  • All of the lifter drive clutch parts, which involve shaft collars being tightened the right about to slip. Replace the most likely very fatigued screws holding the lift gear to the collar.
  • The clamp actuator has been “underconstrained” for some time – rebuild and take care of it.
  • Inspect ALL of the DeWalt gearboxes for signs of falling out of gear – the current style has an issue with the plastic shift-retaining ring not retaining. A zip tie takes care of it.
  • Inspect the drive motors’ electrical connections
  • Look over all the RageBridge v1s and reinforce large components with some epoxy or rubbery Goop.

Pretty close to maximum entropy here… I also added cleaning and inspecting the chains to the list here, because if these chains cause me one more problem, I’m firing them on the spot and replacing them with… I dunno, kite string.

Breaking down the actuator for a rebuild. The motor was jiggly (the mounting face having been bent), the whole actuator was falling apart, and the shoulder screw holes were beginning to strip.

I cut new side plates according to the current version of the design. However, instead of using the T-nut holes, I just went ahead and drilled and tapped their bottoms (using slightly longer screws to reach). That end of the actuator being reliant on only T-nut clamping pressure was a build oversight.

Other things I did to the actuator include “correcting for” the bent motor faceplate, then integrating a large amount of JB-weld into its remounting. I consider these motors pretty disposable, and I have a spare ready to swap in, so I’m not concerned about never being able to (cleanly, reversibly) remove this motor again.

The motors in question are these IG32 27:1 motors, which I modified to have metal first stages by, uhh, gutting a 3rd motor and transferring its metal gears to the other 2. This means I have a motor which entirely plastic. It’s labeled “TRAP!” in my bin of motors.

Performing the “zip tie insurance” on all of the motors. There have been some reports from DeWut users that the white shifting barrel likes to jump over the small shifting pins, leaving the gearbox halfway between 2 speeds.

Aaaaaaaand mostly back together. Notice how shiny the inter-fork standoffs are? I remade those too, because some of them had gotten unacceptably buckled. The tie rods were also bent, making disassembling the fork quite entertaining.

I’m stopping short of the electronics. Why? To put pressure on myself to finish RageBridge v2, of course!

Maybe this is the stupid thing in question, but I totally want Clocker (and Candy Paint) to run some pre-prod RageBridge v2s, since Motorama is inevitably the best stress test for them. The current electronics stack works fine, so there’s really no reason to shoot myself in the foot. I suppose I will make it a goal to test RB2 by Wednesday, and if there are any hardware bugs, to forego running them at Motorama.

That ends bot work as of like 2 or 3 nights ago. I’ve been working on RageBridge ever since! That adventure is another post.

Dragon Con 2014: The Wrapup, or, Operation: I FEEL GASSY, plus Panel Resources

Around this time last year, I said;

I’m back.

Somehow, and not broken down in western Maryland or something

Well, it wasn’t western Maryland per se…. but we’ll get to that. In the intervening week between Dragon Con 2014 and now, resetting the shop from its post-robot season disaster (which immediate followed the post-gokart season disaster) for the fall classes has taken up most of my time.

In addition, I’m seeing to it that the MIT Mini Maker Faire happens! In three weeks, I can hopefully roll out of bed into our own Maker Faire… but of course there’s logistics and administration to figure out before then! If you are planning on being in the area, hit us up.

The story of Dragon Con 2014 begins, as usual, with van stuffing. For expedient access to the panel slides and info, go here.

The one feature of this generation of Mitsubishi Delicas that’s saved me countless times is the squared off rear hatch area. You almost never see this any more with modern “bubble” designs, and even the two other “Van” models of the same era had cut off angular hatches (However, it seems to be making a comeback in the latest generation of Nissan Quest, whose JDM model, the Nissan Elgrand, I like way better).

I can put like 16 cubic feet straight up in the hatch area. A 18″ wide aluminum suitcase fits perfectly, oriented lengthwise, three across and three tall. So basically, the van-stuffing strategy has been, since last year, consolidate everything into suitcases and 30-quart plastic bins, pile as many as possible in the lower half of the hatch, and fill the rest with robots. Überclocker was attached to the rear left headrest the whole trip, using a spare alternator belt looped around it as a retaining strap, while every other bot was arranged creatively besides it.

This time, I stuck to my guns and just kept going on I-81 instead of even remotely thinking of touching the east coast again. Much better time was made – pretty much 20 hours door-to-door. Travelling during the daytime meant a longer sight distance, and consequently, we went faster. It’s been well-proven through the past few thousand miles of road trips that Mikuvan does well either at 65mph or less… or at 75+mph, where the engine is operating in its powerband in 4th gear… guess which half was used more often?

Well, when we could manage anyway. Summer is construction season all-around, and starting from Connecticut onwards south, there was construction and construction slowdowns and delays in literally every state.

After taking most of Wednesday morning and early afternoon to recuperate, we hit up the Invention Studio again, basically the robots & cosplay forward operating base of this whole trip. I began the final assembly of Pop Quiz, which was started the weekend before departure.  I had already done most of the work, so it was literally just throwing the package together. Pictured is the final arrangement of the components before the top was closed up.

I was originally planning on running 14.8 volts with the two 2S 500mAh packs, but some tachometry on the old motor showed me that it was basically 1000 rpm/V. I decided immediately to drop back to 7.4V and 1Ah – kind of a ridiculous amount of battery for a 1lb bot, but it would keep the weapon motor at a sane speed/load and also not make the 6V-rated Pololu drive motors too unhappy.

The batteries are wired in hard-parallel, so if I ever wanted to charge this pack properly, I’d need a two-parallel 2S battery splitter like this.

The two Vextrollers are de-cased and stacked on top of each other using clear heat shrink tubing for insulation. Stuffed right next to it is the 12 amp brushless ESC, which is hardwired next to the Integrated Fingertech Switch.

The Hobbyking 6 channel RX is also de-cased and sits up front, wrapped in electrical tape a few times since I didn’t pack clear shrink big enough. The pins are all removed, trimmed flush with the board except the pins I needed, and tiny 26 gauge signal wires soldered to the remaining stubs. Everything is according to the initial CAD models!

Dense and unserviceable? Yes, definitely, but so are iPhones and I like to think PQ is the iPhone of antweights so………

All packaged up with the new titanium top plate! 15.3 ounces – good enough. It probably weighs 15.300008 ounces up north anyway, so I still qualify for Motorama 2015.

Pop Quiz’s ‘press shot’. Notice the missing forward left corner – by this time, it already ate itself once when I was testing against a scrapped 1lb bot frame. I had ground a radius onto the underside of the blade’s leading edge to prevent this, but on one side of the blade, it just barely didn’t go far enough! That was remedied quickly.

The shorter blade meant that even when it hit its own corner, it didn’t fly away or flip. I in fact didn’t even notice it as an independent event – only after picking the bot up when enough was enough.

Being constructed alongside the antweight work was the latest version of the animatronic RWBY Crescent Rose being built by Cynthia of Cynaesthetics. I’ll let her explain the details, but this was the ‘black project’ that kept me busy over the week/end before we left. I was employed as a CAD mule since I was much faster at using Autodesk Inventor, so I pounded out the design she handed me over the course of probably Wednesday through Saturday.

The crown jewel of this design is probably the red gear-thing on the right. It’s nifty enough to warrant its own entire post. Shown below is revision 1:

It’s a one-shot 3D printed 7:1 compound planetary gear with input and output roller bearings that translates a roughly 16″ circumferential travel (so think 16″ of rope being pulled around it) into a roughly 85 degree rotation of one of the ring gears. The idea was to mechanically synchronize the deploy, though it ended up not quite working because of the difficulty of keeping the two sides synchronized.

There was a great chance that it wouldn’t work at all if I didn’t get the clearances exactly right, such that the multiple solid bodies got fused into one… but they ended up being correct for version 3. It was one-shot printed on the Dimension 1200ES machine in the shop.

Once again, I hosted a few Maker track panels and participated in others. This year’s roster was Maker Resources (my ‘2.00gokart for the masses’ panel), Electric Vehicles, and a new one on Rapid Prototyping Cosplay, hosted with Jamison and Chris Lee, in which we teach the audience how to abuse waterjets. This year, we were smart and stuff, so all the panels are kept on the cloud! Links will be presented at the end section.

Above is my Maker Resources introduction. Yeah, it was about that productive.

Doing some last touch-up on Pad Thai before the Robot Microbattles 1lb and 3lb event. The front armor was too low, causing the front to drag and affecting the bot’s traction.

A clean shot of Pad Thai Doodle Ninja before the event. It only required lifter repair from last year, and replacement of some of the spring steel armor.

A picture of Pop Quiz’s first and only match. The bot seemed to work fine on the smooth Invention Studio indoor floor, but the arena floor was a whole ‘nother story. The bot has maybe 0.025″ of ground clearance on a good day. What does that mean? It could barely move in the arena!

This wouldn’t have been so bad if it were not for the fact that Pop Quiz’s weapon motor was built in 2008. Like, I went and found the blog post that described its construction. This predates even LOLioKart. Whatever I did back then was clearly not up to the bots of today, with the amount of power I’m now running through it. For example, the central shaft of the motor is a small shoulder screw with #8-32 threads, which pretty much stripped instantly on the first big hit, shown above, with “Trash Boat”. This left the weapon motor disabled, so after that, it was just a matter of finding the right floor gouge to get stuck on.

Well, shit. The rest of the bot works great (minus the paper thin ground clearance), so Pop Quiz is going to get a re-engineered motor and a few layers of heat shrink tubing over those wheels!

Due to timing constraints, the ants and beetles were forced into single elimination (again), so PQ left the event 0-1.

Pad Thai went longer in the tournament with Cynthia driving, defeating “Green Reaper” and “Trash Boat” (to whom Pop Quiz lost), ultimately reaching the semifinal where it lost to Jamison’s DDT. The spring steel armor fended off DDT reasonably well, but it was still filled with gouges at the end.

Video of this match, from Near Chaos Robotics.

Besides the front and side armor, DDT managed to get a good shot off at the unprotected rear, which cracked off a portion of the motor mount and sliced up the rear left wheel. The broken O-rings jammed into the rest of the drive and caused one side of the bot to stop working. Luckily, the motor wasn’t damaged!

Pad Thai went 2-1 this time.

Oh god, it’s Monday. It’s the big show. It’s my yearly measure of worth, made worse by the fact that this would be the 10th year since I won a championship at Dragon Con first! No pressure at all, breh. (I won the 12lb class at D*C2004 with Test Bot v3)

No changes at all were made to the big bots at the Invention Studio, since all of the work relevant to them was done before departure.

My Hyperion 1420i charger died mysteriously during Microbattles, so I put out a call to the Robot Battles e-mail list and Facebook page asking if anyone had a charger (or bench power supply) that could charge up to 7S lithium packs (about 28 volts). Dale (of Homemade Robots) brought a 30v adjustable power supply that I ran with during the whole event.

Sadly, I did not run into Dale in either weight class, so we couldn’t do a “10 year band reunion” in the finals….

Test Bot was also at this event, and frankly, it’s never looked better.

Wait, what!? Yes, that’s the old frame and running gear of Test Bot 4.5. I sold it to Mike Jeffries of Near Chaos Robotics about a year and a half ago, and his crew has revived it into Dolos. They upgraded it with slightly larger wheels (one of the causes of its downfall at D*C events, since by that point I’d optimized TB for smooth arenas), a wedge that formerly belonged to Apollyon, and a “bot hook” weapon.

I didn’t get to fight 12 O’Clocker against it, however, since it lost to Dale’s Omega Force.

Setting up 12 O’Clocker for its first match against Served Cold…

During its last match with Tetanus Shot, 12 O’Clocker lost one drive side completely. I thought it was a solder joint or stripped gear in the custom Harbor Freight mounts – Tetanus Shot is an extremely solid bot, so metal on metal collisions are going to have much more pronounced effects.  As it turns out, it was way worse than that:

The motor just straight up cracked out of its mounting holes! Looks like the bottom of the motor mounting screw holes might have been a little too thin. I have spares of the gearcases from last year….

…but of course forgot to bring them for this year.

Well, okay then.

Returning to a classic strategy, I decided to install a zip tie ratchet on the right side. This is a cut zip tie that sticks into the sprocket’s path, so in one direction it gets sucked into the chain and locks that side up. In the other direction, it is pushed away and the side moves (relatively) freely.

I used this method a few times in years past with Clockers of Lesser Drivetrain Reliability to great success, for tenuous definitions of great. The bot could move forward, in a wide circle, and then pivot about one side in reverse. 12 O’Clocker is still a relatively formidable opponent even in this limping mode, this time exemplified by how many times I still managed to get Tetanus Shot after the installation of the ratchet…

12 O’Clocker made is 1 and 1, winning against Served Cold and losing to Tetanus Shot. By the 12lb Rumble, it had also cracked the motor off the other side, so I started and stayed mostly in the center of it to smack as many people as possible while avoiding the edges. A drive-disabled 12 O’Clocker somehow managed a one in a thousand alignment with Omega Force, and I literally threw it overhead off the stage.

I edited together all the video I had of 12 O’Clocker and have it uploaded onto my Youtube channel. Here it is for convenience;

(This is in addition to the Near Chaos 12lber playlist).


Überclocker was the big hit of the show this time, going straight through with no losses and winning the 30lb championship. There’s nothing wrong with the bot right now – I can turn it around to Motorama 2015 tomorrow. The Banebots wheel swap proved to be an extremely good idea – Clocker had a traction advantage that was clearly noticeable in its matches with Nyx, against which I’ve always been neck and neck in pushing ability.

I also entered Clocker in the 30lb rumble, with some… additions… to epicly hilariously results. 90% of this event to me is a chance to let loose and be silly on stage with robots, so we took the spare pool noodles that we brought for safety covers – Jamison’s Bug Loves Robot and Überclocker both rank pretty high for pointy ends on bots – and straight up taped them to the bots for added entertainment.

I edited together all of its matches here. Near Chaos has a much better view of the bedlam that was the 30lb rumble.

Clocker’s performance was nothing short of stellar, and I’m glad that it finally works reliably. I don’t anticipate making any performance upgrades or changes to the bot at the moment. The top clamp arm actuator still has a bit of a habit of coming apart – it didn’t at this event, but it was looking close by the end, so I’d like to actually drive some screws into its mounting brackets before Motorama.

12 O’Clocker is a different story. Besides the whole motors-breaking-off issue, which is a design problem with the gearbox, it needs an aspect ratio more similar to Überclocker to be more effective. Right now, it’s dopey and cute looking with its short wheelbase and tall frame, but it translates into poor lifting performance since the center of gravity has less leverage. It’s more likely to faceplant than lift (but that makes it cuter and dopier!). But again, I’m not sure if I’d change this, since the point of it was to be silly and fast – two things it’s good at, at least!

I ran out of time this DC season due to helping with the RWBY weapon that I couldn’t really do justice for Pop Quiz and Pad Thai. Pop Quiz’s concept is sound, but that motor needs to be updated to 2014 standards! It’s been a while since I’ve made a motor, so I’m kind of itching to do it now… Oh, and throw a few layers of heat shrink onto the wheels. Pad Thai suffered plenty of body damage this time around, but none to the lifter – it was actually kept down most of the time  anyway.

The Con Elsewhere

Once you go to one Dragon Con, you kind of get the idea: it has neither rhyme nor reason, nor a theme such as comic books, Warhammer, or indie video games. It’s ALL of it. As a result, I’m always on the lookout for new and innovative crossovers and takes on media franchises. Seeing a group of Iron Men gets old pretty quickly, for example, but nothing really prepares you for…

Iron Totoro. The picture doesn’t do justice as to how huge it was, which was easily 3 people wide. There was a hotel security staff just off to the left escorting it through the (very tightly packed) Marriott hotel.

Interactive costumes are another cool feature of a convention where you’re not expected to stay within a certain industry or franchise. Here is Mr. Fingertech Robotics himself, Kurt, with hand-mounted reed switches that could sense high fives. The large LED screen displayed the current count (yes, double high fives work!), and the LED strips on his vest would change color depending on how many high fives were accumulated in a certain span of time.

I forgot the exact count, but he was well over 10,000 by the end of the weekend, and it was a huge hit just walking through the hallways.

Cynthia’s mechanical scythe posing next to a more artistically complete but non-mechanical one. RWBY is stll a series which is gaining traction, so not too many people recognized it immediately, but the mechanical deploy caught quite a few eyes. It was presented at the Rapid Prototyping panel (which also featured Jamison’s big hammer and a few other things) to great fanfare. Version 3 ought to be even more exciting…

So that’s Dragon Con 2014 in a few pictures! I’ve already made plans for next year, including changes to the panel format and possibly more collab panels. First, I’ve always thought that Dragon Con panels were supposed to be 1.5 hours long, since at other cons the panels are scheduled in 1 hour blocks. As it turns out, it’s supposed to be 1 hour of panel and halfn a hour of room clear/reset. What?! I totally only found this out when Val, the Robotics & Maker track director, had to toss everyone out of the panels I ran or participated in…. because I thought the content was going to fill about an hour and 20 minutes or so. Whoops.

We hustled out of Atlanta under the cover of early morning darkness, and followed the same I-81 route back.

Panel Resources

This year, I did a smart person thing (only you guys say I’m smart, I never said anything to the effect…) and made/kept the presentations online. So here they are:

  • Maker Resources 2014: Updated with new content, vendors, and internet memes!
  • Rapid Prototyping 2014: In collab with Chris Lee and Jamison Go. If the subset of people who 1. read this blog and 2. have pictures or video, I’d appreciate it greatly if you sent it our way. I think this panel was highly successful.
  • Electric Vehicles 2014: In collab with Adam Bercu. This was primarily a picture show since we actually did a panel thing and talked the whole time.

Operation: I FEEL GASSY

Well, this sure looks familiar.

Nope, it’s not a repost!

Around 9 in the morning on Tuesday, near the VA/NC border (by a little town named Lambsburg, as I found out), I stopped to pick up a full tank of gas from a Loves Travel Stop. Roughly 1 hour later, south of Roanoke, was when we noticed the first hints of power loss, but we assigned it to the fact that the region was mountainous. Shortly after Roanoke, in the span of less than half an hour, I went from keeping up with highway speed in the right lane to crawling at 25mph on the shoulder.

Realizing this was patently unsafe, I pulled off near Natural Bridge, VA onto U.S. Route 11, which was a much slower local road, while we tried to formulate a battle plan. At this point was when I was beginning to think that the problem was with the fuel system. The symptoms were:

  • Lack of power at mid and higher throttle. The engine could idle and run at low speeds and loads just fine, but as soon as I gave it more gas, it began sputtering and losing RPM. By itself, this could have indicated a problem with a clogged or restricted exhaust or intake.
  • I could rev the engine in neutral freely if I depressed the throttle gently; but a sudden mash of the pedal would cause it to sputter. Something load-dependent was the issue.
  • More surprisingly, though, it was inconsistent. During the various start-stop cycles at red lights and when the engine was off, the restriction would seemingly go away for a short time, but then almost immediately return afterwards.
  • When it was away, I could drive and accelerate normally. Something was moving or shifting, possibly by gravity/engine suction or pressure, or perhaps temperature, into place.

We went on U.S. 11 until Lexington, VA, where we stopped for lunch at a Taco Bell and waited for the engine bay to cool off a bit so I could possible look inside. I picked up half a tank of gas from an Exxon station, where I also checked the air intake and filter in case a squirrel actually got lodged in there or something. You  never know.

It seemed to behave normally right after the fillup, so at this point I was highly suspecting some kind of gunk or contamination in the fuel. I milked what leftover power it had for several more miles until the problem came back again, halfway to Staunton, VA

Realizing we were never going to make it home if this kept up, we stopped at a rural gas station halfway between Lexington and Staunton (in a town called Raphine)  where Adam and I dove under to extract the catalytic converter (after half an hour inside a Burger King waiting for it to cool) and to inspect it. This resulted in the following hilarious picture:

Let the shipping begin

After taking about 20 minutes to drop the catalytic converter, we found there was absolutely nothing wrong with it or with the pipe downstream. At this point, I was pretty damned sure it was fuel-system related.

We decided to play it safe and try to ask for an ‘expert opinion’, which involved a bit of calling around seeing if there were area mechanics we could limp to. We visited two – one was right across the highway, was actually a truck and RV repair shop, and run by a very friendly and wise old guy whose name we didn’t catch, but whose business was named Cash’s so I’m going to call him Mr. Cash, because that shit’s cash.

After taking a test drive, he agreed with me that it was most likely fuel related, but seeing as how this was already late afternoon and likely nobody in the area would have the needed parts, could only offer me a bottle of fuel system cleaner and some good luck. Mr. Cash recommended we visit another shop around the corner, King’s (which I assume is run by Mr. King), to get a second opinion.

Mr. King himself was welcoming but busy, but the mechanic he foisted me off to was absolutely convinced it was a catalytic converter problem despite me telling him already what we’ve taken apart and checked. I’ll give the guy some credit – they were busy when we walked in, and we were likely not going to stay and pay them to do service, so I can’t imagine I was very high on their priorities list. We left after deciding our welcome was outstayed. Certainly, if you walk into the IDC while I’m busy putting out student go-kart fires (maybe literally, mind you…) and started asking laser cutter questions, I would have responded similarly.

At this point, I decided to see if the ECU was possibly outputting any codes, since 1989 is just new enough that some sort of electronic diagnostic was mandatory. One problem: I didn’t have the diagnostic sheet from the service manual that told me what the blinking voltmeter needle did.

Solution: I found it on my own website – posted from last year, an exact snapshot of the page I needed. See, kids? This is why you blog everything, even if you don’t think it’s important!

I continued north on I-64/81 to wait for the problem to return while Adam carefully stared at the voltmeter. Sciencekart is funny, but I wasn’t about to try and stare at the voltmeter while driving for real. However, even though the problem returned, and I was reduced to shoulder-crawling again north of Staunton, VA, the ECU didn’t throw any errors.

Really? I figured it should at least return “Fuel Pump” or something, but nothing. Modern ECUs can tell you if the fuel-air mixture was even a little bit out of expectation, but the diagnostic system on Mikuvan is not sophisticated enough for that.

I coasted into Weyers Cave, VA – between Staunton and Harrisonburg – and we limped to the Shenandoah Valley Regional airport. At this point, Cynthia and Jamison needed a way to get home because they have things like real lives and jobs. They picked up a rental car from the airport, since there were no direct flights to Boston from here.

The battle plan was prepared. Adam and I would crash overnight with his friend in Richmond, VA, then return in the morning with a U-Haul and trailer. From there, we’d basically be running the original Operation: MIKUVAN again!

In what I realize must have looked like a broad daylight car theft, we pulled into the airport parking lot with the truck and trailer and pulled back out with Mikuvan loaded in under 10 minutes (Keep in mind it was still capable of moving under its own power, just for not too long, so I just drove onto the trailer). If we tried this in Boston, we’d been surrounded by black trucks and assault rifles in a few seconds, but they seem to be more chill out here.

The destination was a shopping center south of Harrisonburg, VA, with multiple big box home improvement and auto parts stores in the area.

And so, for the second time in two years, I found myself in a town with “Harris” in the name, under a U-haul trailer, in the parking lot of a big-box store, fixing a van.

The plan of action was to remove the fuel filter and then connect it up backwards, then use the fuel pump to empty the whole tank through the backwards filter. Ideally, this would knock out and wash enough particulates for us to gently nurse it back home, still 12 hours away. Pictured above is the first shot of fuel from the filter. Delicious.

Every few gallons, we’d switch the 10 gallon fuel can for a water bottle and inspect the fuel for clarity. Even at the end of 4 shots, there were still tiny black flakes and bits coming out of it. I know this is probably the past 10,000 miles of deposits, but regardless, it was rather surprising to see how contaminated and full of other substances gasoline, allegedly a highly refined product, can be even in 2014. At least, I’ve never dealt in any way with “bad gas” on any vehicle… but perhaps it’s because I’ve not personally put 10K+ miles on any one vehicle before now.

We dropped the bad fuel off at an auto shop, fully fueled Mikuvan with some Shell premium gas (I was paranoid okay?!) and went on our way. The trip back to Richmond, about 2 hours, would be the test – if I could manage this fine, then it should be okay for the rest of the trip: all of the instances of the fuel restriction would appear with 15-20 minutes of driving each time. I took the lead on the return, with Adam following in the truck and trailer. If the problem returned, I would slow down, pull behind him, and just Grand Theft Auto it onto the trailer.

Around 9:30PM on Wednesday, we rolled out of Richmond and headed north on I-95. I drove at a relatively constant speed and throttle, trying to maintain 70mph, until north of York, PA, upon which Adam took over and got to White Plains, NY on I-287.

I think I should drive with a clogged fuel filter more often, since I got the best mileage ever during that leg. Problems started returning around White Plains, more mildly but still noticeable, so we decided to play it safe and took CT-15 northward instead of I-95.

Here’s the story in a Google map.

CT-15 was a scenic but rather chaotic (being morning rush hour in the NYC metro area and all…) drive. We discovered new Tesla superchargers:

In the span of time we were taking a break at this station – like 20 minutes at most, three Teslas rolled in and out.

Hey, is this still under warranty?

An hour south of Hartford, I got the idea of calling area Mitsubishi dealerships to see if anyone had a fuel filter for an obscure model they likely never personally sold. I’m not sure why I thought this was necessary by this point, since Hartford was but a hop, skip, and faceplant away from Boston, but I was kind of tired and delirious anyway.

Hartford Mitsubishi (& Cadillac & Maserati) was extremely helpful – their parts guy was on the phone with me for 10 minutes trying different models to see if any parts cross correlated. I know for sure the same style filter is used on late 80s Monteros and Galants, as well as shared with the Dodge compact pickups of the same era…. but all of those are virtually extinct by now too, so no luck with those specific models. He ended up finding a ‘universal’ style that fit across model lines. I’ll take one.

We decided not to do the filter swap just two hours outside the finish, so the rest of the trip was spent hovering in the right lane on I-84 and I-90 to very little drama. I made it back onto campus around 1pm on Thursday.

analysis and recourse

I was not expecting “bad gas” to be still a thing in 2014 – sure, I’ve heard stories from other people, but come on, this is the future where we live in the cloud and download our food and movies alike through 4G LTE. I was also under the impression that fuel filters, like any filter, will show symptoms gradually, and not be fine on one hill, but completely go to shit by the next. The filter in question was installed after I got the engine working again in May 2013, and it’s been completely trouble-free for all of the trips since then. It was even trouble-free for 550 miles of blasting in and around Atlanta, where I was regularly pushing 80mph. It was trouble free for the first six hours of the trip, which featured much of the same hammer-dropping. It’s difficult for me to not mentally assign blame to the Love’s station, since I picked up a full tank of fuel from them and then the engine totally went to hell within an hour and a half.

It also seems getting recompense from a gas station is quite difficult.

First, a bunch of people would have to complain AND specifically point out they were the cause. Who knows, maybe the 6 other cars at the station with me when we refueled in Lambsburg also had issues some time down the line, or could have them very shortly after a few hundred more miles, but their owners will just chalk it up to the 5000 mile oil change interval running out and take it into their mechanic, never noticing the cause or caring about the final invoice.

Second, even if they were also broken down somewhere, normal people wouldn’t do what we did: we didn’t do a single thing “the legit way”. Instead of calling for a tow, calling my insurance company to find an authorized shop, getting said shop to perform all the diagnostic work we did, and paying for the replacement part in labor, we slum-fixed it ourselves outside of The System. The “tow” was a U-haul, the “shop” was the parking lot of the Harrisonburg Home Depot. I guess I did end up buying an official dealer sourced part? What this means as a whole is I don’t have an ‘official’ paper trail to back all of these claims up.

I called Love’s and they looked into the store in question, but of course got back to me with “Sorry, nobody else complained and our tests showed our fuel is clean, so we can’t help you”. Of course nobody else complained and your fuel is clean – that’s what your job is to tell me, so I ain’t even mad.  If I were to file a lawsuit, then I’d be potentially out a few thousand dollars and many months of staying on top of it, while swimming upstream against “well, nobody else complained, so what the hell is wrong with your car then?”

Oh well – unless one of you have a better idea, I’m just going to cut my losses at a few hundred bucks, pay off Jamison and Cynthia for their rental car expenses, and file this one under “Don’t Trust the System”.

I took care of the fuel filter in an hour outside of MITERS last week, and based on my (admittedly relatively short) trips around the Boston outer regions, there’s been no problems at all. Maybe it’s time to hit Vermont again for another Ford Fusion battery just to test it on the road for more than an hour at a time, because the New York Maker Faire is next week and I’d certainly like to avoid stranding 5 random freshmen on the side of the road in Connecticut.

Speaking of which, stay tuned for the work on that so far – Chibi-Mikuvan needs some pretty mission critical repairs! Time to switch vans once more….