Saturday, September 29, 2018

Icewave 2018 Recap Part 1 - Preparing for the Season

Now that the BattleBots 2018 season is coming to a close, I thought it would be useful to recap the season from our perspective. If you have not seen up to Episode 19 yet, there will be some spoilers after this post. Since we haven't gone into much detail about each fight as they aired, I'll go back to the beginning here, since even some of our earlier season wins left us with a lot of work behind the scenes. Overall we are very satisfied with Icewave's performance this season, and we're excited for the next one!

What happened in 2016?
The 2016 season was very disappointing for Team Icewave.  We won our first match against SubZero, and then lost unceremoniously to Nightmare due to radio problems.  Neither match made it to TV, but at least you can watch them on the BattleBots YouTube channel:


Losing in a way that felt beyond our control was not something we could let happen again.  Most teams recommended ditching our Spektrum radio for an FrSky radio, so we did.  But that didn't seem like enough.  Other teams use multiple receivers to control various parts of their bot with one transmitter.  That didn't seem ideal either, since the transmitter is still a single failure point, and losing half your functionality is still pretty bad.  It was then I decided I wanted two completely independent radio systems, and I should be able to decide remotely which one to use.

Dual Radio Solution

Unable to find what I needed, I decided to make my own PCB (printed circuit board).  This board would go inline between two radio receivers.  It would allow for two independently-powered radio systems, and either system would power the board's logic.  One receiver could lose signal or power completely and the other would still function.  The system would default to using the primary (new FrSky) radio, but on command, would switch to receiving commands from the secondary (old Spektrum) radio.  The command would be triggered by two switches on the radio, which send specifically-chosen PWM values to the custom PCB to signal a switch-over while avoiding false positives.

Board design in Altium, ordered from OSHPark, and bringing it up from a bare PCB

Adding this board to our system also required some debugging, at which point we were able to see the exact signals being sent from the radio receiver to our speed controllers.  We figured this could also help us debug our interference problem from last season, if it still existed.  We started up the engine, and we immediately saw the symptoms:  the radio values were all over the charts.  This alone was not enough to cause the speed controllers to shut down, but it was very telling.

Eliminating the Interference

We began the process of elimination, replacing one part after another on the engine, starting with the likely culprits.  The engine has a spinning flywheel with embedded magnets which pass by a coil, called a magneto, to produce a quick spike of high voltage in the spark plug that is precisely timed to ignite the fuel in the engine.  Replacing the spark plug was an easy test, but didn't solve the problem.  Next we replaced the magneto and the problem disappears!  We inspect the old magneto closely and realize what happened.

An example photo of a similar magneto

The magneto is made of laminated sheets of metal.  In our first 2016 fight against Subzero, a small brass part rattled loose from inside the engine cover, spun around inside the engine flywheel, and eventually ripped the spark plug wire out of the magneto.  This little brass part also happened to hit the magneto laminations, but we didn't notice it at the time.  The laminations separated ever so slightly, which we can only assume turned them into little transmitting antennae for electromagnetic interference.  So the damage we took in the SubZero fight actually caused us to lose the Nightmare fight.  Amazing.

Getting Organized

We all recognized that a lot of last-minute, frantic work in 2016 put us in a bad position throughout the event.  Things like electrical wire routing and logistics at the event never get enough attention.  Inside our engine housing was a complete disaster of electrical components for the engine crammed in alongside poorly-routed wires and gas lines.  I set out to clean up this mess for 2018 with a custom electronics housing.  This would be machined out of a single block of plastic, and contain each electrical component in its own compartment with foam for shock mounting.  I designed everything in Solidworks before a single part was made.  This was crucial because this assembly had to fit around all of the existing components!  Here's what it ended up looking like:


More Spare Parts

This season we were told in advance that the fight format would be different.  Each bot would get at least 4 fights in the preseason before the tournament of 16.  To me, this changed the way I prepared significantly.  Previously, a catastrophic failure meant a loss, which meant elimination from the tournament.  Suddenly I realized I needed as many spares as possible for this year.  Over the previous two seasons, we had amassed quite a few spare off-the-shelf parts, but never really had the time to invest in fabricating spares of the custom things.  The night before driving to LA, I pulled an all-nighter to make as many spare parts as possible.  Since a lot of the parts were made on our CNC mill, I was able to make quite a few parts very quickly.  We also received our spare engine cover and wedge parts from our sponsor, Big Blue Saw, so it was time to weld them up!

Main weapon sprocket machined from 8"x8"x1.25" 6061 Aluminum block

Engine mounting plate machined from 3/8" 7075 Aluminum plate

Gearbox for engine starter machined from 6061 Aluminum flat bar

Laying out and welding a spare front wedge

Machining spare lower frame rails out of 6061 Aluminum flat bar

Packing Up

With as many spares as possible, it was time to pack the van and make the 6 hour drive to Los Angeles for the taping!  In my next post, we'll get to the event and start talking about our first fights!  Click here for Part 2!

2 comments: