Different booat-loaders on two ATmega328 - curious question

I purchased this "Arduino Compatible" Diavolino kit from EMS Diavolino It came with an ATmega328 and "Arduino boot-loader" flashed. I'm programming it with the AdaFruit "FTDI Friend" and it works perfectly. I'm using the Arduino IDE v1.0.1.

I also purchased this ATmega 328 with "Arduino Optiboot (Uno)" flashed from SparkFun http://www.sparkfun.com/products/10524

When I upload to the '328 from EMS, I must select Board > Arduino Duemilanove w/ ATmega328 and when uploading to the '328 with Optiboot I must select Board > Uno. This little detail cost me about half an hour of head scratching :slight_smile:

So I'm curious what the boot-loader differences must be? I don't want to know all the details, but obviously there is enough difference to prevent uploading from the IDE. Maybe it's a fuse?

I'm contemplating buying an USBtinyISP programmer and burning my own boat-loaders for consistency so I'll always know what is installed on which chip.

Jake

I believe the difference that is impacting you is related to the different communication protocols implemented by the two bootloaders.

That would make sense. Thanks wanderson.

When I upload to the '328 from EMS, I must select Board > Arduino Duemilanove w/ ATmega328 and when uploading to the '328 with Optiboot I must select Board > Uno. This little detail cost me about half an hour of head scratching

The main difference between those two bootloaders is the baudrate that the bootloader is hard coded to communicate with the Arduino IDE for uploading operation. If you look carefully at the boards.txt file you will see the baudrate difference between a Duemilanove and a Uno bootloader. There are fuse difference between them also as the bootloader code is smaller for a Uno and therefore takes less flash space, but it's the difference in baudrate that causes the problem trying to upload from the IDE if there is a mismatch between board type and which 328p bootloader is being used.

Note that it is perfectly fine to burn a Uno bootloader to a Duemilanove board and have it work fine as long as you thereafter select the Uno board selection choise.

Lefty

Thanks Lefty. Very informative.

Jake