Arduino Mirco Atmel 32U4 upload via Avrdude problem

Grettings from Russia here!

I just purchased an original (made in Italy) Arduino Micro board based on Atmel 32U4. This is a USB board, basically same as Leonardo, but smaller. I installed the drivers, Arduino Micro is on COM20, Arduino Bootloader is on COM19. Windows XP.

I downloaded Arduino IDE, loaded up the Blink sample, successfully compiled it and succesfully uploaded it to the board (LED is blinking). I can also modify the code and see blinking change (change delays, freq etc). So, the cables and ports are FINE.

But I need to upload a precompiled .hex image I got from another person. Arduino IDE does not allow that, so I am trying to do it using avrdude utility. Here is the command line I use:

avrdude -v -p atmega32u4 -c avr109 -P COM20 -b 57600 -D -Uflash:w:TouchController.hex:i

What I get is: "connecting to programmer" for around 1 minute, then error msg:

avrdude: error: buffered memory access not supported. Maybe it isn't a butterfly/AVR109 but a AVR910 device?

Thing is, avrdude DOES open the COM port, because when I try to upload using Arduino IDE while avrdude is running I get "Port already opened". However, LED does not switch to "breathing mode" when using avrdude, whilst it does when uploading with Arduino IDE.

Already spent around 2 hrs trying to figure out the problem, found nothing on the web. Please help!


Try turning on verbose upload logging and doing an upload from the IDE. In the logging you will see the exact command line that the Arduino IDE is using to upload. That might point to an avrdude parameter you missed or got wrong.

There isn’t a verbose upload logging option in the IDE. I already have verbose turned on in avrdude, the err msg I’m referring to is from the verbose log.

Solved. For avrdude to work on this chip you need to first kick it into bootloader mode. To do it you either need to connect to it at 1200 baud or do it manually by pushing the button. Once you push the button you have to catch the right moment and run avrdude. Then it works. You also need to specify the bootloader COM port and not the Arduino, they are different ports.

How do you get Arduino bootloader on COM19 - I just got the board, its serial monitor runs the word "TESTATA" forever, so it works. I cannot upload the blink sketch - during upload the COM20 disappears, shows up under "other devices", then again under com ports, then I get a load failure after a long time that says: Binary sketch size: 4,830 bytes (of a 28,672 byte maximum) Found programmer: Id = "Bsž"; type = * Software Version = Hardware Version =* avrdude: error: buffered memory access not supported. Maybe it isn't a butterfly/AVR109 but a AVR910 device?

Hello everyone. I have an Arduino Leonardo. I read the topic and was faced with the same problem. AVRDUDE an error.

Found programmer: Id = ".?Џv@)˜"; type = ..................................................................

avrdude.exe: error: buffered memory access not supported. Maybe it isn't a butterfly/AVR109 but a AVR910 device? Return code = 1

Parametrs: C:\Avrdude\ArduinoDUDE\avrdude.exe avrdude -v -p m32 -c avr109 -P COM1 -b 57600 -D -Uflash:w:TouchController.hex:i

How do you get Arduino bootloader VCP? What the button did you mean to kick it, reset on mainboard?

I find. Push the reset button on mainboard, and you'll see the bootloader com port.

Regarding the hex file, -Uflash:w:TouchController.hex:i , you can derive this from your own environment. I got Atmel studio to generate this automatically i.e.

-U flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i