Skip to content

Known limitations of avrdude

mcuee edited this page Jun 12, 2025 · 24 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 for hidusb is broken (avrdude 6.4 to 8.0 only)
  1. Knows limitation of the Windows MSVC build and MinGW with regard to programmers.

https://github.com/avrdudes/avrdude/wiki/Getting-Nightly-Builds-for-AVRDUDE#windows-static-linking-to-dependancies

  1. pkobn_updi may have stability issues under FreeBSD. You may need to unplug and plug to get it working.
  1. ATtiny416 Xplained Nano and similar boards may have stability issues under FreeBSD. Retry after failed runs may fix the issue. You may want to unplug and plug too if you encounter issues.

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).

  3. Urboot autobaud FW for Arduino Uno/Mega with ATmegaxxU2 based USB Serial FW may not work well under OpenBSD. Adding -x strict may fix the issue.

  1. Optiboot may have issues with more difficult hex files, like those with holes inside.
  1. Optiboot may not work for Arduino Uno/Mega with ATmegaxxU2 based USB Serial FW under OpenBSD.

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 dependencies (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 dependencies 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 and later. 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.

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 13 and later now. Homebrew may support macOS 13 and later only. https://ports.macports.org/port/avrdude/details/ (only up to avrdude 7.3 now) https://docs.brew.sh/Installation)

FreeBSD: Take note FreeBSD project only supports Release 13.x/14.x 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.2 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

Clone this wiki locally