Aller au contenu

GO Print

Comment mettre la tête d'impression au centre du plateau en position home


Invité

Messages recommandés

Bonjour à toutes et tous,

Je commence à manipuler marlin mais le centrage de tête d'impression au centre du plateau en position home, j'ai du mal et vue que ça fait quelque jours que je galère, je me dis :
Mieux un qui sait que dix qui cherche, car je me perds avec mon Ami Google.
J'avais aussi un problème de
mise à l'origine un poil brutale que j'ai corrigé grâce à la suggestion de @fran6p
 

Citation

// Homing speeds (mm/min)
#define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (4*60) }


La position Home actuelle :
https://www.pleinsudtv.fr/_Asso/1_TransfertsFichiers Interne-PSTV/CTc I3 Pro B.mp4
J'ai bien décommandé la directive #define Z_SAFE_HOMING pour le Bltouch.

Je joint les fichiers Marlin Configuration.h et Configuration_adv.h ce dernier fichier n'a pas été modifié, je ne sais pas d'ailleurs quelle est sa fonction.
J'ai commenté chaque ligne modifiée par //---------> ce qui fait qu'en faisant CTRL F (recherche) et en le collant dans la fenêtre de recherche et en faisant suivant ou précédent on voit ces lignes modifiées.

Merci pour votre aide.

Configuration.h Configuration_adv.h

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

Le sujet suivant pourrait peut-être t'aider (section 3: capteur à l'avant gauche ( -34 , -11 ) :

 

Dans ton configuration.h, tu devrais déjà réduire la vitesse de déplacement de la tête lors des palpages :

Citation

// X and Y axis travel speed (mm/m) between probes
#define XY_PROBE_SPEED 6000  <= ça fait 100mm/s, pour ta structure c'est peut-être un peu encore élevé (60 mm/s donc 3600 (mm/min) serait mieux)

Ton Zsafe_homing est bien déclaré. Juste un conseil, plutôt que mettre des valeurs en «dur», plutôt utiliser les calculs Marlin, par exemple :

Citation

// The size of the print bed
#define X_BED_SIZE 200     //---------> Largeur du lit
#define Y_BED_SIZE 200     //---------> Profondeur du lit

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -13
#define Y_MIN_POS -13
#define Z_MIN_POS 0
#define X_MAX_POS 200      //--------->
#define Y_MAX_POS 200      //--------->
#define Z_MAX_POS 220      //--------->

préférer :

// The size of the print bed
#define X_BED_SIZE 200     //---------> Largeur du lit
#define Y_BED_SIZE 200     //---------> Profondeur du lit

// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -13
#define Y_MIN_POS -13
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 220      //--------->

Donc la section «//set the boundaries …» pourrait utiliser une formule type :

Citation
#define LEFT_PROBE_BED_POSITION (MIN_PROBE_EDGE + X_MIN_POS)
#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE  + X_PROBE_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE))
#define FRONT_PROBE_BED_POSITION (MIN_PROBE_EDGE + Y_MIN_POS)
#define BACK_PROBE_BED_POSITION (Y_BED_SIZE + Y_PROBE_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE)

 

Ce qui donnerait après «calcul dans Marlin» avec tes valeurs actuelles :

LEFT_…_POSITION (10 + -13)  => -3

RIGHT_…_POSITION (200 + -34 - 10) => 156

FRONT_…_POSITION (10 + -13) => -3

BACK_…_POSITION (200 + -11 - 10) => 179

Il serait peut-être judicieux d'augmenter la valeur de MIN_PROBE_EDGE à 13 au lieu de 10 pour que le pointeau du BLT soit vraiment sur le plateau 🤔

Pour rappel, tes valeurs étaient de :

Citation

#define LEFT_PROBE_BED_POSITION 20           //---------> Limites pour la sonde décalée par rapport au lit
  #define RIGHT_PROBE_BED_POSITION 160         //---------> Limites pour la sonde
  #define FRONT_PROBE_BED_POSITION 20          //---------> Limites pour la sonde
  #define BACK_PROBE_BED_POSITION 180          //---------> Limites pour la sonde

Ce qui est proche de tes paramètres sauf pour LEFT et FRONT.

Une dernière chose à savoir: avec Marlin quand on utilise le Z_SAFE_HOMING, ce n'est pas la buse qui se place au centre du plateau mais le pointeau du Bltouch 😉

