Build Your First Robot FAQ

Answers to common questions

Q. What version of Arduino board do I need?

A. The Build Your First Robot (BYFR) project was designed for the Arduino Uno development board (original or the newer R3 update). It should also work with the earlier Duemilanove board, as well as the better Arduino clones that use the Uno form-factor. However, BYFR has not been tested with this other hardware.

Q. What version of the Arduino IDE software should I use?

A. You can use either the latest Arduino 1.0 release (preferred), or version 0022 or later of the pre-release software. Download current and past versions of the Arduino software at

Q. Where do I get the example BYFR demo sketch?

A. Download it from the links provided under the main BYFR information page. See the included instruction file for important installation information.

Q. Do I need to get other files to run the BYFR demo sketch?

A. No. All of the required files to run the demo are included with the download. However, you must remember to move the IRRemote folder, which is provided with the demo sketch, to the Arduino sketchbook libraries directory.

Q. I get an error when I try to verify (compile) the demo sketch. What might be wrong?

A. Check that you’re running the latest versions of the Arduino software. See What version of the Arduino IDE software should I use?, above, for more information. And, be sure that the IRRemote folder has been moved to the Arduino sketch libraries directory.

Q. What material should I use to construct the robot?

A. Best choices are 1/4" aircraft-grade plywood (available at many hobby stores) or 6mm expanded PVC (available online or at local sign-making shops).

Q. Can I get the body parts for the BYFR already cut and drilled?

A. Yes. A kit of body parts, including the chassis and assembly hardware, is available at Budget Robotics.

Q. I’m having trouble finding the kind of piezo speaker shown in the photos. Can’t I just use a small cone speaker?

A. A piezo speaker is preferred. You can use most any piezo speaker, as long as it’s the transducer type, and not just a simple buzzer. The "flat pack" housing style isn't critical. Avoid using a cone speaker unless it has an impedance of 100 ohms or more. Otherwise the speaker may try to draw too much current from the Arduino, possibly damaging it. Alternatively you can add a 100 Ω resistor inline with the speaker, as shown on Downside: the sound output isn't as loud.

When using a dynamic speaker connect one end to an Arduino Gnd (ground) pin, and connect the other end to pin 11. Find these two lines in the sketch:

tone(13, tones[thisNote],toneDuration);

and change the number 13 to the number 11:

tone(11, tones[thisNote],toneDuration);

Q. I built the robot and uploaded the sketch to the Arduino, but my robot doesn’t work. What now?

A. Check the battery connections, and be sure the batteries are fresh. Double check the polarity (red and black wire) of the batteries to make sure things haven’t been reversed. Triple check the wiring on the breadboard.

Q. Why isn’t the robot responding to the remote control?

A. Be sure the batteries in the remote are fresh. Verify the remote is working by pointing it at the camera in your mobile phone. You should see the infrared light flashing. Verify that you are using a Sony TV code. Consult the instructions for the remote; many remotes have more than one Sony TV code you can try.

Q. Should I disconnect both the 9-volt and AA batteries when I'm not using robot?

A. Yes. The 9-volt battery powers the Arduino, and the AA batteries power the servos. If either is kept connected over a period of time the batteries will eventually drain.

Q. Where can I learn more about the Arduino?

A. Start at the official Arduino Web site at Check the Getting Started guide there to learn the basics. The page contains numerous hands-in lessons you can try. The Arduino programming software has built-in examples you can experiment with. And finally, check out the book Getting Started with Arduino, by Massimo Banzi, one of the co-developers of the Arduino platform.