3

I have a CH341a Programmer and when I plug it into a usb port everything seems to be working except it doesn't get assigned to a Device Path (eg /dev/ttyUSB0).

Does anyone have any clue as to why this might be happening, or how to resolve this issue?

Here are some of the things I've done to troubleshoot.

lsusb

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 1a86:5512 QinHeng Electronics CH341 in EPP/MEM/I2C mode, EPP/I2C adapter
Bus 001 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

dmesg

[347.965641] usb 1-2.1: new full-speed USB device number 4 using uhci_hcd
[348.196659] usb 1-2.1: New USB device found, idVendor=1a86, idProduct=5512
[348.196661] usb 1-2.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[348.196662] usb 1-2.1: Product: USB UART-LPT

You can see that the device is being recognized as connected, but no device path assignment.

I've connected this thing to 4 different devices and they all behave in the same way with the same output to lsusb and dmesg. This example output is from an Ubuntu VM, but the others were Linux Mint running on a Thinkpad P15s, Zorin running on an old Dell Latitude, and Kali on a Raspi 4.

Oh, I've also tried installing drivers from https://github.com/juliagoda/CH341SER and I've uninstalled the BRLTTY software from all test devices (which actually cleared up the issue for my Arduino Nano, but not this device).

All updates have been installed and every system is UTD as of the time of this posting.

Any and all help is much appreciated.

Thanks.

2 Answers 2

4

Your device isn't being assigned a serial device path because it's not a serial port. From your lsusb output, we see:

Bus 001 Device 004: ID 1a86:5512 QinHeng Electronics CH341 in EPP/MEM/I2C mode, EPP/I2C adapter

The key part is in EPP/MEM/I2C mode. The device is not configured as a UART; if it were, we would see:

Bus 001 Device 004: ID 1a86:5523 QinHeng Electronics CH341 in serial mode, usb to serial port converter

No amount of driver installation is going to make the device in its current configuration show up as a USB serial port. The issue is entirely in how the device itself is configured.

If you have a bare board, you can configure it yourself. According to the data sheet, the selection between UART and SPI/I2C mode is configured via the SCL and SDA pins (see section 5.3, "Function configuration").

If you have a consumer product that's meant to be a UART-to-USB device, I would return it for a replacement.

1

In my case it was just a matter of removing the jumper bridging the pins 1 and 2 on the board. Now the dongle enumerates like this:

Bus 002 Device 016: ID 1a86:5523 QinHeng Electronics CH341 in serial mode, usb to serial port converter

I've also installed this fixed driver: https://github.com/juliagoda/CH341SER/

More infos and tricks here: http://www.zoobab.com/ch341-usb-spi-i2c-uart-isp-dongle#toc5

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .