Atmega328p At 3 3v

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