Minisumo Bullet XT

Minisumo BULLET XT - Front view

Front view

This is my second minisumo-type robot. Minisumo Bullet XT took part in several competitions but due to one mistake in mechanical design it was too easy to beat him. Every next version of my minisumo is better and better. I think that new version of this robot shouldn’t have any imperfections anymore. The whole robot including the project was created in about 2-3 weeks. Below in this little article I will try to describe my build and the most important mistakes I’ve made in it.


The project was created pretty quickly in Autodesk Inventor. At first I designed all parts that were needed and then I’ve assembled it all together by creating an assembly. Each model has been duplicated and redesigned to change some important dimensions just to compensate the ABS shrinkage effect . The holes and the nuts slots have been enlarged by a few percent to make an perfect fit. In the project I took into account the possibility of adjusting the plow to fit the dohyo surface. It was a big mistake but I’ll describe it later on . The motors are mounted with 3D printed clamps that squeeze them with use of 4 M3x30 bolts. In this project I’ve also included a sharp scraper plate attached with 4 ball bearings. It was designed to “unfold” during the sudden movement at the start. Later I’ve roughly outlined the size of the PCB that I later moved to the Eagle for further development. After the theoretical calculation, the weight came out at about 450 g in fact the real weight was about 490 g. In the render below you can see most of the parts from which robot is made of:

Minisumo BULLET XT - Exploded assembly render

Exploded assembly render

As the Pololu gear wheels had bad D-shaped holes (they fit to pololu micro-gear motors) I had to redesign them. I have also improved  some details in these gears to make them easier to print.

Minisumo BULLET XT - Cog wheel

Cog wheel


To test the robot I printed a doyho ring, that I’ve later laminated to increase the durability of the surface. It is known that “brick” tests are not the same thing as fighting a real opponent, but at least you can see more or less that everything works as it should.  During the tests I’ve made some minor corrections in the code and I’ve adjusted the comparators. As you can see in the video that I attached below, the robot is very fast and it very well copes with the movement of almost a kilogram box of screws. During the tests, the robot fell into a slip despite the tracks with high surface grip, due to too high motor “power”. Because of this full power was only activated when the robot decided that the opponent is exactly in front of it. Otherwise, the robot was falling out of the ring because of high inertia and speed. Because of this I had to do a pretty complicated combat algorithm to make it work at all. In the end everything worked as it should, but the code is now a terrible mess. During the tests, the adjustable plow caused some problems by “hooking” on the doyho. In the menu there is a program that allows you to test all sensors in real time to adjust them to actual conditions on the ring:

Minisumo BULLET XT - Sensors test

Sensors test

Below you can see how Bullet XT works during first tests:


I would say that there is nothing special in electronic part of this project . As the main microcontroller I have used AtXmega128A3U. It has many useful hardware interfaces. I used TB6612FNG IC,s as motor controllers.They are connected in parallel due to the high peak current rating of the motors. I made main PCB by using photochemical method and later I’ve coated it with Lichtenberg alloy. As comparators I’ve used some spare operational amplifiers. I have also used 4 tact-switches for menu navigation. In addition, I used the Nokia 5110 display to simplify the menu navigation. I’ve added some LED,s on the corners and under the PCB just to improve the overall external appearance. I’ve also added TSOP Series infrared receiver for remote triggering but this feature was never implemented in the code. In the picture below you can see the whole menu (option of fighting mode, testing the sensors, turning on the lights, checking the battery voltage, testing the motors):

Minisumo BULLET XT - Display menu

Display menu

The photo below shows the highlighted tracks:

Minisumo BULLET XT - Side view

Side view

As you can see there is nothing special in the schematic – as usual “dirty work” is tied to a micro-controller.

Minisumo BULLET XT - Schematic



