Tutorial.ArduinoToBreadboard History

Hide minor edits - Show changes to markup

April 22, 2013, at 03:54 PM by Alberto Cicchi -
April 22, 2013, at 03:54 PM by Alberto Cicchi -
Changed line 55 from:
  1. Download this hardware configuration archive:
to:
  1. Download this hardware configuration archive: Breadboard.zip
April 22, 2013, at 03:51 PM by Alberto Cicchi -
Changed line 55 from:
  1. Download this hardware configuration archive: Attach:Breadboard.zip
to:
  1. Download this hardware configuration archive:
April 22, 2013, at 03:50 PM by Alberto Cicchi -
Changed line 55 from:
  1. Download this hardware configuration archive: Breadboard.zip
to:
  1. Download this hardware configuration archive: Attach:Breadboard.zip
April 22, 2013, at 03:42 PM by Alberto Cicchi -
Changed line 55 from:
  1. Download this hardware configuration archive: Attach: Breadboard.zip
to:
  1. Download this hardware configuration archive: Breadboard.zip
April 22, 2013, at 03:41 PM by Alberto Cicchi -
Changed line 55 from:
  1. Download this hardware configuration archive: Breadboard.zip
to:
  1. Download this hardware configuration archive: Attach: Breadboard.zip
April 22, 2013, at 03:40 PM by Alberto Cicchi -
Changed line 55 from:
  1. Download this hardware configuration archive: breadboard_.zip Δ
to:
  1. Download this hardware configuration archive: Breadboard.zip
April 22, 2013, at 03:39 PM by Alberto Cicchi -
Changed line 55 from:
  1. Download this hardware configuration archive: breadboard.zip
to:
  1. Download this hardware configuration archive: breadboard_.zip Δ
March 10, 2011, at 11:21 PM by David A. Mellis -
Added lines 10-11:

Note that these techniques only work with the Arduino Duemilanove w/ an ATmega328, not the Arduino Uno (or older Arduino boards w/ an ATmega168).

November 21, 2010, at 07:59 PM by David A. Mellis -
Deleted lines 37-40:
Deleted lines 41-42:
Deleted lines 45-46:
July 02, 2010, at 06:26 PM by David A. Mellis -
Changed lines 83-89 from:
to:
July 02, 2010, at 06:24 PM by David A. Mellis -
Changed lines 44-45 from:

