Aller au contenu

GO Print

autolevel piezo imprimante delta sous smoothie


cmatec

Messages recommandés

Hello tous !

Avant de commencer, je tiens à remercier emotion-tech de m'avoir réconcilier avec l'impression 3D (micro delta rework au top !!!) suite aux déboires rencontrés avec la Neva de DAGOMA ; @Marlequeen pour son soutien et ses travaux qui ont permis de grandes avancées (chimera ou cyclop ... + auto level piezo il y a 6 mois déjà) ; @pascal_lb : pour son soutien et sa grande disponibilité.

Je poste ce nouveau sujet car je viens de mettre en place un auto level à base de piezo sur une imprimante delta tournant sous smoothie.

Les résultats sont plutôt prometteurs ...

 

Intérêt :

La mise en place d'un auto level sur une delta a 3 fonctions principales :

- la calibration automatique de la géométrie delta : cela permet d'avoir le noyau toujours parallèle à la surface d'impression (le bed)

- la palpation de la surface d'impression pour en faire une cartographie : c'est ce que l'on appelle la grille de calibration

- le réglage automatique de la hauteur de première couche

 

Tout cela peut se faire automatiquement en ajoutant quelques commandes G-code dans le trancheur (repetier, cura, …), sans avoir le moindre réglage à faire sur la machine (fini les capteurs à mettre, à enlever, les réglages d'offset …). La qualité du print s'en trouve améliorée, le positionnement de la buse est toujours optimal.

Si l'aventure vous tente …

 

Prérequis :

- disposer d'une imprimante delta pilotée par une carte smoothie telle que la MKS Sbase  : ====> ICI

- disposer d'un kit auto level piezo  : ====>  ICI

- être capable d'utiliser un multimètre

- être capable d'utiliser un fer à souder

 

Mise en place des capteurs piezo :

Les capteurs piezo doivent être positionnés de la manière suivante :

1183019910_positionnementpiezo.thumb.png.05f93926bb34d0501a6a1cd15034477e.png

 

... avec par exemple ces supports imprimés si possible en ABS : voir pièce jointe en fin de post

Le « palpeur » sera isolé du plateau chauffant avec du kapton et fixé sur celui-ci avec de la visserie inox (ou titane) de préférence afin de limiter le transfert de chaleur.

Quelques soudures sont à réaliser pour les connecteurs des piezo.

 

Configuration de la carte smoothie :

Ouvrez votre fichier de configuration.

Tout se passe dans la section Z-probe et doit ressembler à cela (ne pas faire de copier coller car cela ne correspond pas forcément à votre carte!!!)

 

## Z-probe

zprobe.enable                                                                           true # set to true to enable a zprobe

zprobe.probe_pin                                                                   0.26!^ # pin probe is attached to if NC remove the !

zprobe.slow_feedrate                                                           20 # mm/sec probe feed rate

zprobe.debounce_count                                                      1 # set if noisy

zprobe.fast_feedrate                                                             50 # move feedrate mm/sec

zprobe.probe_height                                                             15 # how much above bed to start probe

 

# associated with zprobe the leveling strategy to use

leveling-strategy.delta-calibration.enable                      true # basic delta calibration

leveling-strategy.delta-calibration.radius                   85 # the probe radius

leveling-strategy.delta-calibration.tolerance                 0.04

leveling-strategy.delta-calibration.initial_height          15 # height above bed to stop initial move

 

#grid

leveling-strategy.delta-grid.enable                                     true

leveling-strategy.delta-grid.radius                                  85

leveling-strategy.delta-grid.size                                       7

leveling-strategy.delta-grid.do_home                                true

leveling-strategy.delta-grid.probe_offsets                      0,0,0 # probe offsets x,y,z (Z should always be 0)

leveling-strategy.delta-grid.save                                          true

leveling-strategy.delta-grid.initial_height                         15

 

Les valeurs à ajuster à votre imprimante sont en gras.

 

Connexion et réglage de la sensibilité :

La carte precision piezo doit être alimentée par une tension comprise entre 3.3V et 5V maximum.

Je vous conseille de vérifier la tension de sortie sur le connecteur endstop utilisé pour l’autolevel (sur votre smoothie board).

Une fois la carte connectée, ajuster VR2 de manière à trouver le point où la led triggered s’éteint.

 

Cela fait, il faut vérifier la polarité des piezo : connecter les piezo l’un après l’autre (imprimante hors tension!). Lorsque l’on appuie sur le palpeur, la led triggered doit s’allumer (on peut maintenir la pression 2-3 secondes). Si celle-ci s’allume lors du relâchement, il faut inverser la polarité.

Répéter l’opération pour les 2 autres piezo.

Vous pouvez fixer les 3 palpeurs au plateau et le mettre en place dans les supports de piezo.

La sensibilité de l’auto level doit être ajustée à l’aide de VR1. VR2 est un réglage plus fin.

Lors des déplacements du noyau, il ne doit pas y avoir de faux triggered

Pour plus d’information sur les réglages, toutes les infos sont ===> ICI

 

Passons maintenant à la vérification du bon fonctionnement de l’autolevel. Pour cela nous allons utiliser repetier (ou équivalent) : Tapez M119 pour connaître l’état des endstop. Zprobe doit être à 0 sans contact sur le plateau. Appuyer sur le plateau et renvoyez un M119, Zprobe doit passer à 1

Si les valeurs sont inversées, modifiez :

zprobe.probe_pin 0.26!^ en zprobe.probe_pin 0.26^

La partie mécanique et électronique est terminée.

 

Mise en place de l’autolevel dans le trancheur :

Ouvrez votre logiciel de tranchage favori, il va falloir éditer le start G-code :

Pour une calibration complète de la machine, au début du start G-code insérer ces commandes :

 

G32 (calibration delta endstop et delta radius)

M500 (enregistrement dans le config override)

G31 (palpation de la grille et son activation)

M374 (enregistrement de la grille sur la carte sd)

G28 (homing)

G30 Z0 (définition du gamma_max = déplacement total en Z)

M306 Z0 (définition du Z0 machine)

M500 (enregistrement dans le config override)

 

On peut rajouter un G0 Xnnn Ynnn Znnn pour définir une position de parcage avant le début du print (attente fin préchauffage par exemple)

Une interrogation subsiste : ajouter un M374.1 avant le G32 pour effacer le fichier delta.grid ?

 

Pour une calibration de la hauteur de buse initiale seule :

 

G28

G30 Z0

M306 Z0

M500

 

On peut rajouter un G0 Xnnn Ynnn Znnn pour définir une position de parcage avant le début du print (attente fin préchauffage par exemple).

 

Utilisation :

J’ai créé 2 profils dans mon logiciel de tranchage :

 - Full autolevel cyclop utilisé à l’allumage de l’imprimante pour le premier print.

 - Basic autolevel cyclop utilisé pour les prints suivants.

La calibration de la machine est « tout automatique », ce qui facilite grandement les choses !

Ceci est une liste non exhaustive des procédures à mettre en place, à vous de jouer pour la corriger ou la faire évoluer.

Bons prints à tous !

 

support piezo.zip

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

La carte smoothie utilisée pour ce projet est une emotronic (emotion-tech). Le pin-out est directement adaptable sur la MDR.

Les supports de piezo se montent en lieu et place des entretoises fixant le plateau chauffant.

mise en garde sur l'emotronic : la carte ne dispose pas de régulateur sur les connecteurs endstop !!!

La tension de sortie (pour alimenter des endstop optiques ou une carte piezo) est donc de 24V. Il faut impérativement utiliser une carte qui régule cette tension à 5V.

 


.

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

  • 2 weeks later...

edit du post précédent :

Citation

mise en garde sur l'emotronic : la carte ne dispose pas de régulateur sur les connecteurs endstop !!!

La tension de sortie (pour alimenter des endstop optiques ou une carte piezo) est donc de 24V. Il faut impérativement utiliser une carte qui régule cette tension à 5V.

Citation

5. Les entrées de fin de course

7_endstops.png

Les entrées de fin de course vous permettront d’appliquer une référence absolue à vos mouvements.

Les 4 entrées de fin de course peuvent être associées à un axe dans le fichier de configuration.

Note: une soudure sélectionnera la tension attribuée aux connecteurs (3.3V et 5V)

Toutes les infos sur l'emotronic sont ici : https://www.reprap-france.com/article/lemotronic-quesaco

La connexion de la carte piezo doit donc être sur le connecteur endstop libre (pin 1.25) et non sur la sortie octocouplée (pin 0.26).

Merci au SAV d'emotion-tech pour leur disponibilité.

Lien vers le commentaire
Partager sur d’autres sites

  • 4 weeks later...

Salut,

Merci pour le sujet, c'est très intéressant ! Je suis assez tenté par la modif.

Par contre, le lien que tu donnes vers le fournisseur renvois vers la page pour acheter uniquement la carte piezo. Je suppose qu'en réalité il faut le kit complet avec les capteurs : https://www.precisionpiezo.co.uk/product-page/copy-of-precision-piezo-universal-z-probe-kit ? Quelle version de capteurs as-tu utilisé pour la MDR ? Diamètre 20 ou 27, percés ou non ?

Du coup pour l'emotronic, pas besoin de régulateur de tension il faut juste utiliser le pin 1.25 (et modifier par rapport au code que tu as fourni : remplacer le pin 0.26 par 1.25) ?

Par rapport au code que tu as donnés, c'est cette ligne " M306 Z0 (définition du Z0 machine)" qui permet de définir la hauteur initiale par rapport au plateau (remplacement de l'ancienne étape avec la feuille de papier pour réglage de la hauteur).

