Arduino Nano mit Linux verbinden (2)

Liebe Gruppe,

leider bekomme ich meinen Arduino Nano nicht zum laufen :frowning:

Mein Rechner:
Linux Mint 21.3 Virginia 64-bit

Mein Arduino Nano:
CH340C

Gruppe:
dialout

Ich habe brltty entfernt mit:
apt purge brltty
(und neu gestartet).

Verwendeter Treiber:
Ohne Treiber finde ich keine "CH"-Treiber unter /dev/tty*

  1. https://cdn.sparkfun.com/assets/learn_tutorials/8/4/4/CH341SER_LINUX.ZIP
  2. GitHub - juliagoda/CH341SER: CH341SER driver with fixed bug

lsusb:
QinHeng Electronics CH340 serial converter

tty:
/dev/ttyCH341USB0

IDE 1.8.19 Fehlermeldung:
Arduino: 1.8.19 (Linux), Board: "Arduino Nano, ATmega328P"
Beim Hochladen des Sketches ist ein Fehler aufgetreten

IDE 2.3.2 Fehler:
Im Menu ist der Port ausgegraut.

dmesg -w Ausgabe:
[ 4337.154404] usb 2-1: USB disconnect, device number 7
[ 4337.154898] usb_ch341 2-1:1.0: ch341 usb device disconnect.
[ 4341.110826] usb 2-1: new full-speed USB device number 8 using xhci_hcd
[ 4341.260152] usb 2-1: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[ 4341.260166] usb 2-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 4341.260172] usb 2-1: Product: USB Serial
[ 4341.262688] usb_ch341 2-1:1.0: ttyCH341USB0: ch341 USB device

Mein USB-Kabel habe ich an einem Arduino eines Kumpels gegen gecheckt.

Ich kann keine udev rules anwenden,
weil ich u.a. nicht weiss, wie mein Board heisst !

Ähnliches Problem:

Über sachdienliche Hilfe würde ich mich sehr freuen :slight_smile:
Danke :slight_smile:

Wahrscheinkich kalte Lötstelle (USB-Buchse nachlöten) oder defekter ch340 - dann kannst du das Ding noch immer über ISP programmieren.

sudo usermod -a -G dialout passWordOfYourLinux
sudo apt-get update
sudo apt-get upgrade

... wird nur nix nutzen, wenn das usb device laufend connect/disconnect macht.

Liebe Gruppe :slight_smile:

Danke für die Hinweise.

Habe USB-Buchse nachgelötet.
Leider kein Unterschied :frowning:

An dialout hatte ich gedacht (s.o.):
sudo usermod -a -G dialout
ls -la /dev/ttyC*
crw-rw---- 1 root dialout 169, 0 Aug 11 10:29 /dev/ttyCH341USB0

Leider kein Unterschied durch:
sudo apt-get update
sudo apt-get upgrade
(und neu gestartet)

Weitere Ideen ?
Danke :slight_smile:

Ist dein User auch Mitglied der group tty?

Nutzt nix, denn das Ding dauernd connect/disconnect macht.

Entweder alles um den ch340 nachlöten oder ein anderes board nehmen.Miss alle Leitungen um den ch340 nach. Entweder ist da noch eine schlechte Lötstelle oder ch340 hat einen Dachschaden.

um ehrlich zu sein: nein...

Ich habe Lapis mit Opensuse Tumbleweed, KDE Neon und CachyOS.
Bei keinen der genannten war es nötig einen Treiber zu installieren, es genügte den User der Gruppe dealout hinzuzufügen.

Was sagt ein groups im Terminal / Konsole ?

Das kann auch ein defekter USB Anschluss am Rechner sein...
Bei einem meiner Lapis hab ich auch Probleme an einer USB A Buchse seit ich da mal einen USB C Stecker eingeführt hatte.

Liebe Gruppe :slight_smile:

Danke für die Hinweise.

Ja danke, der User ist Mitglied der Gruppe "tty".

Mein Adruino macht nicht dauernd connect/disconnect.
Bei obiger Ausgabe von "dmesg -w"
habe ich den Adruino abgezogen und wieder eingesteckt.
Sorry, das habe ich oben nicht erwähnt.
Ich habe das gemacht,
weil es hier als Test vorgeschlagen wurde:

Weitere Ideen ?
Danke :slight_smile:

