Avrdude error programmer did not respond to command exit bootloader

Здравствуйте, столкнулся с проблемой на леонардо ETH POE, выглядит так: avrdude: butterfly_recv(): programmer is not responding avrdude:...
Статус темы:

Закрыта.
  1. Здравствуйте, столкнулся с проблемой на леонардо ETH POE, выглядит так:

    avrdude: butterfly_recv(): programmer is not responding
    avrdude: butterfly_recv(): programmer is not responding
    avrdude: butterfly_recv(): programmer is not responding
    avrdude: butterfly_recv(): programmer is not responding
    avrdude: butterfly_recv(): programmer is not responding
    Found programmer: Id = «��»; type = a
    Software Version = .; Hardware Version = �.
    avrdude: butterfly_recv(): programmer is not responding
    avrdude: butterfly_recv(): programmer is not responding
    avrdude: error: buffered memory access not supported. Maybe it isn’t
    a butterfly/AVR109 but a AVR910 device?
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    avrdude: butterfly_recv(): programmer is not responding
    avrdude: error: programmer did not respond to command: leave prog mode
    avrdude: butterfly_recv(): programmer is not responding
    avrdude: error: programmer did not respond to command: exit bootloader
    avrdude: error: programmer did not respond to command: exit bootloader
    Проблема вылезла при попытке залить скетч, предидущий скетч заливался нормально, подскажите что с этим можно сделать?

    До возникновения этой ошибки компилятор написал что скетч слишком большой и программа может работать не стабильно, загрузил его, потом его уменьшил и снова загрузил, загрузился без проблем, потом еще поправил и загружаться он отказался

    не загружается ни какой скетч ни мой, ни пример из библиотеки ни пустой

    Последнее редактирование модератором: 18 июл 2020

  2. Значт, ты загрущик затёр. Наерное.

  3. А как определить точно, затер или не затер??? Перешить загрузчик нажатием кнопки резет во время загрузки скетча не получается, ничего нового не происходит и в итоге выдает тот же самый список ошибок,

    плату в устройствах компьютер видит все время она не отваливается

    работаю на маке, запустил по виндой висит 5 минут не выдает ни каких сообщений, потом выдало — произошла ошибка

    Последнее редактирование модератором: 18 июл 2020

Статус темы:

Закрыта.

I tried to upload my code to an Arduino Leonardo through theArduino IDE, but:

avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = "ю"; type = ё
Software Version = h.; Hardware Version = u.M
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: leave prog mode
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: exit bootloader
avrdude: error: programmer did not respond to command: exit bootloader

What is wrong? How do I fix this?

dda's user avatar

dda

5,9322 gold badges25 silver badges34 bronze badges

asked Apr 9, 2018 at 13:50

Ilya Savitsky's user avatar

2

There are some tips:

  • This is very often error message when you using damaged cable to upload your code. Try it with another cable.
  • If you are using AVRISP mkII try to switch to USBasp
  • Check if you have current version of Arduino IDE.
  • Check your circuit. It could effect the communication.
  • Go to the Board manager :

Board Manager in Arduino IDE

Than select latest version of support of your board and click install button.

enter image description here

  • You can try burn new bootloader:
    1. After connect the AVR-USBASP from your computer to the arduino board, open the arduino IDE and click on Tools menu and under the Programmer sub-menu select USBasp. Be sure that USBasp driver is installed!

Select USBasp as programer

  1. Then, click on the Burn Bootloader to start burning the bootloader under Tools menu.

Burn boot loader

  1. After few minutes the Arduino IDE should show this message:

Done burning bootloader

answered Apr 10, 2018 at 22:34

Jan Černý's user avatar

Jan ČernýJan Černý

1,2042 gold badges18 silver badges31 bronze badges

1

I had the same problem and it seems it was because the global variables were taking up too much memory space.
I managed the upload through the following actions:
1. Reduce sketch size (<60% dynamic memory is ok)
2. Connect the USB cable just before the upload starts.
Doing this, the problem went away.
(I am using a Leonardo beetle board)

answered Nov 10, 2022 at 18:37

JFV's user avatar

