Aller au contenu

Anycubic Kobra 3 Combo

Sauvegarde mesh Eprom


kino

Messages recommandés

Salut à tous,

J'ai bataillé plusieurs jours avec le problème récurent de Z offset qui n'est pas sauvegardé après un auto home sur la Ender 3 s1.

J'ai réussi à régler le problème en passant par le professional firmware avec lequel j'ai édité points par points le auto mesh.

Je voudrais sauvegarder ce mesh corrigé au cas où le mesh serait effacé par erreur.

On m'a dit de le sauvegarder dans un IIRC différent de 0 qui est le IIRC par défaut.

Je ne sais pas du tout en quoi cela consiste; si quelqu'un pouvait m'expliquer comment faire et également comment faire pour le charger en cas de soucis ?

 

Merci pour vos réponses.

Lien vers le commentaire
Partager sur d’autres sites

je ne comprends pas trop... Le Z offset est calculé à chaque démarrage d'impression (commande G28) lorsqu'il touche capteur de buté !? nan? Ton problème ne vient-il pas plutôt du code de démarrage de tes GCODEs?

Pour info sur mon ENder3 voici mes démarrages de GCODE:

Citation

 

G28 ; home all axes

 

G92 E0 ;Reset Extruder

G1 Z2.0 F3000 ;Move Z Axis up

G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position

G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line

G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little

G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line

G92 E0 ;Reset Extruder

G1 Z2.0 F3000 ;Move Z Axis up

 

G92 E0

 

Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, Krl a dit :

je ne comprends pas trop... Le Z offset est calculé à chaque démarrage d'impression (commande G28) lorsqu'il touche capteur de buté !? nan? Ton problème ne vient-il pas plutôt du code de démarrage de tes GCODEs?

Pour info sur mon ENder3 voici mes démarrages de GCODE:

Le problème est que le Z offset n'est plus bon après un auto home avec le stock firmware.

Je suis passé sur le professional, mais là l'auto mesh ne compense pas correctement pour le lit qui n'est pas plat. J'ai donc corrigé les valeurs du mesh et je le charge avec le M420 S1 dans le Gcode de démarrage.

Maintenant que mon mesh est "nikel" je voudrais le sauvegarder sans qu'il puisse être écrasé; afin de pouvoir le recharger si besoin.

Voici mon Gcode qui n'a rien de différent par rapport à ce que j'utilisais avec le stock firmware.

 

G28 ;Home

M420 S1

 

G92 E0 ;Reset Extruder

G1 Z2.0 F3000 ;Move Z Axis up

G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position

G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line

G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little

G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line

G92 E0 ;Reset Extruder

G1 Z2.0 F3000 ;Move Z Axis up

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

Bonjour,

Je crois qu'il y a une confusion entre le Z offset et le mesh.

Le Z offset : quand un capteur mesure un Z = 0 , on obtient le Z = 0 du capteur et non pas de la buse. Le Z offset est la valeur  à appliquer au Z0 du capteur pour obtenir le Z0 de la buse.

Le mesh est une grille du plateau dans le plan XY avec les mesures d'écart en z entre ce plan et le plateau : cela permet ainsi à la machine, pour un point aux coordonnées (x,y) de savoir de quelle valeur il faut corriger Z pour rester à l'altitude voulue.

Un G28 (auto-home) n'efface pas un offset normalement, mais on perd le mesh qu'il faut recharger par un M420 S1 ou le refaire avec un G29. A noter que certain firmware rappelle automatiquement le mesh après un G28.

Pour finir, je ne vois pas l'intérêt de vouloir sauvegarder un mesh "de référence" : parce que le plateau est mobile et donc dispose de jeu, toute force exercé sur le plateau (nettoyage, spatule, appui, mise à niveau manuelle, ...) peut modifier le mesh. Le dernier effectué est forcément le meilleur.

[Edit]

Et pour pouvoir rappeler un mesh, il faut d'abord en avoir fait un et l'avoir sauvegardé... 😉

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

il y a une heure, RFN_31 a dit :

Bonjour,

Je crois qu'il y a une confusion entre le Z offset et le mesh.

Le Z offset : quand un capteur mesure un Z = 0 , on obtient le Z = 0 du capteur et non pas de la buse. Le Z offset est la valeur  à appliquer au Z0 du capteur pour obtenir le Z0 de la buse.

Le mesh est une grille du plateau dans le plan XY avec les mesures d'écart en z entre ce plan et le plateau : cela permet ainsi à la machine, pour un point aux coordonnées (x,y) de savoir de quelle valeur il faut corriger Z pour rester à l'altitude voulue.

Un G28 (auto-home) n'efface pas un offset normalement, mais on perd le mesh qu'il faut recharger par un M420 S1 ou le refaire avec un G29. A noter que certain firmware rappelle automatiquement le mesh après un G28.

Pour finir, je ne vois pas l'intérêt de vouloir sauvegarder un mesh "de référence" : parce que le plateau est mobile et donc dispose de jeu, toute force exercé sur le plateau (nettoyage, spatule, appui, mise à niveau manuelle, ...) peut modifier le mesh. Le dernier effectué est forcément le meilleur.

[Edit]

Et pour pouvoir rappeler un mesh, il faut d'abord en avoir fait un et l'avoir sauvegardé... 😉

Non non, j'ai bien compris la différence entre Z offset et mesh.

Avec le stock firmware je faisais un z=0, ensuite de réglais le Z offset avec un papier. Ensuite un level à la main, puis ajustement du  Z offset car le plateau à bougé, suivi d'un auto mesh. Ensuite un store settings.

Et là si je lançais un auto home, mon Z offset n'était plus bon. La valeur restait la même; mais le papier ne touchait plus la buse et mon Z était bien toujours à 0. Si je lançais tout de suite une impression ça allais; jusqu'à ce que je face un auto home pour X raison. J'ai vu pas mal de monde se plaindre de ça et mieux s'en sortir avec le professional firmware. Je joinsune vidéo qui montre le problème.

Je l'ai donc installé; plus de problème de Z offset qui change après l'auto home; mais d'après le codeur de se firmware, un soucis se produit avec les Ender S1 de version F4.

Le mesh créé par le CR touch semble calculé sur de mauvaises valeurs; ou elles sont mal appliquées à l'impression, donc le mesh est inutilisable tel quel.

Je l'ai donc corrigé points par points en éditant les valeurs de Z offset calculées par le CR touch.

Mon premier layer est donc maintenant correct et sauvegardé avec store settings. Je le rappel donc avec M420 S1 dans mon Gcode.

Je voudrais donc maintenant en faire une copie de sauvegarde au cas où. Si mon plateau vient à bouger; ça sera de peu donc j'aurais pas trop de mal à retomber sur mes valeurs. Puis c'est surtout pour si je fais un auto mesh par erreur ou qu'un problème se produit; pas trop envie de me refaire la procédure de correction du mesh.

On m'a donc dit de le sauvegarder dans un IIRC différent du 0; mais je ne sais pas ce que ça veut dire.

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

Salut,

Le 28/08/2022 at 08:52, kino a dit :

On m'a donc dit de le sauvegarder dans un IIRC différent du 0; mais je ne sais pas ce que ça veut dire.

Moi non plus, mais il y a une solution plus "manuelle" en passant par les gcodes envoyés depuis Pronterface par exemple, installé sur un ordinateur relié en USB.

Pour visualiser la matrice, tu peux envoyer un M420 V1 T0.

Pour la renvoyer dans l'eeprom, il te suffit de créer un fichier texte en utilisant le GCode M421 i<indice de colonne du point> j<indice de ligne du point> Z<altitude du point>, avec, à la fin, un M500 pour la sauvegarde. i et j sont habituellement en majuscule mais Marlin sait interpréter les 2 😉
Exemple:
M421 I1 J2 Z-0.02
...
M500

Le point à la colonne 2, ligne 3 aura une altitude de -0.02

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

il y a 11 minutes, pommeverte a dit :

Salut,

Moi non plus, mais il y a une solution plus "manuelle" en passant par les gcodes envoyés depuis Pronterface par exemple, installé sur un ordinateur relié en USB.

Pour visualiser la matrice, tu peux envoyer un M420 V1 T0.

Pour la renvoyer dans l'eeprom, il te suffit de créer un fichier texte en utilisant le GCode M421 i<indice de ligne du point> j<indice de colonne du point> Z<altitude du point>, avec, à la fin, un M500 pour la sauvegarde. i et j sont habituellement en majuscule mais Marlin sait interpréter les 2 😉
Exemple:
M421 I1 J2 Z-0.02
...
M500

Le point à la ligne 2, colonne 3 aura une altitude de -0.02

Ok donc si j'ai bien compris, avec Pronterface, je peux demander à l'imprimante quelle valeurs de mesh elle utilise avec un M420 V1 T0, les sauvegarder; et si j'ai un problème je peux juste toutes les copier/coller dans un G code avec M421 comme tu as indiqué et sauver ces nouvelles valeurs avec un M500 pour que l'imprimante remplace le mesh qu'elle a actuellement en mémoire ?

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

Désolé, je n'avais pas encore rencontré d'offset effacer par un G28.

Cela dit, plutôt que de corriger l'offset de chacun des points du mesh, ne serait-il pas préférable de refixer l'offset après le G28 ? Cela peut être fait avec un M206:

M206 [P<offset>] [T<offset>] [X<offset>] [Y<offset>] [Z<offset>]

Ainsi, dans ton gcode de début, je ferais:
...
G28
M420 S1 (ou Sx, selon ton slot utilisé)
M206 Z<offset>
...

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

il y a 26 minutes, kino a dit :

Ok donc si j'ai bien compris, avec Pronterface, je peux demander à l'imprimante quelle valeurs de mesh elle utilise avec un M420 V1 T0, les sauvegarder; et si j'ai un problème je peux juste toutes les copier/coller dans un G code avec M421 comme tu as indiqué et sauver ces nouvelles valeurs avec un M500 pour que l'imprimante remplace le mesh qu'elle a actuellement en mémoire ?

exactement, tu auras des détails ici. D'ailleurs, il est question de l'enregistrement de matrice dans l'eeprom pour l'UBL seulement, ce qui ne semble pas possible en ABL, d'après la doc Marlin. Par défaut, l'enregistrement se fait dans le "slot 1" mais si l'eeprom est suffisamment grande, tu peux enregistrer dans différents slot (G29 Sn) et l'injecter avec un M420 Ln.

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

il y a 20 minutes, RFN_31 a dit :

Désolé, je n'avais pas encore rencontré d'offset effacer par un G28.

Cela dit, plutôt que de corriger l'offset de chacun des points du mesh, ne serait-il pas préférable de refixer l'offset après le G28 ? Cela peut être fait avec un M206:

M206 [P<offset>] [T<offset>] [X<offset>] [Y<offset>] [Z<offset>]

Ainsi, dans ton gcode de début, je ferais:
...
G28
M420 S1 (ou Sx, selon ton slot utilisé)
M206 Z<offset>
...

Alors je ne suis pas certain d'avoir bien compris ta procédure; mais si c'est ce que je pense, ça ne suffit pas car aucun des points n'est bon et les ajustements sont tous différent car le plateau n'est pas plat.

Voilà avec l'auto mesh le print qu'il me donne; et regarde avec les valeurs ajustées et le print final. Les images sont mélangées, le bon print va avec le mesh avec 0.35 en bas à droite.

20220826_000831.thumb.jpg.d644dd3fa3cca65464f1d3e46e373a78.jpg

20220821_061151.jpg

20220821_082809.jpg

20220825_051744.jpg

il y a 19 minutes, pommeverte a dit :

exactement, tu auras des détails ici. D'ailleurs, il est question de l'enregistrement de matrice dans l'eeprom pour l'UBL seulement, ce qui ne semble pas possible en ABL, d'après la doc Marlin. Par défaut, l'enregistrement se fait dans le "slot 1" mais si l'eeprom est suffisamment grande, tu peux enregistrer dans différents slot (G29 Sn) et l'injecter avec un M420 Ln.

Ok, super ! Merci pour ton aide 👍

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

Salut @RFN_31

il y a 49 minutes, RFN_31 a dit :

M420 S1 (ou Sx, selon ton slot utilisé)

Attention, le x est un booléen donc 0 ou 1 pour désactiver / activer le nivellement.

Le choix du slot se fait avec l'option L pour l'UBL uniquement, ce qui ne devrait pas être le cas de @kino

il y a 32 minutes, kino a dit :

je ne suis pas certain d'avoir bien compris ta procédure

@RFN_31 a indiqué comment décaler l'origine, donc la matrice dans sa globalité.

Par contre, je suis d'accord avec @RFN_31:

Il y a 2 heures, RFN_31 a dit :

Pour finir, je ne vois pas l'intérêt de vouloir sauvegarder un mesh "de référence" : parce que le plateau est mobile et donc dispose de jeu, toute force exercé sur le plateau (nettoyage, spatule, appui, mise à niveau manuelle, ...) peut modifier le mesh. Le dernier effectué est forcément le meilleur.

il faut bien faire le palpage dans les conditions d'impression (température de la buse et du plateau) pour avoir la même déformation du plateau.

Modifié (le) par pommeverte
  • +1 2
Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, kino a dit :

Alors je ne suis pas certain d'avoir bien compris ta procédure; mais si c'est ce que je pense, ça ne suffit pas car aucun des points n'est bon et les ajustements sont tous différent car le plateau n'est pas plat.

Ce que je dis, c'est que le auto-home te donne un z0 palpeur. Le mesh (G29) en ensuite fait par rapport à cette valeur. Puis par le M206, tu forces l'offset Z : cet offset s'appliquera à tous les points du mesh. Tu auras alors une bonne première couche tenant compte de l'offset Z et du mesh calculer par la machine.

Tu peux faire un essai simple : dans ton gcode de départ, glisse derrière le G28 un G29 pour réaliser le mesh puis tu insère un M206 avec la bonne valeur d'offset que tu auras mesurée au préalable. Si cela fonctionne c'est que le mesh est correctement calculé par la machine et qu'il est bien utilisé avec un offset correctement pris en compte. Si ça ne marche pas, je me pose des questions sur le bon réglage mécanique de ta machine.

@pommeverte : bien vu pour le booléen, tu as parfaitement raison

Lien vers le commentaire
Partager sur d’autres sites

Il y a 4 heures, RFN_31 a dit :

Ce que je dis, c'est que le auto-home te donne un z0 palpeur. Le mesh (G29) en ensuite fait par rapport à cette valeur. Puis par le M206, tu forces l'offset Z : cet offset s'appliquera à tous les points du mesh. Tu auras alors une bonne première couche tenant compte de l'offset Z et du mesh calculer par la machine.

Tu peux faire un essai simple : dans ton gcode de départ, glisse derrière le G28 un G29 pour réaliser le mesh puis tu insère un M206 avec la bonne valeur d'offset que tu auras mesurée au préalable. Si cela fonctionne c'est que le mesh est correctement calculé par la machine et qu'il est bien utilisé avec un offset correctement pris en compte. Si ça ne marche pas, je me pose des questions sur le bon réglage mécanique de ta machine.

@pommeverte : bien vu pour le booléen, tu as parfaitement raison

Ok, je testerais ce soir et te tiendrais au courant de ce que ça donne 👍

Lien vers le commentaire
Partager sur d’autres sites

@RFN_31 J'espère avoir bien fait comme il faut, mais non ça ne marche pas.

J'ai mit ça comme Gcode de démarrage :

G28 ;Home

G29

M206 Z-2.04

 

G92 E0 ;Reset Extruder

G1 Z2.0 F3000 ;Move Z Axis up

G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position

G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line

G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little

G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line

G92 E0 ;Reset Extruder

G1 Z2.0 F3000 ;Move Z Axis up

 

Z-2.04 étant le Z offset que j'utilise avec mon mesh corrigé, mais j'ai vérifié qu'il était bon avant de lancer ce Gcode.

Le mesh me donne ça:

 

Bilinear Leveling Grid:
      0      1      2      3      4
 0 -0.033 +0.007 +0.015 +0.055 -0.019
 1 -0.036 +0.020 +0.013 +0.062 +0.010
 2 -0.050 -0.010 +0.026 +0.064 +0.020
 3 +0.005 +0.013 +0.003 +0.055 -0.005
 4 -0.023 +0.013 +0.000 +0.043 -0.008
echo:Bed Leveling OFF
echo:Fade Height 10.00

 

Mon mesh corrigé est comme ça:

 

Bilinear Leveling Grid:
      0      1      2      3      4
 0 +0.070 +0.070 +0.140 +0.240 +0.270
 1 -0.010 -0.020 -0.100 +0.000 -0.010
 2 -0.010 -0.020 -0.050 -0.020 -0.020
 3 -0.060 -0.050 -0.070 -0.040 -0.020
 4 -0.050 -0.070 -0.070 -0.030 -0.050
echo:Bed Leveling OFF
echo:Fade Height 10.00

 