ja ja, die lieben ausführlichen Erklärungen und kreativen Weglassungen von unwichtigen Details ...

Poste mal den Output von dem da - wenn der arduino angesteckt ist:

$ groups
$ ls -l /dev/tty*

Möchtest Du mir etwas sagen?

Liebe Gruppe :slight_smile:

Danke für die Hinweise.
Schein ein schwerer Fall zu sein ...

Hier die Ausgabe von groups, wobei "u" der User ist:
u adm tty dialout cdrom sudo dip plugdev lpadmin sambashare

Hier die Ausgabe von "ls -l /dev/tty*":
crw-rw-rw- 1 root tty 5, 0 Aug 11 23:18 /dev/tty
crw--w---- 1 root tty 4, 0 Aug 11 23:18 /dev/tty0
crw--w---- 1 root tty 4, 1 Aug 11 23:19 /dev/tty1
crw--w---- 1 root tty 4, 10 Aug 11 23:18 /dev/tty10
crw--w---- 1 root tty 4, 11 Aug 11 23:18 /dev/tty11
crw--w---- 1 root tty 4, 12 Aug 11 23:18 /dev/tty12
crw--w---- 1 root tty 4, 13 Aug 11 23:18 /dev/tty13
crw--w---- 1 root tty 4, 14 Aug 11 23:18 /dev/tty14
crw--w---- 1 root tty 4, 15 Aug 11 23:18 /dev/tty15
crw--w---- 1 root tty 4, 16 Aug 11 23:18 /dev/tty16
crw--w---- 1 root tty 4, 17 Aug 11 23:18 /dev/tty17
crw--w---- 1 root tty 4, 18 Aug 11 23:18 /dev/tty18
crw--w---- 1 root tty 4, 19 Aug 11 23:18 /dev/tty19
crw--w---- 1 root tty 4, 2 Aug 11 23:18 /dev/tty2
crw--w---- 1 root tty 4, 20 Aug 11 23:18 /dev/tty20
crw--w---- 1 root tty 4, 21 Aug 11 23:18 /dev/tty21
crw--w---- 1 root tty 4, 22 Aug 11 23:18 /dev/tty22
crw--w---- 1 root tty 4, 23 Aug 11 23:18 /dev/tty23
crw--w---- 1 root tty 4, 24 Aug 11 23:18 /dev/tty24
crw--w---- 1 root tty 4, 25 Aug 11 23:18 /dev/tty25
crw--w---- 1 root tty 4, 26 Aug 11 23:18 /dev/tty26
crw--w---- 1 root tty 4, 27 Aug 11 23:18 /dev/tty27
crw--w---- 1 root tty 4, 28 Aug 11 23:18 /dev/tty28
crw--w---- 1 root tty 4, 29 Aug 11 23:18 /dev/tty29
crw--w---- 1 root tty 4, 3 Aug 11 23:18 /dev/tty3
crw--w---- 1 root tty 4, 30 Aug 11 23:18 /dev/tty30
crw--w---- 1 root tty 4, 31 Aug 11 23:18 /dev/tty31
crw--w---- 1 root tty 4, 32 Aug 11 23:18 /dev/tty32
crw--w---- 1 root tty 4, 33 Aug 11 23:18 /dev/tty33
crw--w---- 1 root tty 4, 34 Aug 11 23:18 /dev/tty34
crw--w---- 1 root tty 4, 35 Aug 11 23:18 /dev/tty35
crw--w---- 1 root tty 4, 36 Aug 11 23:18 /dev/tty36
crw--w---- 1 root tty 4, 37 Aug 11 23:18 /dev/tty37
crw--w---- 1 root tty 4, 38 Aug 11 23:18 /dev/tty38
crw--w---- 1 root tty 4, 39 Aug 11 23:18 /dev/tty39
crw--w---- 1 root tty 4, 4 Aug 11 23:18 /dev/tty4
crw--w---- 1 root tty 4, 40 Aug 11 23:18 /dev/tty40
crw--w---- 1 root tty 4, 41 Aug 11 23:18 /dev/tty41
crw--w---- 1 root tty 4, 42 Aug 11 23:18 /dev/tty42
crw--w---- 1 root tty 4, 43 Aug 11 23:18 /dev/tty43
crw--w---- 1 root tty 4, 44 Aug 11 23:18 /dev/tty44
crw--w---- 1 root tty 4, 45 Aug 11 23:18 /dev/tty45
crw--w---- 1 root tty 4, 46 Aug 11 23:18 /dev/tty46
crw--w---- 1 root tty 4, 47 Aug 11 23:18 /dev/tty47
crw--w---- 1 root tty 4, 48 Aug 11 23:18 /dev/tty48
crw--w---- 1 root tty 4, 49 Aug 11 23:18 /dev/tty49
crw--w---- 1 root tty 4, 5 Aug 11 23:18 /dev/tty5
crw--w---- 1 root tty 4, 50 Aug 11 23:18 /dev/tty50
crw--w---- 1 root tty 4, 51 Aug 11 23:18 /dev/tty51
crw--w---- 1 root tty 4, 52 Aug 11 23:18 /dev/tty52
crw--w---- 1 root tty 4, 53 Aug 11 23:18 /dev/tty53
crw--w---- 1 root tty 4, 54 Aug 11 23:18 /dev/tty54
crw--w---- 1 root tty 4, 55 Aug 11 23:18 /dev/tty55
crw--w---- 1 root tty 4, 56 Aug 11 23:18 /dev/tty56
crw--w---- 1 root tty 4, 57 Aug 11 23:18 /dev/tty57
crw--w---- 1 root tty 4, 58 Aug 11 23:18 /dev/tty58
crw--w---- 1 root tty 4, 59 Aug 11 23:18 /dev/tty59
crw--w---- 1 root tty 4, 6 Aug 11 23:18 /dev/tty6
crw--w---- 1 root tty 4, 60 Aug 11 23:18 /dev/tty60
crw--w---- 1 root tty 4, 61 Aug 11 23:18 /dev/tty61
crw--w---- 1 root tty 4, 62 Aug 11 23:18 /dev/tty62
crw--w---- 1 root tty 4, 63 Aug 11 23:18 /dev/tty63
crw--w---- 1 root tty 4, 7 Aug 11 23:19 /dev/tty7
crw--w---- 1 root tty 4, 8 Aug 11 23:18 /dev/tty8
crw--w---- 1 root tty 4, 9 Aug 11 23:18 /dev/tty9
crw-rw---- 1 root dialout 169, 0 Aug 11 23:18 /dev/ttyCH341USB0
crw------- 1 root root 5, 3 Aug 11 23:18 /dev/ttyprintk
crw-rw---- 1 root dialout 4, 64 Aug 11 23:18 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 Aug 11 23:18 /dev/ttyS1
crw-rw---- 1 root dialout 4, 74 Aug 11 23:18 /dev/ttyS10
crw-rw---- 1 root dialout 4, 75 Aug 11 23:18 /dev/ttyS11
crw-rw---- 1 root dialout 4, 76 Aug 11 23:18 /dev/ttyS12
crw-rw---- 1 root dialout 4, 77 Aug 11 23:18 /dev/ttyS13
crw-rw---- 1 root dialout 4, 78 Aug 11 23:18 /dev/ttyS14
crw-rw---- 1 root dialout 4, 79 Aug 11 23:18 /dev/ttyS15
crw-rw---- 1 root dialout 4, 80 Aug 11 23:18 /dev/ttyS16
crw-rw---- 1 root dialout 4, 81 Aug 11 23:18 /dev/ttyS17
crw-rw---- 1 root dialout 4, 82 Aug 11 23:18 /dev/ttyS18
crw-rw---- 1 root dialout 4, 83 Aug 11 23:18 /dev/ttyS19
crw-rw---- 1 root dialout 4, 66 Aug 11 23:18 /dev/ttyS2
crw-rw---- 1 root dialout 4, 84 Aug 11 23:18 /dev/ttyS20
crw-rw---- 1 root dialout 4, 85 Aug 11 23:18 /dev/ttyS21
crw-rw---- 1 root dialout 4, 86 Aug 11 23:18 /dev/ttyS22
crw-rw---- 1 root dialout 4, 87 Aug 11 23:18 /dev/ttyS23
crw-rw---- 1 root dialout 4, 88 Aug 11 23:18 /dev/ttyS24
crw-rw---- 1 root dialout 4, 89 Aug 11 23:18 /dev/ttyS25
crw-rw---- 1 root dialout 4, 90 Aug 11 23:18 /dev/ttyS26
crw-rw---- 1 root dialout 4, 91 Aug 11 23:18 /dev/ttyS27
crw-rw---- 1 root dialout 4, 92 Aug 11 23:18 /dev/ttyS28
crw-rw---- 1 root dialout 4, 93 Aug 11 23:18 /dev/ttyS29
crw-rw---- 1 root dialout 4, 67 Aug 11 23:18 /dev/ttyS3
crw-rw---- 1 root dialout 4, 94 Aug 11 23:18 /dev/ttyS30
crw-rw---- 1 root dialout 4, 95 Aug 11 23:18 /dev/ttyS31
crw-rw---- 1 root dialout 4, 68 Aug 11 23:18 /dev/ttyS4
crw-rw---- 1 root dialout 4, 69 Aug 11 23:18 /dev/ttyS5
crw-rw---- 1 root dialout 4, 70 Aug 11 23:18 /dev/ttyS6
crw-rw---- 1 root dialout 4, 71 Aug 11 23:18 /dev/ttyS7
crw-rw---- 1 root dialout 4, 72 Aug 11 23:18 /dev/ttyS8
crw-rw---- 1 root dialout 4, 73 Aug 11 23:18 /dev/ttyS9

