[RÉSOLU]Arduino bloqué

Voici mon problème[/b] :[/center]
J’ai fait un programme ou je voulais commander mes led avec le moniteur série, en l’ouvrant la vitesse était au minimum (te texte était illisible) donc je l’ai mise à 9600B/s (en standard), mais c’est à partir de ce moment que mon Arduino s’est bloqué. :o
Ma config :
Arduino UNO R3
PC Linux (Ubuntu)
Infos supplémentaires :
Dés que je veut téléverser un programme dans ma carte le logiciel me dit :
> processing.app.SerialException: Erreur d’ouverture du port série « /dev/ttyACM0 ».
> at processing.app.Serial.(Serial.java:179)
> at processing.app.Serial.(Serial.java:77)
> at processing.app.debug.Uploader.flushSerialBuffer(Uploader.java:77)
> at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:175)
> at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:67)
> at processing.app.Sketch.upload(Sketch.java:1671)
> at processing.app.Sketch.exportApplet(Sketch.java:1627)
> at processing.app.Sketch.exportApplet(Sketch.java:1599)
> at processing.app.Editor$DefaultExportHandler.run(Editor.java:2380)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: gnu.io.UnsupportedCommOperationException: Invalid Parameter
> at gnu.io.RXTXPort.setSerialPortParams(RXTXPort.java:213)
> at processing.app.Serial.(Serial.java:163)
> … 9 more
> processing.app.debug.RunnerException: Erreur d’ouverture du port série « /dev/ttyACM0 ».
> at processing.app.debug.Uploader.flushSerialBuffer(Uploader.java:101)
> at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:175)
> at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:67)
> at processing.app.Sketch.upload(Sketch.java:1671)
> at processing.app.Sketch.exportApplet(Sketch.java:1627)
> at processing.app.Sketch.exportApplet(Sketch.java:1599)
> at processing.app.Editor$DefaultExportHandler.run(Editor.java:2380)
> at java.lang.Thread.run(Thread.java:748)
et si je veut lancer le moniteur série :
> processing.app.SerialException: Erreur d’ouverture du port série « /dev/ttyACM0 ».
> at processing.app.Serial.(Serial.java:179)
> at processing.app.Serial.(Serial.java:92)
> at processing.app.SerialMonitor.openSerialPort(SerialMonitor.java:207)
> at processing.app.Editor.handleSerial(Editor.java:2481)
> at processing.app.Editor$17.actionPerformed(Editor.java:665)
> at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
> at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
> at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
> at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
> at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
> at javax.swing.AbstractButton.doClick(AbstractButton.java:356)
> at javax.swing.plaf.basic.BasicMenuItemUI$Actions.actionPerformed(BasicMenuItemUI.java:802)
> at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1663)
> at javax.swing.JComponent.processKeyBinding(JComponent.java:2882)
> at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:699)
> at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:706)
> at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:706)
> at javax.swing.JMenuBar.processKeyBinding(JMenuBar.java:677)
> at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:307)
> at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:293)
> at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2974)
> at javax.swing.JComponent.processKeyBindings(JComponent.java:2966)
> at javax.swing.JComponent.processKeyEvent(JComponent.java:2845)
> at processing.app.syntax.JEditTextArea.processKeyEvent(JEditTextArea.java:1726)
> at java.awt.Component.processEvent(Component.java:6310)
> at java.awt.Container.processEvent(Container.java:2236)
> at java.awt.Component.dispatchEventImpl(Component.java:4889)
> at java.awt.Container.dispatchEventImpl(Container.java:2294)
> at java.awt.Component.dispatchEvent(Component.java:4711)
> at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
> at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806)
> at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074)
> at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945)
> at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771)
> at java.awt.Component.dispatchEventImpl(Component.java:4760)
> at java.awt.Container.dispatchEventImpl(Container.java:2294)
> at java.awt.Window.dispatchEventImpl(Window.java:2746)
> at java.awt.Component.dispatchEvent(Component.java:4711)
> at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
> at java.awt.EventQueue.access$500(EventQueue.java:97)
> at java.awt.EventQueue$3.run(EventQueue.java:709)
> at java.awt.EventQueue$3.run(EventQueue.java:703)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
> at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
> at java.awt.EventQueue$4.run(EventQueue.java:731)
> at java.awt.EventQueue$4.run(EventQueue.java:729)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
> at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:700)
> at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
> at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
> at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
> Caused by: gnu.io.UnsupportedCommOperationException: Invalid Parameter
> at gnu.io.RXTXPort.setSerialPortParams(RXTXPort.java:213)
> at processing.app.Serial.(Serial.java:163)
> … 56 more
Je vous ai également mit le programme pour voir si le problème vient de la (et si vous avez aussi des propositions pour qu’il soit fonctionel… :wink: )
sketch_jul24a.ino (792 Bytes)

L'erreur indique que le port USB /dev/ttyACM0 n'est pas trouvé. Est-ce que tu n'aurai pas déconnecté et reconnecté immédiatement la carte ?

Si tu as été trop rapide et que l'OS n'a pas eu le temps de faire le ménage il considère que /dev/ttyACM0 est toujours pris et il ouvre le port suivant /dev/ttyACM1.

Regarde dans les menus de l'IDE quel port est disponible et relance ton programme.

68tjs: L'erreur indique que le port USB /dev/ttyACM0 n'est pas trouvé. Est-ce que tu n'aurai pas déconnecté et reconnecté immédiatement la carte ?

Si tu as été trop rapide et que l'OS n'a pas eu le temps de faire le ménage il considère que /dev/ttyACM0 est toujours pris et il ouvre le port suivant /dev/ttyACM1.

Regarde dans les menus de l'IDE quel port est disponible et relance ton programme.

Alors tout d'abord merci pour ta réponse rapide. On va faire dans l'ordre :

Non, la carte reste branchée à mon pc ( j'atends que le programme se lance pour la retirer ).

Je branche la carte avant de lancer l'IDE donc je pense qu'il a le temps.

J'ai deux ports : /dev/ttyS0 et /dev/ttyACM0 (mais dés qu'il a le message d'erreur le /dev/ttyACM0 disparait) : Quand je veut téléverser sur le premier l'IDE me propose de téléverser sur la deuxième mais toujours le même message.

L'erreur indique un problème de port.

Je suppose que ta carte est une carte UNO pour avoir un port ACM0, avec une nano tu aurai un port /dev/ttyUSB0

1) Peut tu confirmer que cela à déjà fonctionner (indépendemment du réglage de la vitesse du port série) ?

2) Si oui débranche ta carte, ferme l'IDE, branche ta carte et lance l'IDE.

Pour le port série il faut il suffit que le sérial monitor de l'ide soit configuré à la même vitesse que celle indiquée dans le programme --> plutôt que de modifier le programme il suffit de régler le sérial monitor.

68tjs:
L’erreur indique un problème de port.

Je suppose que ta carte est une carte UNO pour avoir un port ACM0, avec une nano tu aurai un port /dev/ttyUSB0

  1. Peut tu confirmer que cela à déjà fonctionner (indépendemment du réglage de la vitesse du port série) ?

  2. Si oui débranche ta carte, ferme l’IDE, branche ta carte et lance l’IDE.

Pour le port série il faut il suffit que le sérial monitor de l’ide soit configuré à la même vitesse que celle indiquée dans le programme → plutôt que de modifier le programme il suffit de régler le sérial monitor.

Bien vu :smiley: c’est bien un carte UNO

  1. Oui, cela a déjà fonctionné

  2. La LED TX s’allume pendant ~5s mais la LED L reste fixe. Sinon, toujours la même erreur.

Le programme était à 6900 mais le serial monitor au plus bas.

Je vais de désinstaller l’IDE et de le réinstaller.

Si tu as besoin, je peut t’envoyer le fichier preferences.txt

Non c'est soit une énorme connerie (les plus grosses sont les plus difficile à voir) soit une déprogrammation de l'atmega16U2. Pour le moment je penche pour la grosse connerie qui n'a rien à voir avec la vitesse du port série :grin:

Que donne dans une console un : $lsusb avant et après avoir connecté la carte uno ?

Même chose avec $ dmesg |tail -10

68tjs: Non c'est soit une énorme connerie (les plus grosses sont les plus difficile à voir) soit une déprogrammation de l'atmega16U2. Pour le moment je penche pour la grosse connerie qui n'a rien à voir avec la vitesse du port série :grin:

Que donne dans une console un : $lsusb avant et après avoir connecté la carte uno ?

Même chose avec $ dmesg |tail -10

Avec lsusb : Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 0bda:57b3 Realtek Semiconductor Corp. Bus 001 Device 052: ID 2341:0043 Arduino SA Uno R3 (CDC ACM) Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Avec dmseg |tail -10 : [31051.778731] usb 1-2: Manufacturer: Arduino (www.arduino.cc) [31051.778739] usb 1-2: SerialNumber: 75630313836351017072 [31051.788220] cdc_acm 1-2:1.0: ttyACM1: USB ACM device [31226.008851] usb 1-2: USB disconnect, device number 52 [31227.059435] usb 1-2: new full-speed USB device number 53 using xhci_hcd [31227.203146] usb 1-2: New USB device found, idVendor=2341, idProduct=0043 [31227.203162] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=220 [31227.203173] usb 1-2: Manufacturer: Arduino (www.arduino.cc) [31227.203181] usb 1-2: SerialNumber: 75630313836351017072 [31227.206404] cdc_acm 1-2:1.0: ttyACM1: USB ACM device

Pendant ce temps je vais un peu modifier le fichier preferences.txt (en espérant pouvoir réparer)

Je me suis étonné moi-même :
Je sais comment j’ai fait mais j’ai RÉUSSI à le débloquer en modifiant de options en random dans me fichier preferences.txt (je le met en pièce jointe).

preferences.txt (2.42 KB)

[31051.778731] usb 1-2: Manufacturer: Arduino (www.arduino.cc) [31051.778739] usb 1-2: SerialNumber: 75630313836351017072 [31051.788220] cdc_acm 1-2:1.0: ttyACM1: USB ACM device

C'est clair la carte est reconnue comme ACM*1* comme je te l'avais suggéré. Il te suffisait d'aller dans : Outil Port et de sélectionner ACM*1*

Dés que je voulais mette sur ttyACM0 (seulement s'il y était pas), une fenêtre pop-up me disant que ça allait être fait dans ttyACM1 (Le numéro changeait quand il y avait l'erreur