Voilà comme ça imprime avec le G29 et G206 (j'ai stoppé assez vite en voyant la tournure que ça prenait) VS le mesh édité.

Il est donc bien sauvegardé, utilisé, mais mal mesuré.

 

Concernant le réglage mécanique de l'imprimante; avant d'en arriver à changer de firmware et corriger le mesh, j'ai déjà passé plusieurs heures à tout démonter pour bien tout aligner et vérifier les serrages. Mon axe Z est bien parallèle, tout tourne et glisse comme il faut.

A part un bug du CR touch ou de la façon dont il interprète ses mesures de mesh, je ne vois pas.

 

 

20220827_035045.jpg

20220829_055735.jpg

Lien vers le commentaire
Partager sur d’autres sites

Merci d'avoir fait l'essai.

Quand je regarde tes 2 meshs, il est évident que ce n'est pas un problème de Z offset : donc pas surpris que la solution proposée ne fonctionne pas.

Par contre, il faudrait comprendre pourquoi le mesure du mesh est fausse... quelle méthode utilises-tu , bilinéaire ?

Lien vers le commentaire
Partager sur d’autres sites

je viens de voir dans les copiés collés des valeurs de mesh, qu'il est bien écrit bilinéaire.

Bilinear Leveling Grid:
      0      1      2      3      4
 0 -0.033 +0.007 +0.015 +0.055 -0.019
 1 -0.036 +0.020 +0.013 +0.062 +0.010
 2 -0.050 -0.010 +0.026 +0.064 +0.020
 3 +0.005 +0.013 +0.003 +0.055 -0.005
 4 -0.023 +0.013 +0.000 +0.043 -0.008
echo:Bed Leveling OFF
echo:Fade Height 10.00

 

Je viens visualiser le mesh généré avant correction et après correction. Ca n'a aucun sens. L'angle en bas à droite est mesuré comme étant déjà haut, pourtant c'est bien là que je monte le plus haut en valeur pour la correction.

image.thumb.png.35be66951a3624a9260f8699e3374fb1.png

et ici la correction

image.thumb.png.f2ccf633bf266a0c66f4d84f6c063a5c.png

La version date de ce mois ci malheureusement.

Lien vers le commentaire
Partager sur d’autres sites

Le "echo:Bed leveling OFF" apparait après chaque G28 ou auto home; même si je force l'utilisation du mesh avec une option ajoutée dans le firmware qui elle me le passe en ON.

Oui car les valeurs que je t'ai copié dans le post ou j'ai fais l'essai, m'ont été données en réponse à un M420 V1 T0 fait après l'impression. Et j'ai été obligé de faire un restore settings pour retrouver mes valeurs de mesh ajustées avant le M420 V1 T0 de vérification que tout est revenu "à la normale".

 

Ca dit ça dans Marlin : G28 disables bed leveling. Follow with M420 S to turn leveling on, or use RESTORE_LEVELING_AFTER_G28 to automatically keep leveling on after G28

 

Il faudrait peut être refaire le test en ajoutant un M420 S entre le G29 et le M206 ?

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

Non car si tu fais un M420 S, tu écraseras en mémoire le résultat du G29 que tu viens de faire...

Fais plutôt un G29 suivi d'un M500 (sauvegarde dans l'eeprom) puis lis le mesh ainsi sauvegardé.

Lien vers le commentaire
Partager sur d’autres sites

Il me semblait que le M420 S1 ou 0 servait à justement utiliser ou non le dernier mesh créé  ?

Dans ce cas là un RESTORE_LEVELING_AFTER_G28 ne suffirait pas non plus ?

Le M500 m'embête car ça va faire sauter de l'eeprom mon mesh corrigé, mais je le ferais pour la science si pas d'autre solution. 😅

Lien vers le commentaire
Partager sur d’autres sites

Si tu as le RESTORE_LEVELING_AFTER_G28, cela te dispenses du M420 S1.

Mais le mesh n'est rappelé que s'il existe (et s'il existe un bon mesh sauvegardé).

Le M500 a pour objectif de faire cette sauvegarde d'un mesh "bon" ... mais effectivement, cela fera sauté ton mesh actuel.

Envisage un fichier gcode qui te permettra de réinjecté ton mesh. 😉

Si la solution de ton mesh rentré à la main te convient, restons-en là, mais ce n'est pas normal que le mesh calculé soit mauvais.

Lien vers le commentaire
Partager sur d’autres sites

Oui la solution me convient, enfin j'ai pas vraiment eu le choix 😅

Si on peut trouver d'où ça vient je préfère oui, si une solution plus simple existe c'est mieux.

J'ai sauvegardé mes valeurs dans un .txt, donc je les réinjecterais après oui.

 

Donc je fais comme ça ?

G28

G29

M500

M206 Z-2.04

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Il y a 3 heures, kino a dit :

M206 Z-2.04

C'est une valeur (-2.04) donnée pour exemple? parce que si c'est bien ce que tu veux modifier, ta buse va se retrouver dans ton plateau.😱

Pour mémoire, on ne met JAMAIS de M500 dans un Gcode de démarrage, seulement dans un fichier que tu imprimes à l'occasion.

Si je résume ton problème, la matrice qui vient d'être palpée ne permet d'imprimer correctement mais avec une autre matrice tu n'as plus de problèmes? On est en plein dedans avec ce sujet 😩

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

Créer un compte ou se connecter pour commenter

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

Créer un compte

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

Créer un nouveau compte

Se connecter

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

Connectez-vous maintenant
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...