Ile-de-France (92 sud), France
Offline
Edison Member
Karma: 22
Posts: 1817
|
 |
« on: December 01, 2012, 06:13:59 pm » |
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
God Member
Karma: 8
Posts: 659
|
 |
« Reply #1 on: December 02, 2012, 02:18:53 am » |
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
God Member
Karma: 2
Posts: 905
|
 |
« Reply #2 on: December 02, 2012, 04:02:41 am » |
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
Edison Member
Karma: 22
Posts: 1817
|
 |
« Reply #3 on: December 02, 2012, 04:24:21 am » |
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 : 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
God Member
Karma: 2
Posts: 905
|
 |
« Reply #4 on: December 02, 2012, 04:30:16 am » |
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 : 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..... 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
God Member
Karma: 2
Posts: 905
|
 |
« Reply #5 on: December 02, 2012, 04:48:36 am » |
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 ?) 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 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.... 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
Edison Member
Karma: 22
Posts: 1817
|
 |
« Reply #6 on: December 02, 2012, 05:22:38 am » |
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
Edison Member
Karma: 22
Posts: 1817
|
 |
« Reply #7 on: December 02, 2012, 05:34:52 am » |
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 IMPORTANTSi vous avez l'habitude de mettre un 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 ] 
|
|
|
|
|
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
God Member
Karma: 2
Posts: 905
|
 |
« Reply #8 on: December 02, 2012, 06:26:42 am » |
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
Edison Member
Karma: 22
Posts: 1817
|
 |
« Reply #9 on: December 02, 2012, 06:28:46 am » |
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
God Member
Karma: 2
Posts: 905
|
 |
« Reply #10 on: December 02, 2012, 06:31:17 am » |
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
God Member
Karma: 8
Posts: 659
|
 |
« Reply #11 on: December 02, 2012, 01:14:53 pm » |
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
Edison Member
Karma: 22
Posts: 1817
|
 |
« Reply #12 on: December 02, 2012, 01:22:23 pm » |
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 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
God Member
Karma: 8
Posts: 659
|
 |
« Reply #13 on: December 02, 2012, 02:51:05 pm » |
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 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...  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
Edison Member
Karma: 22
Posts: 1817
|
 |
« Reply #14 on: December 02, 2012, 03:00:39 pm » |
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 ?
|
|
|
|
|