Pages: [1] 2 3 4   Go Down
Author Topic: Arduino Leonardo problème de compilation/uploading sous linux  (Read 4359 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mesdames messieurs bonjour,

Je me permets de vous demander conseil, si ce sujet a déjà été abordé veuillez m'excuser de vous faire perdre votre temps (et le mien ^^).

Voila je programme depuis un petit moment sur un Arduino Uno pour un projet personnel sur un Quadrotor. En voyant le nouvel Arduino Leonardo je me suis dit "chouette il est moins chère et plus fin et j'aurais pas à dé-souder toutes les pins pour ressouder mes fils". Bref!

Au début je pensais que l'utilisation du logiciel était entièrement transparente. J'ai vite vue que non. Par conséquent j'ai trouvé sur internet comment changer le fichier "board.txt" pour identifier les paramètres intrinsèques de Leonardo. Mais malheureusement ça ne compile pas....

A ma première ligne de code qui n'est ni un #include ni un #define il me retourne l'erreur suivante :

..../arduino/hardware/arduino/cores/arduino/HardwareSerial.h:64:23: fatal error: usb_api.h: aucun fichier de ce nom existant.

Du coup ma première question serait : que faire? Et en réfléchissant un peu : où trouver cette API?

Merci par avance pour votre aide.

Mike!
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 224
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Pourquoi avoir modifié le fichier boards.txt. La Leonardo est censée être prise en charge par Arduino 1.0.1, non ?
Logged


France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Au début je pensais que l'utilisation du logiciel était entièrement transparente. J'ai vite vue que non. Par conséquent j'ai trouvé sur internet comment changer le fichier "board.txt" pour identifier les paramètres intrinsèques de Leonardo. Mais malheureusement ça ne compile pas....
Les choses ne sont pas si simple et transparente avec les cartes leonardo smiley-wink
C'est pas du tout la même chose qu'une carte arduino classique.

Quelques liens :
http://arduino.cc/forum/index.php/topic,112471.0.html
http://skyduino.wordpress.com/2012/06/28/test-olimexino-32u4-arduino-leonardo-compatible-et-arduino-1-0-1/ (2eme partie)
http://skyduino.wordpress.com/2012/07/07/hack-utiliser-teensyduino-avec-une-carte-arduino-leonardo-ou-compatible-leonardo/ (pour les curieux)

..../arduino/hardware/arduino/cores/arduino/HardwareSerial.h:64:23: fatal error: usb_api.h: aucun fichier de ce nom existant.

Du coup ma première question serait : que faire? Et en réfléchissant un peu : où trouver cette API?
C'est un fichier de base inclut dans l'ide arduino 1.0.1 qui est obligatoire pour pouvoir coder sur une carte arduino leonardo.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pourquoi avoir modifié le fichier boards.txt. La Leonardo est censée être prise en charge par Arduino 1.0.1, non ?

Je suis sous linux, j'ai effectué un traditionnel sudo apt-get install arduino en pensant que ça me donnerais la dernière version. Mais apparement j'ai eu tord.... Surtout que sur le site est marqué que pour Linux il n'y a pas de modification à faire pour programmer sur Leonardo (donc dans ma tête pas de soucis). C'est pour cela que j'ai changé à la main le board.txt. Mais je pense qu'il vaudrait mieux avoir l'IDE complète, car je pense ne pas l'avoir.... Je regarderais ça ce soir.


Merci pour ces liens c'est vraiment intéressant!! Du coup j'ai encore posté un commentaire... Mais sur ta page!!!
Je continue d'étudier tout ça et je fais des retours


Merci à vous deux!!

Mike
« Last Edit: July 10, 2012, 09:39:52 am by MikeLarson » Logged

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Je suis sous linux, j'ai effectué un traditionnel sudo apt-get install arduino en pensant que ça me donnerais la dernière version. Mais apparement j'ai eu tord.... Surtout que sur le site est marqué que pour Linux il n'y a pas de modification à faire pour programmer sur Leonardo (donc dans ma tête pas de soucis). C'est pour cela que j'ai changé à la main le board.txt. Mais je pense qu'il vaudrait mieux avoir l'IDE complète, car je pense ne pas l'avoir.... Je regarderais ça ce soir.
Ne jamais prendre les version des dépots apt de l'ide arduino. smiley-wink
Toujours prendre l'archive la plus récente sur le site arduino.cc.

Les dépôts ne sont jamais mis à jour pratiquement.
Il y a peu c'était encore la version 0018, puis il ont dénié passer en 0023, aujourd'hui je ne sait même pas quelle version il ont en stock ...
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Les dépôts ne sont jamais mis à jour pratiquement.
Il y a peu c'était encore la version 0018, puis il ont dénié passer en 0023, aujourd'hui je ne sait même pas quelle version il ont en stock ...

Ceci expliquerait cela...... Bon ben je fais ça ce soir alors, peut être que mes problèmes seront résolus.

Merci
Logged

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

C'est déjà plus à jour (1.0.1) dans les dépots Debian :
http://packages.debian.org/sid/arduino
(pas encore testé , mais 1.0.1 apporte la prise en charge de  Leonardo)
« Last Edit: July 10, 2012, 10:23:34 am by al1fch » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 224
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Les dépôts ne sont jamais mis à jour pratiquement.
Il y a peu c'était encore la version 0018, puis il ont dénié passer en 0023, aujourd'hui je ne sait même pas quelle version il ont en stock ...

Depuis Ubuntu 12.04 c'est la version 1.0. Pour les autres distributions je ne sais pas...
Logged


France S-O ou exil en IDF
Offline Offline
Edison Member
*
Karma: 25
Posts: 1904
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Ne jamais prendre les version des dépots apt de l'ide arduino. smiley-wink
Toujours prendre l'archive la plus récente sur le site arduino.cc.

Faux  faux et faux c'est tout le contraire.
En tout cas avec Debian et donc avec Ubuntu qui est basée sur Debian testing/Sid. Soit la quasi totalité des utilisateurs de Linux.

La version stable est certes toujours en 018 : c'est normal pour une stable les versions ne changent pas, il n'y a que des mises à jour de sécurité. La stable Debian c'est du béton, c'est fait pour les serveurs.

Par contre même avec une stable il est possible d'utiliser les dernières versions de l'IDE arduino qui sont revues par des informaticiens de chez Debian et qui ont de ce fait des utilitaires gcc et avr plus à jour que dans l'IDE officielle Arduino.

Méthode :
-Incorporer les dépots "testing" et "Sid" dans le fichier sources.list
-Créer un fichier préférence afin d'éviter de se retrouver automatiquement en Sid.

Pour, à partir d'une stable, charger manuellement la dernière version disponible dans testing :
#aptitude install -t testing nom_du_paquet

Vie d'un paquet chez Debian :
-Paquet entièrement nouveau ou profondément changé = zone  "experimental" (pour kamikase) puis passage en Sid.
-Nouvelle mise à jour : passage de 2 semaines à 1 mois dans le dépôt SID (Still In Developement)
-Après validation dans SID passage dans Testing

Changement de version de distribution :
Pas de contrainte marketing ni d'actionnaires à rémunérer : chez Debian ça sort quand c'est prêt.
Et c'est prêt en moyenne tout les 2 ans/2ans et demi.

J'ai personnellement vérifié que dans la version 1.00 officielle Arduino pour linux la version avr-libc était en retard par rapport à celle disponible dans le paquet debian testing !


Il faudrait un jour arrêter de rabâcher les vieilles fausses affirmations sur Linux qui ont vraiment la vie dure.
Logged

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La version stable est certes toujours en 018 : c'est normal pour une stable les versions ne changent pas, il n'y a que des mises à jour de sécurité. La stable Debian c'est du béton, c'est fait pour les serveurs.
Les paquets en unstable sous debian c'est pas l'approche logique d'un utilisateur debian, debian = stabilité.
Si la team arduino fourni des archives d'installation linux x32 et x64 ainsi qu'un script d'installation des dépendances c'est pas pour rien.

Par contre même avec une stable il est possible d'utiliser les dernières versions de l'IDE arduino qui sont revues par des informaticiens de chez Debian et qui ont de ce fait des utilitaires gcc et avr plus à jour que dans l'IDE officielle Arduino.
Ce qui n'est absolument pas un avantage puisque l'ide arduino est testé avec seulement quelques version de avr-gcc.
Il y a par exemple une version de avr-gcc qui est complétement corrompu avec l'ide arduino (je me rappelle plus de la version exacte, mais ça avait fait grand bruit)

J'ai personnellement vérifié que dans la version 1.00 officielle Arduino pour linux la version avr-libc était en retard par rapport à celle disponible dans le paquet debian testing !
Même raison qu'au dessus, la team arduino choisi les versions en fonctions de ce qui marche, pas de ce qui est le plus récent.
Avoir la toute derniére version de la toolchain avr pour coder sous arduino n'est absolument pas utile.

Il faudrait un jour arrêter de rabâcher les vieilles fausses affirmations sur Linux qui ont vraiment la vie dure.
Je suis utilisateurs linux depuis pas mal de temps et désolé quand je veut un programme vraiment à jour je le prend à la source, au concepteur lui même.
Les paquets c'est super (je les utilisent comme tous le monde) parce que c'est automatique suivant le canal de version utilisé, mais tu ne gére en rien les versions qui te sont fourni.
L'exemple type du programme que tu n'installe pas via les paquets : l'utilitaire stlink, tu peut prendre la stable, la unstable ou la experimental tu auras toujours 2 ou 3 version d'écart avec la version SVN à compiler soi même (nigthly).

Un utilisateurs arduino sous linux à deux choix :
- ce casser la tête à choisir le canal unstable et changer les préf d'installations pour utiliser ce canal
- prendre le paquets tout prés sur arduino.cc et lancer un script
Faut pas chercher midi à 14h, quand on ne dév pas en avr-c (ce qui n'est pas ton cas) pas besoin de ce casser la tête avec les versions de avr-gcc.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

0
Offline Offline
God Member
*****
Karma: 0
Posts: 798
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep!

Pour info, la version arduino sous Squeeze (Debian stable) est la 022...Je ne sais pas où vous avez vue que la version actuelle était la 018 ???
Ouppss!!! J'ai dû installer la 022  smiley-yell

En testing, la version dispo est la 1.0.1

Sinon, dans l'ensemble de la discution, je rejoins skywodd, certains logiciels peuvent demeurer à la même version pendant prés de deux évolutions du noyau et il n'y a pas d'autre solution que de se taper une compilation dans le pire des cas si on veut une mise à jour ou profiter des upgrade.
En effet, la communauté linux préfère de loin corriger les (nombreux) bugs de Gnome ou Kde que de travailler sur des logiciels tiers, il y a peu d'intervenant en définitive.

Par contre, certaines comparaisons sont un peu fallacieuses, car comparer les depots svn avec ceux de debian est un peu tirer par les cheveux et aller chercher une version "plus à jour" sur un tel depot, c'est aussi prendre le risque d'être confronté à des bugs ou des incohérences entre les librairies et le logiciel lui même.

En gros, sous linux, tu sais ce que tu fais ou tu ne sais pas !!!

Je dis çà mais je ne dis rien  smiley-mr-green

Perso, la version 022 me convient parfaitement à ce jour.

@+

Zoroastre.
« Last Edit: July 10, 2012, 02:48:52 pm by zoroastre » Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

France S-O ou exil en IDF
Offline Offline
Edison Member
*
Karma: 25
Posts: 1904
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
quand on ne dév pas en avr-c (ce qui n'est pas ton cas)
Qu'est ce que tu en sais ?
Les exemples dans mes notes sur les interruptions PCINT de l'atmega328p ils sont en langage arduino ou en avr-gcc ?

Pour le reste je maintiens l'intégralité de mes propos sur Debian.
Il faut bien comprendre le cycle Debian :
1) C'est le mainteneur Debian du paquet qui fait les tests de compatibilité, ce n'est pas l'auteur du programme, donc il n'y a pas besoin que l'équipe arduino fasse des tests, et je fais plus confiance au mainteneur Debian qu'à l'équipe arduino.
2) Les paquets passent obligatoirement en Sid où ils sont déverminés.
3) Quand ils descendent en testing ils sont fonctionnels parce que Testing bien qu'elle ne soit pas figée  est parfaitement fonctionnelle (sauf pendant le mois qui suit un changement de version stable, c'est à dire que quand Wheezy va devenir stable il faudra rester en stable encore un bon mois avant de basculer sur la nouvelle testing).
4) L'architecture Debian est très stricte, c'est ce qui fait sa solidité, et je n'ai vraiment pas envie de la rendre instable avec la version officielle arduino qui pour moi manque de transparence.

@zoroastre
Les gourous Debian n'ont qu'une seule "interdiction"  quant au mélange de différents dépots c'est quand cela oblige à upgrader la libc6. Dans ce cas effectivement on cours de gros risques d'incohérence et autant basculer totalement dans l'autre distribution. Sinon pour rester en stable et bénéficier de nouvelles versions il y a les backports, mais seuls les principaux logiciels sont concernés.

Pour le reste chacun est libre de faire comme il l'entends.
Pour clore le débat une petite réminiscence de 1968 : "Il est interdit d'interdire"
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci à tous pour ces infos. J'ai donc installé le "bon" IDE d'arduino. Maintenant ça compile, ça upload (par contre c'est super long!!!!!).
Par contre il est vrai que l'utilisation du Serial Monitor est à ch***. Dans l'ancienne version avec mon Uno c'était rapide, là je doit attendre très longtemps (l'ordre de la minute), fermé et réouvrir je ne sais combien de fois mon Serial Monitor pour que ça marche. Alors? Cela vient il de la communication Série? Ou cela vient il de l'IDE?
Pour en savoir plus je vais regarder à l'oscillo les signaux qui transitent et voir ainsi quand la communication ce lance. On verra bien.

Encore merci et bonne journée!

Je vous tiens au courant de la suite voir si ça marche!!

