Open Source Chassis
This project has always been about building an open source robot, but until now the physical hardware was not actually open source, only some of the arduino libraries I had written to drive it. I’m proud to announce a new GitHub repository (https://github.com/bjpirt/mirobot-chassis) which contains the CAD files for making the chassis. You can take these and cut your own now should you feel that way inclined. The easiest way if you don’t have your own laser cutter is probably to use Razor Lab - there’s a file already laid out to send to them.
I’m waiting for what should be the final version of the PCB to make its way back to me from Ragworm and once I’ve checked it over I’ll be open sourcing the PCB designs as well. You can see the current PCB in this photo that Ragworm tweeted:
Read morePCBs for Kids
It was a real eye-opener soldering the PCBs with the kids over Christmas. It’s amazing how, as someone who can solder, you forget how tricky it can be. I’ve spent the last day or so re-working the Mirobot PCB to try and make the soldering a bit easier. There are a few techniques I’ve tried which will hopefully eliminate most of the errors.
Increase the isolation on the solder side
The default isolation spacing doesn’t leave a lot of room for error. You can see in this image showing before and after that there’s a much bigger gap around the solder pads. This should do away with most of the shorts that occurred.
Use staggered pins so the components stay put
I came across this trick on Sparkfun - by staggering the drill holes for the header pins, they stay in the board using friction so that you don’t need to hold them in place or reposition them. It’s a little disconcerting having misaligned pads but it really does work.
Make bigger solder pads
It was very noticeable how much trickier it was to solder the components that had very small solder pads. The oval pads give much more space to properly position the soldering iron and flow the solder in. The downside of this is that it makes the board a lot harder to route, but if your market is DIY kids it’s a must I think. In this image you can see the original small pads for the voltage regulator and some resistors which I’ve replaced with some nice fat oval ones.
Troubleshooting
This isn’t a PCB design issue per se, but I’m planning on making build instructions with checkpoints along the way so that you can more accurately locate any shorts you may have inadvertently made. The old approach of “solder everything and see” means that if, for example, you short + and -, the short could be pretty much anywhere on the board. If you check as you go along then the options are reduced.
I’ve put these components into an Eagle library in case they’re useful to anyone. You can get it on GitHub here
Read moreThe First Milestone
The main reason I started designing Mirobot was to be able to build it with my kids so Christmas seemed like the perfect opportunity to do this.
The things you learn from doing real user testing are fantastic. They both assembled the chassis and managed to solder the circuit board mostly by themselves. Obviously there was a lot of adult supervision but they both seemed to really enjoy the process of actually building something for Christmas, not just getting it out of a box. The easier it is to build, the more likely people are to use it and recommend it to others, so I’ll be designing out some of the points of friction I we came across to make it easier to build. Audrey is keen to do some more soldering on the next version. The learning points were:
- The WiFi module was a bit wobbly on the connector I was using. Not sure if this actually caused any issues but I didn’t like it
- Some of the smaller pads on the PCB were difficult to solder. They managed fine with all of the larger pads, so I’m going to make them all this size
- It was quite easy to short between the pads and the solder resisted ground plane so I’m going to increase the separation between them
- The reception of the WiFi module using the built-in antenna was not too great - might need to provide it with an external antenna
- The servo for the pen arm wasn’t very well aligned. Need to check the measurements to see if one of the cutting holes has been shifted slightly
- The fact that the chassis construction is symmetrical means that the servo can be placed at either side. This was intentional but I think it only confuses things because you’d have to use slightly different firmware
- It needs a status indicator so you can see that it’s happy. At the moment there’s a basic power LED, but I think I’m going to drive this from the Arduino so that you can also tell whether the WiFi is connected and the program is running happily
- The PCB is hard to debug once you’ve built the whole thing. This is the same for any PCB really, but I think if I write the instructions so that you check it as you go along it will be much easier to isolate where the short might be
- Pressing the reset button for the Arduino should also reset the WIFi module - I’ll need to bring this line out through the connector to the module
- The small pegs were fiddly and it was hard to tell which way round they should go - I can make them a bit bigger so there’s more to grab on to and they are more obvious
- The wheel attachment is a bit loose and needs tightening a bit more
- The battery holder feels a bit loose as it’s just resting there between the steppers and the PCB. I’d like this to feel a bit more solid
However, fundamentally, the robot worked - they were able to assemble and solder it themselves and then we were able to make it draw some patterns which they thought was “awesome” and “epic”. I was a little concerned before Christmas about how they would handle the soldering, but they did a great job.
What’s next?
I’m going to revise things based on this list of improvements and make the whole thing a bit more stable then I’ve got some ideas for some cool projects to show off its capabilities, particularly around the fact that it’s internet accessible. Once I’ve done that I think it’s probably time to start thinking about Kickstarting it to see if anyone else wants one. I’d love to get it into some schools so that more kids can get some experience building and programming it. If you’d like me to keep you posted on when you can get hold of one then sign up to the mailing list below.
Read moreChassis Evolution
The chassis for Mirobot has changed quite a bit since I first started designing it. It’s now at a point where it actually works and I feel a lot more confident about using it with people other than myself. I’ve got two sets of the new one ready to be boxed up for Christmas for my kids now which was my driver for building it in the first place. We’ll have some fun soldering over Christmas. I was looking through the old chassis designs and thought it would be interesting to trace the design evolution from the first stages, where it just didn’t work, to now where it does. The changes are relatively minor but have had a massive impact on functionality.
Version 1
This was the first iteration and it performed horribly. The wheels were screwed on and driven from the edge by a stepper with a drive wheel but didn’t move very freely. The problems with this version were that the drive train didn’t really work at all and the servo wasn’t held down well and came loose. The pen arm worked well first time so long as the servo was held in place.
Version 2
The drive train didn’t work that well but because communications were through USB I couldn’t tell if it was just the drag on the lead or not. I tightened up the holes for the servo and attached the wheels slightly differently but neither worked particularly well.
Version 3
In this design I perfected the servo mount by tying it into the side plane. This is still what’s used in the current iteration. In this version I tried to make the wheels have more grip by applying some silicone around their edges, which should also have solved the problem of grip between the stepper and the wheel. It didn’t. At this point I gave up on this approach of using steppers to drive the wheels from the edge and started looking around for different motors. You can see the Arduino stepper shield that I was using before the custom PCB in this photo.
Version 4
I managed to find a nice, low-cost geared stepper motor which was able to just drive the wheel directly. This eliminated all of the drive train problems, which I’d been becoming increasingly concerned about because of the complexity. Doing this cut out 4 screws and a couple of elastic bands used to tension the motor against the wheel. This is the first version that was able to drive properly and draw a line. The only problem was in the distribution of weight, which was too far back. This caused too much friction on the rear caster wheel and was causing problems with turning.
Version 5
This is the most major change in form factor as it now has a shorter chassis because the battery pack and PCB are now mounted vertically to bring the weight more over the wheels. It also uses a cheaper caster wheel that just clips into the chassis which has also eliminated two screws. It’s now driving well. There’s still a little too much flex in the pen holder which makes it difficult to adjust accurately and tends to make it draw rounded corners slightly so I’m going to attack that next. I also took the opportunity to add a bit of bling with some text on the sides!
That’s us up to date with the current design. It’s been a very gradual evolution from the first design but it’s amazing how much of a difference each tweak makes to the overall functionality.
Read more