I’m trying to upload a Blink example to run on a pro-micro (leonardo) but it is not working anymore (it was just working yesterday).

Steps to reproduce:

  • Plug the device in USB port
  • Open Blink example in Arduino IDE (version 1.8.8)
  • Select the port and board accordingly to Arduino Leonardo
  • Compile and try to upload it.

The code compile successfully but when uploading it just halts. The ide console displays:

avrdude: error: programmer did not respond to command: exit bootloader

Forcing reset using 1200bps open/close on port /dev/ttyACM0 PORTS
{/dev/ttyACM0, } / {/dev/ttyACM0, } => {} PORTS {/dev/ttyACM0, } /
{/dev/ttyACM0, } => {} PORTS {/dev/ttyACM0, } / {/dev/ttyACM0, } => {}
PORTS {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} PORTS {/dev/ttyACM0, }
/ {/dev/ttyACM0, } => {} PORTS {/dev/ttyACM0, } / {/dev/ttyACM0, } =>
{} PORTS {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} PORTS
{/dev/ttyACM0, } / {/dev/ttyACM0, } => {} PORTS {/dev/ttyACM0, } /
{/dev/ttyACM0, } => {} PORTS {/dev/ttyACM0, } / {/dev/ttyACM0, } => {}
PORTS {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} PORTS {/dev/ttyACM0, }
/ {/dev/ttyACM0, } => {} PORTS {/dev/ttyACM0, } / {/dev/ttyACM0, } =>
{} PORTS {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} PORTS
{/dev/ttyACM0, } / {/dev/ttyACM0, } => {} PORTS {/dev/ttyACM0, } /
{/dev/ttyACM0, } => {} PORTS {/dev/ttyACM0, } / {/dev/ttyACM0, } => {}
PORTS {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} PORTS {/dev/ttyACM0, }
/ {/dev/ttyACM0, } => {} PORTS {/dev/ttyACM0, } / {/dev/ttyACM0, } =>
{} Uploading using selected port: /dev/ttyACM0
/home/fabio/Downloads/pacotes/arduino-1.8.8/hardware/tools/avr/bin/avrdude
-C/home/fabio/Downloads/pacotes/arduino-1.8.8/hardware/tools/avr/etc/avrdude.conf
-v -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D -Uflash:w:/tmp/arduino_build_350609/Blink.ino.hex:i

avrdude: Version 6.3-20171130
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

     System wide configuration file is "/home/fabio/Downloads/pacotes/arduino-1.8.8/hardware/tools/avr/etc/avrdude.conf"
     User configuration file is "/home/fabio/.avrduderc"
     User configuration file does not exist or is not a regular file, skipping

     Using Port                    : /dev/ttyACM0
     Using Programmer              : avr109
     Overriding Baud Rate          : 57600
     AVR Part                      : ATmega32U4
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PA0
     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  9000  9000 0x00 0x00
       flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
       lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       lock           0     0     0    0 no          1    0      0  9000  9000 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 : butterfly
     Description     : Atmel AppNote AVR109 Boot Loader

Connecting to programmer: .avrdude: butterfly_recv(): programmer is
not responding

avrdude: butterfly_recv(): programmer is not responding

A strange behavior I noticed is each time I plug the device again in the usb port different leds are light up, some times only RX, sometimes only TX and sometimes none (the power led is always on)

What could be happening here? Can it be the problem on the hardware?

Comments

@sidcarter

Trying to flash a contra which I’ve flashed in the past and I get this error now:

I’m on MacOS Catalina Beta 1 now, which is the main difference now. Merged the latest master into my branch too. I’ve tried the remove USB, reset and plug USB back in. No change in the error.

I’ve also uninstalled avrdude and reinstalled it too. No dice.
I’ve tried the QMK Toolbox and I get the same error there too. QMK Toolbox also has worked in the past. I’ve downloaded the most recent release and tried too. Didn’t work either.

Detecting USB port, reset your controller now........
Device /dev/tty.usbmodem14601 has appeared; assuming it is the controller.
Waiting for /dev/tty.usbmodem14601 to become writable.

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding

avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_drain(): read error: Device not configured
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = ""; type =
    Software Version = .; Hardware Version = .
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: leave prog mode
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: exit bootloader
avrdude: ser_close(): can't reset attributes for device: Device not configured

avrdude done.  Thank you.

make[1]: *** [avrdude] Error 1
make: *** [contra:sirovia:avrdude] Error 1
sidepelican, Brookke, jamztang, sigul, jyp, Ardakilic, triplepoint, pkieszcz, pascaldekloe, rreinhardt9, and 8 more reacted with thumbs up emoji

@fauxpark

Could you please post the output of the avrdude command, but with -vv?

@sidcarter



Copy link


Contributor

Author

@fauxpark

avrdude -p atmega32u4 -c avr109 -U flash:w:/Users/sidcarter/Labor/qmk_firmware/contra_sirovia.hex:i -P /dev/cu.usbmodem14501  -vv

avrdude: Version 6.3, compiled on Jun 15 2019 at 16:34:39
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/usr/local/etc/avrdude.conf"
         User configuration file is "/Users/sidcarter/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.usbmodem14501
         Using Programmer              : avr109
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         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  9000  9000 0x00 0x00
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 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 : butterfly
         Description     : Atmel AppNote AVR109 Boot Loader

Connecting to programmer: .avrdude: ser_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding

avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_drain(): read error: Device not configured
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = "�{{���"; type =
    Software Version = .; Hardware Version = .
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: leave prog mode
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: exit bootloader
avrdude: ser_close(): can't reset attributes for device: Device not configured

avrdude done.  Thank you.

@fauxpark

Do you also see a /dev/tty.usbmodem14501? If so, does that work instead?

@sidcarter



Copy link


Contributor

Author

Do you also see a /dev/tty.usbmodem14501? If so, does that work instead?

did try with a tty too — same error

avrdude -p atmega32u4 -c avr109 -U flash:w:/Users/sidcarter/Labor/qmk_firmware/contra_sirovia.hex:i -P /dev/tty.usbmodem14401  -vv

avrdude: Version 6.3, compiled on Jun 15 2019 at 16:34:39
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/usr/local/etc/avrdude.conf"
         User configuration file is "/Users/sidcarter/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/tty.usbmodem14401
         Using Programmer              : avr109
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         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  9000  9000 0x00 0x00
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 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 : butterfly
         Description     : Atmel AppNote AVR109 Boot Loader

Connecting to programmer: .avrdude: ser_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding

avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_drain(): read error: Device not configured
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = "W���"; type =
    Software Version = .; Hardware Version = .
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: leave prog mode
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: exit bootloader
avrdude: ser_close(): can't reset attributes for device: Device not configured

avrdude done.  Thank you.

@drashna

Can you flash it on a different device?

@sidcarter



Copy link


Contributor

Author

Just patched my fc660c

Creating load file for flashing: .build/fc660c_siroleo.hex                                          [OK]
Copying fc660c_siroleo.hex to qmk_firmware folder                                                   [OK]
Checking file size of fc660c_siroleo.hex                                                            [OK]
 * The firmware size is fine - 23200/28672 (5472 bytes free)
dfu-programmer: no device present.
Error: Bootloader not found. Trying again in 5s.
dfu-programmer: no device present.
Error: Bootloader not found. Trying again in 5s.
Bootloader Version: 0x00 (0)
Erasing flash...  Success
Checking memory from 0x0 to 0x6FFF...  Empty.
Checking memory from 0x0 to 0x5AFF...  Empty.
0%                            100%  Programming 0x5B00 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]  Success
0%                            100%  Reading 0x7000 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]  Success
Validating...  Success
0x5B00 bytes written into 0x7000 bytes memory (81.25%).

@drashna

Sorry, I mean on a different host computer.

The fc660c is using DFU, not caterina/avrdude, so it’s a very different ballpark.

Also, i may be worth running ls /dev/tty.usb* to get a list of devices. Which would check to see which COM ports are active.

