Thanks Gammon,
That worked great.
Bootloaded and fuse change all-in-one.
to streamline the process even more:
I was hoping to "upload (a sketch) using programmer" (w/ arduino as ISP) immediately after bootloading.
But for some reason I wasn't able to do that with your programmer. Maybe it wasn't designed to do that. (thoughts?)
So what I ended up doing was:
- upload the arduinoISP example to the Uno. (to use the uno as a programmer)
- installed my programming shield on top of the Uno (or wire your own version on a breadboard, as explained in Nick Gammon's blog)
- created my own "hardware" folder in MyDocuments/Arduino/
- dropped in the "Bootloader" folder w/ atmega sub-folder w/ ATmegaBOOT_168_atmega328_pro_8MHz.hex
- also under that same "hardware" folder is a "boards" txt file (sorry, can't remember where I downloaded it) that had something like this:
##############################################################
atmega328bb.name=ATmega328P (clock: 8MHz internal)(BOD: 2.7V)
atmega328bb.upload.protocol=arduino
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.speed=57600
atmega328bb.bootloader.low_fuses=0xE2
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0x05
atmega328bb.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F
atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.core=arduino:arduino
atmega328bb.build.variant=arduino:standard
atmega328bb.bootloader.tool=arduino:avrdude
atmega328bb.upload.tool=arduino:avrdude
I added this to the txt file, changing names and fuse-values accordingly:
##############################################################
atmega328bbv1.name=ATmega328P (clock: 8MHz internal)(BOD: 1.8V)
atmega328bbv1.upload.protocol=arduino
atmega328bbv1.upload.maximum_size=30720
atmega328bbv1.upload.speed=57600
atmega328bbv1.bootloader.low_fuses=0xE2
atmega328bbv1.bootloader.high_fuses=0xDA
atmega328bbv1.bootloader.extended_fuses=0x06
atmega328bbv1.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bbv1.bootloader.unlock_bits=0x3F
atmega328bbv1.bootloader.lock_bits=0x0F
atmega328bbv1.build.mcu=atmega328p
atmega328bbv1.build.f_cpu=8000000L
atmega328bbv1.build.core=arduino:arduino
atmega328bbv1.build.variant=arduino:standard
atmega328bbv1.bootloader.tool=arduino:avrdude
atmega328bbv1.upload.tool=arduino:avrdude
##############################################################
atmega328bbv2.name=ATmega328P (clock: 8MHz internal)(BOD: Disabled)
atmega328bbv2.upload.protocol=arduino
atmega328bbv2.upload.maximum_size=30720
atmega328bbv2.upload.speed=57600
atmega328bbv2.bootloader.low_fuses=0xE2
atmega328bbv2.bootloader.high_fuses=0xDA
atmega328bbv2.bootloader.extended_fuses=0x07
atmega328bbv2.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bbv2.bootloader.unlock_bits=0x3F
atmega328bbv2.bootloader.lock_bits=0x0F
atmega328bbv2.build.mcu=atmega328p
atmega328bbv2.build.f_cpu=8000000L
atmega328bbv2.build.core=arduino:arduino
atmega328bbv2.build.variant=arduino:standard
atmega328bbv2.bootloader.tool=arduino:avrdude
atmega328bbv2.upload.tool=arduino:avrdude
That then allowed me to simply select the board through the arduino IDE,
then "burn bootloader", then "upload using programmer".
Anyhow, hope that helps someone.