Introducing Bootstrap

The $50 robot project is far enough along to post some details on it and to rename it “Bootstrap,” reflecting its purpose to develop in the builder a set of skills that can be used to independently develop and build similar projects.

Over the next few weeks materials will be posted to the Bootstrap page on this site providing all the resources needed to build a Bootstrap robot for around $50.

A few pictures of prototype 3 are posted here, illustrating what will be the base model. Major features are very unlikely to change at this point. Its about 130mm (5″) in diameter. Some of the wiring in the pictures is a bit raggedy because it has been moved across a series of chassis–but all will be cleaned up in future versions.
Prototype 3
Bootstrap is powered by an Arduino Nano and the basic sensor suite for obstacle avoidance consists of an HC-SR04 ultrasonic sensor and a bumper connected to two switches. Many more sensors can added to this base configuration. The version illustrated here has a 3D printed chassis and other components. However access to a 3D printer is not required to build the robot. The chassis can be hand cut from plywood or other sheet material and the other components can be purchased or easily fabricated.

A few more details can currently be found on the Bootstrap page–with all the details soon to follow.
Prototype 3 bottom
I have had to make a series of decisions to keep the project within budget and to maximize the changes of success (and minimize the hassle factor) for the first-time builder. Three examples of these decisions concern voltage, fasteners, and component sources.

The simplest of circuits run at a single voltage. But as projects become more complex one quickly discovers that multiple voltages are required: common microcontrollers want 5 or 3.3 volts, sensors will take one or both of those, and motors can run in a range of voltages. In addition, batteries come in different voltages: Alkaline cells are nominally 1.5v, Nimh rechargables are 1.25v and Lipos are 3.7v. An early decision to simplify all this was to run everything at 5 volts. Bootstrap features a dc to dc boost converter that will bring battery power from about 2.5 volts up to 5 volts to an output of 5v at about 1 amp. This means 3xAA alkaline cells, 3XAA nimh rechargable cells, or single cell Lipo batteries can all be used. The switches, diode and other components are specced operate above an amp. The 5v output feeds an Arduino Nano, the sensors, and a set of N20 gearmotors (via a motor controller). A 3.3v output is available via the Nano, but everything is designed to run at 5v, keeping the circuits simple and parts count down.

Chasing down screws, standoffs, nuts, etc. in different sizes when you only need a few of each is a real pain.
Prototype 3 bottom
Not to mention the requirement of having the bits available to drill different sized holes when hand fabricating a chassis. Everything on Bootstrap attaches with m2x12mm screws and nuts. Everything.

Every component save one (the fabulous Protostack prototyping board) on Bootstrap can be obtained from multiple suppliers. These are all pretty common parts that can be purchased cheaply. I have developed design files for 3D printing all the parts that can be printed, which saves money. Yet a builder without access to a 3D printer will be able to obtain all the parts from reliable sources.

There are some compromises in these decisions. The 6v rated N20 gear motors are going to run a little more slowly at 5v on Bootstrap. Nimh batteries aren’t going to last that long before they need recharging. I had to play around with counter sinking and double nutting to get the 12mm screw length to work for everything. However I hope these decisions make building Bootstrap less maddening than it otherwise would be.

Staying inside the lines

Building something to a budget (and there is always a budget) presents challenges and trade offs. When the budget is very low, as in the $50 Robot project, there is always the risk of cutting one two many corners. I am crossing the line into unacceptable quality a few times during the development process so that the quality is adequate in the final version without asking builders to spend a penny too much.

A good example is with the sensors for obstacle avoidance. For non-contact sensors the choices are basically infrared (IR) or ultrasonic. Both have their advantages and both have good quality, but more expensive products and cheaper, but possibly poorly performing products.

The good, the bad, and the ugly in IR sensors.
The good, the bad, and the ugly in IR sensors.

In the past (with a significantly larger budget) I have worked exclusively with the Sharp line of IR range finding sensors. They are very good, given the limits of what you can do with IR. They are very precise, they don’t give spurious readings. They have a narrow beam (which is not really that great for a robot obstacle avoidance sensor). At around $13 each they are really not that expensive. However they would definitely be a budget buster for this project. So I tried to go as cheap as possible. You can find 5v IR sensor modules on ebay for just over $1. I really wanted these to work. Really. But they are just a disaster. They kinda sorta work in a dark room but even then have to be manually calibrated every time they start up. In any sort of real conditions they are just ugly to work with. Don’t buy them. As a middle choice I tried something you can find labeled “KeyesIR” for around $4 each. The module is physically similar to the ugly sensors but it uses more sophisticated components. They are not that bad–they do a good job of rejecting spurious readings (such as from a sunny window). They might be satisfactory for short range stationary applications. But the performance is not quite good enough for obstacle detection on a mobile robot. On to ultrasonics…

The situation is better in the ultrasonic world. As in IR, there is a very high quality choice out there. I have a pile of Maxbotix ultrasonic sensors from previous projects. These things are amazing. They give precise distance measurements in a variety of convenient formats. You supply power and they spit out data. They have an ideal beam width for this project.