Also, it may be that the controller is soft bricked. And if it is, you’ll need to ISP Flash the bootloader.
And in that case, you want to take a look at this link: https://docs.qmk.fm/#/isp_flashing_guide
And if you do end up doing that, you may want to look at this link (to replace the bootloader with something a LOT more sane): https://www.reddit.com/r/olkb/comments/8sxgzb/replace_pro_micro_bootloader_with_qmk_dfu/

@sidcarter



Copy link


Contributor

Author

@drashna I think it’s just the host computer. let me test it on a local computer and will let you know.

On an unrelated note, just trying to flash a dz60rgb and that crashes the latest QMK Toolbox on macOS Catalina 10.15.

@fauxpark

@sidcarter



Copy link


Contributor

Author

@fauxpark

I meant on the Toolbox repo 😉 but in any case, I can tell from a quick glance at that crash log what the problem is, and I should have picked up on it when you mentioned the DZ60RGB. See qmk/qmk_toolbox#84 (comment)

@sidcarter



Copy link


Contributor

Author

@drashna got to try it on a different Mac. This one had Mac OS 12.6 (Sierra). I was able to flash the contra without any issue.

I recently updated to beta 2 on MacOS Catalina, so I tried to flash the contra again and it’s still failing with the same error. Let me know if you need any additional info. thanks

@fauxpark

Don’t know why I didn’t think of this before, but does running avrdude with sudo have any effect?

@sidcarter



Copy link


Contributor

Author

Don’t know why I didn’t think of this before, but does running avrdude with sudo have any effect?

tried that too — no difference

@jamztang

@sidcarter were you able to fix for the command line?

@sidcarter



Copy link


Contributor

Author

@sidcarter were you able to fix for the command line?

nope. still no luck on the command line either so far.

@tylerwince

Any update on this? Or a workaround for the new beta?

@sidcarter



Copy link


Contributor

Author

@tylerwince sold my contra — so can’t test this anymore. now I have no devices that require avrdude. bootloadhid — now that’s another ballgame :D

@tylerwince

Bummer. — I tried to flash an avrdude the other day to no avail. I will try to find a workaround 👍

@drashna

From what I understand, this may actually be a bug in Catalina, specifically. Not sure there is a workaround. At least at this point.

@sigul

Still need to be fixed.
Here’s what I got from the last version of Catalina.

Caterina device connected
*** Attempting to flash, please don’t remove device
Found port: /dev/cu.usbmodem14301

avrdude -p atmega32u4 -c avr109 -U flash:w:/Users/silviogulizia/Downloads/contra_default_EA425786.hex:i -P /dev/cu.usbmodem14301 -C avrdude.conf
avrdude: warning at avrdude.conf:14976: part atmega32u4 overwrites previous definition avrdude.conf:11487.

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding
*** Caterina device disconnected

@nooges
nooges

changed the title
Contra flashing — avrdude: butterfly_recv(): programmer is not responding

Pro Micro (w/Caterina bootloader) flashing — avrdude: butterfly_recv(): programmer is not responding

Sep 16, 2019

@pixelbreaker

I’m also having this issue on Catalina latest beta, having to flash using another machine for now 😢

@nooges

Doing some initial investigation into the issue, it looks like the reset of the MCU (using the 1200 baud toggle method) that’s done before flashing isn’t working properly on Catalina. If trying to do stty -f /dev/cu.usbmodemXXX 1200, this error shows up in dmesg on Catalina beta only: mctl RS232_S_OUTPUTS failed e0005000.

Testing method:

  1. Press hardware reset button (or short RST and GND) on Pro Micro
  2. Run stty -f /dev/cu.usbmodemXXX 1200
  3. Run sudo dmesg and observe mctl RS232_S_OUTPUTS failed error

The error is also observed when avrdude is run, presumably because it also tries doing the 1200 baud toggle to reset the MCU.

Further testing with Arduino IDE and stock Pro Micro also had the same problem on Catalina.

@yanfali

Apple doesn’t test anything that slow probably. Since this breaks Arduino IDE, I would except their much larger community to kick up a fuss.

@lattedesu

Hey guys, just out of curiosity, when I upgrade to Catalina, will it work with docker or a vm solution such as Virtualbox? This issue is simply preventing me to upgrade.

