Electronic – How to program an Atmega32u4 over USB with this schematic

atmega32u4avravrdudemicrocontrollerprogrammer

This is my first time trying to program an Atmega32u4. I made a PCB with the following schematic:

schem

Now I've soldered all the parts onto the PCB, and I've plugged a micro usb cable from my computer into J1.

I assumed that when I pressed down SW1, the bootloader would activate and and the device would register as a serial device on my computer, so that I can program it using avrdude.

However, when I pressed the reset button, I couldn't find which port it's communicating over. I tried the command avrdude -p m32u4 -P USB -c avr109 to intialise it, just in case that port happened to work, but the output was:

avrdude: ser_open(): can't open device "USB": No such file or directory

avrdude done.  Thank you.

So what's the issue here? Is there something wrong with my schematic, or with my software approach? Again, I'm a complete beginner to this, so any information at all is useful.

EDIT: I plugged it into a different USB port on my computer and now lsusb lists: "Bus 001 Device 020: ID 03eb:2ff4 Atmel Corp. atmega32u4 DFU bootloader", however when I try to use dfu-programmer (as has been suggesteed), this happens:

j4cob-antergos :: /sys/class/tty » sudo dfu-programmer atmega32u4 dump --debug 4        5 ↵
     target: atmega32u4
    chip_id: 0x2ff4
  vendor_id: 0x03eb
    command: dump
      quiet: false
      debug: 4
device_type: AVR
------ command specific below ------

0%                            100%  Reading 0x7000 bytes...
[ X  ERROR

EDIT 2: I tried to use avrdude instead again, and this happened:

j4cob-antergos :: ~ » sudo avrdude -p m32u4 -P usb -c flip1                                              1 ↵

avrdude: Warning: Failed to read USB device string 1: Input/output error
avrdude: Warning: Failed to read USB device string 2: Input/output error
avrdude: Warning: Failed to read USB device string 3: Input/output error
avrdude: Warning: USB bDeviceClass = 255 (expected 254)
avrdude: Error: Failed to reset DFU state: Input/output error
avrdude: AVR device initialized and ready to accept instructions

Reading |                                                    | 0% 0.00savrdude: Error: DFU_DNLOAD failed: Input/output error
avrdude: Error: Failed to get DFU status: Input/output error
avrdude: error reading signature data for part "ATmega32U4", rc=-1
avrdude: error reading signature data, rc=-1

avrdude done.  Thank you.

This is looking more hopeful, but at this point it seems like my schematic just doesn't work. Any thoughts?

Best Answer

From the datasheet:

enter image description here

Your schematic doesn't have a bypass capacitor on VCC. Adding one might help. To maximize its effectiveness, solder it on as close to a pair of VCC/GND pins on the chip as possible. Looking at your schematic, the best bet would be pins 14 and 15.