direkt zum Download

An vielen Microcontroller Board die dann so Arduino und ESP8266 und so heißen, sorgt ein Serial-zu-USB-Controller dafür, dass sich das Board mit dem Computer unterhalten kann.

Dazu muss der Computer aber den Serial-zu-USB-Controller kennen.

Der CH340 (das steht auf dem chip drauf) hat bei mir aber nicht einfach so funktioniert.

Ich benutze 22.04.1-Ubuntu.

Auf der Downloadseite des Herstellers habe ich mir den Treiber heruntergeladen. Die Seite von makershop hat mich auf die Idee gebracht.

Wenn der Treiber wie in dem README beschrieben mit dem Befehl

~ make

gebaut und mit

~ make load

geht leider nichts.

Auf der Askubuntu Seite konnte ich mir wissen anlesen wie man sehen kann was da geht und was nicht.

Wenn das Gerät an dem USB angeschlossen ist, kannst du den Befehl “lsusb” benutzen.

~ sudo lsusb

Bus 002 Device 003: ID abcd:1234 LogiLink UDisk flash drive
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 007: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

man kann hier z.B. in der Vierten Zeile sehen “ Bus 001 Device 007: ID 1a86:7523 QinHeng Electronics CH340 serial converter” das grundsätlich das USB-Gerät erkannt wird. Das ist ein gutes Zeichen, selbst wenn es so noch nicht unbedingt genutzt werden kann.

Eigentlich sollte jetzt, wenn man “dmesg” ins Terminal eingibt, sowas in der art erscheinen.

~ sudo dmesg

[41920.762031] usb 1-1.3: new full-speed USB device number 7 using ehci-pci
[41920.871370] usb 1-1.3: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice=81.33
[41920.871377] usb 1-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[41920.871381] usb 1-1.3: Product: USB Serial
[41920.871750] ch341 1-1.3:1.0: ch341-uart converter detected
[41920.872631] usb 1-1.3: ch341-uart converter now attached to ttyUSB0

Bei mir war das nicht der Fall. Leider habe ich den genauen Wortlaut nicht mehr. Es stand dort das sich etas namens “brltty” dazwischengefunkt hat. Etwa so.

[41920.871750] usb 1-1: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[41920.872631] usb 1-1.3: ch341-uart converter now detached

Das ist die Braille unterstützung von Ubuntu.

Für dieses Programm können configdateien angepasst werden das es sich nicht so verhält. Ich weis nicht wie das geht und benutze einen bildgebenden Monitor. Wenn du das auch tust, kannst du den Dienst einfach deinstallieren.

~ sudo apt remove brltty

Im Anschluss habe ich noch mal “ausstecken einstecken” gespielt und noch mal “dmesg” getippt.

[41920.871750] ch341 1-1.3:1.0: ch341-uart converter detected
[41920.872631] usb 1-1.3: ch341-uart converter now attached to ttyCH340USB0

Ups. - das ist ja plötzlich da. Bei der eingabe “ls /dev/tty*” findet sich /dev/ttyCH341USB0

~ ls /dev/tty*
/dev/tty    /dev/tty26  /dev/tty44  /dev/tty62      /dev/ttyS20
/dev/tty0   /dev/tty27  /dev/tty45  /dev/tty63      /dev/ttyS21
/dev/tty1   /dev/tty28  /dev/tty46  /dev/tty7       /dev/ttyS22
/dev/tty10  /dev/tty29  /dev/tty47  /dev/tty8       /dev/ttyS23
/dev/tty11  /dev/tty3   /dev/tty48  /dev/tty9       /dev/ttyS24
/dev/tty12  /dev/tty30  /dev/tty49  /dev/ttyACM0    /dev/ttyS25
/dev/tty13  /dev/tty31  /dev/tty5   /dev/ttyprintk  /dev/ttyS26
/dev/tty14  /dev/tty32  /dev/tty50  /dev/ttyS0      /dev/ttyS27
/dev/tty15  /dev/tty33  /dev/tty51  /dev/ttyS1      /dev/ttyS28
/dev/tty16  /dev/tty34  /dev/tty52  /dev/ttyS10     /dev/ttyS29
/dev/tty17  /dev/tty35  /dev/tty53  /dev/ttyS11     /dev/ttyS3
/dev/tty18  /dev/tty36  /dev/tty54  /dev/ttyS12     /dev/ttyS30
/dev/tty19  /dev/tty37  /dev/tty55  /dev/ttyS13     /dev/ttyS31
/dev/tty2   /dev/tty38  /dev/tty56  /dev/ttyS14     /dev/ttyS4
/dev/tty20  /dev/tty39  /dev/tty57  /dev/ttyS15     /dev/ttyS5
/dev/tty21  /dev/tty4   /dev/tty58  /dev/ttyS16     /dev/ttyS6
/dev/tty22  /dev/tty40  /dev/tty59  /dev/ttyS17     /dev/ttyS7
/dev/tty23  /dev/tty41  /dev/tty6   /dev/ttyS18     /dev/ttyS8
/dev/tty24  /dev/tty42  /dev/tty60  /dev/ttyS19     /dev/ttyS9
/dev/tty25  /dev/tty43  /dev/tty61  /dev/ttyS2      /dev/ttyCH341USB0

Das ist sehr gut!

Leider benutze ich um meine micropython dateien auf den ESP8266 zu uploaden das Programm “Thonny”. Thonny erwartet das das ding /dev/ttyUSB0 heist sonst wird es nicht erkannt.

Zeit den Treiber umzuschreiben!

ich habe keine Ahnun was ich da tue. Ich halte es für kein Sicheheitsrisiko doch wissen tu ich das nicht.

In der Zeile 1483 der Datei ch341.c befindet sich dieser name. Der kann einfach geändert werden. hoffe ich :-P Der Unterschied sieht dann so aus. ~ diff driver/ch341.c driverusb0/ch341.c

1483c1483
< 	ch341_tty_driver->driver_name = "ch341_uart", ch341_tty_driver->name = "ttyCH341USB",
---
> 	ch341_tty_driver->driver_name = "ch341_uart", ch341_tty_driver->name = "ttyUSB",

Im Anschluss muss man nur noch in den Ordner mit dem neuen Treiber navigieren und noch mal

~ sudo make uninstall

~ sudo make install

Und schon geht der ganze scheiß. also zumindest bei mir. ich hoffe bei dir auch .

ich habe hier die von mir geänderte Datei zum Download bereitgestellt. Datum des download bei WCH war der 03.11.2023 Version 1.7 vom 12.10.2023 größe 12.4KB Von mir geändert am 03.11.2023 getestet auf 6.2.0-35-generic #35~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Oct 6 10:23:26 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

CH341SER_LINUX.zip