Pages: [1] 2   Go Down
Author Topic: [RESOLU] IDE 1.0.2 & Leonardo : le port COM disparait  (Read 1681 times)
0 Members and 1 Guest are viewing this topic.
Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir

J'ai un problème avec l'IDE 1.0.2 et ma Léonardo (Vinciduino en fait).

Apparemment l'IDE 1.0.2 introduit un changement de comportant sur la fin du téléchargement.
Jusqu'à présent, une fois le téléchargement terminé, l'IDE ne faisait rien d'autre pendant que l'ATmega redémarre

Or apparemment dans la v1.0.2, l'IDE essaye de remettre le port série à la vitesse définie pour le moniteur série (il y a une nouvelle trace en blanc après la fin de AVRdude).

Ce qui pose un problème avec la Léonardo puisque à ce moment précis l'ATmega est en train de redémarrer et le port USB n'est pas en mode port série.
Sur mon PC (Win7-64) cela semble crasher le driver du port série et le port COM disparait. Du moins la Léonardo apparait bien dans le gestionnaire de périphériques, le port COM indiqué est le bon mais ce port COM n'existe pas (il n'apparait pas dans la liste des Serial Port).
Il faut que je supprime le périphérique et réinstalle le driver pour qu'il revienne.

Retour en IDE 1.0.1 et tout remarche comme avant.

Suis-je le seul a constater ce problème ?

==========================================
SOLUCE :
Le problème venait du fait que j'ai bricolé les réglages des ports COM de façon a utiliser le port même port COM (COM3) à la fois pour le bootloader et Serial. Avec l'IDE 1.0.2 ca ne pardonne pas !
Voir les explications ci-dessous.
« Last Edit: December 02, 2012, 05:36:19 am by barbudor » Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Bretagne
Offline Offline
Edison Member
*
Karma: 11
Posts: 1299
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ah le progrès... Je ne peux malheureusement pas te dire, je suis resté à la version 1.0.1, et avec ce que tu dis, je préfère ne pas upgrader.

Si ce que tu remarques est vrai, on peut se poser des questions sur les idées de l'équipe de dev de l'IDE... Ca serait pire qu'un bug!
Logged

France
Offline Offline
God Member
*****
Karma: 4
Posts: 961
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour

je viens de vérifier à l'instant et ne peut reproduire le probleme
La ligne blanche 'setting baud rate to 57600 on COM6' (exemple) coincide bien avec le démarrage de l'application flashée à l'instant.

