The first thing you should do before beginning to solder is burn the Arduino bootloader to the ATmega 328p microprocessor. If that last sentence didn’t make any sense to you, a bootloader allows you to program your microcontroller with the Arduino software that we will talk about later. There are many references online about how to burn this bootloader, such as this one.

It should be noted that some additional equipment will be required for this process. You should be able to purchase everything you need for around 30 dollars, but if you are only interested in making one robot, it would probably make more sense for you to buy a chip with the Arduino bootloader already installed. In order to do this you will need to make one small change to the circuit, which I’ll talk about later.

NOTE: This section is somewhat technical. If you aren’t comfortable reading a circuit diagram or wiring up a circuit, don’t lose hope. If there is enough interest in this project, I plan to design a printed circuit board that will eliminate most of the work to make this controller board.

A schematic for the robot controller board is shown below. While this may look confusing, just take your time, and try to understand all of the connections.

The final board that I built is shown below. Your board may not look exactly like mine as I used extra parts that make the design convenient but can be eliminated to reduce costs. These include the removable headers for the motor connections and the sockets that the integrated circuits fit in to. I highly recommend you use these parts as they will make your life much easier, but they can be eliminated if the cost is prohibitive.

Note in the picture below how the antennae are connected to the board. The loops of the antennae are soldered to the ground pins of the motor driver while the antennae themselves are connected to the pins indicated in the schematic.

Like I mentioned above, it is possible to buy an ATmega 328 with the bootloader for the Arduino UNO already loaded. To use this chip you will need to add an external resonator to the circuit shown above. This device allows the Arduino to run at 16 MHz instead of 8 MHz as was the case with the internal oscillator. You may also want to load the UNO bootloader for other reasons, such as that it may be more compatible with newer releases of Arduino. The modification to the circuit is shown below. It does not matter which direction the ZTT16.00MX is installed, just as long as the center pin is connected to ground and the outside pins are connected to pin 9 and 10 on the ATmega 328.