Aller au contenu

GO Print

Probleme de Bed-Mech sous Klipper


Messages recommandés

Salut à tous,

Après un passage d'une MKS base a une SKR-pro sous klipper je rencontre un petit sousci 🤔.

Lors du lancement du bed-mech_calibrate mon G28 se lance afin de faire le zéro des 3 axes pas de soucis de ce cotés.

Une fois le Z réalisé la tête part dans le coin droit du plateau à la distance configurer dans printer.cfg et puis plus rien aucun, point n'est réalisé comme si il y avait une pause ....

Je m'arrache les cheveux depuis hier 🤪 ... Il y a surerement un truc qui m'échappe mais quoi ....

Je joins mon printer.cfg .

Ma config : RPI 3B, Klipper, octoprint, capteur piezzo precision orion, skr-pro1.2 .

Merci pour votre aide et oeil averti .

 

CFG_antho_klipper_orion.txt

Lien vers le commentaire
Partager sur d’autres sites

Essaye en corrigeant/rajoutant les sections concernées avec ce qui suit et fait attention aux tabulations, Klipper y est sensible.

[homing_override]
axes: z
set_position_z: 10
gcode: 
	G90
	G0 Z10 F500
	G28 X Y
	G0 X150 Y150 
	G4 P500
	G28 Z F200
	G0 Z15 F500
    
[gcode_macro G29]
gcode:
	G28
	BED_MESH_CLEAR                                        ; Clear bed mesh data
	BED_MESH_CALIBRATE                                    ; Run Bed Mesh
	G0 X0 Y0 Z10 F6000
	BED_MESH_PROFILE SAVE=Hypercube                            ; Save Bed Mesh
  
Lien vers le commentaire
Partager sur d’autres sites

Le test n'est pas plus concluant ...

L'offset du Z est lent normal aux vues des vitesses, une fois réalisée la tête viens se caler a droite en et plus rien, le plateau ne bouge pas  tout est en pause ou pas ....

Grrr maudit Klipper

Lien vers le commentaire
Partager sur d’autres sites

il y a 2 minutes, Tircown a dit :

Tu fais bien G29 pour appeler le bed mesh?

oui je fait bien G29

j'ai l'impression que ma commande bed_mech_calibrate est en manuel et pas par defaut en automatique ....

je test avec la commande bed_mech_calibrate method=automatic

le bed mech reste en manuel, obliger de déplacer la buse grace a testZ et a accepter pour passer au point suivant ....

Lien vers le commentaire
Partager sur d’autres sites

@Antho.breizh

Bonjour et meilleurs voeux,

Tu as bien corrigé dans la définition de la macro G29 ton «gcode =» par «gcode: » ?

Extrait du journal :

Citation

[gcode_macro G29]
gcode =
    g28
    g90
    BED_MESH_CALIBRATE
    G0 X0 Y0 Z10 F6000
    BED_MESH_PROFILE save= Hypercube

Pour l'indentation, tu utilises bien des espaces et pas des tabulations ?

Qu'as-tu mis dans le gcode de démarrage de ton trancheur?

Pour ma configuration j'utilise des fichiers inclus dans «printer.cfg» plutôt qu'un gros fichier monolithique, toutes mes macros sont dans un seul fichier :

Citation

gcode_macro G29]
gcode =
    g28
    g90
    BED_MESH_CALIBRATE
    G0 X0 Y0 Z10 F6000
    BED_MESH_PROFILE save= Hypercube

Mon start_gcode dans Cura :

Citation

; gcode macro Klipper

START_PRINT T_BED={material_bed_temperature_layer_0} T_EXTRUDER={material_print_temperature_layer_0}

Comme ABL, j'utilise un Bltouch et donc il y a une section dédiée dans le printer.cfg (en fait c'est à nouveau un fichier inclus «bltouch.cfg»), pour ta sonde (piezo), je n'ai pas vu de section dans ton fichier 😞 Comment Klipper sait-il la gérer / utiliser ?

Tous mes fichiers de configuration sont disponibles dans mon dépôt github si tu veux y jeter un oeil.

🙂

Lien vers le commentaire
Partager sur d’autres sites

Salut Fran6p et meilleurs voeux aussi.

Merci pour ta réponse.

 

-J'ai bien modifié mon Gcode .

-Pour l'indexation oui c'est bien des espaces.

-Dans le G-code de démarrage de mon trancheur il n'y a qu'un G28, et cela ne m'empèche pas d'imprimer depuis longtemps comme cela.

-Hors-mi G29 je n'ai aucune autre macro pour l'instant ... Donc cela ne surcharge pas mon printer.cfg. Mais j'y tiendrai compte si j'en utilise plus.

 

-Concernant la gestion de mon Piezzo et j'y ai pensé cette nuit 🤪 meme en dormant .... Il est juste vu comme capteur fin de course pour le Z et déclaré comme cela d'ailleur c'est surement la mon soucis. Et je n'ai rien trouvé ou pas cherché au bonne endroit comment il fallait le déclarer. Mais c'est pas faute d'avoir cherché j'y ai mangé quelques heures ... je connai le github de Klipper comme ma poche 😉....

Mon BLtouch était déclaré avec un offset sous [bltouch] ce qure tu dois avoir aussi, mais rien pour mon Piezzo ....

 

Je vais encore creuser ...

Merci à tous.

 

Edit:

Bon Problème résolu la nuit porte conseil ... :banana:

Il Fallait Bien déclaer le Piezzo en capteur comme suit d'ou le blocage:

[stepper_z]
step_pin: PE13
dir_pin: PC2
enable_pin: !PC0
#step_distance: 0.0024875
step_distance: 0.0012526
endstop_pin: probe:z_virtual_endstop
position_endstop: 0
position_max: 300
homing_speed: 5
homing_retract_dist: 10

 

[probe]
pin: !PG8
x_offset: 0.0
y_offset: 0.0
z_offset: 0.1
speed: 5.0

 

Merci pour l'aiguillage ...

Modifié (le) par Antho.breizh
  • +1 1
Lien vers le commentaire
Partager sur d’autres sites

  • 9 months later...
Le 03/01/2021 at 22:18, Tircown a dit :
[gcode_macro G29]
gcode:
	G28
	BED_MESH_CLEAR                                        ; Clear bed mesh data
	BED_MESH_CALIBRATE                                    ; Run Bed Mesh
	G0 X0 Y0 Z10 F6000
	BED_MESH_PROFILE SAVE=Hypercube                            ; Save Bed Mesh

Comment fonctionne le BED_MESH_PROFILE SAVE=Hypercube ?

Je ne vois pas où il est sauvegardé et dès que j'éteins l'imprimante le graphique dans maillage disparait

Lien vers le commentaire
Partager sur d’autres sites

Normalement ça devrait être ajouté à la fin du fichier printer.cfg (équivalent du M500 avec Marlin pour sauvegarder en EEPROM). C'est ce qui se passe en tout cas avec ma CR10V2.

Citation

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 25.640
#*# pid_ki = 1.554
#*# pid_kd = 105.766
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 70.936
#*# pid_ki = 0.967
#*# pid_kd = 1300.785
#*#
#*# [bltouch]
#*# z_offset = 1.600
#*#
#*# [bed_mesh cr10v2]
#*# version = 1
#*# points =
#*#     0.086250, 0.066250, 0.081250, 0.076250, 0.092500
#*#     -0.002500, -0.011250, 0.043750, 0.046250, 0.095000
#*#     -0.057500, -0.061250, -0.010000, 0.025000, 0.045000
#*#     -0.045000, -0.062500, -0.037500, -0.003750, 0.027500
#*#     -0.070000, -0.093750, -0.060000, -0.045000, -0.002500
#*# x_count = 5
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = lagrange
#*# tension = 0.2
#*# min_x = 57.0000000001
#*# max_x = 290.0
#*# min_y = 10.0000000001
#*# max_y = 290.0

 

Ma macro G29 :

Citation

# G29 => (1) home all (2) get bed mesh (3) move nozzle to corner so it doesnt ooze on the bed while heating up.
[gcode_macro G29]
gcode:
    G28
    BED_MESH_CALIBRATE
    G0 X0 Y0 Z10 F6000
    BED_MESH_PROFILE save=cr10v2

 

Une fois sauvegardé, c'est réutilisable. Exemple pour ma macro START_PRINT ( au lieu de «save», c'est «load» avec le nom du profil comme paramètre) :

Citation

[gcode_macro START_PRINT]
#variable_T_BED: 60
#variable_T_EXTRUDER: 200
gcode:
    {% set T_BED = params.T_BED|default(60)|float %}
    {% set T_EXTRUDER = params.T_EXTRUDER|default(190)|float %}    
    M117 Homing
    # Use absolute coordinates
    G90
    # Reset the G-Code Z offset (adjust Z offset if needed)
    SET_GCODE_OFFSET Z=0.0
    # Home the printer
    G28
    # Use the bed mesh
    #G29
    BED_MESH_PROFILE LOAD=cr10v2
    # Move the nozzle near the bed
    G1 X15 Y20 Z5 F6000
    # Move the nozzle very close to the bed
    G1 Z0.15 F300    
    M117 Waiting for temperature
    # Start bed heating and continue
    M140 S{T_BED}
    {% if printer.heater_bed.temperature < params.T_BED|float*0.85 %}
        M190 S{params.T_BED|float*0.85} # wait till 0.85 of bed temp is reached, then continue  
    {% endif %}
    
    M140 S{T_BED}
    M104 S170
    M190 S{T_BED}
    M109 S{T_EXTRUDER}
    
    # Prime line
    PURGE
    M117 Printing...

 

🙂

Modifié (le) par fran6p
  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

J'ai mis exactement ta macro mais je n'ai rien à la fin de printer.cfg

Par contre si je fais SAVE_CONFIG ca s'enregistre effectivement, d'ailleurs dès que la macro se termine j'ai le message qui me dit que le Bed Mesh à été enregistré seulement pour la session en cours et qu'il faut faire un SAVE_CONFIG pour ajouter au fichier de config

Bed Mesh state has been saved to profile [cr10v2]
for the current session. The SAVE_CONFIG command will
update the printer config file and restart the printer.

Chez toi ça sauvegarde dans printer.cfg même sans faire SAVE_CONFIG ?

Chose bizarre aussi, après SAVE_CONFIG j'ai automatiquement deux profils enregistrés [bed_mesh default] et [bed_mesh cr10v2]

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 	  0.147500, -0.242500, -0.660000, -0.680000
#*# 	  0.725000, 0.125000, -0.227500, -0.482500
#*# 	  0.930000, 0.432500, -0.040000, -0.397500
#*# 	  0.850000, 0.392500, -0.025000, -0.460000
#*# tension = 0.2
#*# min_x = 30.0
#*# algo = lagrange
#*# y_count = 4
#*# mesh_y_pps = 2
#*# min_y = 30.0
#*# x_count = 4
#*# max_y = 469.98
#*# mesh_x_pps = 2
#*# max_x = 450.0
#*#
#*# [bed_mesh cr10v2]
#*# version = 1
#*# points =
#*# 	  0.147500, -0.242500, -0.660000, -0.680000
#*# 	  0.725000, 0.125000, -0.227500, -0.482500
#*# 	  0.930000, 0.432500, -0.040000, -0.397500
#*# 	  0.850000, 0.392500, -0.025000, -0.460000
#*# tension = 0.2
#*# min_x = 30.0
#*# algo = lagrange
#*# y_count = 4
#*# mesh_y_pps = 2
#*# min_y = 30.0
#*# x_count = 4
#*# max_y = 469.98
#*# mesh_x_pps = 2
#*# max_x = 450.0
Modifié (le) par David590
Lien vers le commentaire
Partager sur d’autres sites

Il y a 10 heures, David590 a dit :

Chez toi ça sauvegarde dans printer.cfg même sans faire SAVE_CONFIG ?

Non.

C'est un oubli de ma part. J'avais lancé cette commande (SAVE_CONFIG) directement en ligne de commande après un premier G29. Je ne voulais pas la mettre directement dans la macro pour éventuellement éviter des effets indésirables. Ma macro START_PRINT n'utilise pas le G29 (mis en commentaire) mais la récupération du maillage enregistré mais pour que ça fonctionne, ce maillage doit avoir été sauvegardé de manière persistante une première fois.