🙂

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

👍

Lien vers le commentaire
Partager sur d’autres sites

Finalement je me suis précipité, j'avais trop hâte 😝
Bref,
J'ai corrigé

#define XY_PROBE_SPEED 6000 à 3600
ainsi que
la valeur de MIN_PROBE_EDGE à 13 au lieu de 10


Par contre pour «// set the boundaries …»
Si je mets les valeurs -3, 156, -3 et 179 j'obtiens

=> assertion failed: LEFT_PROBE_BED_POSITION is outside the probe region.
Je ne comprends pas d'ailleurs tes calculs.

Pour aider, j'ai relevé avec la commande M114 la position de mon ensemble tête et BLTouch à la positions que je souhaite
et j'obtiens X:69.00 Y:86.00 Z:10.00 E:0.00

X:134.00 Y:111.00 Z:10.00 E:0.00 Valeur home actuel

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

Il y a 21 heures, Alain06 a dit :

Si je mets les valeurs -3, 156, -3 et 179 j'obtiens

Je ne mets pas de valeurs en «dur» mais utilise la formule par exemple «X_BED_SIZE + X_PROBE_OFFSET_FROM_EXTRUDER - MIN_PROBE_EDGE» ce qui donnera une fois converti par Marlin lors de la compilation le nombre (200 +(-31) - 13)= 156 (après modification de MIN_PROBE_EDGE à 13).

Le milieu de ton plateau (200x200) est en (100,100) quand la buse y est positionnée. Quand c'est le Bltouch qui est au centre (100,100), la buse, elle est en (131,111).

Ce que je ne comprends pas c'est d'où viennent tes valeurs (69,86) relevées avec ton M114 ? A quoi correspondent-elles?

🙂

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

Hello @fran6p

Il y a 1 heure, fran6p a dit :

Ce que je ne comprends pas c'est d'où viennent tes valeurs (69,86) relevées avec ton M114 ? A quoi correspondent-elles?

Suivant tes recommandations, je m'attelle à découvrir sur le site de G-code/fr les différentes commandes et j'ai découvert ce M114 qui donne la position de la tête après avoir exécuté un home et aussi après l'avoir déplacé, mais je ne sais pas comment l'exploiter. 😛

M114.JPG.2576bcc6fe0491879abcc88707780925.JPG




 

Lien vers le commentaire
Partager sur d’autres sites

Donc quand tu fais la mise à l'origine (home sweet home), quelles coordonnées sont retournées après un M114 (G28 puis M114) ?

Pour les commandes Gcode, j'utilise plus ce site (plus adapté à Marlin) mais uniquement dans la langue de Shakespeare 😞, celui de Reprap concerne en plus de Marlin d'autres firmwares mais existe en version dans la langue de Molière 🙂.

🙂

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

Impeccable, le Bltouch est bien au centre, la buse est décalée de 34 et 11 mm comme les valeurs déclarées dans NOZZLE…OFFSET donc tout est bon (comme dans le cochon)

🙂

Lien vers le commentaire
Partager sur d’autres sites

Forum sérieux, certes, mais le droit à s'amuser et dérider l'atmosphère est un droit inaliénable dont il faut abuser (dans la limite de la bienséance évidemment).

🙂

Lien vers le commentaire
Partager sur d’autres sites

Bon, ceci dit,

