Minisumo Bullet XT

This is my second robot. Every next version of my minisumo is better and better. I think that next version of this robot will not have any imperfections. Minisumo Bullet XT took part in several competitions but due to one mistake in mechanics it was too easy to beat him .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 have made in it.


The project was created pretty quickly in Autodesk Inventor. At first I designed all the elements that were needed and then I have assembled it all together. Each model designed for 3D printing has been duplicated and reworked in terms of dimensions for 3D printing from ABS (as you know it shrinks). In addition, the holes and the nuts slots have been enlarged accordingly. 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 printed clamps that are squeezed using 4 M3x30 screws. In this project I have also included a sharp scraper plate attached with 4 ball bearings.It was designed to “unfold” during the sudden movement at the start. I have roughly outlined the size of the PCB that I have 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 parts from which robot is made of:

As the Polulu gear wheels had bad D-shaped holes (matching to micro-gear motors) I had to redesign them. In addition to the matching for bearings and motors, I also improved the some details in these gears to make them easier to print.

There is the whole design render, when almost everything is assembled together:


To test the robot I printed a ring, which I then 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 you can see more or less everything works as it should. During the tests I made corrections in the code and adjusted the comparators. As you can see in the film 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 much power. Because of this full power was only activated when the robot decided that the opponent is exactly in front of him. 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. Already during the tests, the adjustable plow caused some problems by hooking on the doyho.


As for the electronics itself, there is nothing special about it. As the main microcontroller I used Atxmega128A3U. It has many useful hardware interfaces. For motors controllers, I used TB6612FNG IC,s connected in parallel due to the high peak current rating of the motors. PCB as usual is made by using photochemical method and it was coated with Lichtenberg alloy. As comparators I have used some spare operational amplifiers. I used 4 tact-switches for menu operation. In addition, I used the Nokia 5110 display to simplify menu navigation. For visual effects I also added LED,s on the corners and under the PCB. There is also soldered TSOP Series infrared receiver for remote triggering – 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)

The photo below shows the highlighted tracks:

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


I used powerful from Pololu: 25Dx48L HP with gearbox  ratio 9.7: 1. As it turned out later, motors with such a torque are an overkill . I think that anything from the micro series should have enough power. Anayway 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 the capacitors added later to stabilize the voltage:

The peak current turned out to be a big problem, when starting, such motors pull 6 A each, which is a total of 12 A. The first channel on the oscilloscope shows the voltage drop from the Li-Po battery during engine start (as you see the drop is serious, about 2 volts). Without using high-speed diodes and high capacitance on the electronics side, this drop was reflected in the supply voltage of the microcontroller and all the logic ,
that caused the entire program to restart. 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 out correctly. As you can see on the second channel, the logic voltage is temporarily raised by about 1.5V, which is probably the instantaneous overshoot of the target voltage setting due to the rapid voltage change at the input of the voltage converter. Microcontroller somehow cope with it – and anyway I will not do anything about it as the whole robot will be disassembled soon.

You can see interesting thing on the second zoomed oscilloscope printscreen : the motor chopping frequency (PWM ,20KHz).


As my favorite digital sensors Sharp GP2Y0D340K are no longer available I had to figure something out. I decided to use faster analog counterparts Sharp GP2Y0A60SZLF (analog distance sensor 10-150cm). They work just fine, but not as good as the digital GP2Y0D340K. Well, I had to use that what is avaliable. 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 engine power).

Line sensors have been applied only on the front:

Power supply

There are 4 Li-Po 3.7V 700 mAh batteries connected in parallel (2S2P). The connectors are suitably hidden in the bottom of the PCB. Generally it is hard to screw the PCB into the frame because of limited space available.


Everything was printed on a 3D printer from ABS. The parts are so durable that after a few battles, they do not even have scratches. The pictures below show the motors mounts and the “two side” 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 weakly “sticks” to the ground.


The whole thing works very nice, but because of the front plow the robot is too poorly “attached” to the ground. 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 happened that he flew over the opponent just because of this one “bug ” in this build. I have to re-design the frame and use a plow made of sharp blade.

  • The plow does not stick to the ground well enough
  • The scraper with razors does not perform its function
  • Badly designed power section
  • Motors with too high current draw
  • A new plow made from a sharp and durable blade
  • New small micro motors
  • Two silicone wheels instead of tracks
  • Slim frame
  • Add line sensors on the back