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:

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).

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.

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:

Downloads

How does it work?

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.

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.

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.

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.

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.

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.

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.

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

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.

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.

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)

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.

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)

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)

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)

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)