Nov 17th, 2013 under Programming Arduino
Venturing down the path of low voltage Atmega (Arduino)? The following references the two steps (set your fuses and add a board entry) to allow you to use an off-the-shelf 328p “naked” and at very low voltage ranges (disabling brown-out).
If your 328 chip is using the default fuses (16 MHz external clock setup), run the following avrdude commandline to re-write fuses. This disables brown-out detection completely (allowing for low voltage thresholds), and sets to use the internal, 8MHz clock:
avrdude -c usbtiny -p m328p -B 1.0 -u -U lfuse:w:0xe2:m -U hfuse:w:0xd8:m -U efuse:w:0xff:m
Last but not least, add the following to your “boards” entry in the ArduinoIDE:
############################################################## atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock) atmega328bb.upload.protocol=stk500 atmega328bb.upload.maximum_size=30720 atmega328bb.upload.speed=57600 atmega328bb.bootloader.low_fuses=0xE2 atmega328bb.bootloader.high_fuses=0xD8 atmega328bb.bootloader.extended_fuses=0x07 atmega328bb.bootloader.path=arduino:atmega atmega328bb.bootloader.file=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