In the previous post I open sourced the chassis designs and this time it’s the turn of the PCB.
The PCBs are designed in Eagle CAD and you can download the schematics and board designs from the GitHub repository if you want to modify or improve them. Alternatively, I’ve also packaged up the Gerber files for this first public release here. You can send these off to somewhere like Ragworm to get them made.Read more
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:
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.
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 hereRead more
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.
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 more