Arduino from a Solarbotics Sumovore brainboard

I just converted my sumovore with the atmega8 brainboard to an arduino, so I figured I share how with all of you.

It was dead simple actually, all you need is:

  • One 16MHz resonator (95 cents from sparkfun: COM-09420)
  • An ISP programmer. You should be able to do this with the parallel port sp-12 programmer described in the brainboard documentation. Mine didn't want to work so I used a USBtinyISP instead.
  • Male straight headers ($2.50 for 40 from sparkfun: PRT-00116)
  • An FTDI adapter ($14.95 from sparkfun: DEV-09115 or $17.95: DEV-09718) or similar. I used a USB BUB from Modern Device.
  • F/F jumper wires+headers or F/M jumper wires ($3.95 from sparkfun: PRT-09140)
  • Solarbotics Sumovore (duh)
  • Atmel brainboard (I used a rev 2.1 which has a 6-pin ISP connector)
  • Solder iron and solder Start by soldering the resonator onto the brainboard where it says "Resonator". ::) It can be inserted either way. Next, solder three headers in the location for serial ttl, right next to pin 1-3 on the IC. It should say "GND RX TX" under the solder holes.

Now it's time to burn the Arduino bootloader. Flip the switch to disable the engines on the sumovore, put the brainboard in place, connect the programmer and power up the sumovore. Start the Arduino IDE, select Tools->Board->Arduino NG or older w/ ATmega8 and then Tools->Burn Bootloader->[whatever programmer you have]. Wait for the programming to finish. Power down the sumovore and disconnect the programmer. Now your sumoduino (great name huh? ;)) is done, but we need a way to upload to it. That's where the FTDI adapter comes in. We need to connect five wires from the serial adapter to the brainboard. I used female/female jumper wires and six male headers since I did not have any male/female jumper wires available. Start by connecting GND, RX and TX to GND, TX and RX. Notice that RX and TX should be switched between the adapter and the board. Next connect +5V to the board. You can find +5V at the rightmost I2C connector pin. If you plan to use the I2C connector you can get 5V from the solder hole for either R18 or R19, since they are unused. The two solder holes closest to the IC socket is +5V. You can also find +5V on pin 6 of the long female header above the I2C. Lastly you can find +5V on the ISP connectors upper left pin, but this pin is not connected to the rest of the boards +5V system when the board is off the sumovore! Stupid design. Lastly connect DTR to reset on the board. You'll find reset on the lower right ISP pin. I've seen DTR being connected through a 0.1uF capacitor but I haven't had any problems connecting it directly. Anyone know if this is poor practice? Now you're all set! :)

Try out your arduino by loading up the blink example in the IDE, change the pin from 13 to 2 (or 3-6), compile and upload to the board.

Here is my ghetto connection:

If you need more memory the atmega168 and 328 should drop right in since they are pin compatible with the atmega8.