Merci d'avance pour ton retour.

Math

Lien vers le commentaire
Partager sur d’autres sites

@Math51 : dsl pour la réponse tardive. En effet, il ne faut pas oublier de prendre les piezo. Pour un auto level sous le bed, il te faut 3 piezo de 20mm. Les percés servent pour un montage sur la hotend.

Dans le fichier de conf :

zprobe.probe_pin                                                                   1.25!^ # pin probe is attached to if NC remove the !

Pense à vérifier l'état du capteur avec un M119 sous repetier ou équivalent

J'ai fait un peu évoluer le start G-code car à l'usage, la première couche était trop écrasée (flexion des piezo) :

Pour un "full auto level" :

M374.1
G32
M500
G31
M374
G28
G30 Z0

G1 Z0.05   # relève la tête de 0.05mm
M306 Z0   # définition du Z0 machine
M500

 

Pour le "basic auto level"

G28
G30 Z0
G1 Z0.05
M306 Z0
M500

Lien vers le commentaire
Partager sur d’autres sites

@Math51 : Sur une delta, l'origine de la machine (home) est en haut au niveau des 3 endstop. Le gamma max est le déplacement de l'origine jusqu'au plateau. Pour régler la hauteur de première couche, on demande un retour origine (G28) puis une descente pour aller chercher le plateau (G30Z0). Lorsque la buse touche celui-ci, le déplacement s'arrête (la carte piezo agit comme un endstop min). La buse est au Z0 machine (manip qui remplace le réglage avec la feuille de papier mais tout automatique). On l'indique à la carte smoothie avec un M306Z0 (définition du 0 machine). On sauvegarde dans le fichier config override avec un M500.

