I've been working through the projects in the Arduino Workshop book by John Boxall. The Breadboard Arduino (Project #27) caught my eye at the very beginning but I took my time getting to that point. I've been though the process, had it working, but then damaged it due to miswiring as I tried to transfer the setup from a breadboard to an Adafruit Pi Plate.
So now that I'm going to be doing this a second time, I wonder if someone could clarify the following:
What is the meaning of
Note that these techniques only work with the Arduino Duemilanove w/ an ATmega328, not the Arduino Uno (or older Arduino boards w/ an ATmega168).
If I understand what this tutorial is saying, if a person doesn't have a Duemilanove, the person will be creating the minimal set-up with the internal clock running at 8 Mhz. This is the only bootloader that I'm aware of that can be burned to a breadboard ATMega328P-PU by an Arduino UNO R3. Is this correct?
Just as a general question, once a bootloader is loaded on the chip, it can only be used in the configuration that was created? True or false? I ask this because I've spent the a few days trying to get a breadboard Arduino working again (using the chip from my Uno) and I haven't been able to communicate with the chip, to download sketches or to make it blink an LED. The chip works fine in the Uno. Once transferred to the breadboard, it just sits there . . .
It occurred to me that since it has the Uno bootloader, it will not operate as a breadboard Arduino. For one thing, it isn't configured to use the internal clock.
This is a pretty basic question I guess but the book I'm working through, although generally pretty accurate and a good source, doesn't say anything about this and just advises a person to purchase the chip with the bootloader already on it, which would imply that it isn't dependent on the configuration. It seems to me the bootloaders are all different and, unless you have a clock hooked up, a Uno chip will not work on a breadboard.
It occurred to me that since it has the Uno bootloader, it will not operate as a breadboard Arduino. For one thing, it isn't configured to use the internal clock.
If you have an external crystal and the fuses set correctly, you can use the Uno bootloader.
I looked your post and would like to use the bootburning sketch you have referenced. That should give more troubleshooting information than what I'm currently getting through the IDE and choosing "Burn Bootloader". However, I'll have to wait a few days until new parts arrive before I can try it.
I do get that the UNO chip should work with an external crystal but I'm still confused about question 2.
Your post suggests it is possible to burn the UNO bootloader onto a breadboard ATMega328P-PU
So at this stage we need another board, such as a Uno, Duemilanove or so on. Now this is a bit of a "chicken and egg" situation, which is why this process is called "booting".
but what board configuration should I choose when doing this? The options mentioned in the tutorial are only 1.) Arduino Duemilanove w/ an ATmega328 and 2.) Breadboard Arduino with 8Mhz Internal Clock. Neither of these fit the situation: Arduino UNO burning a bootloader onto a breadboard ATMega328P-PU (which I'm assuming will have an external crystal).
Maybe the solution is use your bootburning sketch instead of doing this through the IDE?
but what board configuration should I choose when doing this?
Well, if you have a Uno for the burning, you choose a Uno (because you are uploading the "bootloader burning" sketch onto a Uno).
The target (the breadboarded chip) can be burned with a Optiboot loader (assumes a 16 MHz crystal) or the Lilypad loader (which assumes an 8 MHz internal clock). Choose whichever depending on whether you put a crystal on the breadboard or not.
This page shows various chips/boards being programmed with a bootloader:
I got my replacement parts today and, a few miswirings and baud setting adjustments later, I had a working breadboard Arduino sans external crystal.
Nick, the tools you pointed me to were fantastic and worked fine.
I'm not sure how the Arduino community works (and I'm not sure if you are looking for extra contact with the Arduino community) but I definately think your write-ups should be linked to or referenced in the tutorial on the Arduino site.
It is the one that comes up in the Google search for breadboard Arduino and there are issues in that write-up with clarity and completeness.
sarge:
Nick, the tools you pointed me to were fantastic and worked fine.
Glad to hear it.
sarge:
I'm not sure how the Arduino community works (and I'm not sure if you are looking for extra contact with the Arduino community) but I definately think your write-ups should be linked to or referenced in the tutorial on the Arduino site.