Skip to main content

An Interview with Ben Pirt, Creator of the Mirobot DIY Robot


The Mirobot is a currently crowdfunding open source, build-it-yourself and fully hackable drawing robot, that is designed to help children learn about technology and programming.

How and when did the idea for Mirobot come about?

A few years ago I took a trip to the Science Museum in London with my family and saw one of the original BBC Turtles, which reminded me of when I used them as a child. It struck me how expensive and rare they used to be and how you could build the modern equivalent yourself out of open hardware like the Arduino, and I thought it would be a fun project to do with the kids. Lots of development later and it's moved beyond just being a project for my kids, because I thought it would be well received by others with a similar desire to involve children in technology.

Could you take us through its design.

The chassis is all laser cut from a single piece of MDF and is designed to use as few external components as possible (it only uses two screws, which I'm currently trying to eliminate!) It's all pegged together and so is also easy to disassemble if you want to modify it. There's a pen arm which can be moved up and down using a servo and two wheels that are directly driven using geared stepper motors.

The electronics are all controlled by an Atmel ATmega328 and it's Arduino compatible. The motors are driven through a couple of ULN2003 driver chips. All of the components are intentionally chosen to be low cost, readily available and easy to source, because it is designed to be affordable. I've put quite a bit of time into optimising the design so that it minimises extra components. It uses a low cost WiFi module for connectivity which bridges a TCP socket to serial - the MCU then handles the WebSocket setup over this connection.

What are the challenges in designing something that is to be constructed and programmed by children?

You have to take into account that children don't have quite the same levels of coordination and manipulation as adults, and so things need to be made larger and easier to attach than they would if an adult were constructing things.

I've spent a lot of time making the PCB easier for children to solder by making the pads bigger, the isolation between the pads and the ground plane greater, and by using the Sparkfun technique of staggering pads so that the components hold themselves in place for soldering. My 5 year old daughter is proof that it can be soldered by children.

Why did you decide to open source it?

My goal is to get as many children as possible involved in using robotics as a way of learning about technology. Open sourcing it made sense on a lot of levels. It addresses one of my main issues with other educational robotics tools, which is that once you've used it for its intended purpose it's no longer useful and gets put back in the cupboard until next year. The fact that Mirobot is open source means that the point at which you've made it draw is not the end, but the beginning of being able to do more interesting things with it. If you wanted to make it autonomous you could just replace the firmware and use some sensors. If you want to integrate it with another programming language, the protocol is completely open, so you can do so easily. The more open it is the more useful it can be.

Is there a particular problem or opportunity that Mirobot addresses?

The main problem is that the quality of technology education has dwindled over the past 10 years. Things are starting to change through the efforts of organisations like Code Club and Young Rewired State, and Mirobot is designed to get children more engaged in this learning. It differs from the other educational robotics tools on the market, because by building it themselves children get a much better idea of how it works mechanically and are much more engaged when it comes to programming it later.

How do you program it?

There are many ways that Mirobot opens up opportunities for learning about programming. Once you've assembled it, you can use a web-based drag and drop interface to program it visually. Once you've mastered this, you can peel back a layer and use Javascript to hook it into more complex programs (again, direct from the browser). Because it's got an open control protocol, it integrates with any other programming language. Finally, you can reprogram the Arduino compatible controller itself and hook it up to sensors (which are in the works as one of my stretch goals on the Kickstarter) to make it autonomous.

Are there plans to further develop it over time?

There will likely always be improvements as more people use it and feed back how it could be improved, but those improvements are already becoming more fine-grained and minor as time goes on. The integrations with third party programming languages and tools will be ongoing.

Do you plan to develop any other, similar products?

Absolutely! My broader goal is to bring cool maker tech into schools and with the current state of schools having their own kit like 3d printers and laser cutters, there's a great opportunity to help them use these for more interesting things than printing extruded vases. Expect to see more Kickstarter projects!

Can you tell us a little about how you gained your own introduction to engineering

I originally trained as an architect, so that gave me a good foundation in considering how things are designed and built. However, I would put my introduction to engineering (and making) much earlier. As a child I spent a lot of time with my Grandad making things in his shed / workshop at the bottom of the garden, and then later was introduced to mechanics by my Dad as we rebuilt a classic car together. Since being trained as an architect, however, I moved into electronic engineering and then software engineering, which has given me a lot of the skills required to build Mirobot. For such a small and "simple" thing, there's a lot of tech involved.


Why do you feel that it is important that people should get hands-on experience with technology at a young age?

I think that developing an understanding about technology (and also mechanical engineering and programming) gives children a better understanding of how the world works. Technology is one of the key developmental drivers in modern society and getting children involved with it at a much earlier age makes it more accessible and less intimidating. If you can't understand the technology you're using — if not design it, then at least understand how it could work — then you're not in control of it. It's like the saying goes; "Program or be programmed".

Thanks for your time and it's great to see that the Kickstarter campaign is doing so well, Ben!

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.