Αrduino προβλημα

προσπαθω να περασω κωδικα στο arduino και λαμβανω αυτο το μυνημα λαθουσavrdude: ser_open(): can't open device "/dev/ttyACM0": Input/output error

Αν και δεν παραθέτεις και πολλές πληροφορίες για το πρόβλημά σου, εικάζω πως είναι θέμα permissions για την συσκευή /dev/ttyACM0.

Η μία λύση που μπορείς να δοκιμάσεις στα γρήγορα για να δεις αν είναι αυτό, είναι να ανοίξεις ένα terminal και τρέξεις από εκεί το IDE του arduino σαν sudo user. Μετά δοκίμασε να κάνεις upload το πρόγραμμα. (Λογικά θα παίξει)

Μετά η μόνιμη και πιο σωστή λύση είναι να προσθέσεις τον χρήστη σου στο group που μπορεί να βλέπει αυτές τις συσκευές.
Τρέξε

ls -l /dev/ttyACM0

και θα δεις κάτι τέτοιο

crw-rw---- 1 root uucp 166, 0 14. dub 12.44 /dev/ttyACM0

Μετά θα τρέξεις:

sudo usermod -a -G uucp YOUR_USERNAME

Και λογικά θα παίξει.

Να σημειώσω πως κάνω λάθος που δίνω αυτές τις οδηγίες χωρίς να ξέρω άλλες λεπτομέρειες για το σύστημά σου… Ελπίζω να ξέρεις τι κάνεις και να μην προκαλέσεις κάποια “ζημιά” από τις δικές μου οδηγίες (αν δεν είναι αυτό το πρόβλημα που φαντάζομαι)

Υπάρχουν οι εξής πιθανότητες

  1. Να μην έκανες σωστή εγκατάσταση του IDE. Όταν το εγκαθιστάς περνάει κάποιους κανόνες στο udev ώστε να έχει η συσκευή τα σωστά permissions και τρέχει και ένα udevadm trigger.

  2. Να μην είσαι μέλος του dialup group. Την πρώτη φορά που θα τρέξει το IDE σε ρωτάει συνήθως.

Ανέτρεξε σε οδηγίες της διανομής σου για το αν πρέπει να κάνεις κάτι κατά την εγκατάσταση.

  1. Απλά να μην είναι η συσκευή στο /dev/ttyACM0 αλλά σε κάποιο άλλο όπως πχ /dev/ttyACM1. Δες αν υπάρχει αυτό το αρχείο. Η αν δεν είναι αυθεντικό μπορεί να υπάρχει σαν /dev/ttyUSBx, δες την τεκμηρίωση του board που έχεις ή δες στα logs ποιο device file δημιουργεί όταν το συνδέεις.

Κάνε ένα ls -l /dev/ttyACM* και θα πρέπει να δεις κάτι σαν το παρακάτω

 crw-rw-r-- 1 root dialout ... /dev/ttyACM0

Με την εντολή id μπορείς να δεις αν ανήκεις στο dialup, αν όχι

sudo usermod -a -G dialout $USER

και αμέσως μετά αποσύνδεση.

Σημείωση: Στο Arch ίσως να είναι στην ομάδα uucp τροποποίησε ανάλογα. Σε ubuntu ίσως να χρειαστεί να αφαιρέσεις το πακέτο modem-manager.

Update Πρόσεξα ότι το έβαλες στο Arch, άρα η διανομή είναι γνωστή :nerd_face:

1 «Μου αρέσει»

Το ετρεξΑ με sudo πάλι τα ιδια

Έχω το Manjaro θα δοκιμάσω και τα άλλα όταν είμαι στον υπολογιστή

Η συσκευή μου είναι στο ttyACM0 πως το αλλάζω αυτό έχω Manjaro.ειμαι στην ομάδα uucp αλλά πάλι το ίδιο προβλημα

ακουθησα τις οδηγιες απο εδω https://unix.stackexchange.com/questions/645033/arduino-avrdude-ser-open-cant-open-device-dev-ttyacm1-input-output-errτωρα το αναγνωριζει αλλα δεν μπορει να κανει up lload αναβοσβηνουν τα λαμπακια χωρισ κανενα αποτελεσμα

Έχεις δηλώσει σωστά το board; Εχεις δοκιμάσει με άλλο καλώδιο, θύρα USB;

ΥΓ: Μην κάνεις διαδοχικές δημοσιεύσεις. Πες ότι έχεις να πεις σε μια δημοσίευση ή διόρθωσε την προηγούμενη

1 «Μου αρέσει»

Καλησπέρα!

Το Arduino δε βρίσκεται πάντα στο /dev/ttyACM0 ακόμα και αν λέει ότι είναι εκεί. Δε ξέρω γιατί γίνεται αυτό. Θα πρότεινα να δοκιμάσεις και τα /dev/ttyS0 και /dev/ttyUSB0. Από προσωπική εμπειρία, μερικές φορές τα βάζει εκεί.

Έβαλα στο grub αυτή την εντολη usbcore.autosuspend=-1 και δουλεψε

1 «Μου αρέσει»

Αυτό το νήμα έκλεισε αυτόματα 2 ημέρες μετά την τελευταία απάντηση. Δεν επιτρέπονται πλέον νέες απαντήσεις.