Custom Arduino Leonardo Board USB unresponsive

I am having a issue with a custom Arduino Leonardo Board were the usb is unresponsive. When plugged into a Linux or Windows 10 computer, I get no response from the board. When plugged into a Windows 11 computer, a failure to read device descriptor error is produced. The atmega32u4 chip was successively flashed with the Arduino bootloader using avrdude. The fuses were set to the defaults for the Leonardo boards (lfuse = 0xFF).

Schematic

I suspect that the below is your problem.

A part of the code that you upload (e.g. blink) is responsible for the board identification. If you don't have a sketch loaded, your OS will not be able to recognise the board.

You can upload a sketch and when the IDE reports the memory usage you can tap the reset button (you might have to wire one).

Further info:
Your operating system should pick up the change when you tap the reset button. If not, it might require a double tap.

Note
For a Leonardo a single

I have been using a sketch. The KeyboardMessage sketch under USB examples. I have been programming the sketch using the following avrdude command:
avrdude -p atmega32u4 -c linuxgpio -U flash:w:KeyboardMessage.with_bootloader.bin

The KeyboardMessage.with_bootloader.bin is gotten using the IDE's export compiled binary option under the sketch tab.

OK, that was not clear from your opening post.

What is happening at the operating system level?
In Linux:

  1. Is the board recognised with lsusb?
  2. Disconnect board.
  3. Run dmesg -w; the command will not return to the prompt.
  4. Connect the board.
  5. Observe the changes.
  6. Press the reset on your board.
  7. Observe the changes.

dmesg output after connecting

[ 9541.375073] usb 1-5.4.2: new full-speed USB device number 10 using ehci-pci
[ 9541.459957] usb 1-5.4.2: New USB device found, idVendor=2341, idProduct=8036
[ 9541.459964] usb 1-5.4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 9541.459968] usb 1-5.4.2: Product: Arduino Leonardo
[ 9541.459972] usb 1-5.4.2: Manufacturer: Arduino LLC
[ 9541.460876] cdc_acm 1-5.4.2:1.0: ttyACM2: USB ACM device

dmesg output after reset

[ 9803.503844] usb 1-5.4.2: USB disconnect, device number 13
[ 9803.784121] usb 1-5.4.2: new full-speed USB device number 14 using ehci-pci
[ 9803.863536] usb 1-5.4.2: New USB device found, idVendor=2341, idProduct=0036
                                                                           ^
[ 9803.863543] usb 1-5.4.2: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[ 9803.863548] usb 1-5.4.2: Product: Arduino Leonardo
[ 9803.863551] usb 1-5.4.2: Manufacturer: Arduino LLC
[ 9803.864867] cdc_acm 1-5.4.2:1.0: ttyACM2: USB ACM device
[ 9811.773080] usb 1-5.4.2: reset full-speed USB device number 14 using ehci-pci
[ 9811.857431] usb 1-5.4.2: device firmware changed
[ 9811.858189] usb 1-5.4.2: USB disconnect, device number 14
[ 9812.033130] usb 1-5.4.2: new full-speed USB device number 15 using ehci-pci
[ 9812.114654] usb 1-5.4.2: New USB device found, idVendor=2341, idProduct=8036
                                                                           ^
[ 9812.114660] usb 1-5.4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 9812.114665] usb 1-5.4.2: Product: Arduino Leonardo
[ 9812.114669] usb 1-5.4.2: Manufacturer: Arduino LLC
[ 9812.115563] cdc_acm 1-5.4.2:1.0: ttyACM2: USB ACM device

Note the difference in idProduct (8036 (normal running) vs 0036 (bootloader)).

This is with an official Leonardo. Can you see the same changes?

For lsusb (normal)

Bus 001 Device 019: ID 2341:8036 Arduino SA Leonardo (CDC ACM, HID)

and bootloader

Bus 001 Device 020: ID 2341:0036 Arduino SA 

The board does not show up with lsusb and no changes occur with dmesg -w. An indicator led plug into the board (Led_Builtin - PC7) shows that the board is functioning.

If you reset the board (to invoke the bootloader), does the built-in LED pulsate for approx. 8 seconds?

I have compared your schematic with the Leonardo one; your resistors in the USB data lines are 22k, the official one uses 22 ohm; can that be the issue?

Yes, I have the wrong resistors. I don't have any replacement resistors that I could put on. Do you have any ideas of how I could fix the resistors?

Sorry, no idea.

If it was my board, I think I would short them (0 ohm).

But you do that at your own risk.

Alright. Thank you.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.