Can someone tell me what should be the setting of the fuses in an Arduino Leonardo?
I'm trying to reprogram the Bootloader through Atmel-ICE's ISP.
But I get the below error.
avrdude: WARNING: invalid value for unused bits in fuse "lock", should be set to 1 according to datasheet
This behaviour is deprecated and will result in an error in future version
You probably want to use 0xff instead of 0x3f (double check with your datasheet first).
It's a warning and can be ignored.
Are you experiencing other problems after burning the bootloader?
These are the settings from Arduino's boards.txt
leonardo.bootloader.low_fuses=0xff
leonardo.bootloader.high_fuses=0xd8
leonardo.bootloader.extended_fuses=0xcb
Ok thanks for your answer.
It is strange that you get this warning then?
Everything else seems to work fine. And in the end I had my fuses correct.
in0
February 16, 2022, 6:10pm
4
Arduino has complete control over which version of AVRDUDE is used to upload sketches to your Leonardo. This means the deprecation is not a problem because if the time comes when AVRDUDE fully drops support for the old fuses style, Arduino will be able to update to the new fuses style at the same time they update to the new version of AVRDUDE that requires the change.
The deprecation notice is more for people who aren't using AVRDUDE in an integrated platform with controlled tools dependencies. The deprecation notice is intended to push those users to migrate to the new fuse style since they might decide to update their AVRDUDE at any moment.
If you are interested in all the boring details, take a look at this issue report, and at all the links off of that page:
opened 01:53AM - 01 Aug 16 UTC
Using Arduino IDE 1.6.10/Arduino AVR Boards 1.6.12 with Windows 7 64 and 32 bit
… 1. Tools > Board > Uno
2. Tools > Programmer > AVRISP mkII
3. Tools > Burn Bootloader fails with:
```
Arduino: 1.6.10 (Windows 7), Board: "Arduino/Genuino Uno"
C:\Program Files (x86)\arduino-1.6.10\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\arduino-1.6.10\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v2 -Pusb -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m
avrdude: Version 6.3, compiled on Jun 22 2016 at 16:05:21
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Program Files (x86)\arduino-1.6.10\hardware\tools\avr/etc/avrdude.conf"
Using Port : usb
Using Programmer : stk500v2
avrdude: usbdev_open(): Found AVRISP mkII, serno: 000200217496
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : STK500V2
Description : Atmel STK500 Version 2.x firmware
Programmer Model: AVRISP mkII
Hardware Version: 1
Firmware Version Master : 1.23
Vtarget : 5.4 V
SCK period : 8.00 us
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% -0.00s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: erasing chip
avrdude: reading input file "0x3F"
avrdude: writing lock (1 bytes):
Error while burning bootloader.
Writing | ################################################## | 100% 0.01s
avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3F:
avrdude: load data lock data from input file 0x3F:
avrdude: input file 0x3F contains 1 bytes
avrdude: reading on-chip lock data:
Reading | ################################################## | 100% -0.00s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0xff != 0x3f
avrdude: verification error; content mismatch
avrdude done. Thank you.
```
The same issue occurs with all the Arduino AVR Boards I tested(every ATmega328P, ATmega168, ATmega32U4, and ATmega2560 based board in boards.txt) except for Gemma(which is unaffected by this issue or the patch).
Using the same programmer with avrdude 6.0.1-arduino5 works correctly.
The issue is caused by:
http://savannah.nongnu.org/bugs/?46759
It is fixed by modifying avrdude.conf according to this patch:
https://savannah.nongnu.org/patch/index.php?8996
I applied the patch to Arduino AVR Boards 1.6.12's avrdude.conf(attached: [avrdude.conf.txt](https://github.com/arduino/avrdude-build-script/files/392783/avrdude.conf.txt)) and modified the `unlock_bits` and `lock_bits` in boards.txt(attached:[boards.txt](https://github.com/arduino/avrdude-build-script/files/395092/boards.txt))(EDIT: boards.txt updated with a couple edits I missed), which has `extended_fuses` values also modified according to https://github.com/arduino/Arduino/pull/5182. I did **Tools > Burn Bootloader** on every ATmega328P, ATmega168, ATmega32U4, ATmega2560 based board in boards.txt using Atmel AVRISP mkII, USBasp, Arduino as ISP and USBtinyISP. I was unable to completely test the `lock_bits` with my USBtinyISP because it's been failing verification of larger hex files lately for some reason but that issue is happening universally and so is not specific to this test or avrdude 6.3.0-arduino2. I was able to successfully burn ATmega328P and ATmega168 based boards with the USBtinyISP.
The disadvantage I see to applying the patch to avrdude.conf is this will break any 3rd party boards packages that use the affected MCUs and Arduino's avrdude.conf. In order to fix this and maintain backwards compatibility with previous Arduino AVR Boards versions they will need to specify their own avrdude tool(EDIT: I had assumed this patch required a recent AVRDUDE version but this may not be the case?) in the JSON file(EDIT: as well as include it with manual installation files) and include their own avrdude.conf file. Some of these packages will already need to do this due to https://github.com/arduino/Arduino/issues/5175.
system
Closed
August 15, 2022, 6:11pm
5
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.