Arudio SSS Board - how to program/bootload?

Hello. I'm new here. I'm hoping to make my own Arduino SSS board via the resources on

I can see that its based on the Diecimila, but I need to know - how will I program the microcontroller once I have the SSSB Arduino built? My understanding is that the Diecimila comes with a bootloader programmed into the uC, so you just connect it via USB to your PC and program with the Arduino software. But what about the SSSB, which has a serial port instead? And the uC will be a fresh one, so how exactly will I go about programming the uC?

Lastly, just a small, perhaps-irrelevant question - any arduinos that use the atmega16? That is the uC I was familiarized to in a undergrad course in so I'm just more comfortable with that than the atmega8.

PS: I may have an incorrect understanding of what a "bootloader" is, exactly. Point me to a resource, please, if possible?

You will need an ISP to burn the bootloader into your ATmega chip. Perhaps someone in your area can help with that. It will connect to your SSS board through the ICSP header.

Many people just buy a pre-programmed ATmega chip. Note: The Diecimila and UNO can use the same ATmega 328P chip but different bootloaders. If you buy a pre-loaded chip you need to know which bootloader it has so you know which board to select. Or you could just try both and see which one works.

Once you have the bootloader installed you hook your SSS board to your PC serial port and select the serial port in the IDE under Tools->Serial Port. The Diecimila and UNO have a USB-to-Serial converter that looks to the PC like a serial port so it's basically the same thing.

Thank for replying, John.

Haha, I don't really know whom to ask for help, which is why I registered and came here. Or is there any specific book that could help?

I just bought my atmega16L from the market back when I wasn't aware of "bootloaders" - I didn't ask any questions during the purchase, so I've no idea if it has a bootloader programmed into it. Though my guess is a No.

I see. What kind of bootloaders are there out there? Which one to pick?
Is it possible to program the uC without a bootloader, through the serial port?

No, the Atmegas do not load programs from the serial port without a bootloader.

The Atmegas can be programmed over SPI, using the 6-pin ICSP header. To drive that pin, you need a ICSP programmer, such as the USBTinyISP which you can buy in kit from adafruit.

Once you're programming with the ISP, you don't really need a bootloader anyway -- you can load any program using the ICSP. The nice thing about this is that you can use the serial port for something else.

If you go with a newer, USB-based Atmega, such as the Atmega32u4, I believe that those come with a USB-based bootloader already programmed in from the factory, meaning you can program them over USB. However, there are no DIL (through-hole) versions of this chip; you have to get a 0.8mm TQFP surface-mount chip and get a breakout board or other circuit board to actually hook up to it.

In any case, I highly recommend getting an ICSP programmer, and making sure to wire up the 6 header pins for that in anything you build, so you can fix problems once the chip and surrounding circuit is finished. This will save your bacon!
The pin-out for the ICSP header is: Jon Watte Homepage