The good and the slightly less good but much cheaper ultrasonics
The good and the slightly less good, but much cheaper ultrasonics.

The only problem is that they start at $25 each. Not going to work. So for now I am where most cheap robot projects end up, the HC-SR04 ultrasonic sensor. These run $2 or less. They don’t have the sophistication, convenience or wider beam of the Maxbotix but they fit the budget and they have satisfactory performance.

So the initial sensor suite for the robot will probably be a SR04 in the center and a couple of contact switches with whiskers on either side. This has been a little bit of re-inventing the wheel as you see this set up a lot, but it didn’t hurt (or cost much) to see how cheap I could go before committing to something that will get the job done and still stay in budget.

Fail fast, learn fast

Figuring out how to best arrange all the components on a project like the $50 robot is a multistep process with a lot of mistakes to be made along the way. Even if you think you have the exact measurements of each component you will find that the actual examples you obtain will vary from their specs. So you might as well try to get the big mistakes out of the way as quickly and cheaply as possible.

This has certainly been the case with developing the chassis for the robot.

A pile of discarded chassis
A pile of discarded chassis

It’s hard to start when you don’t know exactly what the final components will be. Even more variables are introduced when trying to develop something that can be hand cut, done on a CNC machine, or 3D printed from the same master file. Inevitably there will be a lot of trial and error.

Two essential tools throughout the process are custom graph paper and a set of digital calipers. Online tools are available for creating and printing graph paper with the marking pattern that best suits the project you are working on.

Custom graph paper and digital calipers
Custom graph paper and digital calipers

The digital calipers measure parts very precisely and can even be used as a slide-rule like millimeter to inch converter. The calipers are widely available from around $15.

From a paper model with measurements you can hand cut something from wood or go directly to your 3D modeling program for printing or the CNC. At first I thought I would be making a perfectly round chassis (for better maneuverability) and could just pop blanks out of plywood with a large hole saw, so I started with a wooden cut out. However it soon became apparent that a more complex shape would be needed. Time for 3D modeling.

Before even building my first 3D printer I did a fairly thorough survey of the 3D modeling tools out there.

Caster mount modeled in Tinkercad
Caster mount modeled in Tinkercad

At the time Tinkercad seemed like the best choice to get going quickly. Although far from the most complex tool, it is easy to learn and allows very quick modeling that is perfectly suited to output on typical 3D printers. As an online tool your files are always available and you can design and print at the same computer, whatever printer you happen to be using.

Tinkercad can output 3D file formats but also .svg files to bring into a CNC system. The tools of rapid prototyping, like 3D printers and CNC machines, greatly speed up the process of failing fast–getting past your trial and error period.

Starting a 3D print of a chassis
Starting a 3D print of a chassis

Sometimes it seems like forever to make a print. The chassis for the robot takes about 90 minutes to print on the Makerbot Replicator I am using. However once it’s started, you can work on other aspects of the project while it’s printing. If it comes off the printer and it doesn’t fit, you’ve only wasted maybe 50 cents worth of plastic and can make the adjustments on the spot and spit out another copy.

Cutting from 6mm plywood on a CNC machine is even cheaper and faster.

Cutting a chassis on the CNC
Cutting a chassis on the CNC

It takes perhaps 10 minutes to cut a chassis out of 20 cents of scrap plywood. To be fair, the CNC requires more finishing than a 3D print–I’m using 2mm holes for hardware, which are too small for my CNC bit to cut, so those have to be drilled. But it works great for a quick test of the layout and I do want to be able to offer the project to people who don’t have access to a 3D printer.

I hope I have made all the big mistakes on the basic chassis and layout of the robot at this point and it will just be tweaking from now on through successive prototypes to the released design. Failing can be fun if it’s fast, cheap, and instructive in preparation for success.

The beginning

The $50 Robot project came from the idea of making a small Arduino-based robot as cheaply as possible. I have built wheeled bots like this before, but they always seem to cost $200+ by the time I was done. Could I build one for $45? $40?

First prototype for the really cheap robot idea
First prototype for the really cheap robot idea

I ordered a few parts off of eBay and (after a long wait for delivery from China) set to work. The first attempt was ugly, clumsy, and underpowered. But it was pointing the right direction. Before even programming it I worked out some improvements for the next round.

About this time it occurred to me that this might make a good project to share for others to learn basic maker skills such as fabrication, soldering, electronics, and Arduino programming. There are certainly other small robots of this type on the market but they are generally pre-fabricated and soldered, considerably more expensive, or both. Their potential for developing a range of maker skills is very limited. Thus the really cheap robot idea lead to the Robot50 program and the $50 Robot project as the first effort within it. The name came from a more realistic assessment of what it would cost to build.

Prototype 2 established the major design elements of the $50 Robot. The details will be provided elsewhere on this site. It uses commonly available cheap parts that can be ordered from more than one supplier (with a couple exceptions).

The second prototype, establishing the main elements of the $50 Robot
The second prototype, establishing the main elements of the $50 Robot.

It is holding up well in testing and the chassis can be fabricated by hand from plywood, cut on a CNC machine, or 3D printed. Minor tweaks are currently being made to this version before plans and design files are released.