Skip to content

Known limitations of avrdude

mcuee edited this page May 17, 2024 · 15 revisions

Known issues for test-avrdude tool

  1. Only bash is supported. Please install bash if your OS does not ship with bash by default.
  2. Please specify -t . or -t c:/tmp if you use MSYS2 bash or git bash under Windows.

Known issues for programmers.

  1. CH341A: Not working with MSVC build: https://github.com/avrdudes/avrdude/discussions/1441 Not working with lower speed AVRs: https://github.com/avrdudes/avrdude/discussions/1440

  2. STK600 Missing TPI, JTAG and UPDI support: https://github.com/avrdudes/avrdude/issues/1047

  3. ftdi_syncbb Under Windows if you use D2XX driver (MSVC build), the speed will be quite slow compared to using libftdi (MinGW build).

  1. PICkit 2 does not work under macOS -- we need to migrate the code to use HIDAPI in order to support macOS
  1. Parallel port based programmer will nork under Windows and macOS. The old version of avrdude ships with giveio.sys driver which may work under Windows XP but not later version of Windows. It was removed in the following PR.
  1. HIDAPI based programmer will not work under OpenBSD/NetBSD/Solaris as it is not supported on those platforms. If you rebuild your kernel to block the kernel HID driver, they may work under OpenBSD/NetBSD.

  2. CH340 based serialupdi programmer does not work under FreeBSD due to the limitation of FreeBSD CH340 driver.

  1. Atmel ICE and Power Debugger TPI does not work under macOS.
  1. AVR-Doper support is broken in avrdude 6.4 and later

Known issues for bootloaders.

General limitation

  1. Bootloader can not program fuse bits

Known limitation of specific bootloaders

Recommendation from avrdude project is to use urboot bootloader to replace the Optiboot and stk500v2 bootloader for Classic AVR parts. It is well supported by avrdude using -c urclock.

  1. Arduino version of optiboot for Uno/Nano/etc is very old (4.4) and does not support EEPROM
  1. Optiboot may have issues with EEPROM support

  2. Optiboot may be prone to timeout in terminal mode. You may want to use -c urclock to help here.

  3. Arduino version of stk500v2 bootloader has EEPROM bug

  1. Even with the above EEPROM fix, the Arduino stk500v2 does not support page erase and has some limitations. https://github.com/avrdudes/avrdude/issues/1379

  2. urboot is usually good not to time out in terminal mode, but under Windows there may still timeout issues (Windows limitations).

OS Support limitations for avrdude 7.0 and above

  1. usually OS up to 5 years old should work fine even though you may need to upgrade certain dependancies (build tools and libraries) in order to build from the source codes.

  2. OS up to 10 years old may still work fine but you may need to upgrade the dependancies involved in order to build from source codes.

  3. Certain feature of avrdude may not work if the underlying library used are not supported in the OS (eg: hidapi, libserialport, libusb, libftdi, GNU Readline or libedit).

Windows: Windows 10 onwards. Take note Microsoft does not support Windows 7/8/8.1 as of Jan 2024. Windows 7 was released in 2009. However, avrdude may still work under Windows 7/8/8.1 even though they are not tested for release. Pull requests may be accepted to fix issues related to Windows 7/8/8.1 if passing the reviews from the maintainers.

Linux: Ubuntu 16.04 and later (older version may still work). Exception: linuxgpio is only supported from Ubuntu 20.04 onwards.

You may need pretty recent version of libgpiod if you want to get Linux GPIO to work with git main.

macOS: Mac OS X Snow Leopard (10.6) i386/x64 and later, macOS on x64 and Apple Silicon. Take note Apple only support macOS 12/13/14 now. Homebrew may support macOS 12/13/14 only. https://ports.macports.org/port/avrdude/details/ https://docs.brew.sh/Installation)

FreeBSD: Take note FreeBSD project only suppors Release 13.2/14.0 now. https://www.freebsd.org/releases/

OpenBSD: HIDAPI based programmer will not work. Take note OpenBSD project only supports most recent releases. libserialport based features may not work either. https://endoflife.date/openbsd

NetBSD: HIDAPI based programmer will not work. Take note NetBSD project now only supports 9.x and 10.x releases. libserialport based features may not work either. https://www.netbsd.org/releases/formal.html

Solaris/Open Solaris based OS: not supported. HIDAPI based programmer will not work. libserialport based features may not work either.

DragonFly BSD: not supported. Mainline git and avrdude 7.3 release will not work under DragonFly BSD (PR is welcome to fix the issue). DragonFly BSD have avrdude 7.1 DPorts.

https://github.com/DragonFlyBSD/DPorts/tree/master/devel/avrdude

Haiku: not supported. Mainline git and avrdude 7.3 release will not build under Haiku (PR is welcome to fix the issue). Haiku has avrdude 7.0 port.

https://depot.haiku-os.org/#!/pkg/avrdude/haikuports/haikuports_x86_64/7/0/-/-/2/x86_64?bcguid=bc156-BTPG