Mike
Logged

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Par contre, certaines comparaisons sont un peu fallacieuses, car comparer les depots svn avec ceux de debian est un peu tirer par les cheveux et aller chercher une version "plus à jour" sur un tel depot, c'est aussi prendre le risque d'être confronté à des bugs ou des incohérences entre les librairies et le logiciel lui même.
Oui c'est vrai, mais tout dépend du svn et du "niveau de professionnalisme" du dév en charge du projet.
Il y a quelques bug (c'est inévitable pour une version nigthly) mais ils sont résolu trés rapidement de par la nature "nigthly" même de la branche.
C'est aussi une façon de penser, je suis sur la nigthly, je rencontre un bug, j'ouvre un ticket pour le signaler et cela rend permet de fiabilisé encore plus le code qui finira par passer en stable.

Et puis faire un update en svn / git est (pour moi) aussi simple qu'avec un gestionnaire de paquets.
Un update du dossier, si il ya modif une compilation, et aprés installation, le tout se résumant dans 99% des cas à
Code:
svn update && ./configure && make clean && make all && make install

En gros, sous linux, tu sais ce que tu fais ou tu ne sais pas !!!
Je dis çà mais je ne dis rien  smiley-mr-green
Tu maitrise et tu fait ton truc, ou tu maitrise pas et tu reste avec les truc de base smiley-wink

Quote
quand on ne dév pas en avr-c (ce qui n'est pas ton cas)
Qu'est ce que tu en sais ?
Les exemples dans mes notes sur les interruptions PCINT de l'atmega328p ils sont en langage arduino ou en avr-gcc ?
Par ma parenthèse j'entends que toi tu sait codé en avr-c, ou du moins tu sait ce que tu fait avec les registres et le datasheet.
Du reste tes notes sur PCint sont en avr-c mixé avec de l'arduino.
Quand on ne s'intéresse pas à ce qui a en dessous de la librairie arduino il n'y as aucun intéret à regarder les versions de avr-gcc que l'on utilise (au risque de faire une erreur dans le choix).

4) L'architecture Debian est très stricte, c'est ce qui fait sa solidité, et je n'ai vraiment pas envie de la rendre instable avec la version officielle arduino qui pour moi manque de transparence.
Tu devrais avoir plus confiance dans la version officiel.
Je suit de trés prés le github de la team arduino et je peut t'assurer que certaines modifications mériteraient même de faire une nouvelle version de l'ide tellement elle sont intéréssante / critique / bénéfique.
Mais chacun ses gouts,  moi j'aime les nightly, toi tu est plus unstable, chacun à le droit de faire ses choix comme il l'entend smiley-mr-green
(Du reste je tourne avec un ide 1.0.1 svn, au thème graphique arduino 0023, en anglais, avec un core arduino custom et un plugin teensyduino modifié, j'aime bien avoir des trucs pas conventionnel smiley-sweat )

Merci à tous pour ces infos. J'ai donc installé le "bon" IDE d'arduino. Maintenant ça compile, ça upload (par contre c'est super long!!!!!).
Par contre il est vrai que l'utilisation du Serial Monitor est à ch***. Dans l'ancienne version avec mon Uno c'était rapide, là je doit attendre très longtemps (l'ordre de la minute), fermé et réouvrir je ne sais combien de fois mon Serial Monitor pour que ça marche. Alors? Cela vient il de la communication Série? Ou cela vient il de l'IDE?
Pour en savoir plus je vais regarder à l'oscillo les signaux qui transitent et voir ainsi quand la communication ce lance. On verra bien.
A mon avis cela vient de ton ordi, à tu des clef usb bluetooth sur ton ordi (ils sont connu pour ralentir considérablement le serial monitor).
Met à jour la librairie RxTx, elle est peut être trop ancienne pour ton systéme ?
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 0
Posts: 24
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
A mon avis cela vient de ton ordi, à tu des clef usb bluetooth sur ton ordi (ils sont connu pour ralentir considérablement le serial monitor).
Met à jour la librairie RxTx, elle est peut être trop ancienne pour ton systéme ?

Non j'ai justement retiré tous les périphériques externes pour éviter ce genre de problème. Mais là depuis ce matin ça upload rapidement (comme avant ^^). Des fois faut pas chercher à comprendre.

Je cherche à résoudre mon problème de communication avec Rx/Tx (qui marchait très bien avant donc ça ne vient pas de la structure des trames que j'envoie). Je vais regardé sur l'oscillo si les trames que j'envoie sont bien celles que je veux envoyer (notamment pour la fréquence).

Merci
Logged

Pages: [1] 2 3 4   Go Up
Jump to: