OMG THAT WAS SUCH AN EPIC MATCH DID YOU SEE THAT MATCH GUYS IT WAS SO AWESOME AND…
A little early, no? I’m going to be at the Detroit Maker Faire this weekend with all of Friday the 29th being a travel day so it’s either now or next week. If you’re in the area, stop on by the Power Racing Series track where I’ll be acting as technical inspector, Grim (penalty disher-outer), flag bro, or really whatever needs doing. Chibi-Mikuvan isn’t in a battle-ready state, so I’m foregoing bringing it.
For this match, there’s not an extensive backstory and tale of preparing, so I’m going to just jump right into the analysis! So be warned, don’t hit the “Read More” line unless you actually do want to Read More!
Brushless RageBridge alt. Brushless Rage (n): A magical piece of robot hardware that everyone wants to exist, and whose developer keeps promising “eventually”. Kind of like the Duke Nukem Forever or Deadpool of motor controllers. “I’m going to use Brushless Rages in my robot when Charles releases them.”
in a world
My own brushless ESC design has been a bit of a white rabbit project for years. While it’s lead me into learning a lot about motor control and power converter design, I’ve not actually made a working one. Melontroller version 2 came close in 2010, and it actually did run Razer Revolution (version 1) for a short while before consuming itself enthusiastically and being retired. It also required the now-legendary Common-Mode Nut to work properly. My next attempt, Tinytroller, was basically a miserable failure all-around, but my discoveries made during the testing of RageBridge meant it might not have been a total loss design-wise, just hampered terminally by a connection error in the schematic (that story can be found here).
In the era beween that and the last time I talked about Brushless Rage in 2014, shortly before I had an unexpected robot pregnancy for BattleBots Season 1, I tended to make do with mass-market EV controllers and R/C motor controllers, like a regular person. I don’t like to talk about those times, trying they were. Man, that post was a while ago. BattleBots Season 1 also pushed back regular-old-RageBridge basically a full year.
where brushless ESCs all suck
With the few months prior to the BattleBots Season 2 build kicking off devoted to hacking up HobbyKing controllers, it basically rekindled the flame that I had with my own brushless ESC bloodline. After Season 2 action wound down, I spent some of the intervening period before the premiere thinking about the next steps of the Brushless Rage project. I didn’t want to keep modifying hardware not designed to do something I wanted it to, in order to get something which mostly works. Having chopped up dozens of models of R/C controllers, I was getting sick of dealing with them. An ESC of my design would mean I can account for all the variables that were cost-optimized out of the bill of materials, and they could be tailored to my specific application of getting the shit whipped out of them every time they are powered on. I wouldn’t need to worry about the global supply chain for #season3 either. Furthermore, the robot market is slowly shifting brushless basically as I’m typing. And with the discovery of SimonK and other firmwares by the community, suddenly the bar was significantly lowered for the part I hate: firmware development.
It seemed to me that it wasn’t very difficult to get a SimonK compatible basic Brushless Rage put together, and I was in fact about to pull the trigger on the original board design (with a few changes) a few weeks into the build when the Great DLUX Famine of 2016 occurred, a go-for-broke move that was one of the failure mode branch analysis decisions of last resort. Overhaul 2 was a trailblazer in many ways for #Season2 (No, these things will never come without hashtags), so since I’ve reached a point where I’ve stopped caring about R/C hardware, it’s time to move on.
It’s also interesting to see that my desires for a brushless ESC haven’t really changed – something that performs well in roughly the 2 to 5 kW range typically 48V and up to 100 amps. This segment of the market is still poorly served for the casual roboticist or hobbyist. Most Inexpensive Chinese equipment for e-bikes are 1kW and under, otherwise you’re looking at unreliable R/C controllers or really expensive industrial ones. This is where I come in.
But first, let’s rewind all the way back before BattleBots ruined my life yet again and see where this first model of Brushless Rage ended up.
Recall that this was the “component splattering” I first put together in late 2014. I do a bunch of trial layouts without schematics just to see if there’s enough space to do what I want. The form factor is still “RageBridge”. This board is based off the Arduino Leonardo, which has since been discontinued anyway.
After the component splattering is established, I then make the schematic (not shown here, but plenty of other examples abound). This is the final layout I decided to use, since it provided a clean U-turn path for DC current and three straight traces for the motor phase current towards the right side of the board. The gate drive passives have been arranged around the A4910 chip for its own local sanity checking, and otherwise the micrcontroller and logic power supply are already arranged (and basically identical to RageBridge 2′s known good setup)
I enjoy a good game of “detangle the gate drive traces” every once in a while. Brushless (3 phase) makes this more entertaining since there’s an extra set to route!
Here’s the hilarious way I ended up routing those traces. What’s with the little curly offramps?! Well, the traces all had to turn 90 degrees, but 90 degree hard turns are less desirable than 45s or straight lines. I could have gone with simple 45′s, I suppose, but decided to get cute with things and use the spline routing method instead.
This is the bottom layer of the board, looking the most “circuit board” of anything I’ve ever designed. There’s 6 gate driver lines logic pins from the microcontroller (three high, three low) to detangle, plus numerous other control pins and feedback pins. It also showes the layout of the power traces.
Finally, this is the completed version 1 board as of December 2014 or so. I actually had several boards made along with the version 1 of the RageBridge2 boards, but never did anythng with them. Knowing what I do now about RageBridge 2′s design though, there’s a few things I’d change about this board before populating and trying to use it.
Fast forward to about two months ago, and my desires to try again were high. Seeing the HSOF-package FETs used in the Vex BB controller at Season 2 also spurred me to try that package, which I had only speculated out before and whose high price per unit in low quantity kept me from buying a rail to blow up. However, I found that other companies besides Infineon also made parts in the package, such as the Fairchild FDBL0150N80, which were priced much closer to my favorite D2PAK-7s.
The HSOF package has very short legs, which enabled tighter packing than the D2PAK-7 devices. This was both a blessing and a curse, since I usually ran traces under the ‘overpass’ of the legs, but the tighter packing would potentially allow FET packing in parallel for more current. A lot of new leadless packages for all sorts of devices really want you to use them with 4 layer boards, and I openly admit that moving to 4-layer would have made life a lot easier and added current capacity.
I also did some more look-ahead for the architecture of the controller. One of the things I wanted to do with RageBridge2 was finally move to a split signal board and power board architecture, which is fairly common the higher amperage R/C controller market. This would allow me to finally use 4+ ounce copper on the power board, which the fine pitch packages and traces of a signal board wouldn’t usually permit. The signal board could also be designed with tiers of components to drive differently sized power boards…. just look at my dreams of this from tinytroller (That’s a 600V, 200A, 3-phase IGBT module…)
So here we go. I decided to play with placements first, once again. I basically just imported a RageBridge outline to start with, to see if I could keep the controller in the same size class, rather than define a new physical form factor. The hidden agenda of this is that I have 1000 RageBridge 2 heat sinks and only 250 RageBridge 2s, so I’m gonna use those damn heat sinks!
One thing I was unclear on at the time was whether I wanted the gate drivers on the board or not. Having the drivers on the board would make the logic-power separation even more strict, as the only thing passing between the boards is command signals, not even the (relatively, compared to logic) high powered gate drive signals. This took up more space on the board, of course, so I had to get to a point first where I could judge the space requirements. You could really make an argument for both approaches, but the gate drive on logic board is more common in R/C-world.
I also made this crazier version which is basically just a block of MOSFETs. This was a complete “out there” concept, as there’s too much semiconductor to be useful – the rest of the board won’t really be able to support the current, and those two lone capacitors will become depressed quickly.
It also left zero space for things like current sensing resistors or really any gate drive parts. But it did show the potential of the HSOF package if I decided to make this board even slightly bigger to permit these components.
Another musing was if I could use the D2PAK-7s that I already have. The answer is “barely”. It also really needs a bigger board to work out. This specific layout, for instance, would make adding current sensing really difficult.
There was another version which I did not take a screenshot of where the FETs are spaced closer together after I played with gate drive routing, which left space for current sensing resistors on the left where they are picture now. This version was actually a candidate worth pursuing if I did not end up using the HSOF packages.
Getting a little more serious now as I start actually listing the signals I need. This is now back to the first configuration.
While I don’t intend to make current sensing a priority (as SimonK doesn’t support it), I made sure to add all the possible signals I WOULD need, which includes current sensor feedback pins and a thermistor, for instant.
At this point, I also started thinking about what signal header to use. The 20-pin wide through hole header row was not the final selection. I looked around first in the libraries of parts I had to see if anything tickled my interest. While the common 0.1″ spacing single row headers would have worked, I wanted a more production-ready solution and also wanted to browse what the latest offerings on the market were.
Off to Digi-Key and Mouser for some window shopping. Connector manufacturers will often sample parts for free just to get you hooked on their product, so you keep coming back wanting more, and eventually you’re standing on a street corner with a baggie of mezzanine headers.
I found what I liked in a Samtec product, the HLE series. This is a “pass through board” header. My qualifications were basically…
0.1″ pitch, so it is easy to use as an extensible standard – anyone with some perfboard could potentially work with this design in the future
Two row, since 1 row takes up too much boardwidth and three rows is more painful to route
Pass-through-board (connector on top side) because I did not want to pay extra for double-sided SMT assembly for ONE PART (the connector) which would be necessary for a non PTB design.
So I sampled a handful of HLE connectors and matching male-side dual row terminal pins, their TSM series. After getting these in hand, I decided to move on with them.
I generated the footprint for this part according to their datasheet, but the pads are a little shorter than specified to give me more space to work with. Check out the current working arrangement now. The decision to move the gate drive offboard was made, so this freed up space for more capacitors as well as current sensing. I realized that even two FETs in parallel was going to cause a massive capacitance shortage. Cue a day of shopping for the latest in capacitors…
In the end, I’m only able to get around 2,600uF of bus capacitance at 63V ratings – two 820uF large cans and three 330uF smaller ones. This ought to be sufficient, and is on par with RageBridge 2 which was easier to buy caps for due to its lower voltage operation.
This board is also about 0.25″ longer than RageBridge 2, accomplished by exploiting Eagle’s 100 x 80mm board limits by using the “Well, technically, it just limits where your COMPONENT CENTROIDS can be placed” method.
So I honestly tried for a while to put all the outputs on the right side for convenience. The narrowness of this board wasn’t very conducive (hehe) to it since it left very little space for power traces. This would limit the current capacity due to trace resistance, and ruin the point of two devices in parallel.
Again, a matter that a 4-later board can help fix, and so I might try a 4-layer version in the future.
In the mean time, to keep life simpler for initial testing, I moved the motor phase outputs to be next to the FETs. This also let me push everything to the right a little and give more space for routing. Pictured above is the first shot at the power board, which was, uhh, rage-routed in my typical fashion.
This screenshot also shows the working project name for Brushless Rage, which is “ThreeBridges”. I honestly don’t know, because it sounded reasonable. Technically, you could argue it’s only three half-bridges. Go away.
Now that the power board is settled, time for the signal!
I set the signal board size constraint as being no wider than the two mounting screws on that end of the power board such that I could still unscrew them. The length was dictated by hitting the phase wires. This is after the “initial scattering of components”, where I was routing the logic power supply little by little at the top. For now, I put a row of right angle headers on the left side to make sure I leave space for routing signals, even though the SimonK board would only need one R/C servo input.
The gate drivers are all new – the FAN7390, which is like my old favorite the IRS218x4, but with a little more crank and with independent inputs. I went on the hunt for gate drivers that offered Vss-COM floating capability (kinda-sorta isolation) that were higher current than the IRS218x4, and found these quickly. Sure, why not!
The logic regulator is also a new addition to Charles_Favorite_Parts.lbr that I hope to learn to love. I decided to leave my good ol’ LM2594 behind and explore the higher voltage market a little. The LM2594HV is my go-to for all up-to-50v solutions, but I eventually wanted to go higher with this controller.
From looking at the DLUX 250, I know it used a LM5009 regulator, so I shopped in the same family of DC/DC regulators to start with, while also letting DigiKey show me what worked for my specifications. Ultimately, it seems like the easy one-chip converters stop around 100 volts. Makes sense – the higher you go in voltage, the less standard/well characterized the loads tend to be (e.g. every consumer electronics device hovers around 5-24 volts for power so there are many one-chip ready to go solutions).
I settled on the LM5017, which has roughly the same operating voltage range, can switch near 1Mhz (which I wanted to do in order to reduce passive size), and is higher current, for in the future if I want to drop this design on a more powerful gate drive.
This chip is a little………..special. I’ll get to that in a bit.
Moving more components in now – the microcontroller’s support passives have been added, the resistive sensing network for phase voltages has been added, and a new challenger appears at the bottom… what’s that? It’s a TLP2160 2-channel optocoupler in a SOIC-8 package. I wanted to get into the habit of opto-isolating the logic signals, since it cuts another point which noise from coupled EMI or ground loops can be injected into the logic, so I explored the space of small optocouplers a little, most being the larger wide-DIP size. This part is another “Digi-Key, are there any in-stock parts that match these peculiar spoiled brat needs of mine?”
Version 1 of the signal board is complete after some more routing! This board was almost theraputically easy to route for some reason. The joys of having ONE INPUT and no giant MOSFETs next to you…
A quick synthetic image showing the stackup of boards.
These boards were sent out for fabrication through my current favorite shady Chinese PCB source, 3pcb (not to be confused with 4pcb, or really any of the [1:10]pcb.com places). The signal board was to be fabricated in regular 1oz copper, and the power board in 2oz. I could have went for the full 4oz, but it was more than twice as expensive as the other options, so for a test board, it was not justifiable.
In the intervening week, I ordered a load of BOM parts from Digi-Key. First up is the HSOF package FETs!
Man, these things really are like a D2PAK-7 with the legs cut off. Pretty sure I can get the same effect doing it manually myself and save some money…
But less facetiously, they’re much thinner than the D2PAK and so have less thermal conductivity problems from the top side. They’re still designed to be heat sunk primarily from the bottom, though.
Everything else! There were so many new parts involved this time…
A day later, the PCBs show up. I’ve worked out that if I hit “go” on the DigiKey order as soon as I get a shipping notification from 3PCB, my orders will make it here in roughly the same timeframe (+/- 1 day).
The first thing I wanted to try out was the board stackup height. I was correct in choosing the male header pin height here, since the signal board sits just barely a millimeter higher than the tops of the FETs!
Next begins the job of populating the boards. I started with the signal board, so I can quickly test “FET integrity” by manually poking the drive pins with 10 volts to make sure nothing is dead.
The capacitor farm on the right was going to be impossible to assemble unless I tried some trickery. For the pins in the middle of the aisle between the small and large capacitors, I ran a bunch of vias to the bottom layer and added a small square of solder mask stop. That way, I can solder the capacitors in from the bottom by holding the iron to the bottom side and feeding solder from the top side.
Not a production tactic, but good enough for now.
I built this assembly in stages, testing each ‘new thing’. For instance, the next family of parts to assemble was the 15 volt gate drive power rail supplied by the LM5017.
This is where things got exciting, and where you have to know how technical datasheets for chips are produced.
First, a team of engineers working high up in a mountaintop monastery like this one writes the specifications for the chip – its operating voltage range, logic input thresholds, current draw, and so on. They summon the Gods of Silicon Fabrication through magic-smoke-heavy ceremonies shrouded in secrecy, tradition, and middle management. Next, to bring the chip into the world, the datasheet must be written by a group of immortal, trusted unpaid-intern scribes. Unfortunately, as this modern electronics research facility is a mountaintop monastery, it has no Internet connection.
So the chip specfication and application & design notes are communicated via one of several methods: via magic-smoke signals, or by dropping smooth pebbles from the mountain in such a way that they bounce a specific number of times before hitting the ground, with the number of times being interpreted as a character or a vector graphic drawing command. This is, needless to say, not a lossless method of communication, as winds and weather can hinder the processing of the smoke signals or inhibit them completely, and the backup provided by the dropping of the pebbles could be corrupted by the law of probability and how many mountain goats are grazing on the way down.
What I mean to say is, datasheets often suck and have inconsistent symbolic notations and naming schemes that make it difficult to understand precisely what is being asked of the designer. I messed up a few passive part value calculations (such as the feedback network filter among other things) which meant NOTHING WORKED. AT ALL. GOD DAMMIT. until I ran through the design equations basically 3 times before I finally got that ohhhh, you meant the on time AT MINIMUM DESIGN INPUT VOLTAGE, not maximum like the last page was talking about.
Then I got it to work.
This was the culprit. What is shown here is the waveform at the feedback network. Essentially what’s going on with this regulator is that it uses the voltage across the output inductor as a feedback element.
Capacitors, specially the output capacitor, take a little time to fill up (voltage to build up – current leads voltage) after you feed current into it, and by the time the final output voltage – taken directly from the capacitor in the usual case – rises above the feedback threshold, shutting off the current in the inductor then takes a little more time (voltage-leads-current), which fills up the capacitor past what is desired. You can often get an unstable feedback loop going this way with the regulator always hurrying to do exactly the wrong thing, and your output voltage becomes unregulated. The type of feedback network used by the LM5017 is more complex, but it eliminates the capacitor as a source of lag in the response.
What’s seen in the waveform is the scaled inductor current (represented as a voltage) increasing (ramp up) as the regulator pushes current from the input side (battery) into it, the peak tripping the feedback threshold, and then ramping down back down when the regulator shuts it off. The peak shifts left to right depending on the duty cycle – basically how much time the regulator keeps the current on vs. off.
This is a small waveform imposed upon a DC offset voltage which is provided by the usual two-resistor divider, which is for large-scale changes; for instance, a sudden load might drop the DC voltage significantly, which means the peak of the triangle won’t reach the regulator’s shut-off threshold, basically sending a “NO KEEP IT ON LONGER FOR REAL” signal.
The astute electronics engineer would note that I technically didn’t have to do any of this, just implement a normal feedback circuit, because the gate drive power can be “dirty” since the microcontroller’s power is derived from its own linear regulator from that, but I wanted to get used to these kinds of feedback circuits since they’re more common on high voltage regulator parts.
This is the output voltage at the ‘switching node’ – the output pin of the regulator, before the inductor, doing what it’s supposed to do finally . Again notice how it matches up with whether the slope of the feedback voltage goes up or down.
Mystery number 2 of this chip was that it clearly did NOT want to run at 1Mhz. It just sort of went crazy and the output waveform was extremely unsteady and not remotely square like this one.
I backed down the design frequency to about 600khz, and all was good.
By the way, thesea re in fact all screenshots from my beloved DSO Nano Quad.
Okay, with everything populated, it was time to take it for a literal spin. I designed the signal board to be a directly compatible port of the SimonK DLUX settings I made for Overhaul, so this part was super easy!
Aaaaand…. nothing happened. Hmm…. Well, at least it didn’t light on fire instantly! I have created something that is more than just an elaborate firework.
First little blue wire hack time!
So I read the TLP2160 is an inverting output. Sure, makes sense, most optos are set up that way. So I just wire the output in an emitter-follower configuration and all is fine, right?
Nah, it’s a push-pull output that can both source AND sink current, overriding your clever inversion by doing whatever the fuck it wants. Whoops. So instead of reading 1.5 millisecond long pulse from the ratio, the ESC was receiving a 20ms – 1.5ms = 18.5ms pulse and becoming very confused. Time to bypass it for now… On version 2 of the board, I’ll add a tiny transistor inverter to make up for this.
Okay, it’ll definitely work now! Right!?
Well, I can hear it trying to do something, but it’s obviously not driving anything. Scoping all of the low-side MOSFET pins showed they were being switched on correctly, but none of the high-sides were driving at all. Perhaps the bootstrap capacitor arrangement was too low-value to pump those big fine MOSFET gates. Nope, the voltage at the bootstrap capacitor read just fine. Might as well double check the pinout connection and…
Again, another “Electronics engineers might get this” reference, but take a look at the FAN7390M1X datasheet and let me know what I did wrong.
Alright, more little blue wires time. I fixed this issue in the chip footprint and symbol right away, and it’s also now queued up for revision 2. The other two drivers also needed this same hack.
OKAY, IT’LL FINALLY WORK NOW! AAAAND….
Whoops. Another transcription error. Who’s the unpaid intern monk scribe communicating via smoke signals and goat droppings now?! Fortunately, this was quick fix. Ahhh, software…
Without further ado, I bring you….
AAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHH WHAT IS THIS MADNESS DID A MOTOR CONTROLLER I MADE JUST WORK ON THE FIRST REVISION
literally because i didn’t write the software.
Not shown was the test after this where I almost beaned myself with a SK3 63/74 outrunner when running from Sadbot’s 10S battery. It tore itself out of the crude clamp and alligator clips I set up on the table and proceeded to attack me.
There was one additional small hack I had to make, and it was that the bootstrap capacitance was indeed a bit low for how fast I was switching and the gate charge of two MOSFETs, plus gate-to-source “insurance resistor” leakage. It ended up that I need something like a 4.7uF and I had a 1uf installed from stock since I already had it. The high-side drive voltage was sagging pretty far during long slow commutation cycles. I intend to resolve this by installing the correct capacitor next time and also backing down on the Rgs from 10k to perhaps 22 or 47k – something to keep them happy under undefined drive states, but it doesn’t need to be that low.
Well, to keep things going for now, I’ll just DROP ALL THE BASS on it. How’s 101uF of bootstrap capacitance sound to you? Good? ALRIGHT!
Future revisions of the signal board, or a different signal board altogether, may see a charge pump or other kind of high-side drive supply added. For now, it’s fine if the high-side gate drive voltage sags a bit on longer switching cycles, which would happen with slower motor rotation near full throttle, such as if I drive a bigass hub motor instead of a small fast R/C motor.
Shown here is my DSO Nano Quad and a bunch of little blue wire probes that I was moving around to check my work.
Here’s what a gate drive signal looks like! Nice and clean, just uner 1 microsecond switching time. The small twangs are the complementary (high-side) transistors turning on and off, which shows that my deadtime could afford to be a little less, but I will probably keep it here for insurance purposes – transistors start switching slower as they get hotter, for instance.
Again, this is on completely unchanged SimonK DLUX settings from Overhaul.
Out of curiosity, I took a snapshot of the phase voltage divider output (going to the microcontroller, blue), and the virtual neutral point (star network, yellow) which the controller bases its switching decisions from. For more technical and whimsical info on this process, see Xo’s post. The controller bases its switching decision on the last drive state of the motor and the “zero crossing” – actually the phase voltage crossing the virtual neutral point.
The signal is clean enough and my switching is fast enough (sub 1 microsecond) that I may try increasing the switching frequency even further. Right now it’s around 20khz, and I’m thinking of trying 32khz. The higher the frequency, the less work the capacitors have to do, the more opportunities the controller has to sample the zero crossing, the lower the magnitude of current pulses which could induce noise, and the less I and my friend’s dog hear it. Downside is increased heating of the transistors in the form of switching loss, because how happy would you be if someone slapped you 50% more times a second?
All of this is speculative. My goal is to build three to four working units and beat them up using the SADBOT vs. OVERHAUL method, which I know everyone has been dying to see, including me! The revision 2 signal boards, incorporating most of these changes, arrive later this week, and my BOM for making a few more power boards should also get here in the same timeframe.
In the mean time, it’s time for OVERHAUL VS. BETA this coming week of BattleBots! I have a post-match being put together for that too.
OMG WASN’T THAT AWESOME? IT WAS TOTALLY AWESOME. I THINK IT WAS….
Okay, you get the idea. That’s what I’m going to say about every episode of BattleBots. I was there, man.
This post will dive into the details of the Overhaul vs. Cobalt match that was aired on 6/30, so what I’ll do as a favor for those who haven’t seen it – as people who haven’t gotten to see it live will probably see it with a DVR or via streaming over the next few days – is begin by talking about the event itself. Basically, there was a few days before the first matches even began where a lot of preparation was being done, and robots being, umm, finished. That way, we have a sizeable spoiler gap before getting to the match itself, and lastly what I’ll do is discuss the lead-up to the Cobalt fight, what happened during, and the results & work after. So don’t scroll too far down if you don’t want spoilers!
Here we go! After landing in Los Angeles around 2PM on the 14th of April, it took over an hour to get a rental car at LAX… because apparently everyone was also in town for Coachella. I heard from builders who arrived later that the situation only got more desperate, with some waiting over 3 hours for their allegedly guaranteed reservations. No free upgrades for you.
Now, given that it was getting close to 4PM by the time we finally high-tailed it from the airport, it was only natural that we…
…sit in traffic. The distance from the airport to the venue was about 45 minutes during a good time, and now was not a good time. Let me make it very clear that I’ve basically forgotten how to drive a normal, modern car. If you saw me make my way over from airport, you would have sworn I got my license yesterday. Mikuvan: Elevated view, infinite visibility, super short turn radius, and middle wheels only, bitch. That often means an extra 2 to 3 feet of maneuvering space since I can overhang the curb and eat a sidewalk momentarily. Modern car: I can’t see shit, I can’t turn worth shit, I have no clue where the rest of the car is but boy can I go fast. A I R B A G S.
Having to remind myself that I have an extra 5 feet ahead of me that can’t touch anything is a very demanding task, and it keeps me paranoid. Hey, that’s defensive driving right!? Plus, the first time I missed a turn going to dinner and had to swing a U-turn, I didn’t even think twice before almost plowing the fuck perpendicularly into the opposite sidewalk….. because Mikuvan would have made that turn fine, but apparently that’s too much to ask of a 2015 Nissan Maxima. Kids these days.
We actually didn’t end up going to the venue at all on Thursday, as they were still setting up everything, and apparently word on the street was that only international teams were permitted on site during this time. So we hit up the event hotel, another 15 minutes east, and decided to settle in for now and formulate a, umm, battle plan for the weekend. There was a trip to Home Depot to pick up spraypaint so we could finish off the bot, which was unpainted when shipped.
Fresh and early Friday morning!
The venue was a series of rounded warehouses in an industrial corner of east L.A., which calls itself the cutesy name of L.A. Hangar. No, none of those buildings are hangars, they’re round warehouses. You’re no where near the airport. I promise, because I just came from the goddamned airport.
The neighborhood was “interesting” to say the least – primarily Hispanic and touted as “that part of town” to me, but hanging around made me wonder if this was actually the case, or *side-eyes* watch out for those Mexicans, man. Okay, fine, there was that whole manhunt which had the whole venue on lockdown and a police perimeter around the neighborhood and all… but the weekend corner taco stand beat out any of the food trucks there by kilómetros.
This isn’t a photo of the venue, by the way, but of the artists nest in the building right next to it. This building will come into play later.
Our bot crates were lined up neatly in front of our pit tables already, so the only thing to do now is unpack everything!
Ah, we meet again. That’s right, I did build one of these… I thought the last 3 months might have been a hallucination, that or someone drugged me and stole $17,000 while telling me I built a robot and that everything is okay and I was still a grown-up.
That number is not even close to being a lie, by the way, and I was by far not the most machining-heavy bot there. Oh shit, this is real.
Step 1: Pile everything on the pit table first, think about your life decisions later. After we were done unpacking, two dudes with pallet jacks double-teamed my giant 8 x 4 foot crate into the storage area. Everyone else took just one! I took two guys! AT THE SAME TIME! Wait, what were we talking about again?
Step 2: Take the whole bot apart, and have Paige and Cynthia do the very important task of painting it while I set up the battlestation.
No, this is not “have the girls do the art” – after Overhaul 1 showed up naked to BattleBots last year, and with us having built the robot brand already around the Miku-blue, there was no way they would let me fuck it up. Because don’t you all know that adding paint also adds about 27 to 33 points to your Tail of the Tapeworm score? Overhaul 2′s getting AT LEAST 65 in the DASHING GOOD LOOKS category here, guys!
After putting together the toolbox and lining up my EE tools, I went outside to check out how they were doing.
There was a van!
Outside the Artsy Building was a blue 1985 Toyota 4×4 Van. I didn’t know who it belonged to, but it was someone who worked in that building. Van bros!
I was totally scouting Craigslist the whole week trying to see if there was a cheap van I could buy on-the-spot in SoCal and then drive back across country. Based on the Mikuvan Extraction Mission, there was ABSOLUTELY NOTHING that could have gone wrong with that plan. Nothing.
Late in the day on Friday, and the primer & paint’s dried enough for us to bring everything back in. We would let everything fully dry overnight before putting the bot back together. Not shown here are the pontoons, which were still drying at the time – they’re painted flat black.
SATURDAY!!!!! It’s the day after Friday.
A view of the pits from our station facing the entrance of the venue (beyond the wall is the Artsy Building). Mutant Robots and Don Hutson to the left, and in center stage is Blacksmith. The New and Improved bunnyforce Bite Force is in the distant center.
180 degrees from that shot, and Hypershock is under a blanket, lying in wait. Behind that row is a contingent of British bots, with Cobalt on the left and the Crunchy Candies Creepie Crawlies across the aisle.. There were more pits to the left and right of this, obviously, but I’m gonna skip that for now because Hey, a robot! Look, another robot! This is a robot too! We’re all robots! YAAAAAY!
Saturday is “pretty pictures” day. So we assembled Overhaul in full, with the painted parts.
Obligatory sponsor shot!
Hobbyking, our future overlords, provided the majority of the important parts for OH2 that were not machining. Like we’re talking motors, controllers, my radio, batteries, chargers, and support equipment for all of that. They legitimately handed me around $7K of parts. Do you know how much $7,000 of Hobbyking is? For those of you who might not have purchased things from Hobbyking, that is a lot of Hobbyking.
MarkForged dropped me off a Mark Two printer specifically for this event, which I put to work immediately – you’ll see what it’s printing soon. Beyond that, if you ever don’t feel like machining something, we’ve got your back. You’ve seen MarkForged parts in action here on Chibi-Mikuvan primarily in the steering assembly. You’ll notice that many parts were printed in a black material – this was Onyx, a carbon fiber filled nylon, which was still secretly in beta testing at the time of the tournament. Check it out! This stuff is actually ridiculous.
PRETTY PICTURE TIME! We begin with the 360 degree bot shot, which is where the hovering robot icons in the background of the hosts come from. This is shot in front of a greenscreen that is actually gray. We’ve somehow gotten to the point where computers can automagically tell between a gray piece of cloth and a gray robot. May Robot Jesus save us all.
These are edited pretty much on the spot and the result piped right to the production floor. They need to assemble all of this by the start of matches, after all.
A visit to the arena, still having final light, camera, and action rigging done. This is in a separate roundbuilding which you actually have to move your bots a fair distance – probably around 500 to 1000 feet – beyond the Artsy Building to get to.
Once again, this is real. It didn’t feel real last time, at least not RIGHT UP UNTIL the worbly light and sound mindfuck they do right at the beginning of the match when the countdown starts. That, last season, for me, was when it finally hit me that I was actually at BattleBots and holy crap Donald Hutson is coming at me. I had a miniature internal panic at that point.
For those of you who might be coming to #season3: Prepare for the Worbly Light & Sound Mindfuck. Fear it.
After this arena visit, I ran back to the pits and….
There are two vans.
Hold… Hold on just a second here… earlier, there was just one van. A second identical 4×4 Toyota Van showed up, and along side it a lowered classic pickup truck.
I actually ran inside and hunted down the owners this time, like some van-themed serial killer. It was a married couple, and these were fucking HIS AND HERS MATCHING 4X4 TOYOTA VANS. Okay, some times people call Cynthia and I nerd-cute for having matching hair and the like, but I’ll never convince her to have matching vans. This is… I dunno, grease-cute. Gear-cute. Faruq, King of Dubious Robot Puns, I call upon thee to help me the fuck out.
Alright, universe, you win. I’m going back to work on robots. Like a nerd.
Recall that before we shipped, I had prepared all the remaining DLUX 250A controllers I had to be installed when we got on site. This is now the time.
The plan was to run the 250s on the drivetrain only, since they were known to be reliable, and leave the DLUX 160 controllers on the lifting forks. That way, I maximize reliability for the highly pivotal first match – either you win, or you have to vie for the wildcards, which could mean it’s your one and only match.
In the background behind the extracted ESC box is one of the parts I set printing “live” on the Mark Two – it’s a “four 250A and two 160A” mount. Another one is attached to the lid already in the foreground.
An ESC swap sounds simple, but in reality, it was a lot of time-consuming rewiring. All of the 250A output wires had to be remade, as did the extensions to exit the box, since the spacings were different. This took the better part of Saturday evening and into Sunday afternoon…
SUNDAY! SUNDAY! MORE SUNDAY THAN YOUR BOT HAS WEIGHT FOR!
Work continued into Sunday on the wiring job, which is shown here basically finished but not yet well packed. Up until this point, we haven’t even gotten a chance to drive the thing in the test arena yet, and we were all getting a bit nervous.
I moved onto closing up some unfinished business, which was the P90X. I designed and had printed earlier a servo mount that you see attached to the right side of the actuator. This holds a standard-size helicopter servo from Hobbyking.
Unfortunately, this was as far as the P90X implementation got. After some rumination, I decided not to chance this part in battle if I haven’t already tested it and found that it works reliably. The P90X work fell by the wayside as the robot build moved on, and I never really came back to it.
This will be a science experiment for another day. For now, I locked the ring gear into high (even though it spring-defaults to high, having something hold it there is better) so I prioritize grabbing speed over holding force.
Here is the aftermath of our first test drive in the box. This was when I realized that the front wheels were likely going to cause a lot of trouble, and that I have no clue how to glue things together. The “urethane adhesive” from McMaster did not adhere all that well. Lacking bail options on this part, I just swapped a front wheel (6 were made, so there were plenty of spares) for now and decided to see what happens.
I also discovered at this point that Overhaul took a bit more effort to self-right than I anticipated. It took me a few tries, first of all, to actually gather enough bravery to run the forks hard backwards such that the clamp hit the top plate. It clutched itself as designed, of course, but there’s that nervousness that comes with an untrusted and untested power system. Once I just beasted it into itself, Overhaul could self-right fine, but as known from OH1 and the new CAD model, could only do this if the clamp arm were somewhat open – above about halfway open. I had to practice going “up and to the left” on the radio stick, which from OH1 as well as Uberclocker was “Lift up forks and open clamp”. This was going to be an artform if I were in a self-righting critical match, such as Bronco or a vertical spinning weapon that caught a good bite on the frame’s underside.
With the wheel replaced and self-righting mostly conclusive, it was time to call it a night.
This was it.
We get to find out who we fight first! Monday was “practice day” by the tournament schedule – the “Alternate” entries get to run around in the box with full introductions and ceremonies, so everyone has a chance to run through their lines and get in position, and the camera crew learns how to not zoom in too hard on your robot’s acne.
Producer-bro gives everyone the “don’t impale yourself” speech before everyone moves over to the bleachers, where Aaron, one of the executive producers, primes new builders on how things went last season and how they were expecting to do things this time.
I didn’t get any pictures of this process, but as they dramatically announced each robot, the team would stand up…..then they announced the opponent, and the other team stands up. There was then several seconds of awkward searching for each other before locking eyes and usually doing something intimidating as best as robot builders could possibly, which is to say….. not very. I really, really hope a “BattleBots Outtakes” package becomes available somewhere on the black market, because this was quite priceless. Hell, I even forgot what we did once Cobalt was announced, but it was probably something cringeworthy as par for the course.
Alright. Strategy time! First, we went back to the pits and
There are three vans.
THREE! THREE VANS! IT WAS THREE!! AND COCO WAS ITS NAME! I ain’t goin to heaven no more… I already sold my soul to Trey Roski.
I quit life.
note: I did not know if the 3rd van was actually named Coco, but if you get this reference, congratulations.
We switched Overhaul to its short arms. Wait, what?!
These didn’t make an appearance during the design and build, because they were a bit of an afterthought. They are essentially the arms but cut off about 5″ shorter and at a 45 degree slope, leaving the bot a little stubby looking. They are specifically designed to rest behind the armored pontoons. This is my “spinner configuration”, especially for horizontal weapon.
My basic plan? Use the pontoons exactly as designed – fend off the blade, use Cobalt’s energy against itself, and go in for the grab once it’s disoriented or neutralized. The specific goal was to get the blade to ride up on the pontoons and then hit the second angle level, which will ideally destabilize an already rotating bot. Keep the front pointed the right way at all times, and let the rubberwubbies do their job.
Did I succeed? Spoilers lie ahead.
Overhaul vs. Cobalt
This is fun!
Everything worked quite according to plan. If you tuned in and watched the (sadly, just in highlights – damn you, ABC!) match, you saw Cobalt sail end over end repeatedly, bouncing off the pontoons. Geometry! I didn’t approach as squarely as I wanted to on a few occasions, which results in damage that will be analyzed shortly, but for the most part, this match was highly entertaining.
After 3 or 4 rocket-jumps, Cobalt began smoking significantly and losing power. The impact forces caused the weapon motor, an original ETek* motor, to begin self-destructing internally. There were several more smaller-magnitude impacts after this, and we were only 30 seconds into the match. I kept the forks down and clamp all the way open as long as it kept spinning.
*Robot nerds will point out that Cobalt used a Manta motor, which is a reconstituted freeze-dried ETek. This company bought Briggs and Stratton out of remaining ETek parts after production ended and assembled a short run of their own, advertised as wind generators, but they work okay as motors too.
Unfortunately, you probably also saw the end result: Overhaul loses a drive side, then kind of sits there and flails while Cobalt contemplates existence in a more mobile, hence less county-outy fashion. Overhaul was declared knocked out around 1:30, but really I had mobility problems starting around 2:30 remaining (Note: These times are rough mental estimates, and I will not remember more until the full match gets uploaded).
EDIT: BattleBots has uploaded the full match video! My memory wasn’t that horrible after all. Around 1:31 in the video (30 seconds into the match) was the last time the left side drive was working.
Well, that part didn’t quite go according to plan… Let’s see what went down!
First of all, damn. DAYUM. Cobalt packs quite a punch – enough to straight up pierce the AR400 5mm plate weldments, in several spots.
One of the first connects actually machined off a sliver of the left-side pontoon. The big smear to the right of that is “everything working exactly as intended” – the blade hits the pontoon, glides up, and exits stage right. That hit I’m pretty sure actually sent Cobalt somersaulting over ….haul. I will need to slo-mo the fight to be sure.
Overhaul didn’t look too bad exiting the arena. Nothing was missing, or cleverly collapsed into itself, Ghost Raptor style, but the extent of the damage was discovered as soon as the pontoons came off.
Oh boy. Those are two 1.5″ section frame rails that now look like a real-life FEA simulation result. That’s a whole lot of energy, people.
Surprisingly, this side never bound up, and was working up until the end of the match. Hurray chain slop!
I surmise that the hard side-blows that Cobalt dealt pushed the pontoons sideways until the shock mounts bottomed out, at which point steel met aluminum. The linear gouge to the left is the side of the pontoon hitting the frame rail. However, the actual cause of the bending is probably the two hits (which line up with the two holes in the right pontoon) which seems to have connected AR400 straight to aluminum, with the energy of the blade behind it. I will need to review the match to see exactly which hit this was.
Cobatl definitely hit me going across the front at least once, with this nice dig out of the metal here.
So. We lost our first elimination match, but there is still a shot at the Wildcard picks. Wildcards are usually picked by a combination of factors, one of which is how ready you are when they come around to stare at your robots. Therefore, this thing is getting fixed up, and now is where my investment in two full frames’ worth of spare parts pays off.
We begin ripping the sides of the bot off – some screws had to be coerced back out, because duh. The right side was the most damaged, but the front left tire fell off during the match, so it has to be removed. That means the left side had to come off also, and that’s when we found it.
Can you see the FUUUUUUUUUUUUUUUUUUUUUUUUUCK in this picture?
When Overhaul’s left side stopped moving, it wasn’t totally dead, but was capable of moving back and forth maybe 2 inches before stopping again. I was pretty sure one of the P80 drive gearboxes was stripped as a result. But something didn’t quite make sense when I was moving the drivetrain back and forth by hand in the pits. Those motors could spin more than a full revolution. Those gearboxes are fine…
Can you see it yet?
Oh dear. There’s a set screw caught in my drivetrain.
Yes, ladies and gentlemen. A single 1/4″-20, cup-point set screw fell into the intermediate chain and locked both drive motors up. But where did it come from? There was only 1 place nearby that I use 1/4″-20 set screws – the motor’s double sprockets. But I used custom flat-point set screws, and all of mine were still there.
That means Overhaul picked up and ate a set screw, which fell off someone else’s robot in a previous match, which landed in exactly the correct location to cause total drivetrain failure. My guess is the front wheel kicked it up and over the middle wheel, it landed in the intermediate chain and sprocket area, and a chance impact jostled it into the motors. This screw was forged into the chain and needed prying to remove. It also took out the sprocket teeth that made contact with it, as seen in the example above.
So in the pits, they have mini production teams running around filming interesting things. You could also flag one of the production staff down if you were doing something interesting, and they made an effort to divert camera and sound crew over to what you were doing. They really did go out of their way to try and capture the frantic robot work in the pits, make no mistake. I exercised this privilege and actually got a team over to film a very quick but very angry rant about how you can be utterly … screwed… by something totally out of your control and up to chance, no matter how much you prepared for it. I was pissed. In an alternate universe where BattleBots is filmed and produced my way, my angry rant against the robot gods would have taken up the entire minute long highlight.
By the way, we think we know which robot it was – and its builders are also fairly sure of it. But we’re not going to spoil it quiet yet!
Overhaul here seen at its Point of Maximum Entropy on the repair path. I eventually put back together the damaged side on its own, and if you visited any of the places I brought the bot, or the Artisan’s Asylum, this is the Science’d frame rail I displayed. Now you know what happened.
I posted a Facebook photo not long after this match with the caption “The front fell off”. It attracted a lot of speculation and attention, but was completely innocent. We in fact just slid the whole fork and clamp assembly off to open up more space to work on the frame rails.
Within about 2 hours, the frame rails had been replaced with spares. In total, it took about 4 hours of work to get everything back together, and we finished Wednesday evening. The only thing to do was to wait for the Wildcard Ceremony the next day (Thursday).
Thursday was designated as a “Repair day”, which means McMaster-Carr made bank off all of us. There seemed to be a continuous ant trail of builders going to the L.A. McMaster warehouse, and… oh, I’M SO HAPPY THERE’S A L.A. McMASTER WAREHOUSE. Now, the plot twist here is that we had nothing left to repair after the frame pull, so we spent much of Thursday hanging out with the other builders and relaxing.
If you watched BattleBots S2E3 until the very end, you’d have seen the (much more hurried) Wildcard selection, which concluded with……………………….us. This happened in real life, too, and I think it alone contributed 50 years of aging to my cardiac health state.
Now we’re up against BETA, which is…. another British bot with a friggin ETek driving its weapon. I can NOT catch a break this event, eh? What’s going to happen? Well, I don’t know which episode it will be on yet, but for sure there will be another post-fight analysis! So stay tuned to BattleBots on Thursday nights at 8/7c, because we need those sweet, sweet ratings.