Micro robot wars

Bluetooth LE enabled miniature robots controlled by players' cell phone and equipped with IR cannons. Real world strategy game on a desk.

Similar projects worth following
1. Programmable mini-robots with BLE. Each would have color sensors (for line following on non uniform surfaces), RGB led, IR cannon and IR sensors for detecting a hit and piezo speaker.
2. Real time control (like on videos below). You simply drive and shoot to your opponents (1 robot controlled by 1 cell phone).
3. Programmable via BLE from PC and/or cell phone. Program ideas : line follow, on-color actions (cannon power ups etc), variants of real-time gameplay,

Robots would be modular:
1. Main board with brainz, BLE, LiPo charger.
2. Chassis with motors and photo elements (RGB) for line-following.
3. Body with IR receivers and IR diode (+ aiming diode), and some other diodes for blinking.

Modules would be interchangeable, so you could assembly a robot with 2 or 4 wheels, with bigger or smaller cannon etc.

Kit : I want to involve people into soldering, so before starting first game, you would have to solder modules together. Ideas are welcome.

Evolution of the Linux app

Linux App

Basic motion

First success

  • Project evolution

    lukasz.iwaszkiewicz03/21/2017 at 21:26 0 comments

    My micro-robot project fluently evolved into my brand new 2017 HaD prize entry :D I decided to make the programming environment something bigger and more generic than only a control application for a small robot, and make full data flow programming environment for small BLE boards. Of course such generic devices could be then used to make such robot as described in this project. So check it out if you fancy. Thanks!

  • Dataflow application progress

    lukasz.iwaszkiewicz01/13/2017 at 23:36 0 comments

    I made a small progress in my GUI application which is meant to control the robot. But along the way my ideas evolved a little bit, and now I want to experiment with something a little bit more general than only the robot. I thought that, maybe I could make a more generic Arduino-like board which could be controlled via data-flow programming app (and robot would be possible using some shields with motors etc). So for now I am pushing this simple application forward, and I want to implement some proof of concept:

    • Add data-flow engine to the program, because for now those are only graphic representations which do nothing.
    • Implement some simple data-flow program like Fibonacci (which is impressive to see in data-flow, because it can be done with 3 nodes and a few arcs) and make it run on PC.
    • Implement the data-flow engine on the microcontroller (I mean on the hardware I made so far for this project), and turn some GPIOS on and off. You would have an on-off switch on the PC, then you would connect it to the GPIO node, and via BLE you would control the GPIO.

    This would be my minimal viable product :D

    EDIT : tasks 1 and 2 done:

  • Dataflow programming

    lukasz.iwaszkiewicz11/30/2016 at 13:17 0 comments

    I started a project ( which aims to make a data flow programming environment which is going to be used with the robot or with some generic BLE board I have in mind. Below is a video of its humble beginnings. For now I consider this as an experiment, but I've got so curious about this dataflow programming thing (, that I made a simple dataflow engine (, made a Fibonacci program in it and now I'm making this GUI. Oh, BTW LabView uses the dataflow paradigm if it rings you a bell.

  • Basic Linux application for communication with the robot

    lukasz.iwaszkiewicz11/08/2016 at 23:59 0 comments

    Basic Linux app is finally working. It is written in C (modified gatttol), and source is available here :

  • User programs

    lukasz.iwaszkiewicz10/02/2016 at 22:01 0 comments

    I made a mockup presenting my idea about programming the robot (programming by the end user I mean). Below you can see how I imagine a line-follower program. It would be quite challenging to implement on the Android for me though.

  • Another video, this time with my cat

    lukasz.iwaszkiewicz09/13/2016 at 21:11 0 comments

  • BLE issues resolved

    lukasz.iwaszkiewicz09/12/2016 at 23:03 0 comments

    Now I have minor (?) problems with ultra cheap Chinese motors which fell off, and are choppy even with intense micro-stepping. Yes, you guessed it : they are low quality :D

    On the video you can see the robot itself, and the app which controls it. First I blink one of 4 LEDs mounted on the robot (each controlled separately), and then I drive the robot. Each motor is controlled by a slider, and it is very difficult to go straight with this kind of controls, but easiest to implement.

  • LSE once again

    lukasz.iwaszkiewicz07/06/2016 at 11:10 0 comments

    Tampering with the oscillator. It helped a little. Now my PC sees one or two advertising packets, and then silence. I'll redesign the board slightly, and buy quartz that ST used in their evaluation boards.

  • Low speed oscillator

    lukasz.iwaszkiewicz07/05/2016 at 22:28 0 comments

    After many hours of scratching my head I managed to confirm, that this is indeed the low speed oscillator that is not working. As previously stated, the communication between µC, and the BlueNRG works smoothly, but neither the phone, nor PC sees my tank / robot. So I reworked the tiny BALF-NRG-01D3 which is basically 0603 sized element with 4 BGA balls underneath, but this didn't help (It was OK every time I soldered it). Then I reworked the BlueNRG itself, which is in QFN package. I soldered the bottom pad with solder paste this time (application note stresses this out, but I didn't pay attention the first time). I reworked the low speed crystal, still nothing. And then I removed the crystal and, connected SXTAL0 to 32768Hz sine signal from my generator (1V amplitude, 500mV offset i.e. from 0 to 1V). SXTAL1 is left unconnected. And it worked, and I am super happy about that, because I was able to verify my theory, that this is this stupid LSE. I have numerous options now:

    1. Redesign the PCB according to all the application notes which I threw away earlier.
    2. Try with another low speed crystals.
    3. Reprogram the BlueNRG so it run on internal ring oscillator (I bricked one chip so far, more to come).

    Option 1 is most proper way to go, but due to lack of time, I'll try option 2 for now.

  • BlueNRG debugging

    lukasz.iwaszkiewicz06/29/2016 at 19:31 0 comments

    Problems with BlueNRG. On evaluation board everything seems to work, but on the target hardware it does not. SPI communication looks legit, I compared it with working one, but radio seems to be mute. Tried everything! For now I suspect the low frequency oscillator in BlueNRG....

View all 12 project logs

Enjoy this project?



Michael Graham wrote 06/02/2018 at 09:05 point

Nice work, I'd love a pocket sized battle robot toy! Check this guy out for some inspiration:

  Are you sure? yes | no

AndresRengifo wrote 01/27/2017 at 18:20 point

Hi, nice project. Which are the motors that you are using here?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates