Aller au contenu

PETG Sakata

[TUTO] Bien installer son environnement de développement pour compiler son firmware (Marlin)


fran6p

Messages recommandés

Ce tutoriel s'adresse à ceux voulant faire leur propre firmware basé sur Marlin.

Afin de faire son propre firmware, il est essentiel d'installer correctement son environnement de développement  (chaine de compilation).

Pour un Marlin, version 1, il était recommandé d'utiliser le logiciel Arduino  pour faire les modifications des fichiers de configuration puis réaliser la compilation et éventuellement le flashage du firmware obtenu si l'imprimante était reliée à l'ordinateur via un câble USB.

Depuis la version 2 de Marlin, l'environnement de travail préconisé est différent, même s'il reste possible de compiler son propre firmware avec un Marlin 2.x pour des cartes 8 bits avec l'environnement Arduino IDE.

Ce que je décris par la suite est ma manière de travailler qui jusqu'à ce jour m'a permis de compiler de nombreux firmwares (pour mon propre usage ou pour celui d'autres membres de ce forum).

Passons donc à l'installation des différents logiciels.

Installer Git bash

  • Télécharger et installer la version actuelle de Git en fonction de votre OS (Windows, Linux, Mac)

download-git.jpg.64c433e1af77442474d18243b006a028.jpg

Installer Python

  • Télécharger et installer la version actuelle de Python en fonction de votre OS (Windows, Linux, Mac)

download-python.jpg.253c39fa85edec29d01cd3b37bcd8b38.jpg

Comment installer VSC et Auto Build Marlin + Platformio IDE pour compiler

  • Télécharger Visual Studio Code (VSC) à partir d'ici Le choix dépend du système d'exploitation (OS) de l'ordinateur (Windows (7, 8, 10) / Linux / Mac) et de l'architecture (32 / 64bits).

download-VSC.jpg.c0c7feade7c5bc0b7337b75ef911a70a.jpg

Après téléchargement, un double-clic pour lancer l'installation de VSC. Après installation, ouvrir VSCode.

  • Il faudra ensuite installer l'extension «Auto Build Marlin», clic sur le ① indiqué dans l'image ci-dessous, saisir Auto Build Marlin (ABM) dans ② puis cliquer ③ Installer pour finaliser l'installation.

VSC-ext-ABM.jpg.110880de50946880557ac0c6145c13d4.jpg

 

Normalement, l'installation de «ABM» devrait avoir également installé en dépendance Platformio IDE. Si ce n'était pas le cas :

  • Installer l'extension «Platformio IDE», comme pour ABM, clic sur le ① indiqué dans l'image ci-dessous, saisir Platformio IDE dans ② puis cliquer ③ Installer pour finaliser l'installation.

VSC-ext-Platformio.jpg.61d6dcf34b8a5118513237c9e929fdc6.jpg

Après installation de ces extensions, il faudra probablement effectuer un rechargement pour que ce soit pris en compte via Recharger

VSC-ext-reload.jpg.7659394448ceb356bd23c98c66bb9a8d.jpg

Une fois ces installations réussies, après un nouveau rechargement, Auto Build Marlin et PlatformIO sont installés et apparaissent dans la liste des extensions (plugins) dans la partie gauche de VSCode.

VSC-icone-extensions.jpg.7d262d1ddb5720bc5f89204e53f444ef.jpg

 

  • Un clic sur l'icône du plugin PlatformIO (①) (une tête de fourmi (certains y voient un «alien») pour le sélectionner, puis un dernier clic sur ② Ouvrir un projet (Open Project) pour ouvrir le projet et pouvoir commencer à travailler avec.

VSC-Platformio-ouvrir-projet.thumb.jpg.e3743be95ae714622220821da33beb64.jpg

  • Pour compiler un Marlin, il faut au préalable avoir récupéré les sources fournies sous forme d'une archive compressée

Marlin-code-zip.thumb.jpg.f1603493334f4b103071f4dd0754ef93.jpg

  • Décompresser l'archive récupérée à l'issue du téléchargement, un dossier Marlin-2.0.x doit avoir été créé. C'est ce dossier qu'il faut indiquer lors de l'ouverture du projet via Platformio (le fichier platformio.ini doit y être ainsi qu'un dossier Marlin contenant les fichiers sources qui serviront lors de la compilation)

951765332_Marlin-zip-dcompress.jpg.e019330f871236a625f7c7e65e35b81c.jpg

  • Il est recommandé de récupérer les exemples de configuration d'imprimantes proposés par l'équipe du Marlin.

Marlin-configurations-zip.thumb.jpg.0f137ef339df28ee0a130c5b522618e4.jpg

  • Une fois cette archive décompressée, le dossier config/examples contient de nombreux constructeurs et modèles d'imprimantes

marlin-configurations-exemples.thumb.jpg.f1f4b493847d865b1a2533773cd7d0e8.jpg

Exemples du fabricant Creality :

marlin-configurations-exemples-creality.jpg.98732ff4067ddcadb36815cff5529562.jpg

Pour une Creality Ender3, il n'y a que l'embarras du choix en fonction de la carte mère installée sur l'imprimante. Il suffira de recopier les fichiers configuration[_adv].h et éventuellement les [boot|status]screen.h dans le dossier nommé Marlin en remplacement de ceux originaux pour se faciliter les étapes liées au paramétrage avant de lancer la compilation

marlin-configurations-exemples-creality-ender3.jpg.cbbff1cba3cc297589d595fe21c41569.jpg

Maintenant que l’environnement de travail est prêt, à vous de jouer 😉

Bonne(s) compilation(s) et que le filament coule à flot

Ce tutoriel est également disponible sur mon dépôt Github

🙂

 

Modifié (le) par fran6p
modification dossiers dépôt Github
  • J'aime 6
  • Merci ! 4
Lien vers le commentaire
Partager sur d’autres sites

  • fran6p pinned this topic
  • 1 month later...

Compléments, astuces

A) Pour éviter des problèmes de compilation, le mieux est que le dossier Marlin soit au plus proche de la racine du disque :

  • Exemple: C:\Marlin plutôt que dans le dossier perso de l'utilisateur (éviter les signes diacritiques (caractères accentués) et/ou espaces dans le chemin d'accès à ce dossier)

B) J'ai une erreur du type : «VSC me demande de mettre à jour les includepath»

  • C'est fréquent avec VSC. La base de données (Intellisense) n'est pas toujours à jour, la plupart du temps ça n'empêche pas la compilation. Il suffit parfois d'attendre quelques minutes pour que cette erreur disparaisse sinon une fermeture de VSC puis une réouverture permet parfois de tout faire rentrer dans l'ordre.
  • Voir également le point D/3 plus bas

C) La compilation (rappel) :

  • Via Platformio IDE :

    1) Dans l'onglet «PIO Home», «Open Project» :

    platformio-ouvrir-projet.jpg.ef31524d2802aa24772667d0b836c1e3.jpg

    2) Via l'explorateur de fichiers, sélectionner le dossier contenant à la fois le fichier platformio.ini et le dossier Marlin, clic sur «Open "nom-du-dossier-sélectionné" puis confirmation en cliquant «OUI» :

    platformio-ouvrir-projet-selection-dossier.jpg.acd4eb62fa9087a564979c47b5574004.jpgplatformio-ouvrir-projet-selection-dossier-confiance.jpg.4bb2dd6732871f9e01afa9f34462b55d.jpg

    3) Lancer la compilation en cliquant sur le coche en bas de la fenêtre :

    platformio-compiler.jpg.6bd417134dc7b459ed8f5eb591c07fbd.jpg

    4) Si / quand la compilation est réussie ET que l'imprimante est reliée à l'ordinateur, on peut téléverser le firmware dans la carte (clic sur «flèche droite»)
    PS: ça ne fonctionne qu'avec les cartes 8 bits (Atmega1284, Atmega2560). Avec des cartes 32 bits à base de STM ou LPC, la procédure de flashage consiste à recopier le fichier en .bin du dossier .pio/build/STM??? (LPC???) sur une carte SD (moins de 32Go, formatée FAT32 secteurs de 4Ko) et allumer l'imprimante pour lancer le flash.

platformio-televerser.jpg.094a1b4ef0ed68b83fcc41c3b1d0337c.jpg

  • Via Auto Build Marlin (ABM) :
    1) Compiler le firmware en sélectionnant le greffon ABM. puis l'icone «Marteau» :

    ABM-compller.jpg.43127aed52ccea9ef26e61230dbf8620.jpg

    Pendant que la compilation se réalise :

    ABM-compilation-en-cours.jpg.6738e09a33f4e025aef571b8faccbe30.jpg

    2) Une fois la compilation terminée, si l'imprimante est connectée à l'ordinateur, téléverser le firmware (clic sur «Upload»). Attention, même remarque que pour Platformio (plus haut) :

    ABM-televerser-carte-mere.jpg.18eec8c52b3bbd0ce61964e8564252fb.jpg

 

D) Éventuellement, appliquer la suite de manipulations ci-dessous quand ça ne fonctionne pas comme attendu. Parfois cela résout le problème. Si le système d'exploitation est Windows, un redémarrage est souvent salutaire.

  • A effectuer étape par étape. Après chaque étape, retenter une compilation:

    1) Nettoyer le cache de Platformio (Pio pour les «intimes» 😄 ) :

    platformioclean-cleanall.jpg.027f9be1a85eac7735429fdcc06d89c6.jpg

    2) Si la compilation pose toujours problème, sortir l'artillerie lourde :
    supprimerdossier_pio.jpg.3f5666ce218845addd4d4bb9f29eace3.jpg

    3) Sans rapport mais utile pour les problèmes «Intellisense» :
    platformioIDE-intellisense-1.jpg.038187bf0e6d37e79b5d4118ab647cda.jpg

E) Problèmes spécifiques Windows / Platformio:

Parfois, Platformio rencontre des problèmes avec Python. C'est généralement Windows (10 / 11) qui en est la cause, particulièrement la gestion des alias d'applications :

  • Il suffit de désactiver les alias d'exécution d'application de W10.

    Zone recherche de «Windows» taper Alias puis sélectionner «Gérer les alias d'exécution d'application» (plus d'infos en anglais) :

    alias-recherche.jpg.23cef9718480ce7fd77ab60462172580.jpg

    Dans la fenêtre qui s'ouvre, désactiver les alias pour toutes les versions de Python qui seraient installées, relancer la procédure  d'installation de l'extension Platformio dans VSC.

    aliasexecutionapplication-pythondesactive.jpg.e62091556a35d179d59e4ea7711dcc94.jpg

     

VSC en français

Si comme moi vous préférez travailler avec une interface en français, il faut installer un module (extension) complémentaire.

Deux façons d'installer ce module :

  1. via la place de marché : https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-fr , il suffit de cliquer sur le bouton [Install] pour l'installer (La Palice sort de ce corps 😄 ) :
    pack-lang-fr-place-marche.jpg.f30d26e88230fce7df468218d98cc101.jpg
  2. ou directement dans VSC en passant par le gestionnaire d'extension (1), rechercher l'extension (2) en saisissant le début du nom, au fur et à mesure de la frappe une liste apparaitra. En cliquant sur celle de Microsoft (3), un onglet s'ouvrira, il suffira de lire les informations et de valider l'installation en cliquant sur le bouton [Installer] :
    frenchlangagepackextension.thumb.jpg.cc2151cc6a8f8b6bce45831a455a9cf4.jpg

🙂

Modifié (le) par fran6p
modification emplacement images
  • Merci ! 5
Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...
il y a 4 minutes, M4dm4rtig4n a dit :

Je viens de mettre en place l'environnement mais j'ai un soucis lors du build

tu devrais éviter les nom de répertoire longs et/ou avec des espaces, parfois ça peut jouer des tours 🙂 

  • +1 1
Lien vers le commentaire
Partager sur d’autres sites

Dans la suite du premier post :

Citation

A) Pour éviter des problèmes de compilation, le mieux est que le dossier Marlin soit au plus proche de la racine du disque :

  • Exemple: C:\Marlin plutôt que dans le dossier perso de l'utilisateur (éviter les signes diacritiques (caractères accentués) et/ou espaces dans le chemin d'accès à ce dossier)

🙂

Lien vers le commentaire
Partager sur d’autres sites

  • 1 year later...

Bonjour

J'ai essayé de tout suivre (presqu'à la lettre) peut-on me préciser quels fichiers sont nécessaires pour modifier le firmware de ma ''ANET ET4 pro''? et s'ils sont suffisants?

merci à tous

Anet_ET4_no_bootloader.png

Anet_ET4_OpenBLT.png

Lien vers le commentaire
Partager sur d’autres sites

Il y a 8 heures, Billandco a dit :

peut-on me préciser quels fichiers sont nécessaires pour modifier le firmware de ma ''ANET ET4 pro''? et s'ils sont suffisants?

Edit > Comme l'explique fran6p en dessous. ( Mes excuses j'ai mélangé les ".elf" avec les ".hex" pour des carte ATMega )

Je dirais

( mais a vérifier, car c'est selon les "bootloader" des carte mère, des fois sur certaine carte il faut passer par un bidulle "USBAsp" ou "STLink" )

que c'est le "firmware.elf" (version avec bootloader ?) qu'il te reste a "téléverser" via USB ...

( via "Repetier Host" ou "Ultimaker Cura" ou "Xloader" ... qui proposent une interface graphique de l'outil (en ligne de commande) avrdude qui permet de "flasher" les microcontrôleur ATMega2560 et autre ... )

Modifié (le) par PPAC
Lien vers le commentaire
Partager sur d’autres sites

Posté(e) (modifié)

Si la carte est une 32 bits (ce qui semble être le cas vu l'extension .bin du microgiciel compilé), il te faudra placer le fichier «firmware.bin» sur une carte SD (généralement une petite carte d'au plus 32 Go, formatée en FAT32 et possiblement avec une sectorisation de 4 ko).

Le format «.elf» ne sert qu'à la compilation 😉

Modifié (le) par fran6p
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

  • 4 weeks later...

<EDIT>

J'ai complété la seconde partie «Compléments, astuces»: comment avoir l'interface de VSC en bon gaulois pour les allergiques à l'anglais 😉

🙂

  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

  • 4 months later...

Bonjour,

Serait-il possible de mettre à jour ce tutoriel ?
Je dois être un très mauvais sujet car malgré de très nombreuses tentatives, installations, compilations,
j'obtiens une multitude d'erreurs concernant des syntaxes dans des fichiers que je n'ai pas modifié.
Incompatibilité entre les exemples de configurations et VSCode ???

Merci

Modifié (le) par Rebus
Lien vers le commentaire
Partager sur d’autres sites

il y a 12 minutes, Rebus a dit :

Serait-il possible de mettre à jour ce tutoriel ?

N'utilisant pratiquement plus Marlin, non, je ne mettrai pas à jour 😉, d'autant plus que mes derniers tests avec VSC à jour de version, Platformio IDE également et ABM (AutoBuildMarlin) itou ne m'ont pas retourné d'erreurs particulières.

VSC je l'utilise régulièrement pour d'autres projets et ne rencontre pas de soucis avec lui… avec mes codes, par contre c'est une autre affaire 😄

Si ça te motive tu peux en refaire un ou éventuellement soit plus précis sur ce que tu entends par «multitude d'erreurs concernant des syntaxes» et «Incompatibilité entre les exemples de configurations et VSCode».

@pommeverte, tu rencontres des soucis particuliers avec VSC et Platformio IDE (autres que ceux facilement résolvables après lecture des notes de mises à jour ) ?

🙂

Lien vers le commentaire
Partager sur d’autres sites

Salut,

non, aucun soucis particulier pour compiler les sources officielles de Marlin.

Par contre, @Rebus semble allègrement confondre les warnings (messages en jaune qui n'empêche pas la compilation du firmware) avec les errors (message en rouge qui interrompent la compilation). La suite est dans son sujet.

Lien vers le commentaire
Partager sur d’autres sites

il y a 2 minutes, pommeverte a dit :

Salut,

non, aucun soucis particulier pour compiler les sources officielles de Marlin.

Par contre, @Rebus semble allègrement confondre les warnings (messages en jaune qui n'empêche pas la compilation du firmware) avec les errors (message en rouge qui interrompent la compilation). La suite est dans son sujet.

Non, sans être un expert, je vois bien la différence entre les deux, mais c'est quand je vois "Failed" .....

J'aimerais que tu essais la même manipulation que fred5976, sur un PC qui n'a jamais vu VSCode, Marlin ni platformio, tu procèdes à une installation suivant le tuto de fran6p, et que tu lances une compilation .... pour voir 
 

Lien vers le commentaire
Partager sur d’autres sites

je l'ai fait plusieurs fois, pour toi et pour d'autres. C'est pour ça que je t'ai fait cette réponse.

Je te le redis, tu ne sembles pas utiliser les bonnes sources. Il est IMPOSSIBLE d'avoir un message d'alerte "src_filter doit être remplacé par build_src_filter " puisqu'il n'y a pas de "src_filter" dans le fichier platformio.ini

Une nouvelle fois, je t'invite à poursuivre la conversation dans ton sujet puisque ton problème n'a rien à voir avec ce tutoriel.

  • +1 1
Lien vers le commentaire
Partager sur d’autres sites

Posté(e) (modifié)
Il y a 4 heures, pommeverte a dit :

Une nouvelle fois, je t'invite à poursuivre la conversation dans ton sujet puisque ton problème n'a rien à voir avec ce tutoriel.

Toutafé

Si poursuite, je scinderai ces derniers messages pour les déplacer dans le «bon» sujet et verrouillerai mon sujet pour éviter toute pollution.

🙂

Modifié (le) par fran6p
Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...