Mirobot is an Arduino-based WiFi robotics kit that's designed to help teach kids about technology
All of the pieces finally came together and over the weekend I shipped out the first batch of kits to the Early Access Kickstarter backers.
and here's a look inside the box - instruction manual and all!
Things are moving along nicely! I just sent out 10 early version of the v2 Mirobot to some volunteer beta testers to make sure everything is working well - here's how they're looking:
I'm really happy with how all of the pieces fit in. I'm having some custom boxes made but these ones are DIY on the laser cutter. Although this 10 were hand made, I've also made good progress having the PCBs assembled in volume:
In case you're interested in seeing how Mirobot goes together in more detail, here's the instructions for the latest version that just went online
It's been great switching to a WiFi module where I actually have a good degree of control over the firmware it runs. I've spent quite a bit of time over the past couple of weeks building the firmware management system for Mirobot and it's now at a point I'm pretty pleased with. I've taken the following approach:
The other thing I'm pretty happy with is that it runs a captive portal so when you join the built-in network it routes all DNS requests to itself which makes a modern OS pop up a window with the control UI in it so you can configure the WIFi easily. It also means you can just open any web address in your browser and you'll get the Mirobot control interface. Much easier than trying to explain IP addresses to 7 year olds! I'm also hoping to add in support for Zeroconf to make it even easier to find.
I've sent off for the next version of the PCB. Not a lot has changed on it, except a move to a slightly different WiFi module. It's still ESP8266 based, but this time it's the ESP-12. The main reason for this is because this module has been certified for FCC, which means I'll have an easier time selling Mirobot. This is also a surface mount component, but since the boards are coming pre-assembled this isn't an issue.
You'll also see a Sparkfun credit for the Arduino Pro Mini on there, thanks go to Ben Gray (Phenoptix / MeArm) for leading a good example.
One nice addition I've made is that it will be possible to reflash the ESP WiFi module using a serial adaptor if you want to really customise it (or for some reason it needs rescuing). Normal firmware updates will be over WiFi of course!
The Pen holder mechanism has remained unchanged since pretty much the first iteration of Mirobot and I've always wanted to improve it. It was always a bit fiddly to assemble, a bit wobbly once it was assembled and kids often had issues with the small screwdriver required to put it together. Here's a photo showing old (left) vs. new (right)
There's now a central piece slotted through the main pen arm which provides more stability. This design has also allowed me to have the screw heads flush, which means I've been able to eliminate the need for any tools to assemble Mirobot. Instead of using a slotted screw head, I'm now using a hexagonal head and providing a simple and easy-to-use tool cut from MDF - you can see this to the right of the previous image, but here's another shot:
This is particularly useful in schools because if you're building 10 robots, they now don't need to find 10 screwdrivers and gather them all back in! I've also added a small slot in the chassis which will hold it safe when you're not using it.
It could be a little tricky to get the pen arm perfectly adjusted in V1 units, so I've also included a small jig which helps you get everything aligned perfectly before putting the arm in to the main chassis.
I've modified the previous packaging but kept the principle the same. There are a few improvements that will benefit me in production this time:
The design for manufacture is pretty much done now. I still need to test the latest version of the PCB when it arrives from China, but now I'm starting to build the relationships with the various manufacturing partners I'm going to be using for production.
Full steam ahead!
I love this chip! Being able to write custom firmware that runs on the WiFi module has opened up a lot of opportunities for improving the whole user experience for Mirobot. I thought I'd write up a few more details about what I'm doing on the module because I think it would be pretty useful for lots of projects, not just this one. At the moment I'm using the basic ESP-01 module:
I chose this version because besides being the most widely available, it's also easy to plug straight into the board, rather than needing surface mount soldering.
You can check out the code from my GitGub repository and then build it using ESP-Open_SDK. If you want to modify the web pages, just replace the files in the "html" folder and run "make flashall" again to flash it to the module. There's also code in there to let you upgrade the web pages over http.
One of the other things I'm quite pleased about is that it can reflash an attached Arduino if you connect up GPIO0 to the Arduino reset pin. It can talk the STK500 Arduino bootloader protocol, which means that you're able to drag and drop an Arduino firmware file onto a web page and it will flash the Arduino over WiFi. I've coded it so that this happens in two steps; first it caches the binary file in the WiFi module flash and then it sends it across to the Arduino. Works a treat.
There are a bunch of other things I'd like to add to this code, including a captive portal for when you're configuring it and Zeroconf so you don't need to use IP addresses and what's great is that because this chip has such a growing open source following, people are already working on things like this.
Take a look at the code and have a play around if you're interested! If you want to play around with it in a robot, then take a look at the Mirobot Kickstarter!
It's been a busy week for Mirobot - on Tuesday I launched the latest version on Kickstarter then spent that evening demoing it at the London IoT Meetup (which is well worth a visit if you're in town).
On Friday night I headed up to Newcastle to show Mirobot at Maker Faire UK. As usual, it was a great event. Well organised and well attended. Lots of interesting maker things to see and do (CNC plasma cutter anyone?). Mirobot was well received and I set it up so that it would draw a star pattern over and over which ended up reminding a lot of people of the Spirograph of their youth.
It's always hard getting your head into doing development work whilst running a kickstarter - too much time spent obsessing over Twitter and Kicktraq to concentrate, but I'm going to spend some time working on the new packaging design and a few code features like support for arcs and maybe a accelerometer controller app. Should be fun :-)
I've made a bunch of changes to Mirobot recently that solve all of the issues that I've collected from the people using it over the last year.
It's a complete redesign of the chassis which solves quite a few of the issues in one shot
Here's a quick video showing what it takes to assemble it now:
Another electronics change has been to move the PCB to the front of the board which means that the collision switches can now be integrated and don't need wires. I'm going to keep the line following on a separate PCB but it will clip straight on instead of needing more wires this time. The battery pack has been separated again and sits at the back for better weight distribution. This also makes it easier to change the batteries.