STOMP - Climber's second mini-sumo robot

This is my second mini-sumo. I started building it a couple of weeks before the 2007 WCRG but didn't have it ready until long after that. As always, I spent WAY too long building this.

Like "Sayonara Sucker" I named it in honor of Godzilla. In this case what the monster does for its "day job."

I designed it around the motors I found to use: the Copal coreless motor with the 50:1 metal gearbox. I bought them from Robotcombat.com. These will nicely sit back to back with room to spare so no funny business with offset motors. Other people have tried the Copal motors but the plastic gears kept shattering. The metal gears should take care of that problem nicely.

The biggest challenge was mounting the motors. They don't have front plate mounting bolts. The only bolts located there hold the gearbox together and I just didn't want to mess with that. Also, the gearbox is open meaning it can get choked with dirt and debris if I don't do something about it.

robotcombat sells lexan motor mounts designed to hold the motor and enclose the gearbox but one problem: they are big. Since the motors stick so far out I would end up with very narrow wheels if I used these.

However, these mounts gave me an idea. What if I could get a brass tube to slide the motors into? An 11/16 tube is just about the right size. What I did is split the tube down one side and machined aluminum mounts for them. The mounts also have a split in them through which I drilled a hole and threaded one side for a bolt. This bolt, when tightened, compresses the mount which compresses the tube and holds everything in. All that remained was to cut a hole in the center of the tube for the motor's wiring to go through.

Here's a pic of the whole motor holding thing. The plywood is a mock-up of the final size and will be replaced by a printed circuit board that will act as the bot's bottom.

I had enormous fun machining these mounts out of 25.4 mm square solid aluminum bar. I used my 4-jaw chuck on my lathe for the first time since I wanted to machine the holes to be 2mm down and to the rear of center. This game me more clearance for the wheels to the rear and bottom.

Because the motors are held in a fairly thin tube I could machine wheels for them that surround the tube all the way back to the mounts. This meant I could use 32mm diameter wheels that are 22mm wide.

Casting the wheels was kinda tough since the urethane coating is only 3.5mm thick. With the depth of the mold getting the wheel out took some work as the thin coating gave me very little play to work with. Fortunately, I had considered this first and when I cast the mold I made sure a 4mm shaft was well secured to the wheel. I got some very nice 4mm steel rods from Hobby Lobby. They fit the holes so much more nicely than the 5/32 rods I used to use. Hobby Lobby has a GREAT selection of metric tubes, wires, threaded rods and the like. Ironically, finding a Canadian distributer of good metric stuff is harder. Go figure!

When I cast the tires I left the shaft of a bolt without the head screwed into the set screw socket. Besides allowing me to have a solidly attached shaft with which I could extract the wheel from the mold it also left a hole through the urethane which I could get at the setscrew that holds the wheel to the motor. I made sure I cut a slot into the end of the bolt so I could use a screwdriver to get the bolt out. I would have used a set screw but I couldn't find one long enough so I had to make my own.

I think I will machine new hubs out of brass. With the bot's small size and densely packed components there won't be much room for me to add weights to bring it up to the regulation 500 grams. According to my calculations switching to brass hubs will add a little over 40 grams.

For power I am going to use either the Evo 20 800 mAh 3 cell lipoly pack, the Thunder power 910 mAh 3 cell lipoly pack or whatever else comes along that will fit inside. If I want to keep the bot small I can no longer depend on nimh cells for power; they are just too bulky. The squared off shapes of lipos are VERY convenient.

This bot is well equipped sensor-wise. It has 3 Sharp digital rangefinders pointing out the front in a fan shape, 2 proximity sensors to the sides and two ring edge detectors (two front, one rear). I know the Sharp sensors have extremely spiky power draws so each will have a 100 or 220 uf low ESR cap right beside it. The regulators I use also claim very low dropout.

As with my first sumo it will have two sets of power, one for the processor and LEDs and the other for the sensors. Sensor power will come on only when it is about to go or when it is in testing mode. The processor will monitor battery voltage and turn most things off to reduce power usage if I forget to turn the robot off. I left off the charge jack but the battery is very easy to remove and replace. I have two batteries and each is good for at least 30 minutes of vigorous sumo fighting.

The user interface is fairly simple. I have a 4 bit selector dial that is rotated to face the enemy, a reset button and three start buttons. After bot placement the dial is turned towards the enemy. When the judge says to go one of the three start buttons is pressed. These start buttons will choose the initial strategy. If start buttons 1 and 3 are pressed simultaneously then the robot will go into test mode with all of the sensors activated but with no power sent to the motors.

For the purposes of expansion and debugging I added an I2C header and left those I/O pins open. I also left the serial port pins open with a little header for a level converter daughterboard and serial port connector for sending telemetry to my computer.

Total I/O pin usage:

6 motor control
2 I2C
3 rangefinders
3 proximity detectors
6 rangerfinder/proximity indicator LEDs
3 ring sensors
3 ring sensor indicator LEDs
3 start buttons
3 "face towards enemy" dial
1 battery voltage sensor

That's 34. At first I thought I would use the mega162 but it doesn't have an analog to digital convert I need for monitoring the battery voltage. The mega164 is the next closest although I am going to use the 324 since I already have some for another project.

It will run at 16 megahertz with a resonator since the XTAL pins don't consume I/O and I never depend on the internal clock if I can avoid it. One thing I also really like is that the SPI pins for serial programming and oc1a/b and oc0a/b are close together making routing for those functions easier (those are always such a bitch for me)

