Cannot program fuses using avrdude on Arduino NANO

Hello there,

I am trying to program EEPROM fuse bit EESAVE to 1 to disable EEPROM preserve with each chip erase cycle on my Arduino NANO, but seems the device is protected against fuses programming...

Here is Makefile i use:

CHIP_ALIAS = m328p
PROGRAMMER = arduino
BAUD_RATE  = '57600'
PORT       = '/dev/ttyUSB0'
CHIP       = 'atmega328p'
AVR_DUDE   = avrdude -c ${PROGRAMMER} -b${BAUD_RATE} -P${PORT} -p${CHIP_ALIAS}

##
# Test disable ESAVE bit by bringing the bit to one
# -V -> bypasses verfications
# -F -> force
##
setFuses: 
	sudo ${AVR_DUDE} -D -V -F -U hfuse:w:0x08:m

readFuses:
	sudo ${AVR_DUDE} -D -V -F -U hfuse:r:-:i

This is the command i use:

make setFuses readFuses

This is the output:

$ make setFuses readFuses 
sudo avrdude -c arduino -b'57600' -P'/dev/ttyUSB0' -pm328p -D -V -F -U hfuse:w:0x08:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "0x08"
avrdude: writing hfuse (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;  
Writing | ################################################## | 100% 0.05s

avrdude: 1 bytes of hfuse written

avrdude: safemode: hfuse changed! Was 8, and is now 0
Would you like this fuse to be changed back? [y/n] n
avrdude: safemode: Fuses OK (E:00, H:08, L:00)
avrdude: stk500_recv(): programmer is not responding

avrdude done.  Thank you.

sudo avrdude -c arduino -b'57600' -P'/dev/ttyUSB0' -pm328p -D -V -F -U hfuse:r:-:i

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading hfuse memory:

Reading | ################################################## | 100% 0.00s

avrdude: writing output file "<stdout>"
:0100000000FF
:00000001FF

avrdude: safemode: Fuses OK (E:00, H:00, L:00)

avrdude done.  Thank you.

So, as you can see, there is this line:
avrdude: stk500_recv(): programmer is not responding
And
avrdude: safemode: Fuses OK (E:00, H:00, L:00)
Showing that no write has been performed on the hfuse byte.

Any ideas ?

Thanks.

Are you using a device programmer?
The bootloader is not capable of changing the fuses.

No, i am only specifying 'arduino' as a programmer, but no external programmer.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.