-
Notifications
You must be signed in to change notification settings - Fork 145
FAQ
https://github.com/avrdudes/avrdude/wiki/Known-limitations-of-avrdude
https://avrdudes.github.io/avrdude/
- Create a separate issue for each problem
- Tell us what exactly the problem is and how you came to experience it
- OS
- Programmer
- Part
- How host, programmer and part are connected/rigged up
- AVRDUDE binary version used (in bash
avrdude -v 2>&1 | grep -i version
) - Full command line including all options
- Output of the command
- Please try to use the latest released version
- You may be requested to try out git main as well
- Sometimes it also helps us if you upload a file with the
-vv
or-vvvv
output - Sometimes it also helps us if you post the hex file used (if you are okay to share the hex file)
- What you would have expected to happen
Latest binary snapshots are linked here, for Linux, macOS and Windows. https://github.com/avrdudes/avrdude/wiki/Getting-Nightly-Builds-for-AVRDUDE
I am new to avrdude and I do not have a programmer, what are the recommended programmers to be used with avrdude?
avrdude supports many programmers. Here are some examples of low cost and well-supported programmers.
- usbasp, usbtinyisp, stk500v2 clones, AVRISPmkII clones, etc, for classic AVRs
- AVRISP mkII clones also support xMega AVRs
- serialupdi for new UPDI parts; jtag2updi can be used as well but it does not support newer UPDI parts.
- If you prefer official tools from Microchip, then SNAP is also well supported. PICKit 4 is also well supported but it is more expensive and considered EOL by Microchip.
I have got the programmer working. Now I want to try using bootloader. which bootloader should I use?
Survey of AVR bootloaders:
We recommend urboot for classic AVR chips.
For xmega, you may want to try xboot (AVR109 based)
For UPDI parts, you may want to try optiboot_x and optiboot_dx.
If you use USB AVRs, you may want to try Caterina (AVR109 based) or FLIP1/FLIP2 (Atmel extension to USB DFU).
If you want to do more, try "terminal mode" (-t). You can browse around interactively through your device, including the fuse values. Non-interactively, it would need -U options, like:
avrdude … -U lfuse:r:-:h -U hfuse:r:-:h -U efuse:r:-:h
You can use piping.
echo "dump eeprom 0 0x10" | .\avrdude_pr1121v1 -c arduino -P COM4 -b 115200 -t
Please refer to the above issue for the ways to write all ELF sections at once. Step 1: to check the unique memory sections.
avrdude `avrdude -pATmega328p/At | grep ^.ptmm.A | cut -f3 | uniq | sed "s/.*/-U &:w:blink.elf:a/"`
Or
$ avrdude -pm32u4/ot|grep write|cut -f3|uniq
eeprom
flash
lfuse
hfuse
efuse
lock
Step 2: to write the avrdude command based on the output of Step 1.
avrdude -v -pm32u4 -cusbasp -U{eeprom,flash,{l,h,e}fuse,lock}:w:"$1":e "${@:2}"
Please refer to the following discussion for the tips under different OS.
PR #1507 has been merged to address this issue. It will be included in avrdude 7.3 release.
Please refer to the following issue. It has the driver attached as well.