Je viens de faire au pif (et j'en ai un gros... de pif)

G28
G1 X75 Y200 Z10 F5000

et c'est exactement à la position que je souhaiterai que la tête soit pour home.
Que faut-il corriger dans Marlin.

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

Je ne comprends pas vraiment pourquoi tu veux faire ça 🤔, pour quelle raison (si ce n'est pas indiscret) ?

La mise à l'origine (home) sert de point de référence pour le reste de l'impression. Avec ton Y en 200 tu ne pourrais plus imprimer sur cet axe et ton X à 75 ne te laisserait que 125 mm d'impression donc tu aurais l'équivalent d'un plateau de 125x0 😞

Dans la liste des Gcode permettant de «jouer» sur l'origine, existent G92, M206 et M428 (j'utilise ce dernier sur ma 3DPrintMill/CR30 pour éviter que ma buse reste en contact de la courroie-plateau lors de la mise à l'origine) qui a des contraintes supplémentaires (le décalage doit être de moins de 20mm par rapport au détecteur de fin de course).

Le M428 est facile à utiliser: après le G28, tu déplaces la tête comme dans ton exemple via G1 X75 Y200 Z10 F5000 via l'écran dans le menu Prepare/Set Home offset, l'imprimante considérera que c'est cette position qui est le (0,0,0) et tu enregistres en EEPROM via M500 ou via l'écran Store settings (les différents éléments des menus sont disponibles ici ). Un simple M206 retournera les décalages de l'espace de travail enregistrés (exemple pour ma CR30 : M206 X0.00 Y1.40 Z0.00 extrait du M503 ci-dessous) :

Citation

 G21    ; Units in mm (mm)
 M149 C ; Units in Celsius

Filament settings: Disabled
 M200 S0 D1.75
Steps per unit:
M92 X80.00 Y80.00 Z1164.98 E144.90
Maximum feedrates (units/s):
 M203 X300.00 Y300.00 Z10.00 E75.00
Maximum Acceleration (units/s2):
 M201 X300.00 Y300.00 Z100.00 E1000.00
Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel>
 M204 P300.00 R300.00 T300.00
Advanced: B<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate> X<max_x_jerk> Y<max_y_jerk> Z<max_z_jerk> E<max_e_jerk>
 M205 B20000.00 S0.00 T0.00 X6.00 Y6.00 Z0.40 E5.00
Home offset:
 M206 X0.00 Y1.40 Z0.00

Material heatup parameters:
 M145 S0 H185 B55 F0
 M145 S1 H240 B70 F0
PID settings:
 M301 P24.19 I2.14 D68.33
 M304 P49.06 I8.87 D180.88
Power-Loss Recovery:
 M413 S1
Filament load/unload lengths:
 M603 L0.00 U100.00
Filament runout sensor:
 M412 S1
UI Language:
 M414 S2

Sinon avec G92 :

G28

G1 X75 Y200 Z10 F5000

G92 X0 Y0 Z0

C'est un Gcode (G92) que je n'ai jamais utilisé donc sous toute réserve 🤞

🙂

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

Bonjour @fran6p
Je te remercie pour ta patience dont je vais encore devoir abuser. ☺️
Voilà, après avoir exécuté la commande G28 avec un bruit pas très mécanique en fin de cycle, je fais la commande G29 pour level bed et là horreur mécanique. 😱

Bref, j'ai fait plusieurs modifications de Configuration.h, je serais plus méthodique dorénavant, et maintenant je suis perdu. 🤪

https://www.pleinsudtv.fr/_Asso/1_TransfertsFichiers Interne-PSTV/CTc I3 Pro B-2.mp4
Je me rends compte que la vidéo est lourde, donc longue à charger. (Patience, ça vaut l'attente)

Configuration.h

Il y a 2 heures, fran6p a dit :

pour quelle raison (si ce n'est pas indiscret) ?

Je reconnais que c'était farfelu de ma part, c'était un prétexte pour manipuler Configuration.h, pour me familiariser...

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

Tes contacteurs de fin de course, ils sont placés où sur ton imprimante ? Habituellement, celui du X est à gauche et celui du Y à l'arrière. De leur position dépendra la déclaration suivante :

Citation

// @section homing

// Specify here all the endstop connectors that are connected to any endstop or probe.
// Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
#define USE_XMIN_PLUG           //---------> Ligne dé-commentée pour être activée Le endstop est à gauche de l'axe X
//#define USE_YMIN_PLUG          
#define USE_ZMIN_PLUG           //---------> Ligne dé-commentée pour être activée Le endstop est en bas de l'axe Z (endstop matériel ou Bltouch)
//#define USE_XMAX_PLUG                                                                                               
#define USE_YMAX_PLUG           //---------> Ligne dé-commentée pour être activée  Le endstop est à l'avant de l'axe Y ??? (c'est sûr ?)
//#define USE_ZMAX_PLUG

 

Les bruits sont produits par le moteur qui «broute» car il ne peut pas aller aux positions demandées.

Il me semble que la section où tu déclares les détecteurs de fin de course (endstops) est incorrecte mais je n'en suis pas certain (ça pourrait être en partie la cause des moteurs qui broutent 🤔) :

Citation

/**
 * Software Endstops
 *
 * - Prevent moves outside the set machine bounds.
 * - Individual axes can be disabled, if desired.
 * - X and Y only apply to Cartesian robots.
 * - Use 'M211' to set software endstops on/off or report current state
 */

// Min software endstops constrain movement within minimum coordinate bounds
//#define MIN_SOFTWARE_ENDSTOPS                                               //---------> Ligne a activer/désactiver pour le réglade Z  (NON surtout pas ! si tu veux le faire uniquement pour Z c'est la ligne indiquée avec <<< ici >>> qu'il faut commenter et décommenter cette ligne MIN_SOFTWARE_ENDTOPS
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
  #define MIN_SOFTWARE_ENDSTOP_X
  #define MIN_SOFTWARE_ENDSTOP_Y
  #define MIN_SOFTWARE_ENDSTOP_Z     <<< ici >>>
#endif

// Max software endstops constrain movement within maximum coordinate bounds
#define MAX_SOFTWARE_ENDSTOPS
#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
  #define MAX_SOFTWARE_ENDSTOP_X
  #define MAX_SOFTWARE_ENDSTOP_Y
  #define MAX_SOFTWARE_ENDSTOP_Z
#endif

#if ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS)
  //#define SOFT_ENDSTOPS_MENU_ITEM  // Enable/Disable software endstops from the LCD
#endif

 

Je ne comprends toujours pas pourquoi quand tu fais le G28 avec l'option Z_SAFE_HOME, le Bltouch n'est pas positionné au centre du plateau: il devrait être en (110,110) avec ton plateau déclaré de 220x220. La buse serait alors en (144,121).

Tu as tellement réduit la vitesse de palpage en Z que ça va prendre des siècles à réaliser le maillage du plateau. Par défaut la vitesse de ton Z est à 4mm/s en divisant par 8, tu descends trèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèès lentement : 0,5mm/s 😉:

#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 8)   //---------> Vitesse de palpage rallentie de 2 à 8  le temps de parcours était divisé par deux, il est maintenant divisé par 8

🙂

Lien vers le commentaire
Partager sur d’autres sites

Effectivement le endstop Y est bien à l'arrière, mais... si je dé-commente, pour l'activer
#define USE_YMIN_PLUG bien sur j'ai re-commenté //#define USE_YMAX_PLUG

Alors j'ai des erreurs
Peut être aussi dues à une mauvaise mémorisation de commandes dans l'EEprom. Bref...

                from J:\1-MARLIN\1Marlin\blinkm.cpp:27:
SanityCheck.h:51:4: error: #error "You are using an old Configuration_adv.h file, update it before building Marlin."
   #error "You are using an old Configuration_adv.h file, update it before building Marlin."
    ^
SanityCheck.h:1233:6: error: #error "Enable USE_YMAX_PLUG when homing Y to MAX."
     #error "Enable USE_YMAX_PLUG when homing Y to MAX."
      ^
exit status 1
#endif without #if

J'ai remis à 2 la vitesse.

#define Z_PROBE_SPEED_SLOW
Le 15/10/2021 at 18:09, fran6p a dit :

// Min software endstops constrain movement within minimum coordinate bounds
//#define MIN_SOFTWARE_ENDSTOPS                                               //---------> Ligne a activer/désactiver pour le réglade Z  (NON surtout pas ! si tu veux le faire uniquement pour Z c'est la ligne indiquée avec <<< ici >>> qu'il faut commenter et décommenter cette ligne MIN_SOFTWARE_ENDTOPS

Tu as entièrement raison et félicitation pour avoir décortiqué et débusqué cette information.
En fait j'ai vu dans un tuto qu'il fallait activer/ré-activer cette ligne pour régler la position basse du Z.

Mais depuis que j'utilise Pronterface les commandes M211 S0 et M211 S1 sont plus pertinentes. C'est en effet dangereux de modifier le Firmware (J'en sais quelque chose), il vaut mieux des modifications provisoires.

Navré @fran6p avec tous tes bons conseils et mes égarements Googelisé, je ne sais plus où j'habite.
De plus, j'ai aussi du mal à mettre en application tes suggestions de correction.

Si ce n'est abuser de tes services, je te propose de te transmettre mes fichiers de configuration, que tu les corriges, mes les renvoies et j'aurais à nouveau de bonne bases.

 

1Marlin.rar

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...