Sommaire
- NĂ©cessaire
- Téléchargement des sources
- Mise en route de VSCode
- Configuration de votre Marlin
- Compilation (si vous ĂȘtes bĂ©nis le Gnou)
- Corrections
- Conclusion
Bonjour trĂšs cher Nal,
Si je t'écris aujourd'hui, c'est pour te raconter comment j'ai réussi à compiler Marlin pour mon imprimante 3d, sur mon Raspberry Pi. (Pour info, Marlin est un firmware trÚs utilisé pour les imprimantes 3d, sous licence GPL.) Puisse ce journal servir aux générations futures.
Ce tuto/journal prend comme exemple une Ender-3 v4.2.2 de Creality, avec un CR Touch. Adaptez bien la configuration à votre imprimante. Votre imprimante doit supporter les mises à jour de firmware par carte SD, cùble USB, Wi-Fi, ⊠et disposer d'une carte mÚre 32 bit. Certaines imprimantes comme l'Ender-3 1.1.4 nécessitent une carte Arduino et des tas de choses spécifiques.
On Ă©met l'hypothĂšse que vous allez lire tout le tuto avant d'essayer de le reproduire.
NĂ©cessaire
- Le nom du fabricant de votre imprimante (Creality)
- Le modĂšle de votre imprimante (Ender-3)
- La révision de la carte mÚre (v4.2.2)
Le chipset de la carte mĂšre (STM32F103RET6)
Visual Studio Code (pleurez mes enfants, mais je n'ai pas pu faire sans), installable avec
sudo apt install code
L'extension PlatformIO, installable depuis VSCode, dans l'onglet extension, un logo avec une tĂȘte de fourmis orange
L'extension Marlin Auto Build, un logo bleu-vert avec un narval
Le code source Marlin, téléchargeable ici
Les fichiers de configuration qui vont avec.
Vous aurez besoin de plusieurs Go de libre, genre 2 ou 3, pour l'installation et la compilation.
Téléchargement des sources
Vous avez le choix entre plusieurs versions de Marlin :
- Release
- LTS
- Nightly
- Bugfixe
Personnellement, je recommande la Release, sauf si vous rencontrez des erreurs, alors essayez la Bugfixe.
Une fois votre version choisie, allez à la page de téléchargement de Marlin, cliquez sur le lien dans la colonne Download
, puis dans celui de la colonne Configurations
. Vous vous retrouvez sur un repos GitHub, cliquez sur le bouton vert < > Code
â Download ZIP
.
Extrayez les deux archives :
- Pour le code source, renommez le dossier Marlin-x.x.x dans lequel vous avez tous les dossiers et fichiers en MARLINFIRMWARE
, tout en majuscules attachées. C'est votre dossier de travail.
- Pour la configuration, récupérez les fichiers adaptés à votre imprimante dans le dossier config/examples/<fabricant>/<modÚle>/<carte mÚre>/
, soit pour moi config/examples/Creality/Ender-3/CrealityV422/
. Copiez les fichiers dans le dossier MARLINFIRMWARE/Marlin
, en remplaçant les fichiers existants.
Mise en route de VSCode
Installez Visual Studio Code avec la commande sudo apt install code
.
Ouvrez VSCode et cliquez sur l'icÎne à gauche montrant quatres blocs empilés pour ouvrir le volet des extensions, et recherchez PlatformIO
dans la barre de recherche. Son logo est une tĂȘte de fourmi orange sur fond blanc. Quand vous l'avez trouvĂ©, cliquez sur le bouton installer.
Faites de mĂȘme pour Marlin Auto Build
, un logo avec un narval noir sur fond bleu-vert.
Attendez quelques instants que les extensions s'installent, un petit message en bas à gauche doit vous demander de redémarrer VSCode. Fermez VSCode, et rouvrez-le. Cliquez sur l'onglet Fichier
â Ouvrir un dossier
â Votre dossier MARLINFIRMWARE â Ouvrir le dossier
. Attendez un moment que les extensions démarrent et se mettent en route et c'est partit pour la partie amusante !
Configuration de votre Marlin
C'est maintenant que vous pouvez laisser libre cours à votre créativité et à vos envies !
Nous allons Vous allez modifier les fichiers Configuration.h
et Configuration_adv.h
du dossier Marlin.
Voici quelques petites rĂšgles d'or :
- En cas de doute, lire les commentaires dans le code,
- En cas de doute, voir la documentation,
- En cas de doute, laisser le choix par défaut.
Bien. Je vous recommande de commencer par lire la documentation, voir peut-ĂȘtre d'autres tutos ⊠car je ne compte pas dĂ©tailler trop ici le processus de configuration.
Néanmoins, sachez que les lignes commençant par //
sont des commentaires, celles qui commencent par #define
sont des déclarations.
Pensez à décommenter les fonctions liées à vos accessoires supplémentaires comme le BL Touch. Une petite aide en anglais pour la configuration basique.
Vous pouvez activer de nouvelles fonctionnalités, comme mettre les menus en français, customiser le bootscreen (dans _Bootscreen.h
) ou le supprimer, etc.
Une option intéressante est la désactivation du beeper. En effet, par défaut, il produit sans cesse un son perçant et trÚs désagréable, totalement inutile.
« Du coup, si j'ai bien compris, il suffit de commenter la déclaration #define SPEAKER
 ? »
NONÂ ! C'est l'exception qui confirme la rĂšgle, car alors ton beeper sonnera tout le temps. Ă chaque rotation de molette. Infernal.
Il faut activer SOUND_MENU_ITEM
dans la configuration avancée, ce qui permet la création d'un menu pour désactiver le son.
On notera aussi la présence de quatre petites déclarations introduites par le commentaire « Frivolous Game Options », dans la configuration avancée. AprÚs, j'dis ça, je n'dis rien.
Platformio.ini
Les plus observateurs aurons remarqué un petit fichier nommé platformio.ini
dans leur dossier MARLINFIRMWARE. Commençez par aller à l'onglet Auto Build Marlin dans VSCode. Dans la rubrique Environnements
, vous avez sur plusieurs ligne un truc qui ressemble vaguement Ă STM32F103RE_creality. C'est le chipset de votre carte mĂšre, dont je vous parlais plus haut. Dans le cas prĂ©sent, il reprend le chipset tranquĂ© de ses deux derniers caractĂšres, avec le nom du fabricant. CES ENVIRONNEMENTS SONT PROPRES Ă CHAQUE IMPRIMANTE 3D, IL EST NORMAL QUE VOUS N'AYEZ PAS LE MĂME SI VOUS N'AVEZ PAS LA MĂME IMPRIMANTE. Je vous conseil de vous renseigner pour connaitre quel est l'environnement correspondant Ă votre imprimante, sachant qu'il doit ĂȘtre dans la liste. Une fois que vous avez trouvĂ©, copiez son nom et collez-le aprĂšs default_envs =
dans le fichier platformio.ini, en remplacement de la valeur initale.
Compilation (si vous ĂȘtes bĂ©nis le Gnou)
Si la grùce du Gnou est sur vous, vous n'avez qu'à cliquer sur la petite coche blanche de votre barre d'outils, en bas de l'écran dans VSCode. La compilation se lance et vous récupérez votre firmware dans le dossier MARLINFIRMWARE/.pio/build/include_tree/ sous le nom firmware-YYYYMMDD-HHMMSS.bin
.
Erreurs de compilations faciles
Si le compilateur vous pointe une ligne commençant par #erreur blabla en vous disant que foo n'est pas compatible avec bar, ou que bob est nécessaire pour utiliser alice, c'est que votre configuration est mauvaise. Modifiez-la en suivant ses instructions, et tout se passera bien.
Corrections
C'est là que ça devient compliqué et hasardeux, il vaut mieux que vous le sachiez. (et pas que dans la colle)
Si la compilation a Ă©chouĂ© avec un message du style « impossible d'installer toolchain/gccarmnoneeabi pour votre architecture aarch64, vous ĂȘtes au bon endroit.
Ouvrez le fichier platformio.ini, descendez Ă la fin, et ajoutezplatform_packages =
dans la section [env]. Recompilez.
toolchain-gccarmnoneeabi@~1.90301.0Si aprĂšs vous avez un message d'erreur du style File Not Found en vous balançant du code python oĂč il est est question de mkdir, et de dossier variants, c'est qu'il n'arrive pas Ă crĂ©er le dossier dans lequel il veut mettre ses fichiers. CrĂ©ez le dossier
variants
pour lui, et recompilez.Si le compilateur vous insulte une troisiĂšme fois en se plaignant de l'absence de fichier variants.h, copiez le contenu du dossier variants crĂ©Ă© prĂ©cĂ©demment, et collez-le lĂ oĂč il vous dit qu'il manque.
Si ça ne marche toujours pas, envisagez d'utiliser un ordinateur doté d'une architecture classique pour compiler votre firmware.
Conclusion
On arrive Ă la fin de ce tutoriel, si vous avez des questions, mettez un commentaire ou allez voir sur des forums si j'y suis si vous n'y trouvez pas la solution. N'oubliez pas de mettre un petit cĆur et de vous abonner.
Voici quelques liens utiles pour conclure :
https://www.lesimprimantes3d.fr/forum/topic/22135-tuto-marlin-comprendre-et-all%C3%A9ger-son-firmware/#elShareItem_720517104_menu
https://3dprintscape.com/marlin-firmware-on-creality-board-complete-guide/
https://www.lesimprimantes3d.fr/forum/topic/43956-tuto-bien-installer-son-environnement-de-d%C3%A9veloppement-pour-compiler-son-firmware-marlin/
https://c.xkcd.com/random/mobile_comic/
J'espĂšre pouvoir bientĂŽt faire pareil sans VSCode, juste avec Docker ou PlatformIO.
# Erratum
PostĂ©Â par alberic89 đ§ . ĂvaluĂ©Â Ă Â 1.
J'ai rédigé un nouveau journal pour compiler sans VCS.
Si un modo pouvait l'ajouter au début ? Merci !
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: Erratum
PostĂ©Â par cosmocat . ĂvaluĂ©Â Ă Â 4.
VCS, CVS et VSC⊠Trop de Vs, de Cs et de SsâŠ.
Il me semble que:
* VCS, c'est pour "Version Control System"
* CVS, c'est pour "Concurrent Versions System"
* mais que tu voulais parler de VSC qui est "Visual Studio Code" ( https://code.visualstudio.com/ ). Non?
Du coup, Ă corriger aussi?
[^] # Re: Erratum
PostĂ©Â par alberic89 đ§ . ĂvaluĂ©Â Ă Â 1.
Oups, boulette⊠J'étais persuadé que c'était Visual Code Studio, du coup j'ai un peu mélangé les lettres. Si un modo pouvait rectifier ça aussi ?
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: Erratum
PostĂ©Â par cosmocat . ĂvaluĂ©Â Ă Â 4.
Au final peut-ĂȘtre qu'il serait mieux d'utiliser 'VSCode' qui est le diminutif utilisĂ© assez courammentâŠ
[^] # Re: Erratum
PostĂ©Â par ted (site web personnel) . ĂvaluĂ©Â Ă Â 3.
C'est corrigé
Un LUG en Lorraine : https://enunclic-cappel.fr
# CoĂŻncidence
PostĂ©Â par Cyprien (site web personnel) . ĂvaluĂ©Â Ă Â 2.
Incroyable ! Hier, sur mon ender 3, j'ai un écran bleu, plus rien ne s'affiche dessus :(
J'ai donc cherché, et j'ai vu que j'ai aussi une carte mÚre v4.2.2. Comme je n'arrivais pas à flasher le firmware depuis une carte SD, j'ai aussi essayé de compiler un Marlin avec VSCode et de l'envoyer avec le cùble USB sans succÚs, j'ai un problÚme JSLink.
Je pense que malheureusement ma carte est morte. Tu aurais des solutions valider mon diagnostic ?
Petite question, comment as-tu choisi le chipset de la carte mĂšre (STM32F103RET6)Â ?
Sinon, tu me conseilles d'acheter quoi comme carte mÚre de remplacement ? J'aimerais un truc pas trop cher (j'ai acheté mon imprimante 120⏠il y a 1,5 ans).
Merci !
[^] # Re: CoĂŻncidence
PostĂ©Â par alberic89 đ§ . ĂvaluĂ©Â Ă Â 2.
Si tu dois changer de carte mĂšre, prends-en une silencieuse. Ăa te coutera un petit 50 âŹ, et tes tympans t'en remercieront.
Je ne sais pas du tout comment vérifier que la carte mÚre est bien morte, essaie d'ouvrir une entrée de forum sur lesimprimantes3d.fr, il y a des gens assez calés là -bas.
Pour connaitre ton chipset, regarde sur la plus grosse puce au milieu de ta carte, avec un bon éclairage. Tu verras clairement une suite de lettres et de chiffre, comme ici. Normalement, tu ensuite en déduire ton environnement en regardant la liste des environnements disponibles. Pour l'Ender-3 4.2.2, il y a deux chipsets différents et 5 environnements.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: CoĂŻncidence
PostĂ©Â par Cyprien (site web personnel) . ĂvaluĂ©Â Ă Â 2.
Merci pour ta réponse !
En fait, je crois qu'on ne peut pas changer le firmware par cùble USB, uniquement en mettant une carte microSD. J'ai remis le firmware le plus simple de chez creality (https://www.creality.com/pages/download-ender-3 - Ender-3 4.2.2 mainboard (32bit)) et ça a fonctionné ! Je suis trop content !
Suivre le flux des commentaires
Note : les commentaires appartiennent Ă celles et ceux qui les ont postĂ©s. Nous nâen sommes pas responsables.