Weitere Ideen ?
Danke :slight_smile:

Mir dämmert da was ....

  • Stecke den Nano an.
  • Starte die Arduino-IDE (1.8.XX) von der Commandline
  • du solltest eine Java Exception im Terminal sehen

Die Exception schaut so aus:

Picked up JAVA_TOOL_OPTIONS: 
Exception in thread "cc.arduino.packages.discoverers.serial.SerialDiscovery" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
	at java.util.LinkedList.checkElementIndex(LinkedList.java:555)
	at java.util.LinkedList.get(LinkedList.java:476)
	at processing.app.Platform.resolveDeviceByVendorIdProductId(Platform.java:188)
	at cc.arduino.packages.discoverers.serial.SerialDiscovery.forceRefresh(SerialDiscovery.java:166)
	at cc.arduino.packages.discoverers.serial.SerialDiscovery$1.run(SerialDiscovery.java:96)
	at java.util.TimerThread.mainLoop(Timer.java:555)
	at java.util.TimerThread.run(Timer.java:505)

Wenn das bei dir der Fall ist: Willkommen im Club.

Liebe Gruppe :slight_smile:

Danke für die Hinweise.

Wenn ich die Arduino-IDE 1.8.19 starte,
sagt die Commandline:
"Picked up JAVA_TOOL_OPTIONS:".
Also keine Exception.
Also bin ich nicht "Willkommen im Club",
was in diesem Fall vllt. ganz gut ist ?

Weitere Info:
Ich habe noch nie erwähnt,
dass ich in der Arduino-IDE 1.8.19
den seriellen Monitor starten kann und
dann Sensordaten angezeigt bekomme.
Das schließt ja schon mal viele Probleme aus.
Ich glaube, dass ich dicht dran bin ...

Weitere Ideen ?
Danke :slight_smile:

Jetzt ja:
Hast Du beim fehlgeschlagenen Upload-Versuch den seriellen Monitor noch offen?
Mach mal vorher zu das Ding...

Leider macht der seriellen Monitor keinen Unterschied.
Egal ob geöffnet oder geschlossen,
in beiden Fällen sagt die Arduino-IDE 1.8.19:
"Beim Hochladen des Sketches ist ein Fehler aufgetreten" !

Ich weiß jetzt nicht was ich sagen soll ohne ausfällig zu werden. :face_with_symbols_over_mouth:

Und welcher Fehler?

1 Like

IDE 1.8.19:
Der serielle Monitor geht.
Ich bekomme diese Fehlermeldung,
wenn ich versuche einen Sketches hoch zu laden:
"Beim Hochladen des Sketches ist ein Fehler aufgetreten".

IDE 2.3.2 Fehler:
Mit dieser IDE kann ich nicht arbeiten,
weil ich keinen Port auswählen kann.
Im Menu ist der Port ausgegraut.

Weitere Info:
Ich habe bisher noch nie erwähnt,
dass der Adruino über USB-C an den Host angeschlossen ist.
Macht das irgendeinen Unterschied ?

Weitere Ideen ?
Danke :slight_smile:

Schreib uns doch erst mal, was Du alles noch nicht erwähnt hast. Diese Salami-Taktik nervt.

Gruß Tommy