Installation fraiche de l'IDE 1.0.2 sur un PC sous Seven 64 bits (au passage j'ai admiré l'installation du driver Leonardo très simplifiée maintenant)
Carte Vinciduino qui a déjà reçu le bootloader Caterina des Leonardo
Le ping-pong des ports séries virtuels (auto-reset, chargement , redémarrage de l'appli avec le bon débit) se passe bien quelque soit le nombre de bauds choisi pour l'application. (COM5 pour le bootloader, COM6 pour l'application sur cette installation fraïche)

Aurais tu des ports séries virtuels BlueTooth en standby, sur mon PC XP utilisé habituellement ça ralentit toutes les situations susceptibles de générer des scans de ports série ? Le PC 7-64bits est celui de ma compagne, zero ports série virtuels avant Leonardo/Vinciduino !
« Last Edit: December 02, 2012, 04:31:16 am by al1fch » Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Je n'ai aucun autre port virtuel, en tout cas actif (aucun autre port COM)

Voici ce qui se passe si je fait un upload depuis l'IDE 1.0.2 :

Quote
Binary sketch size: 5 588 bytes (of a 28 672 byte maximum)
Forcing reset using 1200bps open/close on port COM3
PORTS {COM3, } / {COM3, } => {}
PORTS {COM3, } / {COM3, } => {}
PORTS {COM3, } / {COM3, } => {}
PORTS {COM3, } / {COM3, } => {}
PORTS {COM3, } / {COM3, } => {}
PORTS {COM3, } / {COM3, } => {}
PORTS {COM3, } / {COM3, } => {}
PORTS {COM3, } / {COM3, } => {}
PORTS {COM3, } / {} => {}
PORTS {} / {} => {}
PORTS {} / {COM3, } => {COM3, }
Found Leonardo upload port: COM3
D:\Projets\tools\arduino\hardware/tools/avr/bin/avrdude -CD:\Projets\tools\arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega32u4 -cavr109 -P\\.\COM3 -b57600 -D -V -Uflash:w:d:\tmp\build5839210021584487937.tmp\blink.cpp.hex:i

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "D:\Projets\tools\arduino\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM3
         Using Programmer              : avr109
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

......

Connecting to programmer: .avrdude: Send: . [1b]
avrdude: Send: S [53]
avrdude: Recv: C [43]

avrdude: Recv: A [41] T [54] E [45] R [52] I [49] N [4e]
avrdude: Send: V [56]
avrdude: Recv: 1 [31] 0 [30]
avrdude: Send: v [76]
avrdude: Recv: ? [3f]
avrdude: Send: p [70]
avrdude: Recv: S [53]
Found programmer: Id = "CATERIN"; type = S
    Software Version = 1.0; No Hardware Version given.
avrdude: Send: a [61]
avrdude: Recv: Y [59]
Programmer supports auto addr increment.
avrdude: Send: b [62]
avrdude: Recv: Y [59]
avrdude: Recv: . [00]
avrdude: Recv: . [80]
Programmer supports buffered memory access with buffersize=128 bytes.
avrdude: Send: t [74]

Programmer supports the following devices:
avrdude: Recv: D [44]
    Device code: 0x44
avrdude: Recv: . [00]

avrdude: Send: T [54] D [44]
avrdude: Recv: . [0d]
avrdude: devcode selected: 0x44
avrdude: Send: P [50]
avrdude: Recv: . [0d]
avrdude: AVR device initialized and ready to accept instructions

..........

avrdude: 5588 bytes of flash written
avrdude: Send: L [4c]
avrdude: Recv: . [0d]
avrdude: Send: E [45]
avrdude: Recv: . [0d]

avrdude done.  Thank you.


Setting baud rate to 9600 on COM3
processing.app.SerialException: Serial port 'COM3' already in use. Try quitting any programs that may be using it.
   at processing.app.Serial.touchPort(Serial.java:119)
   at processing.app.debug.AvrdudeUploader.uploadViaBootloader(AvrdudeUploader.java:201)
   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:619)


Et là, plus de port COM3 (mes 2 ports COM bootloader et série sont réglés sur COM3)

Si j'utilise l'IDE 1.0.1, l'upload s’arrête à "avrdude done.  Thank you." et les ports COM partent et reviennent normalement .


De ton coté, tu vois bien passer cette phase de reconfiguration du port COM et ca se passe bien ?
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

France
Offline Offline
God Member
*****
Karma: 4
Posts: 961
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Le probleme de ton côté : un seul port COM alors qu'il doit y avoir un port distinct pour le bootloader (COM5 chez moi)
ça pourrait etre lié à un défaut de fermeture du port de l'appli = défaut du reset automatique (spécial sur leonardo)
Vinciduino/Leonardo , quelque soit le systeme d'exploitation et le bootloader ça a toujours été deux ports série virtuels chez moi.

Quand j'ai fait l'installation fraïche tout à l'heure Seven a bien trouvé deux ports com (COM5 au moment de l'insertion , COM6 peu après à la fin du time out du bootloader je suppose)

chez moi :
Code:
Taille binaire du croquis : 5 032 octets (d'un max de 28 672 octets)
Forcing reset using 1200bps open/close on port COM6
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {} => {}
PORTS {} / {} => {}
PORTS {} / {COM5, } => {COM5, }
Found Leonardo upload port: COM5
C:\Program Files (x86)\arduino-1.0.2\hardware/tools/avr/bin/avrdude -CC:\Program Files (x86)\arduino-1.0.2\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega32u4 -cavr109 -P\\.\COM5 -b57600 -D ........

.......FLASH.....

Code:
avrdude: verifying ...
avrdude: 5032 bytes of flash verified
avrdude: Send: L [4c]
avrdude: Recv: . [0d]
avrdude: Send: E [45]
avrdude: Recv: . [0d]

avrdude done.  Thank you.

Setting baud rate to 57600 on COM6

Laisses-tu agir l'auto reset ou cherches tu à accélérer en actionnant toi même le reset ?
« Last Edit: December 02, 2012, 05:15:13 am by al1fch » Logged

France
Offline Offline
God Member
*****
Karma: 4
Posts: 961
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
De ton coté, tu vois bien passer cette phase de reconfiguration du port COM et ca se passe bien ?
Sous Seven 64 comme sous XP j'ai toujours affaire à une permutation de ports , pas à une reconfiguration d'un seul et unique port.

je n'ai jamais eu , comme toi, une séquence de ce type à port unique:  (défaut d'installation de driver ?)
Code:
Forcing reset using 1200bps open/close on port COM3
PORTS {COM3, } / {COM3, } => {}
PORTS {COM3, } / {COM3, } => {}
PORTS {} / {} => {}
PORTS {} / {COM3, } => {COM3, }
Found Leonardo upload port: COM3

Nouvel essai pour montrer les débits boot et appli différents sur deux ports distincts (je ne vais pas pouvoir skatter ce PC très longtemps aujourd'hui !!) :

appli en COM6 115200 bauds
autoreset par ouverture/fermeture COM6 en 1200bauds
recherche Port COM Boot .....scan..... COM5 trouvé  (mieux vaut ne pas avoir de nombreux ports insrits dans la base de registre !)
Flashage par COM5 57600 bauds
fermeture COM5, ouverture COM6 (application) en 115200 bauds

Code:
Taille binaire du croquis : 5 032 octets (d'un max de 28 672 octets)
Forcing reset using 1200bps open/close on port COM6
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {COM6, } => {}
PORTS {COM6, } / {} => {}
PORTS {} / {} => {}
PORTS {} / {COM5, } => {COM5, }
Found Leonardo upload port: COM5
C:\Program Files (x86)\arduino-1.0.2\hardware/tools/avr/bin/avrdude -CC:\Program Files (x86)\arduino-1.0.2\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega32u4 -cavr109 -P\\.\COM5 -b57600 -D
...FLASH....
Code:
avrdude done.  Thank you.

Setting baud rate to 115200 on COM6
« Last Edit: December 02, 2012, 05:14:11 am by al1fch » Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

je n'ai jamais eu , comme toi, une séquence de ce type à port unique:  (défaut d'installation de driver ?)

Non, reconfiguration volontaire de ma part. A l'origine je m’emmêlait encore plus les pinceaux avec 2 ports COM différents.

Je vais re-configurer sur 2 ports COM différents.
« Last Edit: December 02, 2012, 05:47:36 am by barbudor » Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Avec COM3 pour le Serial et COM5 pour le bootloader ca se passe bien.

Avec l'IDE 1.0.1, qui ne cherche pas à ré-ouvrir le port COM Serial après le téléchargement c'était ok d'avoir 2 ports COM identiques.
Mais avec l'IDE 1.0.2 qui ré-ouvre le port COM Serial après le téléchargement, il le faisait sur le port COM Bootloader qui était en train de partir.. d'où foirage complet.

CORROLAIRE IMPORTANT

Si vous avez l'habitude de mettre un
Code:
while( !Serial );
au début de vos sketches (setup) alors suite à un téléchargement :

- Avec l'IDE v1.0.1 : le sketch attend que vous ayez ouvert manuellement le Moniteur Série pour continuer (sketch bloqué sur le while => Vous êtes sur de ne pas looper le démarrage du sketch et ce qu'il affiche au début).
- Avec l'IDE v1.0.2 : le sketch démarre tout de suite et vous loupez le début. Il faut faire un reset pour relancer le sketch pour qu'il se bloque sur le while() le temps que vous lanciez le Moniteur Série.

Je viens de le vérifier et ca ne me plait pas du tout du tout  smiley-evil
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

France
Offline Offline
God Member
*****
Karma: 4
Posts: 961
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

le choix d'un bootloader CDC + autoreset semble très contraigant.
Pourquoi CD et pas HID comme Teensy ? je ne connais pas les motifs.
La réouverture automatique du port était une demande exprimée (mailing list  Developpers)
visiblement ça se paie .... et il faut maintenant retarder le premier envoi de données sur le port série ou attendre qu'un humain envoie un caractère par le Terminal !!
« Last Edit: December 02, 2012, 06:33:22 am by al1fch » Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Je ne vois pas l'intérêt de la réouverture automatique du port sauf si elle s'accompagne de l'ouverture automatique du moniteur série.
Et cela devrait pouvoir être contrôlé par une option dans Préférences.
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

France
Offline Offline
God Member
*****
Karma: 4
Posts: 961
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Je ne vois pas l'intérêt de la réouverture automatique du port sauf si elle s'accompagne de l'ouverture automatique du moniteur série.
Et cela devrait pouvoir être contrôlé par une option dans Préférences.
+1
Logged

Bretagne
Offline Offline
Edison Member
*
Karma: 11
Posts: 1299
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu veux donc dire qu'il faudrait faire un Serial.End() au début du setup? Le souci, c'est que pour ça, il faut le faire directement dans les registres, je ne crois pas que ce soit implémenté dans la classe Serial...
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non, je parle de l'ouverture du port COM coté PC.

Sur la léonardo, tant que le PC n'a pas ouvert le port COM, l'objet Serial n'existe pas.
Dans si tu met
Code:
while( !Serial );
le sketch se bloque et attend que le PC ouvre le port COM.
C'est pratique car çà évite que le sketch démarre et commence à afficher des choses avant que le moniteur série soit ouvert.
Sur une Arduino normal, l'ouverture du port série par le PC génère un reset qui relance le sketch d'où tu a l'impression de n'avoir rien perdu.


Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Bretagne
Offline Offline
Edison Member
*
Karma: 11
Posts: 1299
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non, je parle de l'ouverture du port COM coté PC.

Sur la léonardo, tant que le PC n'a pas ouvert le port COM, l'objet Serial n'existe pas.
Tu veux dire l'IDE, car j'ai un sketch qui tourne très bien en autonome, et si le PC (je dis bien le PC, c'est une appli en VB6) envoie un code reconnu par le sketch, le PC prend la main sur le sketch. si le PC n'est pas connecté, le sketch tourne tout seul...
Dans si tu met
Code:
while( !Serial );
le sketch se bloque et attend que le PC ouvre le port COM.
C'est pratique car çà évite que le sketch démarre et commence à afficher des choses avant que le moniteur série soit ouvert.
Sur une Arduino normal, l'ouverture du port série par le PC génère un reset qui relance le sketch d'où tu a l'impression de n'avoir rien perdu.
même remarque... smiley-wink de mon côté, je vis ça très bien car je n'utilise pas le terminal arduino, il est trop contraignant par rapport à ma façon de coder...
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

PC, IDE, VB6: c'est du pareil au même.
Il y a des cas où tu veux que ton code Arduino démarre tout seul, il y a des fois ou tu veux contrôler.

Si tu veux qu'il démarre tout seul, tu ne met pas la boucle while sur Serial.
Si tu veux qu'il attende, tu la met. Sauf qu'avec l'IDE 1.0.2 ca ne marche plus sans faire un reset manuel
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Pages: [1] 2   Go Up
Jump to: