• CES
  • AMARTS
  • Electronic Kid
  • Useful-news
  • Forum
  • Fellowship
  • E-Library
  • All
gravatar

THE ARDUINO BURNER SHIELD

optiLoader shield
Build your own optiLoader shield!
You cant use your Arduino UNO as programmer unless you modify it, but i didnt want to do that!
Some people had luck using a Resistor and Capacitor to disable the auto reset feature but it did not work for me (Using an Arduino UNO R2)
So i tried using a parallel port programmer but never got it to work. It seems easy, so if your interested go ahead and try it yourself, but be warned, could lead to frustration :)
Fortunately Bill Westfield wrote optiLoader!

The readme file doesent tell you how to connect the blank chip so i asumed that you need an oscillator and a pull up resistor and... well... it worked! (for me)
A nice thing about optiLoader is that is supports multiple chips, even atmega328 (non p) - the cheaper version whithout "pico power" features.
That way you dont have to edit your avrdude's config file, after bootloading a atmega328 the bootloader lies to avrdude telling that he is a atmega328p, keeping em quiet :)

You need:
  • Working Arduino (with µC and Bootloader) - optiLoader will run on that one
  • 16MHz oscillator
  • 2 x 22pF ceramic capacitor
  • 10KΩ resistor
Update:
If your chip comes straight out of the factory it 'should' be fused to work without an external clock -  meaning that you don't need the clock and the two capacitors.
But if you allready burnt a bootloader (even if it was aborted) or your supplier modifed the fuses for some reason - you need them.
Breadboard setup looks like this:
optiLoader on breadboard
Powering the circuit over pin 9 is questionable, but seems to work well with this setup (look at optiLoader source files for more info on this).
After downloading optiLoader go to the directory where your sketches reside and create a new directory named 'optiLoader' and put the files inside it.
Structure should look like this:
optiLoader/optiLoader.pde
optiLoader/optiLoader.h
If you use Arduino SDK 1.0 it will ask you if it should rename it to .ino -> Allow that.
Now upload optiLoader to your arduino and connect the serial monitor (with 19200 Baud) to see what is going on.
You dont even need the serial monitor, but thats the only way to get feedback on the process.
If you plan to make a shield out of this circuit you could learn from my mistakes:
Look at the main image on top of this page, i forgot to leave room to get to the reset button :)

THE ARDUINO BURNER SHIELD
Continuing my creation of circuits that save me a little time, I’ve developed a shield which turns an Arduino Duemilanove (or compatible) into an EPROM burner for ATMega328 chips. Imaginative as ever, I call it the “Arduino Burner.”
While working on the Standalone Sleepduino, I had cause to burn a custom bootloader to an ATMega328 chip in order to convince it to use its internal 8MHz oscillator instead of an external 16MHz crystal. With an Arduino Duemilanove, that’s not too difficult: follow the instructions from the Arduino To Breadboard article and you’re away.
It does, however, require a bit of time to set up the various wires; then more time is required moving the wires to upload a sketch to the newly-created Arduino-compatible microcontroller. Not much time, to be fair, but time nevertheless. So, the Arduino Burner was born.
The Arduino Burner is a simple shield based on the wiring from the Arduino To Breadboard article. It features room for a 16MHz crystal and decoupling capacitors, although these can be safely ignored if you’re programming an ATMega using the 8MHz breadboard bootloader. Installing them does, however, mean that you have the choice of flashing either bootloader; leaving the holes unpopulated means that you’ll be limited to the 8MHz version only. There’s also a 10K pullup resistor for the reset line, although again this is a ‘nice to have’ that can be ignored.
Usage is simple: stick a raw ATMega328 into the zero insertion force (ZIF) socket in the middle of the shield, set J1 to ‘BTLDR’ and open the RX and TX jumpers and you can burn a bootloader straight from the Arduino IDE. When your bootloader is installed, you can close the RX and TX jumpers and switch J1 to ‘SKETCH’ to upload a sketch – but remember to remove the Arduino’s own ATMega, or you’ll be uploading the sketch to that instead of your new chip!
The ZIF socket means that the legs of the ATMega328 are protected from damage – a key point if you’re burning large quantities of chips. It does, however, increase the cost of the shield quite significantly: a single 28W DIP socket is around 20p, while the particular low-profile ZIF chosen for this shield is around £8 – although this does drop as you buy quantities.
If you’re only creating one-off standalone projects, the Arduino Burner shield is overkill. If you’re doing large quantities and don’t fancy shelling out for a real AVR, however, it can be a serious time-saver.