La hauteur de première couche est gérée par le trancheur, par rapport au Z0 machine et en fonction de l'épaisseur de couche d'impression (0.1, 0.2, 0.3mm ...).

Les piezo, lors du contact, fléchissent légèrement et la première couche était trop écrasée. Pour pallier cela, il m'a fallu relever le Z0 machine de 0.05mm : G1 Z0.05

Le start gcode :

G28
G30 Z0
G1 Z0.05
M306 Z0
M500

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...
Le 19/09/2018 at 22:34, cmatec a dit :

@Math51 :Le start gcode :

G28
G30 Z0
G1 Z0.05
M306 Z0
M500

Je suis moi aussi en plein ajout de piezo sur la machine, techniquement les piezo fonctionnent impeccablement, Le G31 et G32 se passent bien mais je suis incapable de lui faire prendre en compte ce Z0 machine.. pour me passer de la feuille de papier.

Quand je demande un G0 Z0, ma buse s'arrête à a chaque fois à 5mm du plateau.

Même après avoir effectué:

G30 Z0

M306 Z0

M500

(M206 renvoie bien X0.00 Y0.00 Z0.00 mais à la prochaine demande de G0 Z0 après un home. Paf de nouveau 5mm du plateau....)

 

Le seul moyen d'avoir un Z0 correcte est de faire G0 Z0 puis de descendre la tete avec un déplacement en Z 5mm jusqu'a toucher le plateau et là effectuer

 M306 Z0

