I'm stepping into Arduino world and decided to build a small board to implement a gamepad. Prior designing the board I tested my firmware on a Arduino Pro Micro USB so I decided to make something similar. My board use an ATMEGA32U4-AU instead ATMEGA32U4-MU because it's simpler to solder. Connecting the board to my PC I noticed a new device named ATmega32U4 appear between Windows devices this sounds like the board is working. Now the problem is how to program it with the correct bootloader (?) and make it a real Arduino board. I found some spurious articles about how to make it but I have not a clean idea. Someone can help me? I can share everything you need to focus on the board.

UPDATE ---------------------------------------------------------------------

Before installing Arduino bootloader I tried programming a sample firmware on the board trough Atmel FLIP (successfully). After that I never been able to program the board again (neither trough FLIP or other means)

I connected my board to Arduino ISP and since Windows seems unable to find the correct driver I had to install it manually, after that I tried to install the bootloader trough Install bootloader option of Arduino IDE (selecting Arduino ISP as programmer) but I had no success: This's the log:

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

         System wide configuration file is "C:\Users\tux\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : arduinoisp
avrdude: usbdev_open(): Found USBtinyISP, bus:device: bus-0:\\.\libusb0-0001--0x2341-0x0049
         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 : USBtiny
         Description     : Arduino ISP Programmer
avrdude: programmer operation not supported

avrdude: Using SCK period of 10 usec
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude done.  Thank you.

Error during bootloader writing.

I can clearly see that my firmware is not running when I start the booloader process (probably because it reset the board). From the log it seems that everything is going correctly until: programmer operation not supported

What does it means? Is the programmer unable to program such chip? How can I fix this? If I reset my board prior trying to burn again a new firmware over it will it work or I just have to put a brand new micro on it?

Best regards, Mike

  • 1
    Sounds like you're in DFU programming mode. There's an app for that. – Majenko Mar 5 at 10:51
  • You mean this: microchip.com/developmenttools/ProductDetails/… ? – weirdgyn Mar 5 at 11:06
  • Looks like it. I never use it, so don't know for sure, but it certainly rings a bell. – Majenko Mar 5 at 11:09
  • I don't think it can be used to replace a bootloader probably I can use it to program flash with a Arduino hex. – weirdgyn Mar 5 at 11:32
  • You could use a different Arduino with the ArduinoAsISP sketch, and burn the bootloader (and fuses) using the ISP pins on the ATMega32u4 – Gerben Mar 5 at 16:27

The problem was a wrong MISO connection given by a bugged ATMega32U4 footprint.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.