I used powerful Pololu: 25Dx48L HP motor with gearbox  ratio 9.7: 1. As it turned out later, motors with such a torque are an big overkill . I think that anything from the micro series should have enough torque . Anyway, these motors almost never work at full power. You can see parameters of these motors below:

  • Nominal voltage: 6 V
  • Dimensions: 25D x 48L mm
  • Weight: 82 g
  • Shaft diameter: 4 mm
  • Gearbox ratio 9.7: 1
  • Idle rotation at 6V: 990 rpm
  • Idle current (6V): 550 mA
  • Peak current: 6 A
  • Torque: ~ 0.27 Nm

In the picture below you can see the encoder , motors and capacitors that were added later to stabilize the voltage:

Minisumo BULLET XT - Voltage smoothing capacitors

Voltage smoothing capacitors

The peak current turned out to be a big problem, when starting, these motors pull 6 A each, so together they draw about 12 A. The first channel on the oscilloscope shows the voltage drop on the Li-Po battery when one motor starts (as you see the drop is serious, about 2 volts). Before I’ve used high-speed diodes and high capacitance on the logic electronics side, this voltage drop was reflected in the supply voltage of the microcontroller. Every time when motor started from idle entire microcontroller was restarting. After isolating the logic from the motors with the diodes and removing the linear regulator, which was replaced by a step up / step down converter that actively uses the energy stored in the capacitors all worked almost as it should. As you can see on the second channel, the logic voltage is temporarily raised by about 1.5V. It is probably an overshoot of the target voltage setting due to the rapid voltage change at the input of the voltage converter. Microcontroller somehow copes with it – I won’t do anything about it because the whole robot will be disassembled soon.

Minisumo BULLET XT - Supply voltage drop

Supply voltage drop

You can see interesting thing on the second enlarged oscilloscope screenshot (H-bridge voltage chopping frequency):

Minisumo BULLET XT - Supply voltage switching noise

Supply voltage switching noise


As my favorite digital sensors Sharp GP2Y0D340K are no longer available so I had to figure something out. I decided to use fast analog Sharp GP2Y0A60SZLF (10-150cm) that is very similar to the 340K’s. They work just fine, but not as good as the digital GP2Y0D340K. Well, I had to use that what is available. At high rotation speed, sometimes they do not keep up with the detection of the opponent. As a line sensor I used standard KTIR0711S proximity sensors. In addition, a Sharp GP2Y0D810Z0F (10cm digital distance sensor) was placed in front of the plow to check if the opponent is currently at the plow (to decide on maximum power of motors).

Minisumo BULLET XT - Front view

Front view

Line sensors have been applied only under the front plow:

Minisumo BULLET XT - Bottom view

Bottom view

Power supply

There are 4 Li-Po 3.7V 700 mAh batteries connected in parallel (2S2P). The connectors are nicely hidden under the PCB. It is very hard to fasten the PCB into the frame because there is not much space available.

Minisumo BULLET XT - Battery view

Battery view

Minisumo BULLET XT - Disassembled


Mechanical design

Everything was 3D printed from ABS filament. These parts are so durable that after a few battles, they don’t have any scratches. The pictures below show the motors mounts and the “doubled” ball bearings of the opposite wheels. In addition, the plow was laminated with epoxy resin and steel plate to reinforce it. Thin razors were glued to the “scraper”. Ultimately, this solution did not work, because this element doesn’t lay flat on the doyho surface.

Minisumo BULLET XT - 3D printed frame

3D printed frame

Minisumo BULLET XT - Front view

Front view

Minisumo BULLET XT - Rear view

Rear view


The whole thing works very nicely, but the front plow the robot is too poorly “attached” to the ground. Because of this the whole structure will be disassembled and converted to a new version. The robot quickly locates and attacks the opponents, but is unable to push them out because they have better plows. Several times it flew over the opponent just because of this one mistake in this build. I have to re-design the main frame and use a better plow made of sharp blade which could be pushed under the opponent.

  • The plow doesn’t lay flat on the doyho surface
  • The scraper with razors does not perform its function
  • Badly designed power supply section
  • Motors with too high current draw
  • A new plow made from a sharp and durable blade made of tungsten carbide
  • New small micro motors
  • Two silicone wheels
  • Slim frame
  • Additional line sensors on the back