Once your ATmega328p has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board. To do, you remove the microcontroller from the Arduino board so the FTDI chip can talk to the microcontroller on the breadboard instead. The diagram at right shows how to connect the RX and TX lines from the Arduino board to the ATmega on the breadboard. To program the microcontroller, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu (or "ATmega328 on a breadboard (8 MHz internal clock)" if you're using the minimal configuration described below) and upload as normal.

to:

Once your ATmega328p has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board. To do, you remove the microcontroller from the Arduino board so the FTDI chip can talk to the microcontroller on the breadboard instead. The diagram at right shows how to connect the RX and TX lines from the Arduino board to the ATmega on the breadboard. To program the microcontroller, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu (or "ATmega328 on a breadboard (8 MHz internal clock)" if you're using the minimal configuration described below). Then upload as usual.

July 02, 2010, at 06:23 PM by David A. Mellis -
Changed lines 44-45 from:

Once your ATmega328p has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board. To do, you remove the microcontroller from the Arduino board so the FTDI chip can talk to the microcontroller on the breadboard instead. The diagram at right shows how to connect the RX and TX lines from the Arduino board to the ATmega on the breadboard. To program the microcontroller, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu and upload as normal.

to:

Once your ATmega328p has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board. To do, you remove the microcontroller from the Arduino board so the FTDI chip can talk to the microcontroller on the breadboard instead. The diagram at right shows how to connect the RX and TX lines from the Arduino board to the ATmega on the breadboard. To program the microcontroller, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu (or "ATmega328 on a breadboard (8 MHz internal clock)" if you're using the minimal configuration described below) and upload as normal.

July 02, 2010, at 06:22 PM by David A. Mellis -
Added lines 75-76:

Using an Arduino board to burn the bootloader onto an ATmega on a breadboard (w/o an external clock).

Added lines 81-82:

Uploading sketches to an ATmega on a breadboard.

July 02, 2010, at 06:21 PM by David A. Mellis -
Changed lines 32-33 from:

Using an Arduino board to burn the bootloader onto an ATmega.

to:

Using an Arduino board to burn the bootloader onto an ATmega on a breadboard.

July 02, 2010, at 06:21 PM by David A. Mellis -
Added lines 32-33:

Using an Arduino board to burn the bootloader onto an ATmega.

Changed lines 50-51 from:

Using an Arduino board to upload sketches to an ATmega on a breadboard. Remember to remove the microcontroller from the Arduino board!

to:

Uploading sketches to an ATmega on a breadboard. Remember to remove the microcontroller from the Arduino board!

July 02, 2010, at 06:20 PM by David A. Mellis -
Changed lines 40-43 from:

Uploading Using the Bootloader

Once your ATmega328p has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board. To do, you remove the microcontroller from the Arduino board so the FTDI chip can talk to the microcontroller on the breadboard instead. The diagram at right shows how to connect the RX and TX lines from the Arduino board to the ATmega on the breadboard. To program the microcontroller, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu and upload as normal. (Remember to remove the microcontroller from the Arduino board.)

to:

Uploading Using an Arduino Board

Once your ATmega328p has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board. To do, you remove the microcontroller from the Arduino board so the FTDI chip can talk to the microcontroller on the breadboard instead. The diagram at right shows how to connect the RX and TX lines from the Arduino board to the ATmega on the breadboard. To program the microcontroller, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu and upload as normal.

Added lines 48-49:

Using an Arduino board to upload sketches to an ATmega on a breadboard. Remember to remove the microcontroller from the Arduino board!

July 02, 2010, at 06:18 PM by David A. Mellis -
Changed line 56 from:

To do so, you'll need to install support for an additional hardware configuration:

to:

You'll need to install support for an additional hardware configuration:

July 02, 2010, at 06:18 PM by David A. Mellis -
Changed lines 54-55 from:

If you don't have the extra 16 MHz crystal and 18-22 picofarad capacitors used in the above examples, you can configure the ATmega328 to use its internal 8 MHz RC oscillator as a clock source instead.

to:

If you don't have the extra 16 MHz crystal and 18-22 picofarad capacitors used in the above examples, you can configure the ATmega328 to use its internal 8 MHz RC oscillator as a clock source instead. (You don't really need the 10K pullup resistor on the reset pin either, so we remove it to get a truly minimal configuration.)

July 02, 2010, at 06:17 PM by David A. Mellis -
Changed lines 42-43 from:

Once your ATmega328p has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board. To do, you remove the microcontroller from the Arduino board and connect the RX and TX lines from the FTDI chip to the ATmega on the breadboard. The diagram at the right shows the complete circuit. To program the board, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu and upload as normal. Remember to remove the microcontroller from the Arduino board.

to:

Once your ATmega328p has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board. To do, you remove the microcontroller from the Arduino board so the FTDI chip can talk to the microcontroller on the breadboard instead. The diagram at right shows how to connect the RX and TX lines from the Arduino board to the ATmega on the breadboard. To program the microcontroller, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu and upload as normal. (Remember to remove the microcontroller from the Arduino board.)

July 02, 2010, at 06:15 PM by David A. Mellis -
Changed lines 42-45 from:

Once your ATmega328p has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board that has had its microcontroller removed. This is basically the same as uploading a program to an ATmega328p on the board.

The diagram to the right show how to connect the ATmega328p to the Arduino board. Remember to remove the microcontroller from the Arduino board. To program the board, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu and upload as normal.

to:

Once your ATmega328p has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board. To do, you remove the microcontroller from the Arduino board and connect the RX and TX lines from the FTDI chip to the ATmega on the breadboard. The diagram at the right shows the complete circuit. To program the board, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu and upload as normal. Remember to remove the microcontroller from the Arduino board.

July 02, 2010, at 06:13 PM by David A. Mellis -
Changed line 23 from:
  1. Select "Arduino Duemilanove or Nano w/ ATmega328" from the Tools > Board menu. (Or "ATmega328 on a breadboard (8 MHz internal clock)" if using an ATmega328 without an external clock as described below.)
to:
  1. Select "Arduino Duemilanove or Nano w/ ATmega328" from the Tools > Board menu. (Or "ATmega328 on a breadboard (8 MHz internal clock)" if using the minimal configuration described below.)
Changed lines 26-27 from:

You should only need to burn the bootloader once. After you've done so, you can remove the jumper wires connected to pins 10, 11, 12, and 13 of the Arduino board. To upload sketches to the ATmega328 on the breadboard, follow the instructions in the previous section.

to:

You should only need to burn the bootloader once. After you've done so, you can remove the jumper wires connected to pins 10, 11, 12, and 13 of the Arduino board.

July 02, 2010, at 06:12 PM by David A. Mellis -
Changed line 22 from:
  1. Wire up the Arduino board and microcontroller as shown in the diagram to the right. (The Arduino needs to run the ArduinoISP sketch, so be sure to leave the microcontroller in the board.)
to:
  1. Wire up the Arduino board and microcontroller as shown in the diagram to the right.
July 02, 2010, at 06:12 PM by David A. Mellis -
Changed lines 18-19 from:

If you have a new ATmega328 (or ATmega168), you can burn the bootloader onto it using an Arduino board. If the microcontroller already has the bootloader on it (e.g. because you took it out of an Arduino board or ordered an already-bootloaded ATmega), you can skip this section.

to:

If you have a new ATmega328 (or ATmega168), you'll need to burn the bootloader onto it. You can do this using an Arduino board as an in-system program (ISP). If the microcontroller already has the bootloader on it (e.g. because you took it out of an Arduino board or ordered an already-bootloaded ATmega), you can skip this section.

July 02, 2010, at 06:08 PM by David A. Mellis -
Added lines 5-9:

Unless you choose to use the minimal configuration described at the end of this tutorial, you'll need four components (besides the Arduino, ATmega328, and breadboard):

  • a 16 MHz crystal,
  • a 10k resistor, and
  • two 18 to 22 picofarad (ceramic) capacitors.
Deleted lines 19-23:

You need four components (besides the Arduino and ATmega328):

  • a 16 MHz crystal,
  • a 10k resistor, and
  • two 18 to 22 picofarad (ceramic) capacitors.
July 02, 2010, at 06:06 PM by David A. Mellis -
Changed lines 11-13 from:

Uploading Using the Bootloader

If you're using an ATmega328p that already has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board that has had its microcontroller removed. This is basically the same as uploading a program to an ATmega328p on the board. You need four components (besides the Arduino and ATmega328):

to:

Burning the Bootloader

If you have a new ATmega328 (or ATmega168), you can burn the bootloader onto it using an Arduino board. If the microcontroller already has the bootloader on it (e.g. because you took it out of an Arduino board or ordered an already-bootloaded ATmega), you can skip this section.

You need four components (besides the Arduino and ATmega328):

Changed lines 19-20 from:

The diagram to the right show how to connect the ATmega328p to the Arduino board. Remember to remove the microcontroller from the Arduino board. To program the board, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu and upload as normal.

to:

To burn the bootloader, follow these steps:

  1. Upload the ArduinoISP sketch onto your Arduino board. (You'll need to select the board and serial port from the Tools menu that correspond to your board.)
  2. Wire up the Arduino board and microcontroller as shown in the diagram to the right. (The Arduino needs to run the ArduinoISP sketch, so be sure to leave the microcontroller in the board.)
  3. Select "Arduino Duemilanove or Nano w/ ATmega328" from the Tools > Board menu. (Or "ATmega328 on a breadboard (8 MHz internal clock)" if using an ATmega328 without an external clock as described below.)
  4. Run Tools > Burn Bootloader > w/ Arduino as ISP.

You should only need to burn the bootloader once. After you've done so, you can remove the jumper wires connected to pins 10, 11, 12, and 13 of the Arduino board. To upload sketches to the ATmega328 on the breadboard, follow the instructions in the previous section.

Changed lines 30-31 from:
to:
Changed lines 40-51 from:

Burning the Bootloader

If you have a new ATmega328 (or ATmega168), you can burn the bootloader onto it using an Arduino board. This will then let you upload programs to the microcontroller as described above.

To burn the bootloader, follow these steps:

  1. Upload the ArduinoISP sketch onto your Arduino board. (You'll need to select the board and serial port from the Tools menu that correspond to your board.)
  2. Wire up the Arduino board and microcontroller as shown in the diagram to the right. (The Arduino needs to run the ArduinoISP sketch, so be sure to leave the microcontroller in the board.)
  3. Select "Arduino Duemilanove or Nano w/ ATmega328" from the Tools > Board menu. (Or "ATmega328 on a breadboard (8 MHz internal clock)" if using an ATmega328 without an external clock as described below.)
  4. Run Tools > Burn Bootloader > w/ Arduino as ISP.

You should only need to burn the bootloader once. After you've done so, you can remove the jumper wires connected to pins 10, 11, 12, and 13 of the Arduino board. To upload sketches to the ATmega328 on the breadboard, follow the instructions in the previous section.

to:

Uploading Using the Bootloader

Once your ATmega328p has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board that has had its microcontroller removed. This is basically the same as uploading a program to an ATmega328p on the board.

The diagram to the right show how to connect the ATmega328p to the Arduino board. Remember to remove the microcontroller from the Arduino board. To program the board, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu and upload as normal.

Changed lines 48-49 from:
to:
Deleted line 51:
July 02, 2010, at 06:02 PM by David A. Mellis -
Deleted line 57:
  1. Unzip it.
July 02, 2010, at 06:02 PM by David A. Mellis -
Changed line 57 from:
  1. Download this hardware configuration archive: Attach:breadboard.zip
to:
  1. Download this hardware configuration archive: breadboard.zip
July 02, 2010, at 06:01 PM by David A. Mellis -
Changed line 36 from:
  1. Upload the ArduinoISP sketch onto your Arduino board.
to:
  1. Upload the ArduinoISP sketch onto your Arduino board. (You'll need to select the board and serial port from the Tools menu that correspond to your board.)
Changed line 38 from:
  1. Select "Arduino Duemilanove or Nano w/ ATmega328" from the Tools > Board menu.
to:
  1. Select "Arduino Duemilanove or Nano w/ ATmega328" from the Tools > Board menu. (Or "ATmega328 on a breadboard (8 MHz internal clock)" if using an ATmega328 without an external clock as described below.)
July 02, 2010, at 05:59 PM by David A. Mellis -
Added lines 64-65:

Once you've done this, you can burn the bootloader and upload programs onto your ATmega328 as described above. Be sure to select "ATmega328 on a breadboard (8 MHz internal clock)" when burning the bootloader. (If you select the wrong item and configure the microcontroller to use an external clock, it won't work unless you connect one.)

July 02, 2010, at 05:57 PM by David A. Mellis -
Added lines 68-71:
Deleted lines 73-76:
July 02, 2010, at 05:55 PM by David A. Mellis -
Changed lines 49-52 from:
to:


Added lines 64-69:
July 02, 2010, at 05:51 PM by David A. Mellis -
Added lines 49-52:
Added lines 65-69:
July 02, 2010, at 05:49 PM by David A. Mellis -
Changed line 54 from:
  1. Download this hardware configuration archive: Attach:BreadboardAVR.zip Δ
to:
  1. Download this hardware configuration archive: Attach:breadboard.zip
July 02, 2010, at 05:44 PM by David A. Mellis -
Changed lines 49-50 from:

Eliminating the External Clock

to:

Minimal Circuit (Eliminating the External Clock)

July 02, 2010, at 05:43 PM by David A. Mellis -
Changed lines 49-53 from:

Uploading Using In-System Programming

If you have a new ATmega328p without the Arduino bootloader, you can program it using an Arduino board as an in-system programmer.

You'll need to install support for an additional hardware configuration:

to:

Eliminating the External Clock

If you don't have the extra 16 MHz crystal and 18-22 picofarad capacitors used in the above examples, you can configure the ATmega328 to use its internal 8 MHz RC oscillator as a clock source instead.

To do so, you'll need to install support for an additional hardware configuration:

July 02, 2010, at 05:39 PM by David A. Mellis -
Added lines 41-42:

You should only need to burn the bootloader once. After you've done so, you can remove the jumper wires connected to pins 10, 11, 12, and 13 of the Arduino board. To upload sketches to the ATmega328 on the breadboard, follow the instructions in the previous section.

July 02, 2010, at 05:35 PM by David A. Mellis -
Changed lines 17-20 from:

The diagram to the right show how to connect the ATmega328p to the Arduino board (remember to remove the microcontroller from the Arduino board).

To program the board, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu and upload as normal.

to:

The diagram to the right show how to connect the ATmega328p to the Arduino board. Remember to remove the microcontroller from the Arduino board. To program the board, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu and upload as normal.

July 02, 2010, at 05:34 PM by David A. Mellis -
Deleted lines 6-7:

Uploading Using the Bootloader

Added lines 11-12:

Uploading Using the Bootloader

Deleted lines 28-29:

Burning the Bootloader

Added lines 33-34:

Burning the Bootloader

July 02, 2010, at 05:34 PM by David A. Mellis -
Added lines 5-6:


Added lines 27-28:


July 02, 2010, at 05:34 PM by David A. Mellis -
Changed lines 23-24 from:

(:tableend;)

to:
July 02, 2010, at 05:33 PM by David A. Mellis -
Added lines 7-10:
Changed lines 15-18 from:

The following diagram show how to connect the ATmega328p to the Arduino board (remember to remove the microcontroller from the Arduino board).

to:

The diagram to the right show how to connect the ATmega328p to the Arduino board (remember to remove the microcontroller from the Arduino board).

Added lines 19-24:
July 02, 2010, at 05:30 PM by David A. Mellis -
Added lines 19-22:
Changed lines 25-26 from:
to:
July 02, 2010, at 05:25 PM by David A. Mellis -
Changed lines 21-22 from:

To burn the bootloader onto your ATmega328, see the Arduino ISP tutorial.

to:
July 02, 2010, at 05:21 PM by David A. Mellis -
Deleted lines 4-7:

You have two main options for setting up your microcontroller on a breadboard:

  • use an ATmega328p with the Arduino bootloader on it and use an Arduino as an USB-to-serial convertor, or
  • use a new ATmega328p and use an Arduino as an in-system programmer (ISP).
Added lines 17-22:

Burning the Bootloader

If you have a new ATmega328 (or ATmega168), you can burn the bootloader onto it using an Arduino board. This will then let you upload programs to the microcontroller as described above.

To burn the bootloader onto your ATmega328, see the Arduino ISP tutorial.

June 16, 2010, at 12:34 AM by David A. Mellis -
Changed lines 23-25 from:

For the first option, you can use the existing menu. Otherwise, you'll need to install support for an additional hardware configuration:

to:

If you have a new ATmega328p without the Arduino bootloader, you can program it using an Arduino board as an in-system programmer.

You'll need to install support for an additional hardware configuration:

Deleted lines 32-43:

Clock Sources

A microcontroller needs a clock source to operate; without a clock, it can't do anything, not even get programmed. In this tutorial, we're going to use the ATmega328p with one of two clock sources: an external 16 MHz crystal, or its internal RC oscillator.

Burning the Bootloader

Once you've decided whether to use an internal or external clock source with the ATmega, you need to configure its fuses accordingly. You can do this using the Tools > Burn Bootloader menu, which sets the microcontroller's fuses in addition to burning a bootloader onto it. First, select the correct item from the Tools > Board (see the preceding section). Then, execute the Tools > Burn Bootloader command using the appropriate programmer. Here, we're using an Arduino as ISP, but you could use another programmer if you had one. The RX and TX LEDs on the Arduino will flash for some seconds and eventually the words "Done burning bootloader." should appear in the message bar of the Arduino software.

Remember that the ATmega328p won't work without a clock source - not even to get programmed. That means that if it comes from an Arduino board, you'll need to supply an external clock while programming it. You could leave it in the Arduino board while programming it with another one (or some other programmer) or you could add an external crystal and capacitors to your breadboard.

Once you've successfully executed the burn bootloader command, the ATmega328p will be configured according to the Tools > Boards menu item you had selected. If you used the "ATmega328 on a breadboard (8 MHz internal clock)" option, it will be configured to run on the 8 MHz internal clock. If you used the "Arduino Duemilanove or Nano w/ ATmega328" option, it will configured to use an external 16 MHz crystal. Again, in the latter case, you need to make sure that crystal is connected or the microcontroller won't function.

June 16, 2010, at 12:07 AM by David A. Mellis -
Changed lines 3-6 from:

This tutorial explains how to migrate from an Arduino board to a standalone microcontroller on a breadboard. It's similar to this tutorial, but uses an Arduino board to program the ATmega on the breadboard. It covers two main options for setting up your microcontroller on a breadboard:

  • using an ATmega328p that already has the Arduino bootloader on it and using an Arduino as an USB-to-serial convertor, and
  • using a new ATmega328p and using an Arduino as an in-system programmer (ISP).
to:

This tutorial explains how to migrate from an Arduino board to a standalone microcontroller on a breadboard. It's similar to this tutorial, but uses an Arduino board to program the ATmega on the breadboard.

You have two main options for setting up your microcontroller on a breadboard:

  • use an ATmega328p with the Arduino bootloader on it and use an Arduino as an USB-to-serial convertor, or
  • use a new ATmega328p and use an Arduino as an in-system programmer (ISP).
June 16, 2010, at 12:06 AM by David A. Mellis -
Changed lines 4-6 from:
  • using an ATmega328p that already has the Arduino bootloader on it and using an Arduino (without an micontroller) as an USB-to-serial convertor, and
  • using a new ATmega328p and programming it with an Arduino running a firmware that turns it into an in-system programmer (ISP).
to:
  • using an ATmega328p that already has the Arduino bootloader on it and using an Arduino as an USB-to-serial convertor, and
  • using a new ATmega328p and using an Arduino as an in-system programmer (ISP).
June 16, 2010, at 12:05 AM by David A. Mellis -
Changed lines 9-10 from:

If you're using an ATmega328p that already has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board that has had its microcontroller removed. This is basically the same as uploading a program to an ATmega328p on the board. You need three components (besides the Arduino and ATmega328):

  • a 16 MHz crystal, and
to:

If you're using an ATmega328p that already has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board that has had its microcontroller removed. This is basically the same as uploading a program to an ATmega328p on the board. You need four components (besides the Arduino and ATmega328):

  • a 16 MHz crystal,
  • a 10k resistor, and
June 16, 2010, at 12:04 AM by David A. Mellis -
Changed line 9 from:

If you're using an ATmega328p that already has the Arduino bootloader on it, you can upload programs to it using an Arduino board. To do this, we take the microcontroller out of the Arduino board and use the FTDI chip on it as a USB-to-serial convertor. This is basically the same as what happens when you upload a program to an ATmega328p on the board. You need three components (besides the Arduino and ATmega328):

to:

If you're using an ATmega328p that already has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board that has had its microcontroller removed. This is basically the same as uploading a program to an ATmega328p on the board. You need three components (besides the Arduino and ATmega328):

Added lines 16-17:

To program the board, select "Arduino Duemilanove or Nano w/ ATmega328" from the the Tools > Board menu and upload as normal.

Changed line 22 from:

For the first option, you can use the existing "Arduino Duemilanove or Nano w/ ATmega328" entry in the Tools > Board menu. Otherwise, you'll need to install support for an additional hardware configuration:

to:

For the first option, you can use the existing menu. Otherwise, you'll need to install support for an additional hardware configuration:

June 16, 2010, at 12:02 AM by David A. Mellis -
Changed lines 12-13 from:

The following diagram show how to connect the ATmega328p to the Arduino board.

to:

The following diagram show how to connect the ATmega328p to the Arduino board (remember to remove the microcontroller from the Arduino board).

Deleted lines 15-16:

Using an Arduino board to upload a programs to an ATmega328p with a bootloader. Remember to remove the microcontroller from the Arduino board.

June 16, 2010, at 12:01 AM by David A. Mellis -
Changed lines 9-10 from:

If you're using an ATmega328p that already has the Arduino bootloader on it, you can upload programs to it using an Arduino board. To do this, we take the microcontroller out of the Arduino board and use the FTDI chip on it as a USB-to-serial convertor. This is basically the same as what happens when you upload a program to an ATmega328p on the board. It requires an external crystal on the breadboard, because the ATmega328p is configured to use one as its clock source. The following diagram show how to connect the ATmega328p to the Arduino board.

to:

If you're using an ATmega328p that already has the Arduino bootloader on it, you can upload programs to it using an Arduino board. To do this, we take the microcontroller out of the Arduino board and use the FTDI chip on it as a USB-to-serial convertor. This is basically the same as what happens when you upload a program to an ATmega328p on the board. You need three components (besides the Arduino and ATmega328):

  • a 16 MHz crystal, and
  • two 18 to 22 picofarad (ceramic) capacitors.

The following diagram show how to connect the ATmega328p to the Arduino board.

Deleted lines 17-20:

You need three components (besides the Arduino and ATmega328):

  • a 16 MHz crystal, and
  • two 18 to 22 picofarad (ceramic) capacitors.
June 16, 2010, at 12:00 AM by David A. Mellis -
Changed lines 9-10 from:

If you're using an ATmega328p that already has the Arduino bootloader on it, you can upload programs to it using an Arduino board. To do this, we take the microcontroller out of the Arduino board and use the FTDI chip on it as a USB-to-serial convertor. This is basically the same as what happens when you upload a program to an ATmega328p on an Arduino board. It requires an external 16 MHz crystal on the breadboard, because the ATmega328p is configured to use one as its clock source. The following diagram show how to connect the ATmega328p to the Arduino board.

to:

If you're using an ATmega328p that already has the Arduino bootloader on it, you can upload programs to it using an Arduino board. To do this, we take the microcontroller out of the Arduino board and use the FTDI chip on it as a USB-to-serial convertor. This is basically the same as what happens when you upload a program to an ATmega328p on the board. It requires an external crystal on the breadboard, because the ATmega328p is configured to use one as its clock source. The following diagram show how to connect the ATmega328p to the Arduino board.

Added lines 13-18:

Using an Arduino board to upload a programs to an ATmega328p with a bootloader. Remember to remove the microcontroller from the Arduino board.

You need three components (besides the Arduino and ATmega328):

  • a 16 MHz crystal, and
  • two 18 to 22 picofarad (ceramic) capacitors.
June 15, 2010, at 11:57 PM by David A. Mellis -
Changed lines 4-6 from:
  • using an ATmega328p that already has the Arduino bootloader on it and using the Arduino as a USB-to-serial convertor, and
  • using a new ATmega328p and programming it using the Arduino as an in-system programmer (ISP).
to:
  • using an ATmega328p that already has the Arduino bootloader on it and using an Arduino (without an micontroller) as an USB-to-serial convertor, and
  • using a new ATmega328p and programming it with an Arduino running a firmware that turns it into an in-system programmer (ISP).
Changed lines 9-10 from:

If you're using an ATmega328p that already has the Arduino bootloader on it, you can upload programs to it using an Arduino board as a USB-to-serial convertor. This requires an external 16 MHz crystal, because the ATmega328p is configured to use one as its clock source. The following diagram show how to connect the ATmega328p the Arduino board.

to:

If you're using an ATmega328p that already has the Arduino bootloader on it, you can upload programs to it using an Arduino board. To do this, we take the microcontroller out of the Arduino board and use the FTDI chip on it as a USB-to-serial convertor. This is basically the same as what happens when you upload a program to an ATmega328p on an Arduino board. It requires an external 16 MHz crystal on the breadboard, because the ATmega328p is configured to use one as its clock source. The following diagram show how to connect the ATmega328p to the Arduino board.

June 15, 2010, at 11:53 PM by David A. Mellis -
Changed lines 3-8 from:

This tutorial explains how to migrate from an Arduino board to a standalone microcontroller on a breadboard. It's similar to this tutorial, but uses an Arduino board to program the ATmega on the breadboard.

You have two main options for setting up your microcontroller on a breadboard:

  1. Use an ATmega328p that already has the Arduino bootloader on it and use the Arduino as a USB-to-serial convertor.
  2. Use a new ATmega328p and program it using the Arduino as an in-system programmer (ISP).
to:

This tutorial explains how to migrate from an Arduino board to a standalone microcontroller on a breadboard. It's similar to this tutorial, but uses an Arduino board to program the ATmega on the breadboard. It covers two main options for setting up your microcontroller on a breadboard:

  • using an ATmega328p that already has the Arduino bootloader on it and using the Arduino as a USB-to-serial convertor, and
  • using a new ATmega328p and programming it using the Arduino as an in-system programmer (ISP).

Uploading Using the Bootloader

If you're using an ATmega328p that already has the Arduino bootloader on it, you can upload programs to it using an Arduino board as a USB-to-serial convertor. This requires an external 16 MHz crystal, because the ATmega328p is configured to use one as its clock source. The following diagram show how to connect the ATmega328p the Arduino board.

Uploading Using In-System Programming

June 15, 2010, at 11:44 PM by David A. Mellis -
Deleted lines 4-5:

Board Selection

June 15, 2010, at 11:41 PM by David A. Mellis -
Changed lines 3-4 from:

This tutorial explains how to migrate from an Arduino board to a standalone microcontroller on a breadboard. It's similar to this tutorial, but uses the Arduino board to program the ATmega on the breadboard.

to:

This tutorial explains how to migrate from an Arduino board to a standalone microcontroller on a breadboard. It's similar to this tutorial, but uses an Arduino board to program the ATmega on the breadboard.

Board Selection

You have two main options for setting up your microcontroller on a breadboard:

  1. Use an ATmega328p that already has the Arduino bootloader on it and use the Arduino as a USB-to-serial convertor.
  2. Use a new ATmega328p and program it using the Arduino as an in-system programmer (ISP).

For the first option, you can use the existing "Arduino Duemilanove or Nano w/ ATmega328" entry in the Tools > Board menu. Otherwise, you'll need to install support for an additional hardware configuration:

  1. Download this hardware configuration archive: Attach:BreadboardAVR.zip Δ
  2. Unzip it.
  3. Create a "hardware" sub-folder in your Arduino sketchbook folder (whose location you can find in the Arduino preferences dialog). If you've previously installed support for additional hardware configuration, you may already have a "hardware" folder in your sketchbook.
  4. Move the "breadboard" folder from the zip archive to the "hardware" sub-folder of your Arduino sketchbook.
  5. Restart the Arduino software.
  6. You should see "ATmega328 on a breadboard (8 MHz internal clock)" in the Tools > Board menu.
Changed lines 21-34 from:

A microcontroller needs a clock source to operate; without a clock, it can't do anything, not even get programmed. The ATmega328p has an internal 8 MHz RC oscillator or can be configured to use an external clock source. The ATmega328 on an Arduino Duemilanove uses an external 16 MHz crystal (the small silver can next to the microcontroller); on a Lilypad Arduino, it uses an external 8 MHz resonator. A standard ATmega328p (i.e. one that hasn't been configured for use in an Arduino board) defaults to using the internal 8 MHz RC oscillator and dividing its speed by 8, giving an effective clock speed of 1 MHz.

In this tutorial, we're going to use the ATmega328p with one of two clock sources: an external 16 MHz crystal, or an internal 8 MHz RC oscillator. The clock source is selected by the the microcontroller's fuses, special bytes of memory that are written using an in-system programmer (ISP). We'll do this as a part of burning the bootloader onto the ATmega328p.

Board Selections

If you're going to use an external 16 MHz crystal and upload new sketches using the bootloader, you can use the existing "Arduino Duemilanove or Nano w/ ATmega328" entry in the Tools > Board menu. Otherwise, you'll need to install support for additional hardware configurations:

  1. Download this hardware configuration archive: Attach:BreadboardAVR.zip Δ
  2. Unzip it.
  3. Create a "hardware" sub-folder in your Arduino sketchbook folder (whose location you can find in the Arduino preferences dialog). If you've previously installed support for additional hardware configuration, you may already have a "hardware" folder in your sketchbook.
  4. Move the "breadboard" folder from the zip archive to the "hardware" sub-folder of your Arduino sketchbook.
  5. Restart the Arduino software.
  6. You should see two new items in the Tools > Board menu: "ATmega328 on a breadboard (8 MHz internal clock)" and "ATmega328 on a breadboard (16 MHz external crystal)".
to:

A microcontroller needs a clock source to operate; without a clock, it can't do anything, not even get programmed. In this tutorial, we're going to use the ATmega328p with one of two clock sources: an external 16 MHz crystal, or its internal RC oscillator.

June 15, 2010, at 11:32 PM by David A. Mellis -
Deleted lines 4-11:

Arduino as In-System Programmer (ISP)

The following diagrams show two possible ways of wiring an Arduino board to program the microcontroller on the breadboard. In the images, the chip is labelled "ATMEGA168" but we'll use an ATmega328p instead - it's the microcontroller that comes on new Arduino boards. (The ATmega168 and ATmega328p are two members of the AVR family of microcontrollers from Atmel.) Notice how few components (besides the Arduino board and ATmega328p) are required.

Using an Arduino board to program an ATmega. Because no external clock source is connected, the ATmega must be configured to use its internal clock.Using an Arduino board to program an ATmega, with external crystal and associated capacitors (18 or 22 picofarads).
Changed lines 7-10 from:

A microcontroller needs a clock source to operate: it provides the timing needed to perform computations. The Arduino board uses a 16 MHz crystal as this clock source; it's the small silver can next to the microcontroller. Alternatively, the ATmega328p has an internal 8 MHz RC oscillator that can be used as the clock source. The selection of the clock source is controlled by the microcontroller's fuses. These are special bytes of memory that configure aspects of the microcontroller's behavior. They are written using a programmer (e.g. the Arduino board in this tutorial).

The ATmega328p that comes on an Arduino board is configured to use an external crystal as its clock source. That means that if you want to use it on a breadboard, you either need to supply an external crystal (as shown in the diagram on the right) or modify its fuses so that it uses its internal clock instead. A standard ATmega328p (e.g. one that you order on Digi-Key) comes from the factory configured to use its internal clock. It also comes configured with fuse settings that divide the speed of the internal clock by 8: from 8 MHz to 1 MHz.

to:

A microcontroller needs a clock source to operate; without a clock, it can't do anything, not even get programmed. The ATmega328p has an internal 8 MHz RC oscillator or can be configured to use an external clock source. The ATmega328 on an Arduino Duemilanove uses an external 16 MHz crystal (the small silver can next to the microcontroller); on a Lilypad Arduino, it uses an external 8 MHz resonator. A standard ATmega328p (i.e. one that hasn't been configured for use in an Arduino board) defaults to using the internal 8 MHz RC oscillator and dividing its speed by 8, giving an effective clock speed of 1 MHz.

In this tutorial, we're going to use the ATmega328p with one of two clock sources: an external 16 MHz crystal, or an internal 8 MHz RC oscillator. The clock source is selected by the the microcontroller's fuses, special bytes of memory that are written using an in-system programmer (ISP). We'll do this as a part of burning the bootloader onto the ATmega328p.

Changed lines 13-23 from:

We're going to want to use the ATmega328p with one of two clock sources:

  • the internal oscillator running at 8 MHz (i.e. with the clock speed division of 8 turned off), or
  • an external 16 MHz crystal (as on the Arduino board).

We can also choose one of two methods for getting new programs onto the ATmega328p:

  • using the Arduino board as an in-system programmer (ISP) every time we upload a new program, or
  • using it once as an ISP to burn the bootloader onto the ATmega328p and then using it as USB-to-serial convertor and uploading via the bootloader.

If you're going to use an external 16 MHz crystal and upload new sketches using the bootloader, you can use the existing "Arduino Duemilanove or Nano w/ ATmega328" entry in the Tools > Board menu.

Otherwise, you'll need to install support for additional hardware configurations:

to:

If you're going to use an external 16 MHz crystal and upload new sketches using the bootloader, you can use the existing "Arduino Duemilanove or Nano w/ ATmega328" entry in the Tools > Board menu. Otherwise, you'll need to install support for additional hardware configurations:

Changed lines 19-20 from:
  1. You should see "ATmega328 on a breadboard (8 MHz internal clock)" in the Tools > Board menu.
to:
  1. You should see two new items in the Tools > Board menu: "ATmega328 on a breadboard (8 MHz internal clock)" and "ATmega328 on a breadboard (16 MHz external crystal)".
June 15, 2010, at 10:58 PM by David A. Mellis -
Changed lines 5-8 from:

Hardware Setup

The following diagrams show two possible ways of wiring the Arduino to the microcontroller on the breadboard. In the images, the chip is labelled "ATMEGA168" but we'll use an ATmega328p instead - it's the microcontroller that comes on new Arduino boards. (The ATmega168 and ATmega328p are two members of the AVR family of microcontrollers from Atmel.) Notice how few components (besides the Arduino board and ATmega328p) are required.

to:

Arduino as In-System Programmer (ISP)

The following diagrams show two possible ways of wiring an Arduino board to program the microcontroller on the breadboard. In the images, the chip is labelled "ATMEGA168" but we'll use an ATmega328p instead - it's the microcontroller that comes on new Arduino boards. (The ATmega168 and ATmega328p are two members of the AVR family of microcontrollers from Atmel.) Notice how few components (besides the Arduino board and ATmega328p) are required.

Changed lines 19-24 from:

Board Selection

We're going to want to use the ATmega328p in one of two configurations: either with the internal clock running at 8 MHz (i.e. with the clock speed division of 8 turned off) or with an external 16 MHz crystal (as on the Arduino board) or .

Internal Clock: To use the ATmega328p with its internal clock, you'll need to add a new option to the Tools > Board menu. To do so, follow these steps:

to:

Board Selections

We're going to want to use the ATmega328p with one of two clock sources:

  • the internal oscillator running at 8 MHz (i.e. with the clock speed division of 8 turned off), or
  • an external 16 MHz crystal (as on the Arduino board).

We can also choose one of two methods for getting new programs onto the ATmega328p:

  • using the Arduino board as an in-system programmer (ISP) every time we upload a new program, or
  • using it once as an ISP to burn the bootloader onto the ATmega328p and then using it as USB-to-serial convertor and uploading via the bootloader.

If you're going to use an external 16 MHz crystal and upload new sketches using the bootloader, you can use the existing "Arduino Duemilanove or Nano w/ ATmega328" entry in the Tools > Board menu.

Otherwise, you'll need to install support for additional hardware configurations:

Changed lines 39-42 from:

External Clock: If you're using an external 16 MHz crystal, simply select "Arduino Duemilanove or Nano w/ ATmega328" from the Tools > Board menu.

Fuse Configuration

to:

Burning the Bootloader

June 15, 2010, at 10:42 PM by David A. Mellis -
Changed lines 40-41 from:

Once you've successfully executed the burn bootloader command, the ATmega328p will be configured according to the Tools > Boards menu item you had selected. If you used the "ATmega328 on a breadboard (8 MHz internal clock)" option, it will be configured to run on the 8 MHz internal clock. If you used the "Arduino Duemilanove or Nano w/ ATmega328" option, it will configured to use an external 16 MHz crystal.

to:

Once you've successfully executed the burn bootloader command, the ATmega328p will be configured according to the Tools > Boards menu item you had selected. If you used the "ATmega328 on a breadboard (8 MHz internal clock)" option, it will be configured to run on the 8 MHz internal clock. If you used the "Arduino Duemilanove or Nano w/ ATmega328" option, it will configured to use an external 16 MHz crystal. Again, in the latter case, you need to make sure that crystal is connected or the microcontroller won't function.

June 15, 2010, at 10:41 PM by David A. Mellis -
Changed lines 11-12 from:
Using an Arduino board to program an ATmega. Because no external clock source is connected, the ATmega must be configured to use its internal clock.Using an Arduino board to program an ATmega, with external crystal (and associated capacitors).
to:
Using an Arduino board to program an ATmega. Because no external clock source is connected, the ATmega must be configured to use its internal clock.Using an Arduino board to program an ATmega, with external crystal and associated capacitors (18 or 22 picofarads).
June 15, 2010, at 10:40 PM by David A. Mellis -
Added lines 21-22:

We're going to want to use the ATmega328p in one of two configurations: either with the internal clock running at 8 MHz (i.e. with the clock speed division of 8 turned off) or with an external 16 MHz crystal (as on the Arduino board) or .

Changed lines 36-40 from:

Once you've decided whether to use an internal or external clock source with the ATmega, you need to configure its fuses accordingly. You can do this using the Tools > Burn Bootloader menu, which sets the microcontroller's fuses in addition to burning a bootloader onto it. First, select the correct item from the Tools > Board (see the preceding section). Then, execute the Tools > Burn Bootloader command using the appropriate programmer. Here, we're using an Arduino as ISP, but you could use another programmer if you had one. The RX and TX LEDs on the Arduino will flash for some seconds and eventually the words "Done burning bootloader." should appear in the message bar of the Arduino software.

to:

Once you've decided whether to use an internal or external clock source with the ATmega, you need to configure its fuses accordingly. You can do this using the Tools > Burn Bootloader menu, which sets the microcontroller's fuses in addition to burning a bootloader onto it. First, select the correct item from the Tools > Board (see the preceding section). Then, execute the Tools > Burn Bootloader command using the appropriate programmer. Here, we're using an Arduino as ISP, but you could use another programmer if you had one. The RX and TX LEDs on the Arduino will flash for some seconds and eventually the words "Done burning bootloader." should appear in the message bar of the Arduino software.

Remember that the ATmega328p won't work without a clock source - not even to get programmed. That means that if it comes from an Arduino board, you'll need to supply an external clock while programming it. You could leave it in the Arduino board while programming it with another one (or some other programmer) or you could add an external crystal and capacitors to your breadboard.

Once you've successfully executed the burn bootloader command, the ATmega328p will be configured according to the Tools > Boards menu item you had selected. If you used the "ATmega328 on a breadboard (8 MHz internal clock)" option, it will be configured to run on the 8 MHz internal clock. If you used the "Arduino Duemilanove or Nano w/ ATmega328" option, it will configured to use an external 16 MHz crystal.

June 15, 2010, at 10:31 PM by David A. Mellis -
Added lines 32-34:

Fuse Configuration

Once you've decided whether to use an internal or external clock source with the ATmega, you need to configure its fuses accordingly. You can do this using the Tools > Burn Bootloader menu, which sets the microcontroller's fuses in addition to burning a bootloader onto it. First, select the correct item from the Tools > Board (see the preceding section). Then, execute the Tools > Burn Bootloader command using the appropriate programmer. Here, we're using an Arduino as ISP, but you could use another programmer if you had one. The RX and TX LEDs on the Arduino will flash for some seconds and eventually the words "Done burning bootloader." should appear in the message bar of the Arduino software.

June 15, 2010, at 10:25 PM by David A. Mellis -
Changed lines 21-22 from:

To use the ATmega328p with its internal clock, you'll need to add a new option to the Tools > Board menu. To do so, follow these steps:

to:

Internal Clock: To use the ATmega328p with its internal clock, you'll need to add a new option to the Tools > Board menu. To do so, follow these steps:

Changed lines 30-31 from:

If you're using an external 16 MHz crystal, simply select "Arduino Duemilanove or Nano w/ ATmega328" from the Tools > Board menu.

to:

External Clock: If you're using an external 16 MHz crystal, simply select "Arduino Duemilanove or Nano w/ ATmega328" from the Tools > Board menu.

June 15, 2010, at 10:23 PM by David A. Mellis -
Changed lines 28-29 from:

You should see "ATmega328 on a breadboard (8 MHz internal clock)" in the Tools > Board menu.

to:
  1. You should see "ATmega328 on a breadboard (8 MHz internal clock)" in the Tools > Board menu.

If you're using an external 16 MHz crystal, simply select "Arduino Duemilanove or Nano w/ ATmega328" from the Tools > Board menu.

June 15, 2010, at 10:22 PM by David A. Mellis -
Changed lines 21-29 from:

To use the ATmega328p with its internal clock, you'll need to add a new option to the Tools > Board menu. To do so, download this hardware configuration archive: Attach:BreadboardAVR.zip Δ. Unzip it and move the resulting "breadboard" folder to the "hardware" sub-folder of your Arduino sketchbook folder (whose location you can find in the preferences dialog in Arduino). You'll have to create the "hardware" folder if this is the first time you're installing support for additional hardware configurations. Restart the Arduino software. You should see "ATmega328 on a breadboard (8 MHz internal clock)" in the Tools > Board menu.

to:

To use the ATmega328p with its internal clock, you'll need to add a new option to the Tools > Board menu. To do so, follow these steps:

  1. Download this hardware configuration archive: Attach:BreadboardAVR.zip Δ
  2. Unzip it.
  3. Create a "hardware" sub-folder in your Arduino sketchbook folder (whose location you can find in the Arduino preferences dialog). If you've previously installed support for additional hardware configuration, you may already have a "hardware" folder in your sketchbook.
  4. Move the "breadboard" folder from the zip archive to the "hardware" sub-folder of your Arduino sketchbook.
  5. Restart the Arduino software.

You should see "ATmega328 on a breadboard (8 MHz internal clock)" in the Tools > Board menu.

June 15, 2010, at 10:19 PM by David A. Mellis -
Added lines 19-20:

Board Selection

June 15, 2010, at 10:18 PM by David A. Mellis -
Changed lines 17-19 from:

The ATmega328p that comes on an Arduino board is configured to use an external crystal as its clock source. That means that if you want to use it on a breadboard, you either need to supply an external crystal (as shown in the diagram on the right) or modify its fuses so that it uses its internal clock instead. A standard ATmega328p (e.g. one that you order on Digi-Key) comes from the factory configured to use its internal clock. It also comes configured with fuse settings that divide the speed of the internal clock by 8: from 8 MHz to 1 MHz.

to:

The ATmega328p that comes on an Arduino board is configured to use an external crystal as its clock source. That means that if you want to use it on a breadboard, you either need to supply an external crystal (as shown in the diagram on the right) or modify its fuses so that it uses its internal clock instead. A standard ATmega328p (e.g. one that you order on Digi-Key) comes from the factory configured to use its internal clock. It also comes configured with fuse settings that divide the speed of the internal clock by 8: from 8 MHz to 1 MHz.

To use the ATmega328p with its internal clock, you'll need to add a new option to the Tools > Board menu. To do so, download this hardware configuration archive: Attach:BreadboardAVR.zip Δ. Unzip it and move the resulting "breadboard" folder to the "hardware" sub-folder of your Arduino sketchbook folder (whose location you can find in the preferences dialog in Arduino). You'll have to create the "hardware" folder if this is the first time you're installing support for additional hardware configurations. Restart the Arduino software. You should see "ATmega328 on a breadboard (8 MHz internal clock)" in the Tools > Board menu.

June 15, 2010, at 10:08 PM by David A. Mellis -
Changed lines 15-17 from:

A microcontroller needs a clock source to operate: it provides the timing needed to perform computations. The Arduino board uses a 16 MHz crystal as this clock source; it's the small silver can next to the microcontroller. Alternatively, the ATmega328p has an internal RC oscillator that can be used as the clock source. The selection of the clock source is controlled by the microcontroller's fuses. These are special bytes of memory that configure aspects of the microcontroller's behavior. They are written using a programmer (e.g. the Arduino board in this tutorial).

The ATmega328p that comes on an Arduino board is configured to use an external crystal as its clock source. That means that if you want to use it on a breadboard, you either need to supply an external crystal (as shown in the diagram on the right) or modify its fuses so that it uses its internal clock instead.

to:

A microcontroller needs a clock source to operate: it provides the timing needed to perform computations. The Arduino board uses a 16 MHz crystal as this clock source; it's the small silver can next to the microcontroller. Alternatively, the ATmega328p has an internal 8 MHz RC oscillator that can be used as the clock source. The selection of the clock source is controlled by the microcontroller's fuses. These are special bytes of memory that configure aspects of the microcontroller's behavior. They are written using a programmer (e.g. the Arduino board in this tutorial).

The ATmega328p that comes on an Arduino board is configured to use an external crystal as its clock source. That means that if you want to use it on a breadboard, you either need to supply an external crystal (as shown in the diagram on the right) or modify its fuses so that it uses its internal clock instead. A standard ATmega328p (e.g. one that you order on Digi-Key) comes from the factory configured to use its internal clock. It also comes configured with fuse settings that divide the speed of the internal clock by 8: from 8 MHz to 1 MHz.

June 15, 2010, at 09:59 PM by David A. Mellis -
Changed lines 15-17 from:

A microcontroller needs a clock source to operate: it provides the timing needed to perform computations. The Arduino board uses a 16 MHz crystal as this clock source; it's the small silver can next to the microcontroller. Alternatively, the ATmega328p has an internal RC oscillator that can be used as the clock source.

to:

A microcontroller needs a clock source to operate: it provides the timing needed to perform computations. The Arduino board uses a 16 MHz crystal as this clock source; it's the small silver can next to the microcontroller. Alternatively, the ATmega328p has an internal RC oscillator that can be used as the clock source. The selection of the clock source is controlled by the microcontroller's fuses. These are special bytes of memory that configure aspects of the microcontroller's behavior. They are written using a programmer (e.g. the Arduino board in this tutorial).

The ATmega328p that comes on an Arduino board is configured to use an external crystal as its clock source. That means that if you want to use it on a breadboard, you either need to supply an external crystal (as shown in the diagram on the right) or modify its fuses so that it uses its internal clock instead.

June 15, 2010, at 09:52 PM by David A. Mellis -
Changed lines 7-8 from:

The following diagrams show two possible ways of wiring the Arduino to the microcontroller on the breadboard. In the images, the chip is labelled "ATMEGA168" but we'll use an ATmega328p instead - it's the microcontroller that comes on new Arduino boards. (The ATmega168 and ATmega328 are two members of the AVR family of microcontrollers from Atmel.) Notice how few components (besides the Arduino board and ATmega328p) are required.

to:

The following diagrams show two possible ways of wiring the Arduino to the microcontroller on the breadboard. In the images, the chip is labelled "ATMEGA168" but we'll use an ATmega328p instead - it's the microcontroller that comes on new Arduino boards. (The ATmega168 and ATmega328p are two members of the AVR family of microcontrollers from Atmel.) Notice how few components (besides the Arduino board and ATmega328p) are required.

Added lines 13-15:

Clock Sources

A microcontroller needs a clock source to operate: it provides the timing needed to perform computations. The Arduino board uses a 16 MHz crystal as this clock source; it's the small silver can next to the microcontroller. Alternatively, the ATmega328p has an internal RC oscillator that can be used as the clock source.

June 15, 2010, at 09:38 PM by David A. Mellis -
Changed lines 3-4 from:

This tutorial explains how to migrate from an Arduino board to a standalone microcontroller on a breadboard. It's similar to this tutorial, but uses the Arduino board (instead of additional hardware) as the AVR programmer and USB-serial convertor.

to:

This tutorial explains how to migrate from an Arduino board to a standalone microcontroller on a breadboard. It's similar to this tutorial, but uses the Arduino board to program the ATmega on the breadboard.

Changed lines 7-8 from:

The following diagrams show two possible ways of wiring the Arduino to the microcontroller on the breadboard. In the images, the chip is labelled "ATMEGA168" but we'll use an ATmega328p instead - it's the microcontroller that comes on new Arduino boards. Notice how few components (besides the Arduino board and ATmega328p) are required.

to:

The following diagrams show two possible ways of wiring the Arduino to the microcontroller on the breadboard. In the images, the chip is labelled "ATMEGA168" but we'll use an ATmega328p instead - it's the microcontroller that comes on new Arduino boards. (The ATmega168 and ATmega328 are two members of the AVR family of microcontrollers from Atmel.) Notice how few components (besides the Arduino board and ATmega328p) are required.

June 15, 2010, at 09:36 PM by David A. Mellis -
Changed lines 7-10 from:

The following diagrams show two possible ways of wiring the Arduino to the microcontroller on the breadboard. In the images, the chip is labelled ATmega168 but we'll use an ATmega328p instead - it's the microcontroller that comes on new Arduino boards. Notice how few components (besides the Arduino board and ATmega328p) are required.

to:

The following diagrams show two possible ways of wiring the Arduino to the microcontroller on the breadboard. In the images, the chip is labelled "ATMEGA168" but we'll use an ATmega328p instead - it's the microcontroller that comes on new Arduino boards. Notice how few components (besides the Arduino board and ATmega328p) are required.

Using an Arduino board to program an ATmega. Because no external clock source is connected, the ATmega must be configured to use its internal clock.Using an Arduino board to program an ATmega, with external crystal (and associated capacitors).
June 15, 2010, at 09:30 PM by David A. Mellis -
Changed lines 1-4 from:

From Arduino to an AVR on a Breadboard

This tutorial explains how to migrate from an Arduino board to an AVR microcontroller on a breadboard. It's similar to this tutorial, but uses the Arduino board (instead of additional hardware) as the AVR programmer and USB-serial convertor.

to:

From Arduino to a Microcontroller on a Breadboard

This tutorial explains how to migrate from an Arduino board to a standalone microcontroller on a breadboard. It's similar to this tutorial, but uses the Arduino board (instead of additional hardware) as the AVR programmer and USB-serial convertor.

Hardware Setup

The following diagrams show two possible ways of wiring the Arduino to the microcontroller on the breadboard. In the images, the chip is labelled ATmega168 but we'll use an ATmega328p instead - it's the microcontroller that comes on new Arduino boards. Notice how few components (besides the Arduino board and ATmega328p) are required.

June 15, 2010, at 09:23 PM by David A. Mellis -
Changed lines 5-7 from:
to:
June 15, 2010, at 09:21 PM by David A. Mellis -
Changed lines 6-7 from:
to:
June 15, 2010, at 09:19 PM by David A. Mellis -
Changed lines 5-6 from:
to:
June 15, 2010, at 09:19 PM by David A. Mellis -
Added lines 5-6:
June 15, 2010, at 09:16 PM by David A. Mellis -
Added lines 1-4:

From Arduino to an AVR on a Breadboard

This tutorial explains how to migrate from an Arduino board to an AVR microcontroller on a breadboard. It's similar to this tutorial, but uses the Arduino board (instead of additional hardware) as the AVR programmer and USB-serial convertor.

Share