Sample Header Ad - 728x90

Assign ttyACM to USB

1 vote
1 answer
700 views
I have a partially similar question like this one https://unix.stackexchange.com/questions/466185/ttyusb-no-ttyacm-how-can-i-assign-the-usb-device-to-ttyacm-not-ttyusb **But mine is a little bit more difficult.** I recently bought a Feather RP2040 Prop-Maker device like this I work for some time with ESP32 and Arduino devices. And I connected this one to my computer and got readings from the Arduino IDE. I therefore know the device and cable are working fine. However, it also works as a tiny USB device. The manual states one could upload files to it (it plays music and you are supposed to copy the files via USB). However when I plug the device it is not recognized as USB device. calling lsusb I see the device is there (obviously since I can read from the serial monitor in the Arduino IDE) Bus 001 Device 022: ID 239a:8131 Adafruit Feather RP2040 Prop-Maker Calling ls -l /dev/serial/by-id it states this lrwxrwxrwx 1 root root 13 Sep 16 16:57 usb-Adafruit_Feather_RP2040_Prop-Maker_DF6260785F590937-if00 -> ../../ttyACM0 So the device is understood as an ACM device. I thought that made sense since I can program it and read from the Serial connection. However, I have no idea how I might connect it as a USB device for moving files there. I had a look at the journal and saw this message: kernel: usb 1-6.2.4: new full-speed USB device number 23 using xhci_hcd kernel: usb 1-6.2.4: New USB device found, idVendor=239a, idProduct=8131, bcdDevice= 1.00 kernel: usb 1-6.2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 kernel: usb 1-6.2.4: Product: Feather RP2040 Prop-Maker kernel: usb 1-6.2.4: Manufacturer: Adafruit kernel: usb 1-6.2.4: SerialNumber: DF6260785F590937 kernel: cdc_acm 1-6.2.4:1.0: ttyACM0: USB ACM device mtp-probe: checking bus 1, device 23: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6.2/1-6.2.4" mtp-probe: bus: 1, device: 23 was not an MTP device mtp-probe: checking bus 1, device 23: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6.2/1-6.2.4" mtp-probe: bus: 1, device: 23 was not an MTP device The only solution I could find is to create a udev rule like that one: #Adafruit RP2040 Prop-Maker Feather ATTR{idVendor}=="293a", ATTR{idProduct}=="8131", GOTO="libmtp_rules_end" And it kind of works that I don't get that error any longer. However the device still doesn't show up in lsblk or so. I can't mount anything. I should note, I bought an Adafruit Soundboard which is the predecessor of that one. And there I can just plug in the cable and copy files. But it is not programmable so I assume it gets difficult when you want to use the device in 2 different ways - programming the ACM device and copy files on the USB device. I would be fine to "switch" things, copy files and switch back to the programmable connection if that helps. But **how can I tell my system to interpret the device as USB drive**? I'm using Manjaro (Arch) Linux. (And I tried the same on Windows with no success). Any ideas?
Asked by Tobias Reich (291 rep)
Sep 16, 2023, 10:06 PM
Last activity: Sep 17, 2023, 04:14 PM