Aller au contenu

GO Print

Chercher dans la communauté

Résultats des étiquettes.

  • Recherche par étiquettes

    Saisir les étiquettes en les séparant par une virgule. Merci de privilégier l'auto-complétion plutôt que de créer des tonnes de tags inutiles.
  • Recherche par auteur

Type du contenu


Forums

  • La vie du forum
    • Présentations
    • On vous écoute
    • Actualité et nouveautés du forum
  • Sur le site
    • Les news du blog
  • Les imprimantes 3D
    • Discussion sur les imprimantes 3D
    • Bien choisir son imprimante 3D
    • Les constructeurs
    • Les RepRap et autres modèles DIY
    • Les imprimantes 3D SLA
    • Consommables (filaments, résines...)
    • Électronique
    • Entraide : Questions/Réponses sur l'impression 3D
    • Tutoriels
  • Les scanners 3D
    • Discussion sur les scanners 3D
    • Kinect
  • Logiciels 3D
    • Discussion sur les logiciels 3D
    • Dessiner / modéliser en 3D
    • Paramétrer et contrôler son imprimante 3D
    • Tutoriels
  • Le coin des makers
    • Projets et impressions 3D
    • La post-production
    • Les cavernes des makers
    • Evénements et rassemblements
    • Arduino
    • Domotique
    • Modélisme
    • Airsoft
    • Vapotage
  • Usinages
    • Discussion sur l'usinage
    • CNC / Graveur laser
    • Entraide : Questions/Réponses sur les CNC et Lasers
    • Machines-outils conventionnelles
  • Petites annonces
    • Achats
    • Ventes
    • Dons
    • Bons plans et crowdfunding
    • Commandes groupées
    • Emplois et services
  • Divers
    • Blabla

Chercher dans...

Résultats qui...


Date de création

  • Début

    End


Dernière mise à jour

  • Début

    End


Filtrer par nombre de...

Inscrit

  • Début

    End


Groupe


Website URL


Skype


Twitter


Facebook


Youtube


Instagram


Lieu


Intérêts


Imprimantes

  1. Salut les copains. Plutôt que chercher dans les divers posts du forum les mises à jour appropriées de nos chères et tendres discoeasy200, je vous propose que nous regroupions sur ce thread, uniquement les mises à jours des firmwares MARLIN Pour les plus curieux d'entre nous : La page d'accueil du site MARLIN / Le dépot GITHUB pour les derniers correctifs Vous y trouverez les coordonnées de la Team qui développe le firmware, je ne suis qu'un simple "arangeur" Mes notations pour les firmwares : Modifications nécessitant juste un paramétrage dans Configuration.h ou dans Configuration_adv.h Trapeze = Firmware incluant la modification du pas pour les tiges trapézoidales (8mm/tour) MK8 = Firmware incluant la modification du pas d'extrusion pour un engrainement de type Prusa MK8 (pour moi 133p/tours) Pour les "DiscoEasy non modifiées", il suffit de rechercher Dobodu dans les 2 fichiers et de suivre les instructions Modification plus profondes du firmware NumC = Firmware incluant l'affichage des numéros de couches (Thanks Gyverblaster) PinMod = Firmware considérant la modification des EndStops SELON LA CARTE DE CONTROLE et non selon le câblage d'origine DAGOMA Cela signifie que le contacteur X- (respectivement Y+, Z-) est cablé sur le End Stop X- (respectivement Y+, Z-) Cablage pour les versions antérieures à la 2.1.1 Cablage pour la version 2.1.1 Variantes diverses Ecran : Utilisation de l'écran/Lecteur de carte Dagoma Heatbed : Précision si le firmware est paramètré pour l'utilisation d'un lit chauffant BLTouch : Firmware prenant en compte le BLTouch en lieu et place du capteur par induction (à faire) Babystepping : Firmware autorisant les réglages de positionnement de 1ere couche pendant l'impression FWRetract : Gestion du retrait du filament par Marlin ATX : Utilisation de l'alim ATX (to be continued)
  2. Bonjour à tous Je vais me lancer pour la mise à jour de ma SWX2 car je voudrais faore des impressions plusieurs couleurs J'ai commandé des cables Dupont car ma sidewinder X2 n'apparait pas en temps que périphérique USB Est ce que quelqu'un a une photo de la CM ou positionner ce shunt? D'autre part sur le tuto de flashage du TFT de @MrMagounet il est question de version de bootloader, mais à l'allumage il n'y a rien qui s'affiche sur l'écran en ce qui concerne cette version. Ou trouver cette info? Sinon mon PC est dous windows 11 W64 Merci d'avance
  3. Bonjour, Suite aux nombreux postes des utilisateurs ayants des difficultés à compiler/téléverser un nouveau marlin via le logiciel Arduino sur leur DiscoEasy j'ai préparer ce petit tutoriel. Si vous êtes prêt, on y va... Il y en a pour cinq minutes maximum ! Après vous pourrez modifier comme vous le souhaitez votre DiscoEasy. Installation et configuration d’Arduino : Pour commencer, téléchargez la dernière version d’Arduino ICI . Le logiciel à télécharger ce trouve plus bas sur la page coté droit (voir image ci-dessous ) : Une fois le logiciel téléchargé, rien de compliqué. Installez le en cliquant sur suivant à chaque étape. Une fois l'installation terminée, nous allons passer à la configuration de ce dernier pour qu'il prenne en compte la carte MKS Base de la DiscoEasy. Lancez Arduino, puis allez dans "Fichier/Préférences" ou faites simultanément les touches CTRL + VIRGULE (Voir image ci-dessous) : Une fenêtre s'ouvre ! Afin d'y voir plus claire en cas d'erreur de compilation ou de téléversement, on va activer les résultats détaillés dans les paramètres ! Cochez les cases indiqués par une flèche rouge sur l'image ci-dessous. Une fois terminé cliquez sur "OK" en bas à droite. Maintenant, allez dans "Croquis/Inclure une bibliothèque/Gérer les bibliothèques comme indiqué sur l'image suivante : Une fenêtre s'ouvre. Ici nous allons inclure une bibliothèque manquante et mettre à jour celles déjà installées ci nécessaire ! Commençons par installer la librairie U8glib nécessaire pour marlin qui n'est pas présente dans Arduino après l'installation. Comme indiqué par une flèche rouge dans l'image qui suit, dans l'onglet de recherche écrivez : "U8glib". Cliquez dans la liste sur U8glib by olivier encadré en rouge sur l'image. Cliquez sur le bouton "Installer". Voilà, c'est fait Il est possible que certaine de vos bibliothèques ne soient pas à jour. Pour les mettre à jour, sélectionnez dans le menu déroulant (à gauche du champ de recherche que nous avons vu il y a un instant) "Type" : "Possible de mettre à jour". Si des bibliothèques apparaissent dans la liste, vous cliquez sur chaque une d'entre elle est sur le bouton mise à jour (comme pour installer une nouvelle bibliothèque). Plus qu'une étape et le logiciel est prêt ! A présent, on va indiquer à Arduino pour qu'elle type de carte le compilateur doit fonctionner. Pour ce faire, ouvrez le menu "Outils/Type de carte" cliquez sur "Arduino/Genuino Mega or Mega 2560" comme surligné sur l'image ci-dessous : Puis choisir le programmateur: "AVRISP mkII". Maintenant, ouvrez la version de marlin que vous avez modifié à téléverser en cliquant sur le fichier "marlin.ino": Arduino ouvre le marlin, allumez votre imprimante. Laissez la booter sur le marlin actuel. Une fois le boot terminé branchez le câble USB de votre PC à l'imprimante. Normalement, elle va rebooter une nouvelle fois. Une fois qu'elle a terminée, rendez vous sur le logiciel Arduino déjà ouvert et cliquez sur "Outils/Port:" Sélectionnez le port de communication (Port COM4) sur l'image si-dessous, mais celui-ci peut varier en fonction de votre configuration ! Voilà, tout est prêt ! Cliquez sur le bouton "Téléverser" indiqué par une flèche rouge sur l'image qui suit : Et paf ça fait des chocapics !.... Normalement, il va compiler puis téléverser le nouveau marlin ! Cette opération peut prendre un peu de temps. Pour voir si le téléversement ce fait après la compilation, je vous conseil de mettre le plateau en position arrière. Quand les leds bleus vont s'allumer c'est que le téléversement à commencé ! Une fois le téléversement terminé, l'imprimante va rebooter toute seule !! Elle est prête avec votre nouveau marlin ! PS : Si vous possédez un écran, il faut réinitialiser l'EEPROM. Avec votre molette allez dans le menu : "Contrôler" descendre tout en bas est appuyez sur "Initialiser EEPROM". Bon print !
  4. Bonjour à tous, Creality continue de se mettre en conformité avec la licence Open Source de Marlin. La majorité de leurs modèles sont concernés. Le seul absent pour le moment est la CR X. L'adresse pour récupérer ceux-ci se trouve là. Faites chauffer Arduino et bonnes compilations.
  5. Bonjour à tous Peut on ré installer la version d'origine , j'ai acheté mon ender 3 V2 en nov 2020, mon fils à voulu l'upgrader avec je ne sais pas avec quel firmware et maintenant je suis bloqué avec un écran noir . pouvez vous me dire quel est le firmware d'origine sur cette imprimante achetée en nov 2020 ? Et dois je refaire une réinitialisation de l'écran via une carte SD aussi avec un fichier .bin... il y a 8 minutes
  6. Petit tuto sans prétention pour qui veut comprendre quelques aspects de Marlin, et surtout comment trouver de la place pour ceux qui, comme moi, ont une carte mère limitée. Les plus assidus du forum n'y apprendront rien ou presque, pour le reste, j'espère que ce post pourra être utile. Je suppose dans ces lignes que le lecteur sait déjà comment flasher sa machine avec le logiciel Arduino, et modifier les fichiers configuration.h et configuration_adv.h Je vais essayer de suivre l'ordre des fichiers de configuration, pour ne pas avoir à chercher trop longtemps les lignes correspondantes, mais il faut savoir que je ne détaillerai pas tout : Bien des lignes doivent rester telles quelles si l'on veut garder une imprimante fonctionnelle. Pour info, je me base sur une version de Marlin 1.1.9. Fausses idées toutes faites Tout d'abord, je souhaitais tuer dans l’œuf les fausses croyances que j'ai déjà pu lire ici et ailleurs : Il est inutile de supprimer les commentaires, cela ne vous fera que perdre votre temps Les fonctions commentées (celles commençant par '//'), ne sont pas incluses à la compilation, il est tout aussi inutile des les supprimer Fichiers de langues inutilisées : Dans language_fr.h par exemple, on voit que des tas de lignes concernant le détecteur de fin de filament, l'utilisation de l'UBL (Unified Bed Leveling), etc qui ne sont pas commentées. Même si vous n'utilisez pas ces fonctions, il est inutile de supprimer ou commenter ces variables de langue, elles ne seront pas incluses dans la compilation de Marlin. Lors de la compilation, Arduino va aller chercher et compiler uniquement les informations qui sont nécessaires, aucun superflu ne sera mis en mémoire. Dans la même lignée, rien ne sert de supprimer les lignes vides. Pour la bonne compréhension : - Chaque ligne qui commence par '//' est un commentaire ou une fonction commentée. Cela veut dire qu'Arduino ne lira pas cette ligne, et passera à la suite. - Chaque ligne qui commence par '#' est une instruction. Seules ces lignes seront lues, interprétées et compilées pour votre imprimante. Configuration.h Je ne détaillerai ici que le fichier configuration.h. J'espère avoir le temps dans les jours à venir de faire la même chose pour le fichier configuration_adv.h. Jacky Tuning On commence avec du superflu, l'écran de démarrage : Ligne 80 du fichier : #define STRING_CONFIG_H_AUTHOR "Schyzo, Anet E12 BLTouch" // Who made the changes. #define SHOW_BOOTSCREEN #define STRING_SPLASH_LINE1 "V1.1.9 for Anet E12" // will be shown during bootup in line 1 #define STRING_SPLASH_LINE2 "Adapted For Schyzo" // will be shown during bootup in line 2 Ces 4 lignes ne font qu'afficher l'écran de démarrage ( Boot Screen). L'imprimante n'a pas besoin de ça, et moi non plus. Sans cet écran, l'imprimante sera lancée environ 5 secondes plus rapidement. Commentez-donc ces 4 lignes (en ajoutant '//' devant chaque ligne) si vous voulez gagner plus de 1000 octets (1282 chez moi). Toujours dans le look, ligne 97 : #define SHOW_CUSTOM_BOOTSCREEN Ceci ne sert qu'à afficher une image personnalisée définie dans le fichier Marlin/_Bootscreen.h au démarrage. Certains fournissent une image comme TH3D qui ne fait qu'alourdir le firmware. Vous pouvez commenter Puis, à la ligne 100 : #define CUSTOM_STATUS_SCREEN_IMAGE Même combat, une image personnalisée sur l'écran d'accueil, définie dans le fichier Marlin/_Statusscreen.h comme ici : Vous pouvez commenter cette ligne pour gagner de précieux octets (voir plus). PID Le PID (Proportional Integral Derivative) est un procédé de Marlin et autres firmwares qui permet une montée en température optimisée des éléments chauffants (buse et lit). Lorsque le PID de ces éléments n'est pas activé, la montée en température est définie en 'bang-bang', comprendre en gros en binaire : "Si c'est trop froid, j'envoie du courant à fond, si c'est à bonne température, je coupe". Aussi la température ne fait que monter et descendre, ce qui peut poser une dégradation de l'impression notamment avec la température de la buse. A titre d'exemple, j'ai trouvé cette image sur le forum reprap.org : Page en question : https://reprap.org/forum/read.php?262,782815 Exemple de courbe de température en bang-bang : Avec utilisation du PID : Bref, si j'en parle ici c'est que l'utilisation du PID pèse quand même quelques kilos dans la bataille du gain de mémoire. Pour ma part, j'ai activé le PID de la buse et du lit, quitte à supprimer d'autres fonctions. PID de la buse : Pour l'activer, il faut se rendre à la ligne 362 : #define PIDTEMP Puis environ 20 lignes plus bas, il faut définir les valeurs Kp, Ki et Kd : #define DEFAULT_Kp 28.94 #define DEFAULT_Ki 2.37 #define DEFAULT_Kd 88.30 Si ces lignes sont commentées, décommentez-les. Ces valeurs que je n'expliquerai pas faute de compétence (et ce n'est pas le sujet), sont MES PROPRES valeurs. C'est elles qui définiront la montée en température de votre élément chauffant. A chaque changement de buse ou matériel chauffant (cartouche chauffante par exemple), il faut redéfinir ces valeurs. Pour cela, je vous renvoie vers un tuto du forum qui explique pas à pas la marche à suivre pour récupérer ces 3 paramètres selon votre machine : A noter que l'utilisation du PID pour la hotend requiert environ 3300 octets. PID autotune : Marlin propose d'ajouter un menu dans l'imprimante afin de lancer un autotune, c'est à dire que vous pourrez lancer directement depuis l'écran de l'imprimante un autotune qui calculera et enregistera les meilleurs valeurs pour votre imprimante. Cette fonction lancera une montée en température de la buse (température que vous définirez via l'écran de l'imprimante directement), jugera et enregistrera dans l'EEPROM des meilleurs valeurs obtenues. Pour cela, décommentez la ligne 367 : #define PID_AUTOTUNE_MENU Lors de l'autotune, sélectionnez une température que vous employez le plus. Par exemple si vous n'imprimez que du PLA et PETG, prenez une moyenne haute à 230° par exemple. Le PID autotune occupera 600 octets environ de plus. PID du bed : Pour le lit, l'utilisation du PID reste identique, à savoir une température constante. En mode BED_LIMIT_SWITCHING en revanche, on retrouve la chauffe binaire : On chauffe à fond ou rien du tout. Si vous souhaitez activer l'utilisation du PID pour le lit chauffant, décommentez la ligne 407 : #define PIDTEMPBED Et n'oubliez pas de commenter la ligne 409 afin de libérer un peu de place : //#define BED_LIMIT_SWITCHING Puis comme pour la buse, définissez les valeurs de Kp, Ki et Kd ligne 424 : #define DEFAULT_bedKp 255.01 #define DEFAULT_bedKi 17.39 #define DEFAULT_bedKd 934.85 L'utilisation du PID pour le lit chauffant occupera environ 1400 octets de plus que le mode BED_LIMIT_SWITCHING. A noter qu'il ne sera pas possible, même en ayant activé l'autotune, de lancer un test autotune pour le bed depuis l'écran LCD (vous ne devrez pas avoir à le changer régulièrement, je l'espère pour vous ). Là encore, je vous renvoie vers le tuto de neoraptor pour récupérer les valeurs Kp, Ki et Kd pour votre lit : Protection contre vous-même : Si jamais vous avez confiance en vous, sachez qu'il est possible de désactiver la protection d'extrusion à froid, ligne 445 : #define PREVENT_COLD_EXTRUSION // Permet de ne pas faire tourner l'extrudeur si la température de la buse n'est pas d'au moins 170° (EXTRUDE_MINTEMP) et la protection d'une trop grande extrusion manuelle, ligne 452 : #define PREVENT_LENGTHY_EXTRUDE // Protection pour ne pas extruder plus de 200mm (EXTRUDE_MAXLENGTH) en dehors d'une impression Ces 2 fonctions commentées vous feront gagner presque 1000 octets, à vous de jauger votre confiance en vous Je ne détaillerai pas la désactivation des protections thermiques du bed et de la hotend, qui sont à mes yeux essentielles et donc non négociables. Bed leveling Si certains ont déjà du mener la bataille des octets avec Arduino, ceux-ci savent combien l'utilisation d'un palpeur est lourd. Pour avoir fait quelques tests pour ce tuto, j'estime à 18ko le poids de l'utilisation d'un BLTouch par rapport à un simple endstop. Mais saviez-vous que vous pouviez tout de même espérer libérer un peu de place ? Chaque mode de leveling pèse plus ou moins lourd, et est plus ou moins complet forcément. Bi-linéaire Ligne 982 : #define AUTO_BED_LEVELING_BILINEAR Le mode certainement le plus utilisé et adapté à la plupart des plateaux. Grâce à un palpeur/sonde (BLTouch ou autre), il fait 3 palpages (points) ou plus dans chaque axe (X Y) et en détermine grossièrement ou finement selon le nombre de points déterminés les défauts du plateau, qu'il corrigera pendant l'impression. Nécessite 11 ko sur la carte. 3 points Ligne 980 : #define AUTO_BED_LEVELING_3POINT Avec un palpeur, sonde 3 points déterminés et détermine le nivellage du plateau. Plus léger (6 ko), à n'utiliser que si vous êtes sûrs que votre plateau est bien plat. Linéaire Ligne 981 : #define AUTO_BED_LEVELING_LINEAR Semblable au mode bi-linéaire, corrige un défaut de lit qui ne serait pas correctement incliné. Ce mode ne corrige pas les défauts d'un lit déformé (creux au centre par exemple). Nécessite 11 ko sur la carte, je cherche l'intérêt de ce mode. Unified Bed Leveling (UBL) Ligne 983 : #define AUTO_BED_LEVELING_UBL Ce mode est trop gros pour ma carte, aussi je n'ai pas pu le tester. Quoi qu'il en soit, celui-ci permet de créer une matrice très précise de votre lit et d'en enregistrer les relevés dans l'EEPROM. Puis à chaque impression, palpe 3 points pour déterminer l'inclinaison et les défauts du lit puis s'appuie sur les valeurs précédemment enregistrées pour corriger très précisément l'impression en fonction des défauts de votre lit. Pèse approximativement 48 ko. Mesh Leveling Ligne 984 : #define MESH_BED_LEVELING Un mode que j'ai découvert il n'y a pas longtemps. Celui-ci permet de corriger une déformation du lit, sans nécessiter de palpeur. Vous faites le sondage à la main (aidé par Marlin bien sûr) avec votre feuille de papier, vous jouez avec le Z depuis l'écran LCD et celui-ci corrige les défauts du lit pendant l'impression, comme si vous aviez un BLTouch. 9.7 ko nécessaires pour ce mode. Hauteur lissée (fade height) Avec certains bed leveling activés (Bi-linéaire, Mesh leveling ou UBL), vous avez la possibilité de définir une hauteur lissée, c'est à dire que pendant l'impression, Marlin va au fur et à mesure corriger la pièce pour que le défaut du lit ne soit plus visible à partir de X mm (définie via l'écran LCD ou par la commande M420 Z(hauteur). En exagérant, si votre lit est creux au centre, on peut imaginer imprimer une boite ainsi : En rouge en haut le résultat sans la hauteur lissée, en vert ce que donnera l'impression avec la hauteur lissée. Nécessite 1600 octets. Bed leveling via le LCD Ligne 1106 : #define LCD_BED_LEVELING Permet de faire le leveling si vous avez un des modes cités au dessus activé. Si vous avez activé le Mesh Leveling (manuel), Marlin vous guidera étape par étape via l'écan LCD pour faire le leveling. Requiert environ 1 ko. Déplacement de la tête automatique Ligne 1114 : #define LEVEL_BED_CORNERS Depuis l'écran LCD, permet de faire bouger la buse automatiquement pour faire le réglage aux 9 points du plateau en leveling mauel. Nécessite 1200 octets. Fonctions additionnelles Préchauffage J'ai lu encore récemment qu'on pouvait gagner de la place en commentant les fonctions de préchauffage de PLA et ABS. Bien que je les trouve utile, voilà comment gagner 40 octets. Oui, pas un de plus, 40... Commentez les lignes 1262 à 1268 : #define PREHEAT_1_TEMP_HOTEND 210 #define PREHEAT_1_TEMP_BED 60 #define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_TEMP_HOTEND 235 #define PREHEAT_2_TEMP_BED 80 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 Il vous faudra également commenter ces lignes dans le fichier configuration_store.cpp, à la ligne 1820 : #if ENABLED(ULTIPANEL) lcd_preheat_hotend_temp[0] = PREHEAT_1_TEMP_HOTEND; lcd_preheat_hotend_temp[1] = PREHEAT_2_TEMP_HOTEND; lcd_preheat_bed_temp[0] = PREHEAT_1_TEMP_BED; lcd_preheat_bed_temp[1] = PREHEAT_2_TEMP_BED; lcd_preheat_fan_speed[0] = PREHEAT_1_FAN_SPEED; lcd_preheat_fan_speed[1] = PREHEAT_2_FAN_SPEED; #endif Notez que mes valeurs ne sont plus celles par défaut. Plutôt que de les virer, j'ai renommé 'ABS' en 'PETG' dans les fichiers de langue, bien plus utile que de tout supprimer pour gagner une misère. Je ne recommande absolument pas de toucher aux fichiers cpp, à vos risques et périls. Modifier les valeurs de l'EEPROM Ligne 1230 : #define EEPROM_SETTINGS Permet depuis votre PC relié à l'imprimante ou l'écran LCD de modifier la vitesse max, accélérations, jerk, steps/mm, offset Z etc etc Si vous êtes certains de ne plus toucher à ces réglages ou de flasher à chaque fois votre imprimante pour les modifier, vous pouvez commenter cette ligne afin de libérer 5.7 ko Récupérer les valeurs de l'EEPROM Ligne 1231 : #define DISABLE_M503 Pour gagner 2800 octets, il faut ACTIVER (ne pas commenter) cette ligne. Permet depuis un terminal de récupérer les paramètres de l'EEPROM (accélération, vitesses, steps/mm, ...). Nettoyage de la buse Il existe une fonction permettant avant chaque print de nettoyer la buse en l'envoyant à un point spécifique de votre plateau (ou légèrement en dehors). Voilà par exemple la réalisation de notre ami @Jean-Claude Garnier qui envoie sa buse se faire polisher sur une brosse à dent : Pour l'activer, ligne 1328 : #define NOZZLE_CLEAN_FEATURE Nécessite 1.7 ko Carte SD Pour ceux qui n'impriment que via PC ou Raspberry, sachez qu'il est possible de désactiver le support de la carte SD. Commentez la ligne 1433 : //#define SDSUPPORT Cela vous libérera presque 17 ko dans la carte de l'imprimante, mais impossible d'utiliser la carte SD.. Pour les extrêmes Encore une fois, si vous n'imprimez que depuis le port USB de votre imprimante, il se peut que vous n'ayez même pas besoin de l'écran. Par exemple, en désactivant l'écran LCD de mon Anet, ligne 1757 : //#define ANET_FULL_GRAPHICS_LCD Cela me fait économiser 39 ko de mémoire que je peux réutiliser ailleurs. Mais je n'ai plus d'écran, tout se fait depuis le PC ou le Raspberry. Voilà pour le fichier de configuration.h, j'essayerai de faire configuration_adv.h dans les jours à venir. N'hésitez pas d'y aller de vos retours si des passages sont à améliorer, réctifier ou clarifier.
  7. Bonjour à tous, Il y a quelque temps, j'avais transformé mon ETX5 en extrusion direct, mais tout cela ne me satisfaisait pas, je me suis donc tourné vers le remplacement de la carte ANET par une SKR V1.4T associé à un écran 35 V3. J'ai repris complétement mon câblage avec bltouch et pilotes moteurs 2209. Je suis arrivé à configurer tout cela avec vscode et marlin V2.1.21. Seulement, voilà, il y a un problème, il m'est impossible de régler la position home ( la buse s'écrase sur le bed, il semble que le bltouch ne détecte rien...), de plus, la tête vient se caler à gauche en grognant et bloque l'imprimante, même problème vers l'arrière avec le bed. J'ai bien fouiné partout sur les forums, mais je n'arrive pas à trouver ou ça coince. Ci-joint mes fichiers config.h, config.adv_h et le firmware compilé. Merci d'avance pour vos réponses (et là, je pense à pomme verte qui m'a déjà beaucoup aidé) Configuration.h Configuration_adv.h firmware.bin
  8. Bonjour à tous, Ca fait déjà un petit moment que j'ai mis de côté l'impression 3D mais j'essaye de retrouver parmis les tréfonds de mon ordinateur la version du Marlin qui tourne actuellement sur mon imprimante 3D (je n'ai pas mis le nom de la version sur le dossier). J'ai environ 5 marlin différends et je n'arrive pas à savoir lequel est le bon, vu que la dernière modification que j'ai faites date d'il y a 2 ans (01/03/20 m'indique le gestionnaire de fichiers, le temps file à une vitesse ) Je sais que j'utilise la version 2.0.1 (j'avais modifié la 2.0.5 mais je ne sais plus pourquoi je ne l'utilise pas ) alors j'essaye de retrouver parmis les fichiers du marlin la version. Dans "version.h", il est écrit "2.0.x" malheuresement, donc pas plus d'infos. Dans quels fichiers puis-je retrouver le numéro de version ? Merci à tous, et au plaisir de faire un saut sur ce forum qui m'a accompagné durant toute ces années !
  9. Hello, Je ne sais pas si cette mini-manip a été déjà traité sur ce forums mais la voici: Le but de cette manip est de centrer les impressions sans passer par Marlin. Regler l'offset de mon imprimante sur Marlin n'a jamais marché pour moi, mes points de palpages de l'auto nivellement était toujours mauvais. Avec plusieurs essais, j'ai trouvé que mes points de palpages étaient parfais en mettant zéro offset (0 pour le X/Y/Z), en définissant que la buse était au même endroit que mon capteur de nivellement. Mais le problème était que mes impressions n'étaient pas centré mais toujours décalés sur le plateau... Voici comment corriger ce problème: Ca se passe au niveau du start-gcode: J'avais défini mon Z-Safe-Homing dans Marlin à X=84 et Y=90, mon réel offset étant à X=+22 et Y=+5, mes impressions étaient décalées d'environ 2 cm vers la droite. Pour les centrer voici ce qu'il faut mettre: G1 X62 (aller à 62mm de l'axe X -> nécessaire de le mettre après le G28 X0) G92 X84 (défini que la position +62 est en réalité 84 -> 84 étant la valeur du centre du plateau pour le capteur) G1 Y79 (aller à 79mm de l'axe Y -> nécessaire de le mettre après le G28 Y0) G92 Y90 (défini que la position +79 est en réalité 90 -> 90 étant la valeur du centre du plateau pour le capteur) Avant d'imprimer, après le Z homing, la tête d'impression va se déplacer de la valeur de l'offset vers la gauche et faire avancer le plateau, ce qui va corriger la valeur erroné présente dans Marlin. Je ne sais pas si ça va être utile à quelqu'un mais dans le doute
  10. salut à tous, Probleme: L'auto level se fait mais il n'est pas mémorisé ou pris en compte: suivant l'endroit sur le plateau, soit la 1ere couche est écrasée soit elle est décollée du plateau historique: J'ai acheté un touch mi car le plateau de ma ender 3 pro n'était pas droit. J'ai suivi le tutoriel ici :https://hotends.dozuki.com/Wiki/Capteur_TouchMI J'ai installé le capteur, installé marlin 1.1.9, réglé le Z, modifié dans cura le start code start code dans cura: ; Ender 3 Custom Start G-code G28; home all axes M140 S{material_bed_temper&ature};start heating bed M190 S{material_bed_temperature};wait bed to reach temp before procedding G29; M104 S{material_print_temperature};start heating extruder M109 S{material_print_temperature};wait for extruder to reach temp before proceeding G1 Z0.5; G1 Z15 F6000; Z@15mm;Prime extruder G92 E0; G1 F200 E3; G92 E0 ; Reset Extruder G28 ; Home all axes G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line G92 E0 ; Reset Extruder G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish Si je fais G29, j'ai les résultats suivants: Bilinear Leveling Grid: 0 1 2 3 4 5 0 +0.187 +0.111 +0.129 +0.116 +0.159 +0.169 1 +0.075 +0.045 +0.043 +0.032 +0.110 +0.108 2 +0.004 -0.016 -0.028 -0.030 +0.070 +0.104 3 +0.011 -0.028 +0.002 -0.020 +0.050 +0.074 4 -0.010 -0.030 -0.016 -0.013 +0.072 +0.097 5 +0.068 +0.060 +0.069 +0.056 +0.134 +0.174 Quelqu'un saurait pourquoi le nivellement automatique ne fonctionne pas?
  11. 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) Installer Python Télécharger et installer la version actuelle de Python en fonction de votre OS (Windows, Linux, Mac) 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). 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. 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. Après installation de ces extensions, il faudra probablement effectuer un rechargement pour que ce soit pris en compte via Recharger 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. 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. Pour compiler un Marlin, il faut au préalable avoir récupéré les sources fournies sous forme d'une archive compressée 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) Il est recommandé de récupérer les exemples de configuration d'imprimantes proposés par l'équipe du Marlin. Une fois cette archive décompressée, le dossier config/examples contient de nombreux constructeurs et modèles d'imprimantes Exemples du fabricant Creality : 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 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
  12. Bonjour, la sapphire SP-5 est une core XY montée avec 2 moteurs Z reliés par courroie le mosfet du bed a cramé;. j'ai commandé Une CM Robin Nano v3 pour remplacer la Robin Nano v1.2 . il y a 5 TMC225 v4,le processeur STM32F407VGT6 est plus performant que celui de la v1.2 d'origine mais je dois compilé Marlin. j'ai commencé a configurer 'configuration h' mais j'ai besoin d'aide pour arriver a installer toute la nouvelle CM je ne trouve évidemment pas de version précompilé, je me suis lancé dans une amélioration un peu au dessus de mes compétences en programmation. je recois la nouvelle carte sous 8 jours maximum. merci à ceux qui pourrait m'aider. sapphire+.pdf
  13. Bonjour, Sur ma Ender 3V1, j'ai une carte 1.1.5 qui a fonctionné parfaitement depuis très longtemps. Dernièrement, j'ai eu des problèmes d'extrusion de plus en plus fréquents jusqu'à ne plus extruder du tout, et après bien des investigations, il s'avère que c'est le driver TMC2208 qui est mort. J'ai changé la carte pour une 4.4.7 qui fonctionne mais qui présente des défauts qui ne me vont pas du tout : - Pas de mémorisation des paramètres, ce qui m'oblige à les entrer à chaque nouvelle impression - Gestion de l'affichage sans scroll horizontal empêchant l'affichage des noms de fichiers longs (j'ai tous mes numéros de versions de fichiers dans le nom, et ça peut être long !) - Blocage des moteurs à la mise sous tension pendant un court instant (pas bon pour les moteurs ni pour les drivers) - et bien d'autres petits problèmes d'ergonomie surmontables mais agaçants Sur la carte 1.1.5, j'avais une version Marlin bugfix 1.1.x qui me convenait parfaitement, sur la nouvelle carte 4.2.7 il y a une version Marlin 1.0.1. J'ai essayé d'autres cartes : - Creality 4.2.2 Marlin 1.0.1 - Creality 4.2.7 Marlin 1.0.1 - Cheetah V1.1b Marlin bugfix 2.0.x - Creality 4.2.7 Marlin 0.0.6 Aucune ne mémorise ni affiche correctement mes données. Je sais qu'on peut compiler sa version en utilisant une carte arduino et le système de développement ad hoc, on peut trouver les morceaux de logiciels un peu partout notamment chez Marlin, Github, Creality etc... mais ça reste très aléatoire et très ch...t, surtout pour moi ! L'idée finale étant je crois de mettre un fichier .bin sur une carte SD et de booter la machine dessus pour implanter la nouvelle version. D'où ma QUESTION : Peut-on trouver directement des fichiers .bin avec une config me convenant pour flasher ma carte et enfin qu'on n'en parle plus ? Merci de vos réponses et désolé d'avoir été si long pour ma première intervention.
  14. Bonjour, J'ai beau tout faire comme c'est écrit et j'ai toujours l'erreur : *** [.pio\build\mega2560\src\src\module\temperature.cpp.o] Error 1 Quelqu'un peu m'aider, s'il vous plaît ?
  15. Bonjour à tous, Cela faisait longtemps... J'ai de nouveau besoin de votre aide ! Voilà, j'avais comme extrudeur un Titan Aero, que j'ai repassé en Titan "normal" afin de pouvoir mettre le système E3D Revo Six. Le montage s'est bien passé, et j'ai fait la mise à jour de Marlin suivant les indications fournies par E3D. Le problème, c'est que quand j'ai mis l'imprimante en préchauffage afin de faire le niveau du plateau, au bout de 2 minutes l'imprimante s'est relancée et n'était donc plus en chauffe. Je l'ai arrêtée et rallumée, et là, le phénomène s'est produit dès que j'ai lancé la commande de préchauffage. Si je fais chauffer que la buse, le phénomène se produit aussi, mais je peux chauffer le plateau seul sans problème (ce qui me tracasse ) Par contre, je n'ai aucune indication à l'écran. Toutes les connexions sont bonnes. Au niveau de Marlin, j'ai passé comme indiqué le TEMP SENSOR 0 de 1 à 5, et le HEATER 0 MAXTEMP de 275 à 300°C. Il n'y avait pas d'autres paramètres à changer. Je suis preneuse de toutes vos idées et vous en remercie d'avance...
  16. Hello tout le monde, Après m'être présenté, je viens poster le sujet du jour. Une connaissance m'a donné sa Tevo Tornado, après qu'un de ses potes y ai mis les pattes sans s'y connaitre et l'ai complètement déréglée. Pour commencer, je me suis intéressé à l'impression 3D que depuis que j'ai récupéré cette Tornado, il y a environ 1 mois, donc je ne connais pas encore tous les rouages ni tous les noms/termes etc. Le hardware est pas mal modifié et je vous dis pas pour le soft, c'est un gros bordel. En énorme résumé : elle est capable d'imprimer, mais ca colle pas au plateau, le BLTouch fait ses coins de test mais n'a pas l'air d'être configuré, l'imprimante fait des accoups durant l'impression et le filament à l'air de mal être acheminé (manque de filaments par moment) y'a surement d'autre problèmes, je n'ai pas eu le temps de vérifier la planéité du plateau par exemple (je sais qu'il y a souvent des problèmes de plateaux bombés). A cause des accoups j'ai décidé d'arrêter de tester les impressions pour le moment, car je ne sais pas si ca vient d'un moteur qui bloque. Donc pour les infos détaillées et photos : La carte mère d'origine MKS Gen_L V1.0 Les drivers ont été remplacés par des TMC2209 V3.0 pour les 3 axes : Et un LV8729 pour la buse : des TL-Smoother on été installés : L'extrudeuse a été remplacée par une Creality en Alu : Pour le reste, ventilation custom de la buse (tension d'origine 24V), des amortisseurs de vibrations sur les moteurs, le plateau a été remplacé par un magnétique, un BLTouch (original) a été ajouté à la va vite. mais le support imprimé étant cassé, je l'ai pour le moment déconnecté et enlevé. Enfin coté software un Marlin "à la n'importnawak" a été bricolé comme on tartine du nutella quand on a 12 ans. Ca fait beaucoup et j'aimerai donc savoir par où il me faudrait commencer pour remettre tout ca en place correctement. Est ce que je peux tout remettre à zéro et repartir sur une base saine ? Ou faut il suivre des étapes pour éviter des disfonctionnement ? J'ai testé le matériel, aucun dommage électrique. Donc tous les composants sont OK. Il semble, d'après toutes mes recherches sur "comment installer et connecter", que les branchements soient tous corrects, excepté pour le fait que j'ai déconnecté le BLTouch. mais les photos sont là pour que vous puissiez juger. Il m'a laissé aussi des drivers restant (ils étaient vendu en trop) et refilé quelques bobines de filaments (certains neuf emballés), mais j'ai aussi cru comprendre qu'il fallait faire gaffe à la façon dont on les stock (trop d'humidité etc) Voilà voilà, si vous avez besoin de plus de détails pour me venir en aide, ca sera fait ! PS : Elle est pas très belle a voir, il l'a délaissée pendant un certain temps, donc pas mal de poussière. Je posterai des photos de la bête quand elle sera propre.
  17. Merci pour votre aide. J'ai voulu flasher la carte de ma Creality cr10, et je suis resté bloqué au moment de flasher le bootloader, j'ai une indication qui me dit que je n'ai pas sélectionné la bonne carte. J'avais mis sanguino. Est ce que vous avez un idée. La carte est une Creality 3D V1.1.2 (12volts)
  18. Salut, J'ai une vielle Crelaity cr10, que j'avais flashé avec Marlin, et qui a bien fonctionné pendant un moment. J'ai voulu m'en servir et lorsque je l'ai allumé, le buzzer était actif et j'avais stop à l'écran. Je n'ai aucune idée de quoi faire à ce problème. Si vous avez un avis je suis a l'écoute.
  19. Bonjour, Je vous explique ma problématique, j'ai envie de mètre en place octopi, mais garder Marlin. Sachant que je peux compiler marlin moi-même quel est le bautrate max que je peux mettre et que la carte 4.2.7 peut supporter au maximum et deuxième question est-il possible de stature par accident la carte Merci d'avance Cordialement,
  20. Bonjour à tous. Je me suis lancé dans les modifications de ma petite cr-7 creality en une ender 2, j'ai donc modifié mécaniquement la machine et compilé un marlin pour mettre à jour la carte. Compilation réussie pour une première, mis en place du bootloader et téléversement ok, tout mes paramètres sont bons (taille, mouvement, chauffe, etc...) mais j'ai quelques questions sur le firmware. Quand l'imprimante fait un "home", elle monte l'axe des z de 20mm, ce qui ma dérange car si à la fin du print précédent le Z est presque à fond, j'arrive en bout de rail du z, je voudrais éviter de la faire monter sur l'axe des Z pour la fonction G28 mais je ne sais pas ou ça se trouve dans configuration.h De plus, j'ai activé le babystep, mais ça ne fonctionne pas, quand je fais un appui long, j'arrive bien au menu concerné avec l'affichage Z: .... mais aucun changement sur l'axe, pire, ça m'arrête le print si je reste sur ce menu ou que je re-clique sur le bouton de l'écran. Et j'en aurai bien besoin. J'ai lu quelque part que sur les anciennes version le babystep ne fonctionné que si l'ABL était activé (bl touch ou autre), est)-ce toujours d'actualité ? J'aurai bien voulu mettre le mesh bed levelling mais j'ai pas assez de mémoire sur ma petite carte, alors de la à mettre un bl touch ou un touch mi..... Merci à vous. Pierre.
  21. Salut tout le monde Je voudrais améliorer mon imprimante, et en plus comme la carte mère a tendance a me faire une blague de temps en temps, je réfléchi a la remplacer... Du coup je me demande quelle carte mère prendre Celle d'origine (si 32bits) ? Une 32bits ? Une directement sous klipper ? Tant qu'à faire du gros œuvre, autant faire des améliorations Je réfléchi aussi a remplacer le capteur inductif par un BLTouch ^^ Que me conseillez vous ?
  22. Bonjour, Je suis l'heureux possesseur d'une CR10 V1 (2017) et je souhaiterai la pousser un peu plus dans ses retranchements.. la lenteur de l'impression me désespère ^^" Ayant entendu parlé de Klipper je suis curieux de voir le peaufinage des réglages rendu possible... Mais ça sera dans un second temps... Tout d'abord je souhaiterai y installer une version récente de marlin. Ma carte mère ne dispose pas de bootloader et est d'origine. Grâce à au site lesimprimantes3d.fr j'ai essayé de suivre le tutoriel fait par fran6p pour effectuer la mise en place du bootloader via un programmeur USBAsp.. Cependant je rencontre des difficultés Quelles sont les ressources à flasher ? J'imaginai la manipulation plus simple qu'avec un Arduino mais il semble que ce soit l'inverse cette méthode étant beaucoup moins documentée J'ai trouvé un autre tuto sans résultat concluant : https://www.ender3.fr/installation-dun-bootloader-avec-un-usbasp/ avrdude: error: program enable: target doesn't answer. 1 avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to overridehis check. Erreur lors de la gravure de la séquence d'initialisation. Du coup j'espère que je n'ai pas briké ma carte mère mais je me retrouve avec un écran bleu Aïe
  23. Bonjour, je débute dans l'univers du RepRap, j'ai 3 imprimantes 3D que je n'ai pas eu a trop configurer sous Arduino ou Visual Studio Code le programme Marlin. Aujourd'hui je m'attaque au projet d'une MPCNC avec une carte Mega2560 et ramps 1.4 avec écran, le montage est fait, la plupart des paramètres sont ajustés. Seulement je bloque sur un truc idiot, je change mes valeurs DEFAULT_AXIS_STEPS_PER_UNIT en mettant celles qui m'intéressent, je compile, j'upload, Mais ca reste sur les valeurs de départ. Quand je touche a d'autre paramètre comme l'orientation des moteurs ou encore la langue sur l'écran ça le prend bien en compte et les changements fonctionnent. Exemple : au départ j'ai DEFAULT_AXIS_STEPS_PER_UNIT { 200 ,200 , 800 } je change par DEFAULT_AXIS_STEPS_PER_UNIT { 100 ,100 , 800 } Et après flashage j'ai toujours 200 en X et Y Avec le logiciel pronterface ainsi que directement avec l'écran j'arrive à changer ces valeurs, mais ca ne les sauvegarde pas après reboote. Une solution de secours serait d'avoir une fonction qui ferait en sorte qu'à chaque démarrage ce code se lance : M92 X100 Y100. Mais j'aimerais vraiment comprendre pourquoi depuis Arduino et VSC ca ne l'intègre pas directement au la carte mère Merci d'avance pour votre aide.
  24. En préliminaire, ce document n'est que la description de ma méthode de travail pour préparer un firmware basé sur Marlin. D'autres méthodes existent, l'important est de trouver celle qui vous sied le plus. Ce tutoriel ne s'adresse pas dans un premier temps à de purs débutants. Toutefois, en acceptant de s'y mettre et en faisant vos propres essais / erreurs (principe de tout apprentissage) la réussite peut être en vue (la courbe d'apprentissage n'est pas extrêmement pentue mais la route qui y mène n'est pas aussi droite comme l'avait judicieusement remarqué J.-P. Raffarin en son temps). AU COMMENCEMENT Quand j’ai commencé à préparer mes propres firmwares pour mes imprimantes, je reproduisais la méthode décrite dans bon nombre de tutoriels (écrits ou vidéos) : je récupérais le fichier compressé de la version de Marlin sur laquelle je me basais pour faire mes modifications (platformio.ini, configuration.h et configuration_adv.h. Si parmi les exemples de modèles fournis par l’équipe du Marlin existait l’imprimante à préparer, la tâche était facilitée : copier les configuration.h et configuration_adv.h (et éventuellement s’ils étaient également fournis, _Statusscreen.h et _Bootscreen.h) puis les coller dans le dossier Marlin en remplacement de ceux par défaut. ensuite l’étape de compilation - correction des erreurs, - retour à l’étape 2 (compilation) finalement la compilation étant réussie alors dernière étape, flasher le firmware. Si une nouvelle version stable de Marlin était disponible, il fallait répéter les étapes précédentes depuis la récupération du Marlin compressé jusqu’au flashage. La gestion des différences entre les fichiers de configurations pouvait être facilitée par l’utilisation de Winmerge (ou Notepad++ et l’ajout d’un greffon ou encore avec Visual Studio Code). S’il fallait préparer des versions différentes de firmware (modèle d’imprimante différent, variation de carte mère, présence d’un ABL, type d’ABL, détection de fin de filament, …) alors il était nécessaire d’organiser les dossiers, de les nommer correctement sinon le troisième élément de la trilogie : hardware, software … foutoir ne tardait pas à surgir (loi de Murphy oblige). En gros c’était pour le moins fastidieux et nécessitait une bonne organisation De plus ça finissait par occuper de la place sur l’unité de stockage. En résumé : Un outil de gestion de versions : GIT C’est là que j’ai découvert qu’on pouvait «bénéficier» d’outils de gestion de versions : Git (son créateur n’est autre que Linus Torvald également connu pour avoir au milieu des années 1990 développé le système Linux). Pour aller plus loin dans l’utilisation de GIT : https://www.mcorbin.fr/posts/2020-06-26-git-introduction/ https://rogerdudler.github.io/git-guide/index.fr.html un cours assez complet la cheat sheet (PDF) Git est pratique pour travailler localement mais pour pouvoir diffuser, modifier et faire bénéficier d’autres utilisateurs de ce travail, un système distant comme github augmente les possibilités. Utiliser github.com (ou gitlab si Microsoft vous hérisse le poil) nécessite la création d’un compte uniquement si vous voulez créer vos propres dépôts. Créer son compte Github (gratuit) en cliquant sur «Create a free orgaization» : Un formulaire s’affiche qu’il suffit de compléter : Ne pas oublier la phase de vérification de l’email saisi lors de la création du compte. Quelques termes à connaître, le glossaire github (en anglais) Une fois le compte créé et validé, on peut créer ses propres dépôts directement en ligne ou en local sur son ordinateur (ligne de commandes). Cependant un logiciel très pratique permet de faciliter les différentes tâches : Github Desktop (GD) interface en anglais uniquement et pas de version pour les linuxiens . Télécharger puis installer GD via le lien précédent. Ce logiciel utilisera vos identifiants (pseudo / mot de passe) pour se souvenir de qui vous êtes, ils vous seront demandés à la fin de l’installation. Pour une documentation malheureusement uniquement en anglais, consulter ce lien. Ma méthode de travail avec Marlin En ligne, sur le dépôt github de Marlin, en étant connecté avec votre compte, on va réaliser un «fork» du projet originel (Marlin) (=copie préservant les liens vers le dépôt originel): aller sur https://github.com/MarlinFirmware/Marlin Cliquer sur le bouton FORK : Vous venez de créer une copie identique du dépôt Marlin dans votre compte github précédemment créé Votre dépôt distant contient une copie exacte y compris toutes les branches (variantes) du Marlin originel. Désormais, le dépôt Marlin originel sera dénommé «UPSTREAM», la version de votre dépôt, elle, sera appelée «ORIGIN». Le fork pour le moment n’est présent que dans notre dépôt Github. Pour réaliser les modifications des fichiers de configuration de Marlin, je trouve plus pratique de travailler en local sur son propre ordinateur. On va donc récupérer le contenu de notre dépôt distant. J’ai pris depuis longtemps l’habitude d’organiser et regrouper mes dossiers / répertoires sur mes disques durs (ça facilite les sauvegardes ) => création d’un nouveau répertoire sur une unité de stockage pour accueillir nos futurs «développements» ( C:\GITHUB par exemple ) Première option : Via le site github.com de notre dépôt (notre compte), clic sur le bouton «Code» puis => Open with Github Desktop Seconde option : Via GD, menu principal, «Clone repository…» Saisir l’URL du dépôt à cloner (notre «ORIGIN») dans l’onglet URL, modifier éventuellement le chemin d’accès (Local path) pour correspondre au lieu de stockage prévu puis clic «Clone» Une barre de progression signale le transfert en cours. A la fin du processus de copie en local, on nous demande comment on souhaite contribuer au développement du dépôt cloné (contribuer au projet parent ou pour son propre usage). Si par exemple on pense proposer des corrections / modifications au projet originel (pull request), il est préférable d’indiquer que l’on contribuera au projet parent. Que ce soit avec la première option ou la seconde, toutes les branches du dépôt cloné sont maintenant accessibles sur notre matériel local (origin/x,x,x). Désormais, Github Desktop nous permet d’accéder à notre dépôt distant (View on Github [1]) ou à notre emplacement local (Show in Explorer [2]) et également d’utiliser notre éditeur de code (VSC) en cliquant (Open in visual Studio Code [3]) ; il est évidemment possible d’indiquer un autre éditeur que VSC via les préférences du logiciel ou en cliquant «options» (4). Création d’une nouvelle branche locale Je souhaite créer un firmware basé sur la version stable de Marlin pour une nouvelle imprimante : Choix de la branche (version) qui servira de base (Current branch) nommer cette branche puis clic sur «Create branch» La branche est désormais créée sur notre disque localement : On peut maintenant via notre éditeur (VSC) faire toutes les modifications manuellement dans les fichiers configuration.h et configuration_adv.h ou quand le modèle d’imprimante dispose de fichiers exemples fournis par l’équipe de Marlin, recopier les fichiers nécessaires en remplacement de ceux du clonage. Les modifications seront automatiquement détectées dans GD détection changements dans GD le contenu des modifications est précisé (history), rouge / vert avant / après modifications : Pour le moment, toutes ces modifications n’existent qu’au niveau local, il reste à synchroniser avec github. => Publish branch L’intérêt de la publication de cette branche sur github est : rendre accessible notre dépôt à d’autres utilisateurs en leur donnant le lien vers celui-ci et vers une branche particulière en cas de problème matériel en local (expérience vécue lors de la perte d’un disque dur), il suffira de cloner localement notre dépôt distant pour récupérer nos développements Maintenir à jour la version de Marlin Marlin est régulièrement mis à jour (bugfixes (plusieurs fois par jour) et stable (moins souvent)). On peut tenir notre dépôt local également à jour en suivant les modifications du dépôt originel (UPSTREAM) et en les répercutant dans nos branches. Réalisations par étapes : Upstream => local 1) Dans GD, choix de la branche à mettre à jour soit : - via le menu, onglet «Branch» => Merge into current branch - ou depuis la branche sélectionnée, Choose a branch to merge into branche-sélectionnée - indiquer la version «Upstream» qui servira à fusionner : Dans l’exemple ci-dessus, la version de Marlin étant la version stable, il n’y pas eu de changements (message : this branch is up to date with upstream/2.0.x) Exemple avec la version «bugfixes» dont les mises à jour sont quotidiennes voire plusieurs fois par jour : Le nombre de modifications est précisé, il suffit de cliquer le bouton «Create a merge commit» pour fusionner ces changements dans notre branche locale (Origin). La majorité du temps il n’y a pas de conflits. CAS lors de «conflits» De temps en temps, la fusion (merge) ne peut se faire automatiquement seule. Github Desktop nous indique alors le nombre de fichiers pour lesquels existent un/des conflit(s) : En cliquant sur le bouton «Merge upstream/… into Branch», une nouvelle fenêtre nous précise quels fichiers sont concernés : En cliquant sur le bouton permettant d’accéder à l’éditeur «Open in Visual Studio Code», le (les) conflits seront signalés, un choix devra lors être réalisé par l'utilisateur : On pourra soit : ne pas mettre à jour notre branche avec les modifications de la nouvelle version (Accept Current Change) mettre à jour notre branche (Accept Incoming Change) avoir les deux dans notre fichier pour pouvoir les comparer (Accept Both Changes). Il faudra ensuite faire les modifications manuellement en évitant de réaliser des doublons évidemment. Une fois le (les) conflit(s) résolu(s), ne pas oublier d’enregistrer le fichier modifié dans VSC (clic sur l’icone «disquette») GD détectera notre choix et continuera la fusion (merge). Nos versions de Marlin seront alors à jour. Ne restera plus qu’à compiler notre nouveau firmware «up to date» puis à le flasher sur la carte de l’imprimante. Sans oublier, évidemment de le tester Voilà, on arrive au terme de ce long document qui relate ma manière de travailler quand je propose des firmwares aux utilisateurs de ce forum. D’autres méthodes, procédures existent ; à vous de trouver celles avec lesquelles vous avez le plus d’affinités. L'idée de ce document provient d'une vidéo du Youtubeur australien TeachingTech. N'étant pas un adepte des vidéos pour un apprentissage, j'ai donc créé cette alternative au format écrit. PS: si vous avez des questions concernant ce tutoriel, n'hésitez pas à les formuler en gardant à l'esprit : ce n'est que ma méthode de travail je n'ai pas réponse à tout ma patience a parfois des limites donc évitez de polluer ce sujet par des HS ou des questions «maltapropo»
  25. Bonjour, J'utilise mon PC personnel pour la programmation de logiciels embarqués, cela occupe beaucoup de place, et j'ai besoin d'un maximum de ressources. Alors installer une pléthore de logiciels qui sont gourmands en RAM et en CPU, ce n'est pas mon fun. De là vous aurez aussi compris que je n'utilise pas VScode et encore moins Windows. Je suis sous Linux (ubuntu je l'avoue) et un de mes éditeurs préférés se nomme "vi". J'ai donc chercher une solution pour recompiler Marlin sans utiliser VScode. Analyse de processus de construction de Marlin: Marlin est une application construite à partir du framework Arduino. Arduino offre un IDE mais la base principale est un SDK (je ne parlerais pas dans ce cas de RTOS) avec des librairies d'utilisation du matériel sur des microcontrôleur (MCU). Il a été développé dans un premier temps pour les MCU AVR de Atmel, mais depuis il est possible de trouver des versions pour d'autres MCU comme les STM32. Les supports des platformes par Arduino ce fait par couches successives avec le support du MCU puis des version de ce MCU puis les cartes qui utilisent ces MCU. Chaque couche forme un variant qui dérive d'un autre variant. STMicroelctronic fournit donc le SDK Arduino pour STM32 dans lequel il est possible de trouver les variants pour certaines cartes d'imprimantes 3D. Cela aurait pu être une solution pour moi. Une belle solution quoique un peu complexe et difficile à contribuer. J'ai donc continué en regardant les sources de Marlin. Nous y trouvons le fichier platformio.ini. Vous le connaissez bien mais savez vous qu'il n'a rien à voir avec VScode. En fait pour être exact, platformio est un outil de construction basé SCons qui est écrit en python, ensuite l'équipe de platformio fournit et maintient son intégration dans VScode. Il donc possible d'utiliser platformio sans VScode et ne nécessite pour cela que de python et de quelques librairies. Mais voilà j'ai travaillé pendant plusieurs années avec SCons de manière professionnel, et maintenant le seul fait de lire ces 5 lettres me donne des boutons. A coté de platformio.ini il y a un autre fichier du nom de "Makefile" et là je retrouve la banane. Enfin pas longtemps, quand je l'ouvre, je comprend vite que je retombe dans la première problématique avec l'intégration des outils de ARDUINO_STM32. Ne reste plus qu'un dernier fichier "docker-compose.yml". Docker je connais, j'aime bien car cela cache tout ce que je ne veux pas voir (SCons) sans trop salir mon PC. L'équipe de Marlin utilise Docker comme beaucoup de monde pour l'intégration continue et le passage de tests. Pourquoi ne pas utiliser le même procédé pour faire l'image à ma convenance ? Mais je suis faignant. Oui enfin d'une certaine manière, avant de faire je regarde si quelqu'un ne l'a pas déjà fait et si ce qui a été fait me convient. Et je trouve un poste sur la compilation de Marlin avec Docker. Eric Draken utilise un script Bash qui fonctionne très bien sous Linux. Je l'ai mis à jour pour mon usage personnel sur mon github. J'ai pu fabriquer le firmware de ma SKR E3 min v3.0. Mais dans un premier temps je vais décortiquer un peu les choses pour permettre à d'autres de le refaire sur un autre OS que Linux. Installation de Docker: Dans un premier temps il faut installer Docker. Vous trouverez de nombreuse informations sur le sujet, mais sous ubuntu il faut faire: C'est simple et si vous avez un problème je vous conseille l'installation du package docker-clean. De quoi a t'on besoin de plus ? Et bien rien d'autre il me semble. En effet pour l'intégration de Marlin tout les besoins sont décrit dans le fichier "docker-compose.yml" et docker se charge du téléchargement au premier démarrage. Sauf les sources de Marlin. Préparation des sources de Marlin: Nous allons donc commencer comme toute compilation de Marlin en téléchargeant les sources depuis le dépôt de github et les fichiers de configurations qui sont sur un autre dépôt. Nous installons les fichiers de configurations qui conviennent dans le répertoire "Marlin". Et nous finissons par ouvrir un shell dans le répertoire principale des sources où se trouve le fichier "docker-compose.yml". Compilation de Marlin: La première étape est de créer l'image de la "machine virtuelle" (les puristes ne m'en voudront pas j'espère de cette simplification). La commande suivante crée un "container" avec tous les outils. La suivante est la compilation où seul le nom de votre platforme est nécessaire:. Ici pour moi j'utilise "STM32G0B1RE_btt" qui correspond à la carte SKR min E3 v3.0 de bigTreeTech. Si vous ne voulez plus voir tous ces hiéroglyphes qui défilent à la Matrix, je vous conseille d'ajouter l'option "--silent". Dans tous les cas vous devriez trouver le fichier de tous vos espoirs dans le répertoire ".pio/build/STM32G0B1RE_btt/". Si vous devez nettoyer les sources il suffit de lancer la même commande avec l'option --target "clean". Ma version de MarlinBuilder: Au début de ce post je vous ai parler du script de Eric Draken et que j'en avais fait une nouvelle version. Celle-ci permet de prendre un compte une autre version de carte sans avoir à modifier le script. Pour cela il suffit de télécharger le dépôt et de créer dans le répertoire un fichier "local.conf". Dans celui-ci vous mettrez à jour les variables qui vous concernent. Elles peuvent être: PLATFORM qui définit le nom de la carte cible. Pour moi c'est PLATFORM="STM32G0B1RE_btt" REMOTE_CONFIG_FOLDER qui définit le répertoire des fichiers de configuration à récupérer sur github. Il faut faire attention que le chemin doit être URL ¨compliant". Toujours dans mon cas j'utilise "Creality/Ender-3%20Pro/BigTreeTech%20SKR%20Mini%20E3%203.0" GITREPO qui définit l'URL du dépôt que vous voulez utiliser pour les sources de Marlin. Par défaut ce sera le dépôt de MarlinFirmware. MARLIN_BRANCH qui définit la branche à utiliser dans le dépôt de Marlin mais aussi dans le dépôt de configuration. Par défaut c'est la branche "bugfix-2.1.x". Cette variable devrait changer car elle est utiliser dans 2 dépôts différents et ne permet pas de mélanger tout cela. Une fois le ficher créé il suffit de lancer la commande: Vous trouverez le résultat dans le répertoire "firmware/bugfix-2.1.x-STM32G0B1RE_btt/" (dans mon cas) avec les fichiers de configuration utilisés. Si vous modifiez ceux-ci, il seront utiliser lors des prochaines compilations. il n'est plus nécessaire de les télécharger depuis le dépôt. Mais attention Marlin évolue et vos fichiers peuvent vite ne plus être compatibles. SI vous cherchez les sources de Marlin qui ont été utilisés, vous les trouverez dans le répertoire ".tmp/". Conclusion: J'espère que cela vous sera utile et je vous souhaite une bonne année...
×
×
  • Créer...