From “The Pololu m3pi robot consists of a 3pi robot base with a fully assembled m3pi expansion board as its second level. This expansion board enables the use of a powerful 32-bit mbed development board as the robot’s high-level controller, which offers significantly more processing power and free I/O lines than the 3pi’s built-in 8-bit AVR microcontroller. There are also sockets for Wixel and XBee wireless serial modules as well as prototyping space for additional sensors and electronics.”


As part of my Black Friday robot shopping spree I picked up the m3pi from pololu. The m3pi is the Pololu 3pi robot with the added mbed expansion board and an ARM mbed board attached. This gives this little robot a lot of processing power in a small frame. In all honesty, I have not even come close to using the full potential of this robot. In fact, at the time of this writing it is doing little else than a basic maze solving routine using the on-board reflectance array.

In time the plan is to add some more sensors, likely IR range finders, and set it up as a micro-mouse maze solver. What’s the difference between what it’s doing now and the micro-mouse? The current program is simply using a line following program with an algorithm known as “left hand on the wall.” It’s not all that sophisticated and can’t deal with loops. More advanced micro-mouse routines navigate an actual, walled maze, like those you may see a mouse run. The algorithms are also set up to deal with loops. So, this will be a fair bit more complex and challenging.

If you were to remove the mbed expansion board you would be left with the 3pi which uses an AVR processor, similar to the Arduino but without the bootloader and USB interface. You would have to use a programmer with it to be able to load the program, but it would still be as capable as the Zumo. With the mbed expansion board and processor it is much more capable. Mbed uses a more sophisticated ARM processor, similar to what you probably have in your smart phone. This gives you a lot more processing power and speed. Programs are programmed in c using their on-line developer environment. It is possible to set up a local environment from which to code, but because the ARM processor uses a different architecture than your PC (which is probably using an x86 based processor). Because of this, most compilers used for development on your PC take some work to get to compile for an ARM based system. But we’ll go over all of this in another post.

One thing that is a tad annoying about the m3pi is its balance. The 3pi platform aligns the drive wheels along the center axis of the circular board. A simple caster is placed at the back and all of this works well since the batteries and LCD display shift the weight to the back. However, when you add the mbed expansion board and processor, the center of balance shifts notable forward much closer to the center of the chassis. This means anytime the robot comes to an abrupt halt, the whole thing pitches forward. This can wreak havoc on some of the simple algorithms used in the maze solving program since the algorithm doesn’t know how to interpret the odd sensor readings. Of course, that’s all part of the challenge in robotics; adjusting your program to deal with real-world conditions and odd behavior.

If you’d like to get one of these robots yourself you have a couple of options. You can keep it simple and just get the 3pi base unit here:

If you do so you will also need one of these: Fortunately, Pololu has packaged them together here:

Then you can add the mbed expansion board later:

If you want to go all out from the beginning you can get the whole m3pi kit here:

If you decide to go with the m3pi over the simpler 3pi you will need to get the mbed processor separate, regardless of which option you choose. It is available here: