Main.Bootloader History

Show minor edits - Show changes to markup

November 16, 2006, at 11:54 PM by David A. Mellis -
Added lines 1-2:
September 15, 2006, at 06:02 PM by David A. Mellis -
Added lines 11-14:

Not using a bootloader

If you want to use the full program space (flash) of the chip or avoid the bootloader delay, you can burn your sketches using an external programmer.

September 04, 2006, at 03:13 PM by David A. Mellis -
Changed lines 34-35 from:

A precompiled bootloader (.hex file) comes with the Arduino environment. The "Burn Bootloader" commands in the Arduino environment use an open-source tool, uisp. There are four steps (each a separate call to uisp): unlocking the bootloader section of the chip, setting the the fuses on the chip, uploading the bootloader code to the chip, and locking the bootloader section of the chip. These are controlled by a number of preferences in the Arduino preferences file:

to:

A precompiled bootloader (.hex file) comes with the Arduino environment; it communicates at 19200 baud (but see the note for older boards above). The "Burn Bootloader" commands in the Arduino environment use an open-source tool, uisp. There are four steps (each a separate call to uisp): unlocking the bootloader section of the chip, setting the the fuses on the chip, uploading the bootloader code to the chip, and locking the bootloader section of the chip. These are controlled by a number of preferences in the Arduino preferences file:

September 04, 2006, at 02:16 PM by David A. Mellis -
Added lines 36-37:
  • bootloader.programmer (default value: stk500) is the protocal used by the bootloader.
September 04, 2006, at 02:13 PM by David A. Mellis -
Changed lines 34-37 from:

A precompiled bootloader (.hex file) comes with the Arduino environment. The "Burn Bootloader" commands in the Arduino environment burn this file to the board in four steps: unlocking the bootloader section of the chip, setting the the fuses on the chip, uploading the bootloader code to the chip, and locking the bootloader section of the chip.

These are controlled by a number of preferences in the Arduino preferences file:

to:

A precompiled bootloader (.hex file) comes with the Arduino environment. The "Burn Bootloader" commands in the Arduino environment use an open-source tool, uisp. There are four steps (each a separate call to uisp): unlocking the bootloader section of the chip, setting the the fuses on the chip, uploading the bootloader code to the chip, and locking the bootloader section of the chip. These are controlled by a number of preferences in the Arduino preferences file:

Changed lines 44-45 from:

Download

to:
  • bootloader.file (default value: ATmegaBOOT.hex) is the name of the file containing the precompiled bootloader code (in bootloader.path).

  • bootloader.lock_bits (default value: 0xCF) is the value to write to the ATmega8 lock byte to lock the bootloader section (so it doesn't get accidently overwritten when you upload a sketch).

Source Code

September 04, 2006, at 02:09 PM by David A. Mellis -
Added lines 40-43:
  • bootloader.high_fuses (default value for an ATmega8 on an Arduino board: 0xca) is the value to write to the high byte of the ATmega8 fuses.

  • bootloader.low_fuses (default value for an ATmega8 on an Arduino board: 0xdf) is the value to write to the low byte of the ATmega8 fuses.
September 04, 2006, at 01:43 PM by David A. Mellis -
Changed lines 34-35 from:

The "Burn Bootloader" commands in the Arduino environment has four steps: unlocking the bootloader section of the chip, setting the the fuses on the chip, uploading the bootloader code to the chip, and locking the bootloader section of the chip.

to:

A precompiled bootloader (.hex file) comes with the Arduino environment. The "Burn Bootloader" commands in the Arduino environment burn this file to the board in four steps: unlocking the bootloader section of the chip, setting the the fuses on the chip, uploading the bootloader code to the chip, and locking the bootloader section of the chip.

Changed lines 38-39 from:
  • bootloader.unlock_bits (default value: 0xFF)
to:
  • bootloader.unlock_bits (default value: 0xFF) is the value to write to the ATmega8 lock byte to unlock the bootloader section.

  • bootloader.path (default value: bootloader) is the path (relative to the Arduino application directory) containing the precompiled bootloader.
September 04, 2006, at 01:33 PM by David A. Mellis -
Added lines 34-41:

The "Burn Bootloader" commands in the Arduino environment has four steps: unlocking the bootloader section of the chip, setting the the fuses on the chip, uploading the bootloader code to the chip, and locking the bootloader section of the chip.

These are controlled by a number of preferences in the Arduino preferences file:

  • bootloader.unlock_bits (default value: 0xFF)

Download

September 04, 2006, at 01:20 PM by David A. Mellis -
Changed lines 7-10 from:

Why Are We Using the Bootloader?

The use of a bootloader allows us to avoid the use of external hardware programmers. To burn the bootloader onto the chip, however, requires one of these external programmers.

to:

Why are we using a bootloader?

The use of a bootloader allows us to avoid the use of external hardware programmers. (Burning the bootloader onto the chip, however, requires one of these external programmers.)

Changed lines 32-33 from:

Downloads

to:

How does it work?

September 04, 2006, at 01:15 PM by David A. Mellis -
Deleted lines 10-13:

Note for older boards.

Newer versions of the bootloader communicate with the computer at 19200 baud; older versions use 9600 baud. In order to successfully upload programs to the board, this rate needs to match the serial.download_rate in your preferences.txt file (which defaults to 19200). See the FAQ for instructions on changing it.

Changed lines 13-18 from:

To burn the bootloader, you'll need to buy an AVR-ISP (in-system programmer) or build a ParallelProgrammer. The programmer should be connected to the ICSP pins (the 2 by 3 pin header) and the board must be powered by an external power supply or the USB port.

On the Mac, a script for burning the bootloader (and properly setting the Atmega8 fuses) can be found in the bootloader directory of the Arduino distribution. Open it with a text editor and set the serial port to that of your programmer (you can find it in the Tools | Serial Port menu of the Arduino IDE). Save the script, then run it.

Unfortunately, Arduino 0003 includes a broken script for burning the bootloader. You'll need to edit the file burn.bat in the bootloader directory and replace it with the following code. If your AVR-ISP is connected via a USB-to-serial converter, you'll also need to replace com1 with the com port of your converter.

to:

To burn the bootloader, you'll need to buy an AVR-ISP (in-system programmer) or build a ParallelProgrammer. The programmer should be connected to the ICSP pins (the 2 by 3 pin header) - make sure you plug it in the right way. The board must be powered by an external power supply or the USB port.

Then, just launch the "Burn Bootloader" (for AVR-ISP) or "Burn Bootloader Parallel" command from the Tools menu of the Arduino environment. Burning the bootloader may take 15 seconds or more, so be patient.

It still doesn't work! (parallel programmer on Windows XP)

Windows XP may be polling your parallel port and disrupting the bootloader burning process. You'll need this registry patch:

Changed lines 22-28 from:

cd .. tools\avr\bin\uisp -dpart=ATmega8 -dprog=stk500 -dserial=com1 -dspeed=115200 --wr_lock=0xFF tools\avr\bin\uisp -dpart=ATmega8 -dprog=stk500 -dserial=com1 -dspeed=115200 --wr_fuse_l=0xdf --wr_fuse_h=0xca tools\avr\bin\uisp -dpart=ATmega8 -dprog=stk500 -dserial=com1 -dspeed=115200 --erase --upload --verify if=bootloader\ATMegaBOOT.hex tools\avr\bin\uisp -dpart=ATmega8 -dprog=stk500 -dserial=com1 -dspeed=115200 --wr_lock=0xCF cd bootloader

to:

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Parport\Parameters] "DisableWarmPoll"=dword:00000001

Deleted lines 25-47:

To burn the bootloader with a parallel port programmer, use the following script. You'll also need to install giveio: unzip giveio.zip in the drivers directory, then run ginstall.bat.

 

cd ..
tools\avr\bin\uisp -dpart=ATmega8 -dprog=dapa -dlpt=0x378 --wr_lock=0xFF
tools\avr\bin\uisp -dpart=ATmega8 -dprog=dapa -dlpt=0x378 --wr_fuse_l=0xdf --wr_fuse_h=0xca
tools\avr\bin\uisp -dpart=ATmega8 -dprog=dapa -dlpt=0x378 --erase --upload --verify if=bootloader\ATMegaBOOT.hex
tools\avr\bin\uisp -dpart=ATmega8 -dprog=dapa -dlpt=0x378 --wr_lock=0xCF
cd bootloader

These updated scripts will be included in Arduino 0004.

It still doesn't work! (parallel programmer on Windows XP)

Windows XP may be polling your parallel port and disrupting the bootloader burning process. You'll need this registry patch:

 
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Parport\Parameters]
"DisableWarmPoll"=dword:00000001

Added lines 28-31:

Note for older boards.

Newer versions of the bootloader communicate with the computer at 19200 baud; older versions use 9600 baud. In order to successfully upload programs to the board, this rate needs to match the serial.download_rate in your preferences.txt file (which defaults to 19200). See the FAQ for instructions on changing it.

September 04, 2006, at 01:12 PM by David A. Mellis -
Changed lines 3-8 from:

The bootloader for Arduino is a small (< 1 kb) piece of software that takes care of listening to the serial port (or virtual serial port in the case of USB-Arduino) and waits for data coming from the computer. That data will be stored in the Atmega's flash memory and become the program to execute.

When you reset the Arduino board, it runs the bootloader (if present). The bootloader pulses digital pin 13 (three slow blinks on older boards, or one fast flicker on new boards), so you can connect an LED to make sure that the bootloader is installed. The bootloader then waits a few seconds for a program to be uploaded from the computer. This program is written to the flash memory on the atmega8 chip. A few seconds later, the bootloader launches the newly-uploaded program. If no data arrives from the computer, the bootloader launches whatever program was last uploaded onto the chip. If the chip is still "virgin" the bootloader is the only program in memory and will start itself again.

Newer versions of the bootloader communicate with the computer at 19200 baud; older versions use 9600 baud. In order to successfully upload programs to the board, this rate needs to match the serial.download_rate in your preferences.txt file (which defaults to 19200). See the FAQ for instructions on changing it.

to:

The bootloader is a small piece of software that we've burned onto the chips that come with your Arduino boards. It allows you to upload sketches to the board without external hardware.

When you reset the Arduino board, it runs the bootloader (if present). The bootloader pulses digital pin 13 (you can connect an LED to make sure that the bootloader is installed). The bootloader then waits a few seconds for commands or data to arrive from the the computer. Usually, this is a sketch that the bootloader writes to the flash memory on the ATmega8 chip. A few seconds later, the bootloader launches the newly-uploaded program. If no data arrives from the computer, the bootloader launches whatever program was last uploaded onto the chip. If the chip is still "virgin" the bootloader is the only program in memory and will start itself again.

Added lines 11-14:

Note for older boards.

Newer versions of the bootloader communicate with the computer at 19200 baud; older versions use 9600 baud. In order to successfully upload programs to the board, this rate needs to match the serial.download_rate in your preferences.txt file (which defaults to 19200). See the FAQ for instructions on changing it.

June 20, 2006, at 11:25 PM by David A. Mellis - clarifying pin 13
Changed lines 5-6 from:

When you reset the Arduino board, it runs the bootloader (if present). The bootloader pulses pin 13 (three slow blinks on older boards, or one fast flicker on new boards), so you can connect an LED to make sure that the bootloader is installed. The bootloader then waits a few seconds for a program to be uploaded from the computer. This program is written to the flash memory on the atmega8 chip. A few seconds later, the bootloader launches the newly-uploaded program. If no data arrives from the computer, the bootloader launches whatever program was last uploaded onto the chip. If the chip is still "virgin" the bootloader is the only program in memory and will start itself again.

to:

When you reset the Arduino board, it runs the bootloader (if present). The bootloader pulses digital pin 13 (three slow blinks on older boards, or one fast flicker on new boards), so you can connect an LED to make sure that the bootloader is installed. The bootloader then waits a few seconds for a program to be uploaded from the computer. This program is written to the flash memory on the atmega8 chip. A few seconds later, the bootloader launches the newly-uploaded program. If no data arrives from the computer, the bootloader launches whatever program was last uploaded onto the chip. If the chip is still "virgin" the bootloader is the only program in memory and will start itself again.

March 16, 2006, at 03:16 PM by David A. Mellis - Added note about WinXP parallel port polling problem.
Added lines 45-55:

It still doesn't work! (parallel programmer on Windows XP)

Windows XP may be polling your parallel port and disrupting the bootloader burning process. You'll need this registry patch:

 
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Parport\Parameters]
"DisableWarmPoll"=dword:00000001

See this forum thread for details.

January 27, 2006, at 11:50 AM by 85.18.81.162 -
Added lines 47-48:

The bootloader source code is available.

January 27, 2006, at 11:49 AM by 85.18.81.162 -
Changed lines 47-49 from:

For historical reasons we maintain the following link, that will give you access to the release of the bootloader's source code we used in the first prototype we made, it is including two batch files to do the compilation and download of it under windows.

In the arduino distribution there is a directory called bootloader that contains the bootloader file itself and a few scripts that can be used with either the AVR ISP programmer or the super simple parallel port programmer.

to:

For historical reasons we maintain the following link, that will give you access to the release of the bootloader's source code we used in the first prototype we made, it is including two batch files to do the compilation and download of it under windows.

January 27, 2006, at 11:48 AM by 85.18.81.162 -
Changed lines 21-22 from:

[@

to:
 [@
Added line 34:
January 27, 2006, at 11:48 AM by 85.18.81.162 -
Changed line 21 from:
 [@
to:

[@

Changed lines 30-31 from:

To burn the bootloader with a parallel port programmer, use the following script:

to:

To burn the bootloader with a parallel port programmer, use the following script. You'll also need to install giveio: unzip giveio.zip in the drivers directory, then run ginstall.bat.

Deleted line 33:
Deleted line 37:
January 27, 2006, at 11:47 AM by 85.18.81.162 -
Changed lines 9-10 from:

Why are we Using the Bootloader?

to:

Why Are We Using the Bootloader?

Changed lines 17-18 from:

A script for burning the bootloader (and properly setting the Atmega8 fuses) can be found in the bootloader directory of the Arduino distribution. Open it with a text editor and set the serial port to that of your programmer (you can find it in the Tools | Serial Port menu of the Arduino IDE). Save the script, then run it.

to:

On the Mac, a script for burning the bootloader (and properly setting the Atmega8 fuses) can be found in the bootloader directory of the Arduino distribution. Open it with a text editor and set the serial port to that of your programmer (you can find it in the Tools | Serial Port menu of the Arduino IDE). Save the script, then run it.

Unfortunately, Arduino 0003 includes a broken script for burning the bootloader. You'll need to edit the file burn.bat in the bootloader directory and replace it with the following code. If your AVR-ISP is connected via a USB-to-serial converter, you'll also need to replace com1 with the com port of your converter.

 
cd ..
tools\avr\bin\uisp -dpart=ATmega8 -dprog=stk500 -dserial=com1 -dspeed=115200 --wr_lock=0xFF
tools\avr\bin\uisp -dpart=ATmega8 -dprog=stk500 -dserial=com1 -dspeed=115200 --wr_fuse_l=0xdf --wr_fuse_h=0xca
tools\avr\bin\uisp -dpart=ATmega8 -dprog=stk500 -dserial=com1 -dspeed=115200 --erase --upload --verify if=bootloader\ATMegaBOOT.hex
tools\avr\bin\uisp -dpart=ATmega8 -dprog=stk500 -dserial=com1 -dspeed=115200 --wr_lock=0xCF
cd bootloader

To burn the bootloader with a parallel port programmer, use the following script:

 
cd ..

tools\avr\bin\uisp -dpart=ATmega8 -dprog=dapa -dlpt=0x378 --wr_lock=0xFF
tools\avr\bin\uisp -dpart=ATmega8 -dprog=dapa -dlpt=0x378 --wr_fuse_l=0xdf --wr_fuse_h=0xca
tools\avr\bin\uisp -dpart=ATmega8 -dprog=dapa -dlpt=0x378 --erase --upload --verify if=bootloader\ATMegaBOOT.hex
tools\avr\bin\uisp -dpart=ATmega8 -dprog=dapa -dlpt=0x378 --wr_lock=0xCF

cd bootloader

These updated scripts will be included in Arduino 0004.

January 20, 2006, at 06:15 PM by 85.18.81.162 -
Changed lines 15-16 from:

To burn the bootloader, you'll need to buy an AVR-ISP (in-system programmer) or build a ParallelProgrammer. The programmer should be connected to the ICSP pins (the 2 by 3 pin header).

to:

To burn the bootloader, you'll need to buy an AVR-ISP (in-system programmer) or build a ParallelProgrammer. The programmer should be connected to the ICSP pins (the 2 by 3 pin header) and the board must be powered by an external power supply or the USB port.

January 20, 2006, at 06:14 PM by 85.18.81.162 -
Added lines 7-8:

Newer versions of the bootloader communicate with the computer at 19200 baud; older versions use 9600 baud. In order to successfully upload programs to the board, this rate needs to match the serial.download_rate in your preferences.txt file (which defaults to 19200). See the FAQ for instructions on changing it.

Changed lines 19-20 from:

Downloads

to:

Downloads

Deleted lines 23-26:

January 20, 2006, at 06:11 PM by 85.18.81.162 -
Changed lines 3-21 from:

The bootloader for Arduino is a sensitive piece of software that takes care of listening to the serial port (or virtual serial port in the case of USB-Arduino) and waits for data coming from the computer. That data will be stored in the ATMEGA's flash memory and become the program to execute.

For Boards Previous to V2.0

When reseting the board, the monitor pin (pin 13) will pulse three times, so that if you attach an LED between pin 13 and ground you will see it blinking. After that the bootloader will run for eight seconds waiting for a program to be uploaded through the port. If there is no communication from the port, the program in memory will start immediately. In case the chip is still "virgin" the bootloader is the only program in memory and therefore will be the one that will start again.

If there is an actual upload, once it is finished the program will wait for two seconds and startup the newly stored program.

For Boards from V2.0

When reseting the board, the monitor pin (pin 13) will pulse once, so that if you attach an LED between pin 13 and ground you will see it blinking. After that the bootloader will run for five seconds waiting for a program to be uploaded through the port. If there is no communication from the port, the program in memory will start immediately. In case the chip is still "virgin" the bootloader is the only program in memory and therefore will be the one that will start again.

If there is an actual upload, once it is finished the program will wait for five seconds and startup the newly stored program.

Why are we Using the Bootloader?

The use of a bootloader allows to avoid the use of external hardware programmers. This bring us to the chicken and egg problem that you need one of these programmers in order to put the bootloader on the chip.

to:

The bootloader for Arduino is a small (< 1 kb) piece of software that takes care of listening to the serial port (or virtual serial port in the case of USB-Arduino) and waits for data coming from the computer. That data will be stored in the Atmega's flash memory and become the program to execute.

When you reset the Arduino board, it runs the bootloader (if present). The bootloader pulses pin 13 (three slow blinks on older boards, or one fast flicker on new boards), so you can connect an LED to make sure that the bootloader is installed. The bootloader then waits a few seconds for a program to be uploaded from the computer. This program is written to the flash memory on the atmega8 chip. A few seconds later, the bootloader launches the newly-uploaded program. If no data arrives from the computer, the bootloader launches whatever program was last uploaded onto the chip. If the chip is still "virgin" the bootloader is the only program in memory and will start itself again.

Why are we Using the Bootloader?

The use of a bootloader allows us to avoid the use of external hardware programmers. To burn the bootloader onto the chip, however, requires one of these external programmers.

Burning the Bootloader

To burn the bootloader, you'll need to buy an AVR-ISP (in-system programmer) or build a ParallelProgrammer. The programmer should be connected to the ICSP pins (the 2 by 3 pin header).

A script for burning the bootloader (and properly setting the Atmega8 fuses) can be found in the bootloader directory of the Arduino distribution. Open it with a text editor and set the serial port to that of your programmer (you can find it in the Tools | Serial Port menu of the Arduino IDE). Save the script, then run it.

October 27, 2005, at 04:15 PM by 195.178.229.25 -
Changed lines 5-8 from:

When reseting the board, the monitor pin (pin 13) will pulse three times, so that if you attach an LED between pin 13 and ground you will see it blinking. After that the bootloader will run for 8 seconds waiting for a program to be uploaded through the port. If there is no communication from the port, the program in memory will start immediately. In case the chip is still "virgin" the bootloader is the only program in memory and therefore will be the one that will start again.

If there is an actual upload, once it is finished the program will wait for two seconds and startup the newly stored program.

to:

For Boards Previous to V2.0

When reseting the board, the monitor pin (pin 13) will pulse three times, so that if you attach an LED between pin 13 and ground you will see it blinking. After that the bootloader will run for eight seconds waiting for a program to be uploaded through the port. If there is no communication from the port, the program in memory will start immediately. In case the chip is still "virgin" the bootloader is the only program in memory and therefore will be the one that will start again.

If there is an actual upload, once it is finished the program will wait for two seconds and startup the newly stored program.

For Boards from V2.0

When reseting the board, the monitor pin (pin 13) will pulse once, so that if you attach an LED between pin 13 and ground you will see it blinking. After that the bootloader will run for five seconds waiting for a program to be uploaded through the port. If there is no communication from the port, the program in memory will start immediately. In case the chip is still "virgin" the bootloader is the only program in memory and therefore will be the one that will start again.

If there is an actual upload, once it is finished the program will wait for five seconds and startup the newly stored program.

Why are we Using the Bootloader?

Changed lines 22-29 from:

In the arduino distribution there is a directory called bootleader that contains the bootloader file itself and a few scripts that can be used with either the AVR ISP programmer or the super simple parallel port programmer.

The following link will give you access to the latest experimental release of the bootloader's source code, including two batch files to do the compilation and download of it under windows. (Refer to the official software page to get the full version PC-MAC)

to:

Downloads

For historical reasons we maintain the following link, that will give you access to the release of the bootloader's source code we used in the first prototype we made, it is including two batch files to do the compilation and download of it under windows.

In the arduino distribution there is a directory called bootloader that contains the bootloader file itself and a few scripts that can be used with either the AVR ISP programmer or the super simple parallel port programmer.

September 22, 2005, at 10:11 AM by 195.178.229.112 -
Changed lines 15-19 from:

The following link will give you access to the latest experimental release of the bootloader's source code, including two batch files to do the compilation and download of it under windows. (Refer to the official software page to get the full version PC-MAC)

to:

The following link will give you access to the latest experimental release of the bootloader's source code, including two batch files to do the compilation and download of it under windows. (Refer to the official software page to get the full version PC-MAC)

July 22, 2005, at 05:51 PM by mbanzi -
Changed lines 9-10 from:

The use of a bootloader allows to avoid the use of external hardware programmers. The only issue is that setting up the bootloader still requires to use an ICSP or Parallel Port programmer as described in our main site.

to:

The use of a bootloader allows to avoid the use of external hardware programmers. This bring us to the chicken and egg problem that you need one of these programmers in order to put the bootloader on the chip.

In the arduino distribution there is a directory called bootleader that contains the bootloader file itself and a few scripts that can be used with either the AVR ISP programmer or the super simple parallel port programmer.

July 22, 2005, at 05:46 PM by mbanzi -
Changed lines 11-15 from:

The following link will give you access to the latest experimental release of the bootloader's source code, including two batch files to do the compilation and download of it under windows. (Refer to the official software page to get the full version PC-MAC)

to:

The following link will give you access to the latest experimental release of the bootloader's source code, including two batch files to do the compilation and download of it under windows. (Refer to the official software page to get the full version PC-MAC)

July 11, 2005, at 01:04 PM by 210.214.17.174 -
Changed line 11 from:

The following [link http://webzone.k3.mah.se/k3dacu/arduino/bootloader/experimental/] will give you access to the latest experimental release of the bootloader's source code, including two batch files to do the compilation and download of it under windows. (Refer to the official software page to get the full version PC-MAC)

to:

The following link will give you access to the latest experimental release of the bootloader's source code, including two batch files to do the compilation and download of it under windows. (Refer to the official software page to get the full version PC-MAC)

July 11, 2005, at 01:03 PM by 210.214.17.174 -
Changed line 11 from:

The following link will give you access to the latest experimental release of the bootloader's source code, including two batch files to do the compilation and download of it under windows. (Refer to the official software page to get the full version PC-MAC)

to:

The following [link http://webzone.k3.mah.se/k3dacu/arduino/bootloader/experimental/] will give you access to the latest experimental release of the bootloader's source code, including two batch files to do the compilation and download of it under windows. (Refer to the official software page to get the full version PC-MAC)

July 11, 2005, at 12:46 PM by 210.214.17.174 -
Added lines 3-11:

The bootloader for Arduino is a sensitive piece of software that takes care of listening to the serial port (or virtual serial port in the case of USB-Arduino) and waits for data coming from the computer. That data will be stored in the ATMEGA's flash memory and become the program to execute.

When reseting the board, the monitor pin (pin 13) will pulse three times, so that if you attach an LED between pin 13 and ground you will see it blinking. After that the bootloader will run for 8 seconds waiting for a program to be uploaded through the port. If there is no communication from the port, the program in memory will start immediately. In case the chip is still "virgin" the bootloader is the only program in memory and therefore will be the one that will start again.

If there is an actual upload, once it is finished the program will wait for two seconds and startup the newly stored program.

The use of a bootloader allows to avoid the use of external hardware programmers. The only issue is that setting up the bootloader still requires to use an ICSP or Parallel Port programmer as described in our main site.

The following link will give you access to the latest experimental release of the bootloader's source code, including two batch files to do the compilation and download of it under windows. (Refer to the official software page to get the full version PC-MAC)

July 11, 2005, at 11:46 AM by 81.114.121.230 -
Added lines 1-2:

Bootloader

Share