NEWS
Linux-Tipps: USB-Serial und ESP-Programmierung
-
Um ein ESP-Device mit einem USB-Port z. B. mit der Arduino IDE zu programmieren oder mit dem "tasmotizer" Tasmota hochzuladen, bietet sich folgendes Vorgehen in der Linux-Konsole an, wenn es Probleme mit der Verbindungsaufnahme mit dem ESP-Device über die USB-Schnittstelle gibt:
- Finden des Devices
Device an USB-Kabel, USB-Kabel an Linux-PC
tester@martin-D2836-S1:~$ lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 18e3:9102 Fitipower Integrated Technology Inc Multi Card Reader Bus 001 Device 004: ID 0c45:636b Microdia USB 2.0 Camera Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 002: ID 045e:0053 Microsoft Corp. Optical Mouse Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 008 Device 004: ID 10c4:ea60 Silicon Labs CP210x UART Bridge tester@martin-D2836-S1:~$
Der letzte Eintrag scheint interessant
Meist erscheinen die ESP-Devices als TTYUSBx oder TTYACMx im /dev Verzeichnisbaum - mal schauen:
tester@martin-D2836-S1:~$ ls /dev/ttyA* ls: Zugriff auf '/dev/ttyA*' nicht möglich: Datei oder Verzeichnis nicht gefunden tester@martin-D2836-S1:~$ ls -l /dev/ttyU* crw-rw---- 1 root dialout 188, 0 Okt 12 18:15 /dev/ttyUSB0 tester@martin-D2836-S1:~$
root ist Owner des Devices, aber auch die User in Gruppe "dialout" hat Schreib/lesezugriff
"cu" ist ein ein einfaches serielles Terminalprogramm, was man per apt installieren kann
sudo apt install cu
Wenn man jetzt cu ausführt .. kein Erfolg
cu: open (/dev/ttyUSB0): Permission denied cu: /dev/ttyUSB0: Line in use tester@martin-D2836-S1:~$
Grund: Nicht in der Gruppe "dialout"
tester@martin-D2836-S1:~$ groups tester sudo users tester@martin-D2836-S1:~$
deshalb:
ester@martin-D2836-S1:~$ sudo adduser tester dialout [sudo] Passwort für tester: info: Füge Benutzer »tester« der Gruppe »dialout« hinzu … tester@martin-D2836-S1:~$ tester@martin-D2836-S1:~$ tester@martin-D2836-S1:~$ tester@martin-D2836-S1:~$ groups tester sudo users
Wieso erscheint die neue Gruppenmitgliedschaft zu "dialout" nicht?
Die Gruppenmitgliedschaft wird erst nach An - und Abmelden des Users oder nach Absetzen des Kommandos "newgrp" aktiviert!
tester@martin-D2836-S1:~$ newgrp dialout tester@martin-D2836-S1:~$ groups dialout sudo users tester tester@martin-D2836-S1:~$
Jetzt mit dialout!
... und es klappt:
tester@martin-D2836-S1:~$ cu -s 115200 -l /dev/ttyUSB0 Connected. ~[martin-D2836-S1]. Disconnected. tester@martin-D2836-S1:~$
(Einschub: cu beendet man mit Betätigen der Tilde-Taste "~" und danach Punkt ".")
Wenn der User "tester" auch der ist, der in der grafischen Oberfläche des linux-Systems angemeldet ist, kann man jetzt weitere Experimente mit der arduino IDE, tasmotizer oder ähnlichem machen.
-
Hier noch als Nachtrag eine "sinnvolle" Anwendung von cu, wenn das (fast) fertig programmierte ESP-Device in der Nähe des Proxmox Servers steht. Dann kann man für Feinschliff schön mitlesen, was passiert.
USB-Device zu einem "Spiel" Debian--LXC durchreichen, und Kontrollausgaben des ESP32 anzeigen lassen (kommen alle 10 Sekunden)
martin@DebianTest:~$ cu -s 115200 -l /dev/ttyACM0 Connected. Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.87 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.69 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.81 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.81 21.87 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.87 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.55 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.25 24.75 21.87 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.54 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.24 24.69 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.54 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.24 24.75 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.54 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.24 24.75 21.94 SollT 18.70 WiFi 1 MQTT 1 ok Difftemp:3.54 Hyst:0.15 ventState:0 pwmActual:0 Tmprtrs(22.24 24.75 21.87 SollT 18.70 WiFi 1 MQTT 1 ok