La documentation de Klipper indique effectivement que pour une sauvegarde permanente, le SAVE_CONFIG doit être utilisé (comme pour tout paramétrage que l'on souhaite permanent: PID, Zoffset, …). Extrait de https://www.klipper3d.org/G-Codes.html :

Citation

BED_MESH_PROFILE LOAD=<name> SAVE=<name> REMOVE=<name>: This command provides profile management for mesh state. LOAD will restore the mesh state from the profile matching the supplied name. SAVE will save the current mesh state to a profile matching the supplied name. Remove will delete the profile matching the supplied name from persistent memory. Note that after SAVE or REMOVE operations have been run the SAVE_CONFIG gcode must be run to make the changes to peristent memory permanent.

Traduction automatique via DeepL :

Cette commande permet de gérer les profils pour l'état de maillage. LOAD rétablit l'état de la maille à partir du profil correspondant au nom fourni. SAVE sauvegarde l'état de maillage actuel dans un profil correspondant au nom fourni. Remove supprime de la mémoire persistante le profil correspondant au nom fourni. Notez qu'après que les opérations SAVE ou REMOVE aient été exécutées, le gcode SAVE_CONFIG doit être exécuté pour rendre les changements de la mémoire persistante permanents.

J'ai également la section [bed_mesh default] en plus de celle (cr10v2) à la fin de mon fichier printer.cfg (les données des points du maillage sont d'ailleurs différentes ) 😉

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 25.640
#*# pid_ki = 1.554
#*# pid_kd = 105.766
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 70.936
#*# pid_ki = 0.967
#*# pid_kd = 1300.785
#*#
#*# [bltouch]
#*# z_offset = 1.600
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 	0.067500, 0.055000, 0.078750, 0.070000, 0.070000
#*# 	-0.011250, -0.020000, 0.032500, 0.043750, 0.073750
#*# 	-0.062500, -0.066250, -0.018750, 0.020000, 0.052500
#*# 	-0.062500, -0.058750, -0.046250, -0.025000, 0.022500
#*# 	-0.090000, -0.097500, -0.090000, -0.071250, -0.022500
#*# x_count = 5
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = lagrange
#*# tension = 0.2
#*# min_x = 57.0000000001
#*# max_x = 290.0
#*# min_y = 10.0000000001
#*# max_y = 290.0
#*#
#*# [bed_mesh cr10v2]
#*# version = 1
#*# points =
#*# 	0.086250, 0.066250, 0.081250, 0.076250, 0.092500
#*# 	-0.002500, -0.011250, 0.043750, 0.046250, 0.095000
#*# 	-0.057500, -0.061250, -0.010000, 0.025000, 0.045000
#*# 	-0.045000, -0.062500, -0.037500, -0.003750, 0.027500
#*# 	-0.070000, -0.093750, -0.060000, -0.045000, -0.002500
#*# x_count = 5
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = lagrange
#*# tension = 0.2
#*# min_x = 57.0000000001
#*# max_x = 290.0
#*# min_y = 10.0000000001
#*# max_y = 290.0

🙂

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

Alors après de multiples essais 😀

Si je mets BED_MESH_PROFILE save=cr10v2 dans la macro et que je fais un SAVE_CONFIG

Ca me sauvegarde 2 profils, les 2 ont des valeurs identiques

#*# [bed_mesh default]
...........
#*# [bed_mesh cr10v2]
...........

 

Si je ne mets pas de BED_MESH_PROFILE SAVE dans la macro et que je fais un SAVE_CONFIG

Ca me sauvegarde seulement le profil par défaut

#*# [bed_mesh default]
...........

 

Que je mets ou pas le BED_MESH_PROFILE save=cr10v2 dans la macro, si je ne fais pas un SAVE_CONFIG derrière ca ne sauvegarde rien, donc la fonction BED_MESH_PROFILE SAVE est surtout utiles pour pouvoir enregistrer plusieurs profiles différents

Je pense que je vais mettre BED_MESH_CALIBRATE dans la macro START_PRINT car j'attend que la température du plateau se stabilise avant de faire le leveling et je trouve ca dommage de devoir faire un save_config qui redémarre klipper et arrête la chauffe juste avant le print contrairement au M500 qui se contentait d'enregistrer simplement

 

Par contre j'ai un autre soucis avec le bed_mesh, dès ca commence à imprimer tout s'arrête et j'ai :

Move out of range: 174.836 158.572 -0.016 [-2.000]

Si j'efface le maillage enregistré, là ca imprime

Ca ressemble à quelque chose qui interdit au bed_mesh de faire la correction du plateau quand le Z descend en dessous de 0, d'où peut bien venir ce problème ?

edit: 
Pour le "Move out of range" j'ai trouvé la solution dans ton fichier de config sur ton github @fran6p 👍
J'ai ajouter position_min: -1.5 pour autoriser à descendre en dessous de 0 

[stepper_z]
....
....
position_min: -1.5
Modifié (le) par David590
  • +1 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
×
×
  • Créer...