no /dev/ttyUSB device for Sparkfun Pro Micro

HP Chromebook 11 (11a-nb0013dx)

Chrome OS Version 88.0.4324.109

Problem: when I connect my SparkFun Pro Micro, I get the prompt and connect it to Linux. It shows up in lsusb, but there is no /dev/tty port for it, so I can’t access it to flash it.

Here’s the output from lsusb:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 005: ID 03eb:2ff4 Atmel Corp. atmega32u4 DFU bootloader

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Any idea how I can get this to show up as a /dev/ttyUSB? Or is there some other way I should be connecting to it to flash it?

Thanks for reaching out to us on this.

This is likely to be an issue with the /dev listings coming from the custom linux kernel; perhaps try poking around Chromebook forums for advice on their implementations

I would try flashing it from a different computer, running a native OS

Hope this helps, and happy sparking!

It’s odd that it’s showing up in DFU mode, what happens when you plug it into a Windows PC and install the [drivers?

Another thing you can try is double clicking the reset button running lsusb again within a second or two of double clicking and see if a TTY shows up then.](https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide/installing-windows)

Hello,

recently, I bought 2 Pro Micros and with one of them I also have the issue that no TTY is showing up (trying to upload the “blinkies” test code from the tutorial page via Arduino IDE).

My PC is running an up-to-date Arch Linux with Linux kernel 5.15.7. Since one Pro Micro is working as expected, I would rule out an issue with the /dev listing as mentioned in the second post.

What’s interesting for me is that the dmesg output differs between the two boards, see below. Vendor/ProductId seem to be wrong just like for the thread opener.

dmesg output for working Pro Micro:

[ 1182.588020] usb 3-6: new full-speed USB device number 21 using xhci_hcd
[ 1182.731476] usb 3-6: New USB device found, idVendor=1b4f, idProduct=9206, bcdDevice= 1.00
[ 1182.731490] usb 3-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1182.731496] usb 3-6: Product: SparkFun Pro Micro
[ 1182.731500] usb 3-6: Manufacturer: SparkFun
[ 1182.733488] cdc_acm 3-6:1.0: ttyACM0: USB ACM device

Not working Pro Micro:

[ 1067.835631] usb 3-6: new full-speed USB device number 20 using xhci_hcd
[ 1067.978310] usb 3-6: New USB device found, idVendor=03eb, idProduct=2ff4, bcdDevice= 0.00
[ 1067.978325] usb 3-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1067.978331] usb 3-6: Product: ATm32U4DFU
[ 1067.978335] usb 3-6: Manufacturer: ATMEL
[ 1067.978339] usb 3-6: SerialNumber: 1.0.0

Double clicking the reset just reconnects the device with the same output.

Is there a way to get this Pro Micro to work or should I send it back to the retailer?

Finally, I got it to work. Here is how I did it.

First I burned the bootloader to the Pro Micro using the method with the Arduino as ISP. Afterwards, the dmesg output changed. The manufacturer was now “SparkFun” and the device “Pro Micro 5V” with an product-id of 9205. This was different compared to the other Pro Micro, but since a TTY appeared, I didn’t bother too much.

But, well, trying to load the test code to the device did not work. avrdude reported an “Input/Output error” on that port. So, no luck with that.

Next, I booted up an old Windows-PC and plugged the Pro Micro in. It first showed up as “Sparkfun Pro Micro 5V” in the device manager. After installing the drivers, it showed up as “Sparkfun Pro Micro bootloader (COM X)” (or something like that). Trying to upload the test code to this COM port via the Windows Arduino IDE worked.

Then, I plugged the Pro Micro back into the Linux-PC. dmesg now shows the identical information as the other Pro Micro. Also, uploading programs to the Pro Micro in Linux works now, too.

It would be nice if there was a way to do this without having to rely on Windows, but at least it seems to work now as it should.