Update Sept 21, 2007

Fixed booboos in schematic (battery sense voltage divider; missing line from motor power to H-bridge) plus added pullups to I/O pins connected to H-bridge control lines and lo-pass filter to enabled lines as described in the L6205 documentation.

I've started developing the motherboard layout. I have learned so much about that sort of thing and I (hope) this one will be the best one I've done yet.

The motherboard is very challenging. This sumo is even more packed with electronic goodness than the previous one even with the vast reduction in size gained by switching from to a lithium polymer battery from NiMH. The mobo itself has to stay less than 8 or so millimeters in thickness including substrate and any bumps or leads that stick out of the bottom. So far the bot's height looks like it will be below 32mm. In restrospect I would have loved to make the chassis 1 mm thinner because I could then have added a sensor and software to keep working in the bot gets turned over since the wheels would protrude both top and bottom

I've decided not to install a charge jack on this bot. Since there is a significant risk of fire if I accidentaly connect this bot to my regular charger I won't use the same connectors. Instead, the battery can be very easily swapped out by unbolting the left side of the bot. Remove 4 bolts, disconnect empty battery, connect fresh battery, replace 4 bolts.

Update Nov 14, 2007

Ok, I lied, I used the same connectors as the other bots. I needed a small, polarized connector and the ones I normally use were the best fit. It also means I don't have to use a different connector for the power supply I use while I am testing the board for the first time.

Here are the PCBs for the motherboard, top and bottom. Blue is ground, cyan is ground but close to the power ground for the H-bridge, red for CPU power, light green are traces for sensor power which is controlled by a second regulator that is activated by the processor when it is time to groove. Grey are traces that are not any of the above.

I added a voltage divider to the battery power (with 91.0K and 10.0K 1% resistors) so I can measure the battery voltage accurately and have the bot enter a low current shut down mode to help prevent damaging the battery if I leave the bot on accidentaly. Lipoly cells do not tolerate that well.

The board itself is the best I have ever made. There were no broken traces or bridges between pads and the like anywhere.

Today I have just enough of the board stuffed to test the power and processor (power connector, power switch, the headers which surround the processor, the primary regulator, the processor itself, the ISP header, the crystal, the AVCC power filter and some filter caps. So far, so good.

Update Dec 16, 2007

Lots and lots of work has been done. Nearly everything is done except for the rear proximity sensor and the front plate. Check it out:

With the aluminum hubs I originally machined for this bot as you see it has a mass of 390 grams. Since it was nearly done there will be very little weight gained from the front plate when I add it. So, I decided to machine some new hubs out of brass. That added a whopping 30 grams each to bring the total to 450. As you can see I haven't cast grippy tires on yet. One hub is on the bot and the other is currently in my mold getting a Synair 2020 tire put on.

You can see the slots I machined into the wheel so the urethane has something to hold on to. For some reason I decided to polish the hubs up before putting them into the molds. It was brass, I just had to.

The software and everything I have on there so far are working well.

This bot is also quite fast. I think it's even faster than Sayanora Sucker but I have to get them head to head before knowing for sure. The motors and gearboxes are pretty strong too. Assuming I can make it run reliably I think it might prove to be a reasonably competent mini sumo.

Update Dec 26, 2007

Holy crap is this sucker fast. When it starts moving it actually does a wheelie. Keeping it in the ring is going to be *tough*.

Update April 15, 2009

Did I say it was fast? Holy freaking crap is it fast. It's nearly twice as fast as my first sumo, Sayanora Sucker and that was already one of the fastest mini sumos I have ever seen.

I may change the ring detection system into an interrupt rather than polling in an attempt to stop it from driving off the edge. Also, one other problem that cropped up is that after it pulls back from the ring and starts forward it does another wheelie. This lifts the ring sensors up so high that it can't see the ring any more. The wheelies have got to stop.

I think I am going to put this sumo through my solar roller race track and measure its top speed. Trying to time it going across the ring has proven futile.

Currently it masses out at 474 grams. I am probably going to add a little lead to the rear to help the tires keep grip if it drives over the edge.

Update April 18, 2009

Here's it is with the top off:

By the way I am really pleased with my closeups now that I've been using my Canon EF 90 mm tilt-shift lens. Being able to tilt over the plane of focus is really handy.

The processor is clearly visible and so are the capacitors and resistors I had to add when I screwed up the installation of the range finders. You can see the dual power supply right by the switch on the port side.

The L6205 H-bridge can be see on the starboard side. It's a great H-bridge except for the charge pump circuitry I had to add. The thing I can't figure out is why did I have to add diodes for the charge pump. What's with that? The H-bridge has MOSFETS in it but they can etch in diodes?

Today I was just fiddling with the software. I've managed to get the bot to stay in the ring most of the time but I had to dial the PWM duty cylce to 240 out of 255 (I almost always use 8 bit PWM). When it sees something it dials it up to full blast and really moves.

Right now I am tweaking the algorithms for the side proximity sensors. I am trying to decide if I just want to do a 180 or turn until the bot sees something.

To bring the mass close to the regulation 500 grams I added 21 grams of lead strips to the floor just under the Sharp range-finders. The only other space available was above the motors in the rear. However, since it likes to do wheelies I decided to add the weight to the bottom.


to email Craig send to climber at shaw.ca (replace at with @ and remove spaces).
Return to Craig's Electronics page.
Return to Craig's main page.

Last Modified: Apr 19 2009 - SPLISH UGH!!