M500

A ce moment M206 me renvoie X0.00 Y0.00 Z5.00

 

Puis si je fais 

G28
G30 Z0
G1 Z0.05
M306 Z0
M500

Alors M206 donne X0.00 Y0.00 Z4.95 et ainsi de suite Z4.90 ... si je répète l'opération.

 

Honnêtement je comprend pas pourquoi le déplacement en Z est pas pris en compte avec G30 Z0... mais uniquement avec un déplacement "a la main".

 

Ps: Modification effectuée dans config.txt

"gamma_max  206.500" Soit la valeur récupérée par un G30

D'origine la MDR est configurée avec un "gamma_max 180" ce qui fait que la buse ne s'arrêtait pas à 5mm du plateau mais à 25...

 

Une idée ??

Lien vers le commentaire
Partager sur d’autres sites

@cmatec J'ai essayé a tout hasard mais cela ne change rien.

 

Le problème me parait plutôt être quelque part dans ma configuration ou dans le fonctionnement de la commande M306.

 

Le zero machine est visiblement positionné à 5mm du plateau (je ne sais pas comment). Typiquement quand je demande un G0 Z0, c'est là que la buse va.

Quand je fais un G30 Z0, la buse part bien sonder le plateau et se stop dès qu'elle le touche et me renvoie bien la bonne hauteur du volume d'impression. (les piezo fonctionnent, pas d'interferences avec les moteurs)

 

Le problème est qu'à ce moment-là après avoir touché le plateau. Lors d'un M306 Z0, celui ci renvoie des coordonnées 0;0;0

Ces coordonnées sont stockée dans le fichier config-override en faisant un M500 ( dans la ligne M206 "Home Offset")

SAUF QUE... (c'est là que ca devient drôle) il stock des coordonnées 0;0;0... soit le zéro du début à 5mm du plateau.... pas un zéro modifié.

 

La seule astuce que j'ai trouvée pour le moment est de forcer la chose en prenant un zero plateau à la main :

-Demander un G0 Z0,( soit le point à 5mm) descendre la buse au contact, sauvegarder avec un M306 Z0 (cette fois il voit bien que je suis à 0;0;5)

Et là lors des prochains appels après palpation G30 Z0, avec un M306 Z0 suivi d'un M500 il sauvegarde bien ce point (0;0;5) comme le zéro dans config-override...

 

Là ou ça pose problème c'est que cette valeur, je ne peux pas l'enregistrer avec un M500 à chaque impression surtout si je lui demande entre temps de relever la buse avec un G1 Z0,05.

Dans ce cas ça fausse le fichier config-override en sauvegardant en 0;0;4.95. donc ça décale le zero de 0,05 à la prochaine impression. idem d'impression en impression.

 

 

Y'a un truc que j'ai probablement pas bien compris quelque part dans le fonctionnement...

 

Je me demande si ça vient pas de la version de Smoothie utilisé de base dans la MDR... (tu utilises quelle version ?)

Typiquement ici: https://github.com/Smoothieware/Smoothieware/blob/edge/upgrade-notes.md

Je vois dans "Other changes" : "

  • Fix M306 so it does not reset axis position and acts more like M206 which needs a home cycle to take effect."
  • Changed G30 Z0 to use G92 to set the global offset.

Mais honnêtement pour le coup, ça me dépasse un peu pour le moment...

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

Voilà le fichier config !

 

Dans cette version je suis revenu a 180 en gamma_max. (comme d'origine).

Comme tu peux le voir, dans ce config-override, je dois descendre (à la main, comme détaillé avant) la buse de 20mm...

Au final je me demande si ce qu'il se passe n'est pas le comportement normal de M306...

 

On donne une fois la hauteur du plateau à la main. puis M306 fait la correspondance.

Puis ensuite, il prends le points palpé avec G30 Z0 comme la hauteur définie dans le fichier Override. Offset M206... (en soit, ça, ça fonctionne, après avoir réglé une fois à la main...)

 

Ce que je ne comprends pas c'est comment tu arrives à relever la buse en sauvegardant avec M500 sans modifier le fichier conf à chaque impression... chez moi c'est impossible !

 

config.txt

config-override

Lien vers le commentaire
Partager sur d’autres sites

Bon... je ne m'explique toujours pas ce comportement mais...

Au final, après avoir défini à la main une fois pour toute la position du plateau, cela fonctionne bien !

voici mon Start-Gcode complet :

M190 S{material_bed_temperature}

G32
M500
G31
M374
M375
G28
G30 Z0
G1 Z0.1
M306 Z0
G28

M109 S{material_print_temperature}

G0 X70 Y40 Z1

G92 E0
G1 F200 E3
G92 E0

 

La seule limite est de ne pas pouvoir sauvegarder la position de la buse avec M500 faute de modifier le fichier Config-Override...

Mais finalement... le M306 Z0 seul suffit à garder en mémoire le point d'origine pour l'impression. Donc ce n'est pas grave.

Il faut simplement reset l'imprimante entre deux impressions.

Où alors, il faudrait que je trouve un moyen d'effacer ce point dans le End-Gcode automatiquement.

 

Dans tous les cas, c'est une excellente modification. La precision de la première couche n'a jamais été aussi bonne chez moi, les piezos sont redoutables d'efficacités !!

Et quel bonheur de ne plus avoir à calibrer et installer le capteur !

 

Ps: C'est un autre sujet mais actuellement pour test, j'imprime le support de tête cyclope/chimera de notre amie @Marlequeen... je prépare la prochaine grosse modification (cyclope!)...  chuuuuuut... 🙄😁

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

@FlyingPig : Une piste pour tes piezos : perso, j'utilise la sortie octo-couplée (pin 0.23) pour connecter la carte piezo (avec un régulateur 5V). Il pourrait être intéressant de prendre le 5V et le GND sur un connecteur endstop et le signal sur le pin 0.23. A tester ...

Lien vers le commentaire
Partager sur d’autres sites

@cmatec Oh ! Bonne idée !! Le problème est peut-être là. Je suis pour ma part sur le pin 1.25 je vais certainement essayer ton idée !

En tout cas, sans sauvegarder dans le Start-Gcode, en redémarrant l'imprimante entre chaque impression, cela fonctionne impeccablement sans aucun calibrage maintenant.

Elle sait une fois pour toute où est le plateau et fait la correspondance au moment du G30 Z0.

La procédure la plus simple est de faire une fois depuis le LCD le réglage de la feuille de papier. Après c'est tout automatique depuis le Gcode.

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

@cmatecJe ne comprends pas, je viens d'essayer, j'ai exactement le même comportement qu'avant sur le pin 0.23 !

En tous cas, ça confirme la faisabilité de ce branchement.

Mais je ne comprends pas pourquoi toi et moi, nous n'avons pas le même comportement de la machine.. 

A savoir : peu importe la hauteur Z, chez moi, impossible d'actualiser le fichier config-Override avec la bonne valeure. M306 fait une correspondance entre la position de la buse et le réglage d'offset du fichier Override résultat, si je relève la buse avec G1 Z0,05 et sauvegarde, je modifie le fichier Override et décale l'impression à chaque fois.

Ps : la valeur de Z en G30 Z0 est au pif, j'ai tapoté le plateau pour vérifier.

Sequence 1.png

Sequence 2.png

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

  • 1 year later...

Quelques modifications afin de palper la grille avant chaque impression :

1-dans le config passer la ligne

leveling-strategy.delta-grid.save                                          false

2- pour le start g-code :

G31
M374
M500
G28
G30 Z0
M306 Z0
M500

...

  • J'aime 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...