@fauxpark

@lattedesu I don’t know about Docker, but you can definitely use Windows or Linux on Virtualbox and pass through the bootloader device in order to flash :)

This only applies to the Caterina bootloader (Pro Micro, Arduino, etc), and possibly Massdrop boards as the ATSAM bootloader also appears as a serial port. dfu-programmer, dfu-util and teensyloader all seem to work fine.

@w-A-L-L-e

Any updates on this??? Just updated from mojave to catalina yesterday and instantly noticed it broke avrdude flashing with caterina bootloaders. The device reset still works fine and port is changed/available from dev/cu.usbmodem.C1 to /dev/cu.usbmodem14011 after reset. But avrdude indeed can’t communicate with the bootloader -> basically ser_receive/ser_send is broken. It’s not an avr-gcc issue as compiling works fine and produces a .hex that is usuable when flashing with other methods(external programmer for instance). It’s purely a communication issue introduced on MacOs Catalina between avrdude and the caterina cdc bootloader (used on various arduino leonardos and clones). Mojave and any older os x (Sierra, High Sierra etc,) all work fine.

Als serial comms to regular sketch code still works fine. It’s only when in bootloader that serial communication is failing here.

@w-A-L-L-e

More info. Suspecting that vdc assistant on mac os catelina that’s interfering with the communication. This background service tries to detect the arduino as a usb camera (and is sending most likely garbage on the serial that crashes the bootloader) and therefore messes up the communication with avrdude. When arduino leonardo enters bootloader in console log there are these errors popping up :
CMIO_DPA_VDC_Server_Assistant.cpp:1383:GetDeviceByGUID No match for specified GUID 0x1420000023418036

DeviceArrived caught an exception from determining the deviceType (0xffffffffffffffff) or removing the device

CMIO_DPA_VDC_Server_USBClient.cpp:334:USBClient [guid:0x1420000023418036] Could not find SC_VIDEOCONTROL interface

DeviceArrived Found a camera (0x1420000023418036) , but was not able to start it up (0x0 — (os/kern) successful)

Ok : UPDATE this is not the issue, nothing is fixed when stopping VDC Assistant. So bug must be elsewhere.

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.cmio.VDCAssistant.plist

After stopping it same bug is still happening avrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = «»; type =
Software Version = .; Hardware Version = .

I see that the bootloader crashes though as ours does some special led blinking on different steps and that is also disrupted on macos catalina.

@w-A-L-L-e

Today big +900Mb update on Catalina, installed it. But still no dice, same issue remains with avrdude being broken here. Also noticed other broken things for instance the mini display ports no longer support higher 4k resolutions anymore. So apart from 32bit a whole other range of stuff got broken on Catalina (really regret this upgrade so far…). To others as advice: for now stick with Mojave its more stable / less bugs.

@Ardakilic

I have just sent a feedback to Apple via https://feedbackassistant.apple.com/ , regarding this issue. I wonder if anything would turn up, but I hope someone at Apple addresses this.

@tamanishi

@Ardakilic

I can confirm flashing works on VirtualBox which is installed over Catalina. I’ve tried with Ubuntu 16.04 which was already installed, but I’m sure it’ll work on 18.04 or newer non-lts versions. I was tired as hell to compile the hex file on mac and then flash it on Windows. I’ve tried with a vagrant box which I had installed already for a local environment of another project.

You have to install the VirtualBox extension pack (you can find it on downloads page of Virtualbox) for USB support, and then you have to enable USB forwarding. I’ve enabled USB 2.0. Shut down the vm, at the settings page of the vm, go to USB settings, quickly set the keyboard at bootloader mode (short the reset pin), and click the green plus arrow at the right section (add a device icon). You’ll see the Arduino (or whatever it’s shown for your case) on USB devices list. Set it, save it and boot the virtual machine.

To test that USB works, while inside the vm (you can ssh or whatever), set your keyboard at bootloader mode again (short the reset pin), and type lsusb while at the bootloader mode. If you see Arduino device at the USB devices list while the device is at bootloader mode, you’re good to go.

