[résolu] Compilation firmware avec auto bed level

Cette rubrique concerne les questions technique que vous aimeriez soumettre.
ping
Membre actif
Messages : 22
Inscription : mer. avr. 06, 2016 7:37 pm
Imprimante 3D : prusa i3 Hephestos
Localisation : Région parisienne

Bonjour à tous,

Je rencontre un problème de compilation du firmware hephestos avec le nivellement automatique du plateau.
J'ai des erreurs et je ne parviens pas à trouver de solution (ou je ne fais pas les bonnes recherches...)

Voici le résultat de compilation :

Code : Tout sélectionner

  CXX   bin/Marlin.elf
bin/Marlin_main.o: In function `engage_z_probe()':
Marlin_main.cpp:(.text._ZL14engage_z_probev+0x22): undefined reference to `Servo::write(int)'
bin/Marlin_main.o: In function `retract_z_probe()':
Marlin_main.cpp:(.text._ZL15retract_z_probev+0x22): undefined reference to `Servo::write(int)'
bin/Marlin_main.o: In function `servo_init()':
Marlin_main.cpp:(.text._Z10servo_initv+0x14): undefined reference to `Servo::attach(int)'
Marlin_main.cpp:(.text._Z10servo_initv+0x48): undefined reference to `Servo::write(int)'
bin/Marlin_main.o: In function `homeaxis(int)':
Marlin_main.cpp:(.text._Z8homeaxisi+0xcc): undefined reference to `Servo::write(int)'
Marlin_main.cpp:(.text._Z8homeaxisi+0x3f2): undefined reference to `Servo::write(int)'
bin/Marlin_main.o: In function `process_commands()':
Marlin_main.cpp:(.text._Z16process_commandsv+0x2750): undefined reference to `Servo::write(int)'
Marlin_main.cpp:(.text._Z16process_commandsv+0x2848): undefined reference to `Servo::read()'
bin/Marlin_main.o: In function `_GLOBAL__sub_I_card':
Marlin_main.cpp:(.text._GLOBAL__sub_I_card+0x2e): undefined reference to `Servo::Servo()'
collect2: error: ld returned 1 exit status
Makefile:377: recipe for target 'bin/Marlin.elf' failed
make: *** [bin/Marlin.elf] Error 1
Voici les paramêtres changé dans le configuration.h :

Code : Tout sélectionner

#define ENABLE_AUTO_BED_LEVELING
#define NUM_SERVOS 1
#define SERVO_ENDSTOPS {-1, -1, 0}
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0}
plus les valeurs de rétractation et offset

J'utilise le firmare 2.2.0 (https://github.com/bq/Marlin/releases), et le sdk arduino 1.6.7
Tout compile bien tant que je n'active pas le support du servo, j'ai fouillé dans les différents fichier mais je ne trouve pas d'où vient le problème...

Y a t il quelqu'un pour m'aider ?
Dernière modification par ping le ven. avr. 15, 2016 1:38 pm, modifié 1 fois.
Tiflo
Contributeur
Messages : 76
Inscription : dim. déc. 27, 2015 12:36 am
Imprimante 3D : Prusa i3 Hephestos BQ

Bonsoir,

Essayez de compiler avec une ancienne version d'arduino, 1.0.6 en l'occurence.
La compilation présente des erreurs étranges avec les dernières versions d'arduino.

Attention également à l'autobed leveling avec la 2.2. Personnellement j'ai eu beaucoup de soucis (palpe hors du plateau alors que les "probes_offsets" sont bons), du coup retour à la 1.4

Tiflo
ping
Membre actif
Messages : 22
Inscription : mer. avr. 06, 2016 7:37 pm
Imprimante 3D : prusa i3 Hephestos
Localisation : Région parisienne

Merci pour ta réponse Tiflo,

J'ai essayé avec la 1.0.6 mais c'est pire, je retrouve les mêmes erreurs mais avec d'autre en plus.

J'ai utilisé le sdk 1.6.7 car c'est celui indiqué sur le github pour le fw 2.2.0.

Y a t il un gros impacte sur le fait de revenir en fw 1.4 ? (au niveau bugfix, fonctionnalité,..)
ping
Membre actif
Messages : 22
Inscription : mer. avr. 06, 2016 7:37 pm
Imprimante 3D : prusa i3 Hephestos
Localisation : Région parisienne

ps : demain je vais envoyer un mail à l'adresse fournis sur le github pour remonter l'erreur (vu que les issues sont désactivées..)
Tiflo
Contributeur
Messages : 76
Inscription : dim. déc. 27, 2015 12:36 am
Imprimante 3D : Prusa i3 Hephestos BQ

Y a t il un gros impacte sur le fait de revenir en fw 1.4 ? (au niveau bugfix, fonctionnalité,..)
Je n'ai pas vu de différence marquante personnellement, hormis l'encodeur rotatif du LCD qui est géré correctement.
L'imprimante est plus silencieuse en 1.4
Dernière modification par Tiflo le jeu. avr. 14, 2016 11:29 pm, modifié 1 fois.
ping
Membre actif
Messages : 22
Inscription : mer. avr. 06, 2016 7:37 pm
Imprimante 3D : prusa i3 Hephestos
Localisation : Région parisienne

J'ai réussi à "débloquer" la situation !

Pour commencer mon contacte avec le support bq :
En retour de mon mail j'ai eu le droit à la réponse bateau du "je vous redonne la procédure de compilation firmware disponible sur notre site".
Réponse que je me suis fais un malin plaisir à leurs renvoyer dans les dents.
Ils me demande maintenant plus de détails sur se que je veux faire (détails donnés dans mon premier mail, passons..).
Je vais tout de même jouer le jeu, qui sait on pourra peut être avoir un meilleur firmware au final =)

Je n'ai pas réussi à recompiler le fw 1.4 avec le sdk 1.0.6, l'ide met une erreur comme quoi il lui manque des librairies...

Au final j'ai utilisé le fw marlin "classic" en 1.1.0-RC5 (https://github.com/MarlinFirmware/Marlin).
Je l'ai reconfiguré en m'appuyant sur celui de bq, activé les options pour l'auto bed level et ...... ça fonctionne !!
Après plusieurs petites impressions test pour peaufiner les réglages tout semble bon.
Tiflo
Contributeur
Messages : 76
Inscription : dim. déc. 27, 2015 12:36 am
Imprimante 3D : Prusa i3 Hephestos BQ

La joie des SAVs :)

Je vais aussi finir par passer par le Marlin classique, le makefile de BQ est une vrai galère à utiliser (c'était pourtant si simple avec l'"""""IDE""""" Arduino).

Bonnes impressions
Répondre