Aller au contenu

Classement

Contenu populaire

Contenu avec la plus haute réputation dans 19/07/2020 dans Messages

  1. 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.
    1 point
  2. Je me suis fait un support pour pouvoir mettre ma station météo au mur et pouvoir la regarder juste en levant la tète depuis mon bureau.
    1 point
  3. @Falandr, tu peux tout simplement dessouder le pin, rien de bien compliqué. Pour éviter une alimentation de 1000w tu peux passer le bed sur une version 220V, il te faudra alors utiliser un SSR (SSR piloté par la SKR) c’est la solution que j’ai retenue pour ma NGEN. @+ Nico
    1 point
  4. Comme te dis @Bosco2509 , tu n'as qu'à suivre les explications @fran6p , et de passer par arduino, bootloader et firmware.
    1 point
  5. salut tout le monde, petit avancement de la semaine dernière et début de l'assemblage, l'ensemble pèse déjà 15kg:
    1 point
  6. non pas encore essayée, je l'utilise pur ou avec un peu d'eau mais ça doit bien fonctionner car quant je fais des dioramas, j'utilise la colle à bois pour tout et n'importe quoi et je la mélange avec pleins de truc différent (sable, bicarbonate, sciure de bois, etc..) donc le talque doit bien fonctionner, j'ai pas de talque sous la main, j'essayerai avec de la farine si j'ai des petits trous à boucher.
    1 point
  7. Bien un mois plus tard et apres la reception et cramage d un ampermetre (par ce que la notice chinoise etais me***que) j ai enfin mon proto "en carton" par contre l amper metre est en serie APRES les leds et donc j ai l impression de faire erreur en lisant que ca ne consomme QUE 0.5A pour une telle puissance lumineuse. La premiere photo montre l'écran "blanc" l autre en calibration avec des lignes mais sa saute je pense que je fois regler la densité ou la resolution sur le panneau de config NANODLP et pour info sa parait faible mais j ai encore une protection plastique a jarter sur la vitre et l ecran se trouve a 10cm du pcb de led, je pense in fine le rapprocher pour le poser a 5 (par rapport aux lentilles sur les leds) et faire comme dans la machine original : poser du reflechissant sur les parroies. Reste donc : * Calibrer l'affichage * Realiser un boitier et cabler une ventilation * Commander un profilé alu pour l axe z * imprimer la cuve et la partie haute pour la plaque alu d impression * Commander une plaque d alu * Designer quelques piece pour le montage
    1 point
  8. non à sec avec du grain 120 pour commencer puis du 180 et si je veux vraiment un truc très très lisse, je fini avec du 240 mais je l'utilise rarement car j'applique du chlorure de méthylène qui lisse vraiment bien. Pour ce vaisseau, je pense faire comme pour le premier, ponçage 120 puis 180 et application de colle blanche plutôt que du chlorure car je veux le côté mat de la colle à bois alors que le chlorure donne un effet brillant.
    1 point
  9. Bonjour, pour l'alimentaire il faut prendre du PET. mais l'étanchéité n'est pas garantie. j'ai essayé par moi même, plusieurs taux de remplissage de l'impression , et ça fuit toujours ... De plus si c'est pour de l'huile , ça risque remplir les petits interstices de l'impression , et l'huile qui est imprégnée va "rancir" ... mieux vaut faire un cache bouteille... A+
    1 point
  10. imprimé en 0.15 et oui poncé à certains endroits, j'attend d'imprimer d'autres éléments pour finir le ponçage.
    1 point
  11. Je trouve moi aussi le Hero Me bien foutu et pas trop difficile a imprimer
    1 point
  12. Salut, As-tu regardé comment se comportait ton PC ? Vérif toute bête : saturation de la mémoire + écriture sur le disque ? Activité de la carte graphique/processeur ? J'ai eu quelques plantages dus à cela : meshroom demande trop de mémoire RAM, et rempli donc complètement la RAM puis le PC se met à écrire sur le disque dur pour compenser. Et comme la mémoire RAM est infiniment (bon en tout cas beaucoup plus) rapide que le disque dur, quand on en arrive là ça mets beaucoup plus de temps. Voire ça plante carrément la machine. Et ça m'arrive par exemple parce que j'ai été trop gourmand et lui ai demandé de me calculer un scan avec 260 images...
    1 point
  13. effectivement !!!! j'ai trouvé , pb de mappe 30 broches elle colle pas assez ??? , résolu en ajoutant un plastique
    1 point
×
×
  • Créer...