Just a thing, my default vagrant user didn’t have serial port write access through USB, so I had to run the command as superuser, something like sudo make keyboard:layout:avrdude to circumvent this.

@p1ne

@pddg

In my case,I have successfully flush the firmware by using Vagrant + VirtualBox on macOS Catalina.
My environment is as follows.

  • macOS Catalina 10.15
  • Homebrew 2.1.15
  • avrdude version 6.3
  • Vagrant 2.2.5
    • vagrant-vbguest 0.20.0
  • VirtualBox 6.0.14r133895
    • VirtualBox Extension Pack 6.0.14

VirtualBox extension pack is required to use USB device on guest OS. I use following Vagrantfile.

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|

  config.vm.box = "hashicorp/bionic64"
  config.vm.provider "virtualbox" do |v|
    v.name = "VM to flash firmware into ProMicro"
    v.customize ["modifyvm", :id, "--usb", "on"]
    v.customize ["modifyvm", :id, "--usbehci", "on"]
    # Please rewrite according to your environment. VID/PID is required.
    v.customize ["usbfilter", "add", "0",
                 "--target", :id,
                 "--name", "Arduino Micro (writable)",
                 "--vendorid", "2341",
                 "--productid", "0037",
                 "--remote", "no"]
    v.customize ["usbfilter", "add", "1",
                 "--target", :id,
                 "--name", "Arduino Micro",
                 "--vendorid", "2341",
                 "--productid", "8037",
                 "--remote", "no"]
  end

  # I used local qmk_firmware repository.
  # Please rewrite according to your environment.
  config.vm.synced_folder "/Users/username/qmk_firmware", "/qmk_firmware"
  config.vbguest.auto_update = true

  # Install build tools
  config.vm.provision "shell", privileged: false, inline: <<-SHELL 
    sudo apt-get update
    sudo apt-get install -y python3-pip avrdude
    /qmk_firmware/util/qmk_install.sh
   SHELL
end

The procedure is as follows.

  1. Install Vagrant and VirtualBox and Extension pack
  2. Install vagrant plugin (vagrant plugin install vagrant-vbguest)
  3. Update Guest additions (vagrant vbguest)
  4. Confirm the VID/PID of your device (VBoxManage list usbhost)
    • In bootloader mode, the VID/PID will change. You should confirm it too.
  5. Write Vagrantfile (I restarted my Mac after this)
  6. Unplug the USB device
  7. Launch VM (vagrant up) and SSH into it (vagrant ssh)
  8. Plug the USB device
  9. Build your firmware (cd /qmk_firmware && make KEYBOARD:KEYMAP:avrdude)
  10. Short the reset pin if the command require to reset the device.

I was able to flush the firmware this way, but the procedure may be inaccurate :(

@RaoulDuke-Esq

Had my fingers crossed that this would be fixed in 10.15.1, but alas… Will have to continue hoping for change. In the meanwhile, gonna use a spare RPI for QMK flashing purposes.

@tomwinget

In my case,I have successfully flush the firmware by using Vagrant + VirtualBox on macOS Catalina.
My environment is as follows.

  • macOS Catalina 10.15

  • Homebrew 2.1.15

  • avrdude version 6.3

  • Vagrant 2.2.5

    • vagrant-vbguest 0.20.0
  • VirtualBox 6.0.14r133895

    • VirtualBox Extension Pack 6.0.14

VirtualBox extension pack is required to use USB device on guest OS. I use following Vagrantfile.

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|

  config.vm.box = "hashicorp/bionic64"
  config.vm.provider "virtualbox" do |v|
    v.name = "VM to flash firmware into ProMicro"
    v.customize ["modifyvm", :id, "--usb", "on"]
    v.customize ["modifyvm", :id, "--usbehci", "on"]
    # Please rewrite according to your environment. VID/PID is required.
    v.customize ["usbfilter", "add", "0",
                 "--target", :id,
                 "--name", "Arduino Micro (writable)",
                 "--vendorid", "2341",
                 "--productid", "0037",
                 "--remote", "no"]
    v.customize ["usbfilter", "add", "1",
                 "--target", :id,
                 "--name", "Arduino Micro",
                 "--vendorid", "2341",
                 "--productid", "8037",
                 "--remote", "no"]
  end

  # I used local qmk_firmware repository.
  # Please rewrite according to your environment.
  config.vm.synced_folder "/Users/username/qmk_firmware", "/qmk_firmware"
  config.vbguest.auto_update = true

  # Install build tools
  config.vm.provision "shell", privileged: false, inline: <<-SHELL 
    sudo apt-get update
    sudo apt-get install -y python3-pip avrdude
    /qmk_firmware/util/qmk_install.sh
   SHELL
end

The procedure is as follows.

  1. Install Vagrant and VirtualBox and Extension pack

  2. Install vagrant plugin (vagrant plugin install vagrant-vbguest)

  3. Update Guest additions (vagrant vbguest)

  4. Confirm the VID/PID of your device (VBoxManage list usbhost)

    • In bootloader mode, the VID/PID will change. You should confirm it too.
  5. Write Vagrantfile (I restarted my Mac after this)

  6. Unplug the USB device

  7. Launch VM (vagrant up) and SSH into it (vagrant ssh)

  8. Plug the USB device

  9. Build your firmware (cd /qmk_firmware && make KEYBOARD:KEYMAP:avrdude)

  10. Short the reset pin if the command require to reset the device.

I was able to flush the firmware this way, but the procedure may be inaccurate :(

This worked for me with a few adjustments and clarifications:

  • the «writable» arduino needs the PID/VID from the pro-micro in reset mode and the second is your normally running pro-micro (when attached as a keyboard)
  • run vagrant up before you run vagrant vbguest
  • your keyboard won’t work while the vagrant box is up as this filters the USB device through it, so be ready to use another keyboard (at least this was my experience)

Great work and thank you for making this so easy!

@Ardakilic

For vagrant, add the USB device while the keyboard is at the reset mode. Think like your keyboard is made of two devices. This way, in normal mode, it’ll work as any keyboard from your main OS, and will be forwarded to virtual machine only when the device is at bootloader mode (reset pin is pressed).

Also, I had a vagrant-puppet-virtualbox combo for another project which I’ve installed QMK over and flashed firmware various times, never had a need to type the product id or vendor id etc. .

@danielpickett

Been struggling with this for two or three evenings now. I’m able to build firmware using the Vagrantfile included with the QMK repo. I’ve updated the VID and PID of my Pro Micro both in normal mode and again in bootloader/reset mode. I thought I had it. I got the prompt to reset controller, but then got Device /dev/ttyACM0 has appeared; assuming it is the controller after shorting my reset pins. Additional resets do not help. It’s just waiting. I’m new to all this. Any help? @pddg @tomwinget

vagrant@debian9:/vagrant$ make dpickett40:default:avrdude
QMK Firmware 0.7.75
Making dpickett40 with keymap default and target avrdude

avr-gcc (GCC) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Size before:
   text	   data	    bss	    dec	    hex	filename
      0	  18916	      0	  18916	   49e4	.build/dpickett40_default.hex

Copying dpickett40_default.hex to qmk_firmware folder                                               [OK]
Checking file size of dpickett40_default.hex                                                        [OK]
 * The firmware size is fine - 18916/28672 (65%, 9756 bytes free)
Detecting USB port, reset your controller now..............................
Device /dev/ttyACM0 has appeared; assuming it is the controller.
Waiting for /dev/ttyACM0 to become writable.....................................................................................................................................................................................................................................................

@tomwinget

Been struggling with this for two or three evenings now. I’m able to build firmware using the Vagrantfile included with the QMK repo. I’ve updated the VID and PID of my Pro Micro both in normal mode and again in bootloader/reset mode. I thought I had it. I got the prompt to reset controller, but then got Device /dev/ttyACM0 has appeared; assuming it is the controller after shorting my reset pins. Additional resets do not help. It’s just waiting. I’m new to all this. Any help? @pddg @tomwinget

vagrant@debian9:/vagrant$ make dpickett40:default:avrdude
QMK Firmware 0.7.75
Making dpickett40 with keymap default and target avrdude

avr-gcc (GCC) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Size before:
   text	   data	    bss	    dec	    hex	filename
      0	  18916	      0	  18916	   49e4	.build/dpickett40_default.hex

Copying dpickett40_default.hex to qmk_firmware folder                                               [OK]
Checking file size of dpickett40_default.hex                                                        [OK]
 * The firmware size is fine - 18916/28672 (65%, 9756 bytes free)
Detecting USB port, reset your controller now..............................
Device /dev/ttyACM0 has appeared; assuming it is the controller.
Waiting for /dev/ttyACM0 to become writable.....................................................................................................................................................................................................................................................

Try running the make command with sudo, I had the same problem but that fixed it for me.

@danielpickett

Yay!! I just flashed my keyboard on Catalina! @tomwinget, you are the best. I was afraid I was going to have to downgrade macOS.

Apparently I also did not have arvdude installed in the VirtualBox, but was able to solve that with sudo apt-get install avrdude.

@Ardakilic

Running the command as superuser helps, because the vagrant user doesn’t have serial port access as mentioned. Also, my ancient netbook (Intel Atom CPU, 2gb RAM, Lubuntu 18.04 installed) had the same issue, because it was so slow it couldn’t start uploading in 8 seconds 🤷‍♂

@pvinis

I tried the vagrant thing, but it didnt work for me with my iris. i could compile etc but when it was waiting, i presset reset and it just kept waiting.. :(

@pvinis

Do we actually know if the fault is something with catalina or with avrdude or with pro micro?

@Ardakilic

@pvinis As mentioned, you both need to add the keyboard while it’s at reset mode from vagrant menu, or if you did that already, you also need to run the command as superuser (add sudo before command). I had to do both to successfully install the firmware. Simply adding the device while it’s in normal mode from vagrant menu didn’t work for me. Please see my comment on october 19th.

@pvinis

I had both there. I did it again today with sudo and it worked. Also, I noticed that what you said about the keyboard not working while it’s connected to vagrant. Yesterday it was still working, and I couldn’t flash it. Today it was not working and I could finally flash. Thanks. Hopefully the bug will be fixed soon, wherever it is.

@nooges

Tested with recent 10.15.2 beta 4 released a few days ago, looks like things are working again, so looking hopeful for when normal 10.15.2 is released

Ardakilic, maxhungry, pddg, pvinis, tylerwince, ksheslav, wktk, shrkw, and om2c0de reacted with hooray emoji
ksheslav reacted with heart emoji
facchinm, rooa, Ardakilic, hmsk, maxhungry, takenaka, ksheslav, bartjakobs, and om2c0de reacted with rocket emoji
fauxpark and ksheslav reacted with eyes emoji

@ksheslav

Great to hear that @nooges, I’ve sadly failed with vagrant config and lost all hope until now. Great work all :)

@nooges

10.15.2 officially released now, tested on there and all good now.

narze, bartjakobs, pddg, danseely, yiancar, Pittan, Viroide, csanyiarpad, budougumi0617, TakumiFunasaka, and 5 more reacted with hooray emoji
pvinis, bartjakobs, danseely, yiancar, and irfn reacted with heart emoji

@amayde

Had the same issue with Qmk_Toolbox on Catalina 10.15.2 for a romac 2.1 (atmel mega32u4), I finally tested with the command line «make kingly_keys/romac:custom:flash» of qmk_firmware and it worked all fine.

@russtoku

Another data point. On Mojave 10.14.6, I had the same issue being unable to flash a Pro Micro using QMK Toolbox and avrdude. Setting the serial port to 1200 baud before flashing with avrdude solved my problem. The serial port showed up as /dev/cu.usbmodem142201 on my Macbook Air.

Понравилась статья? Поделить с друзьями:
  • Avrdude error could not find usbtiny device 0x1781 0xc9f
  • Avrdude error could not find usb device usbasp with vid 0x16c0 pid 0x5dc
  • Avrdude arduino error
  • Avr usart rx frame error
  • Avr studio error 51