AVR Fuses...

There is an old engineering adage "If it ain't broke, don't fix it!" and this perfectly describes the way we should treat the AVR fuses. If you understand the fuses and their implications, fine and good luck but, if you don't, be fully aware that you can "brick" your AVR by messing about.

I'll list the Atmega328 fuses and give their meanings. Most of the information is specific to a device so don't under any circumstances use the fuse examples given here on any other device. There are 3 "fuse" bytes on the Atmega328 and 1 "lock" byte which are simply Flash memory bits which turn on/off/specify specific functions of the device:

The example is for an ATmega328P for use in an Arduino UNO board.

Fuse Byte bit Default
Setting
Purpose Arduino Uno
Setting
HEX
low 7 0 **Divide Clock by 8 1 0xFF
  6 1 Clock Output 1
5 1 Select Start-up Time 1
4 0 1
3 0 Select Clock Source 1
2 0 1
1 1 1
0 0 1
high 7 1 ***External Reset Disable (NEVER CHANGE!!!!!)*** 1 0xDE
  6 1 Debug Wire Enable 1
5 0 SPI Enabled 0
4 1 Watchdog Timer Always On 1
3 1 EEPROM Memory preserved during Chip Erase 1
2 0 Boot Sector Size 1
1 0 1
0 1 Select Reset Vector 0
extended 7 1 unassigned 1 0xFD
  6 1 unassigned 1
5 1 unassigned 1
4 1 unassigned 1
3 1 unassigned 1
2 1 Brown Out Detector (voltage below which the device will shut down.
This is designed to shut down the device if the supply voltage falls
to prevent erratic operation. Set to suit Vcc voltage.
1
1 1 0
0 1 1

1 = Un-programmed 0 = Programmed

*** If you change this fuse bit to 0, the RESET pin is disabled and the device will no longer be programmable except by using a High Voltage Programmer!

** Note that the "Divide by 8" fuse is set by default. Atmega328s and many other AVRs are shipped with their 8MHz internal clock running and the "Divide by 8" fuse programmed. They therefore run at 1MHz by default.

To fully understand the fuses, please refer to the relevant datasheet for your device.

Lock bits determine how memory and/or boot areas are protected. The lock bits can be safely disabled i.e. all "1" unless you have a specific need such as to protect a bootloader from being overwritten.