Uploading Hexfile to your arduino can be done using this application:
http://kmtronic.com/upload-hex-files-to-arduino.html
Uploading bootloaderThis is how you upload an Arduino Bootloader on an empty ATmega328 / ATmega328P-PU. Using an Arduino. (No need for a separate ISP Programmer).
From Arduino Uno to your clean chip can be done like this:other Arduino Uno.
- Open the ArduinoISP firmware (in Examples) to your Arduino board.
- Select the items in the Tools > Board and Serial Port > Arduino Uno.
- Upload the ArduinoISP sketch.
- Wire your Arduino board to the target as shown in the diagram below. (Note: you'll need to add a 10 uF capacitor between reset and ground.)
- Also connect TX from Arduino A to the RX of Arduino B and RX from Arduino A to TX Arduino B.
- Select Target Board in Tools > Board > Arduino Duemilanove w/ ATmega328
- Select programmer in Tools > Programmer > Arduino as ISP
- Use the Burn Bootloader > Arduino as ISP command.
- Go to Tools and Select Burn Bootloader. Done.
http://arduino.cc/en/Tutorial/ArduinoISP To upload on a breadboard without External clock.
- Download: Breadboard.zip
- Put boards.txt in your Arduino directory under Hardware > ATmega328. (For windows usually (C:/Program files/Arduino/Hardware/ATmega/boards.txt))
- Close Arduino IDE and reopen it.
- Open the ArduinoISP firmware (in Examples) to your Arduino board.
- Select the items in the Tools > Board and Serial Port > Arduino Uno.
- Upload the ArduinoISP sketch.
- Hook pin13 from Arduino to pin19 on Chip
- Pin12 from Arduino to pin18 on chip
- Pin11 from Arduino to pin17 on chip
- Pin10 from Arduino to pin1 on chip
- pin0 from Arduino to pin3 on chip
- pin1 from Arduino to pin2 on Chip
- connect 5V from Arduino to pins 7 and 20 on chip 14, connect GND from Arduino to pins 8 and 22 on chip
- Select Target Board in Tools > Board > ATmega328 on breadboard (8 MHz internal clock)
- Select programmer in Tools > Programmer > Arduino as ISP.
- Select Tools > Burn Bootloader. Done.
There is noIt's also possible with an Arduino Leonardo but you'll have to change some settings for that.
Note: You will need to use another ISPput target board to get yourArduino Duemilanove w/ ATmega328 for programming the new chip working properly(Uploading a code to it) instead of targeting Arduino Uno.