Aller au contenu

GO Print

MKS ROBIN Nano V3.1 Marlin problème G28


Aller à la solution Résolu par pommeverte,

Messages recommandés

Bonjour,

Après avoir cramé un driver sur ma CM de ma U20, je me suis décidé à changer le matos, j'ai refait toutes les connexions et j'ai compilé le firmware depuis les sources suivantes : https://github.com/makerbase-mks/Mks-Robin-Nano-Marlin2.0-Firmware , certes c'est la version 2.0.92 (pas la dernière) mais ça me simplifie l'approche des choses dans ce premier temps.

Pour le moment tout semble ok, sauf le déplacement des axes ou plutôt la gestion des fins d'axe !

En effet, quand je fais un G28, il part s'éclater et force sur les axes, il part notamment forcer sur l'axe X sans que je ne comprenne.

Video : https://files.fm/u/y8k3yvggb

Où ai je pu merder quelque chose ?

Par avance, merci

Julien

Lien vers le commentaire
Partager sur d’autres sites

Le 18/03/2023 at 21:05, pommeverte a dit :

Salut @kilicool,

et pourquoi donc? ça fonctionne très bien avec la valeur par défaut 🤔...

sûrement ces lignes du fichier configuration.h:

  //#define Z_SAFE_HOMING_Y_POINT Y_CENTER// Y point for Z homing
  #define Z_SAFE_HOMING_Y_POINT PROBING_MARGIN

Si tu veux un déplacement au milieu de Y, il te suffit d'inverser les commentaires (décommenter la 1ère ligne et commenter la 2nde)

Salut, 

J'ai du tout arrêter ...

Après avoir cramé un driver sur ma CM de ma U20, je me suis décidé à changer le matos (mks robin nano v3.1 + tft35 + drivers 2209), j'ai refait toutes les connexions et j'ai compilé le firmware depuis les sources suivantes : https://github.com/makerbase-mks/Mks-Robin-Nano-Marlin2.0-Firmware , certes c'est la version 2.0.92 (pas la dernière) mais ça me simplifie l'approche des choses dans ce premier temps.

Pour le moment tout semble ok, sauf le déplacement des axes ou plutôt la gestion des fins d'axe !

En effet, quand je fais un G28, il part s'éclater et force sur les axes, il part notamment forcer sur l'axe X sans que je ne comprenne.

Video : https://files.fm/u/y8k3yvggb

Où ai je pu merder quelque chose ?

Par avance, merci

Julien

Configuration.h Configuration_adv.h

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

il y a 27 minutes, pommeverte a dit :

Salut,

Ton moteur X tourne à l'envers 😱. Dans le fichier configuration.h, il suffit de modifier la ligne 1324 pour l'inverser:

#define INVERT_X_DIR false

devient

#define INVERT_X_DIR true

 

Salut j'ai testé c'est encore pire, c'était donc dans le bon sens.

 

J'ai testé ceci (a base de ma config marlin sur ma U20 quand c'était la CM d'origine) :

/*#define Z_SAFE_HOMING

#if ENABLED(Z_SAFE_HOMING)
  #define Z_SAFE_HOMING_X_POINT X_CENTER  // X point for Z homing
  #define Z_SAFE_HOMING_Y_POINT Y_CENTER  // Y point for Z homing
#endif*/

#define Z_SAFE_HOMING

#if ENABLED(Z_SAFE_HOMING)
  #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2)  // X point for Z homing
  #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2)    // Y point for Z homing
#endif

En commentaire de la première video.

Maintenant voilà le résultat avec cette modif https://files.fm/u/enf7gs9jk

 

EDIT Modifications complémentaires, j'arrive à ce que j'attends, mais là fin n'est pas bonne (le début c'est comme avant !)

Vidéo : https://files.fm/u/eu5fyvwea

 

Modifications effectuées :

#define X_MIN_ENDSTOP_INVERTING true  // Set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false  // Set to true to invert the logic of the endstop.
#define I_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define J_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define K_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING true  // Set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING true  // Set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING true  // Set to true to invert the logic of the endstop.
#define I_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define J_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define K_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false  // Set to true to invert the logic of the probe.

les 3 lignes X Y Z max endstop inverting false => true

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

il y a 2 minutes, pommeverte a dit :

Tu devrais nous fournir tes fichiers configuration.h et configuration_adv.h, ce sera plus simple.

Salut je les ai fourni de l'autre coté.


Voilà où j'en suis https://files.fm/u/6vp4446b7

 

Merci pr votre aide !!

Configuration.h Configuration_adv.h pins_MKS_ROBIN_NANO.h pins_MKS_ROBIN_NANO_common.h pins_MKS_ROBIN_NANO_V2.h G28.TXT

Lien vers le commentaire
Partager sur d’autres sites

J'ai l'impression que les pas/mm des moteurs X et Y sont 2x trop importants (vitesse et déplacement lors de la prise d'origine trop grands), or les valeurs du firmware sont correctes. Donc:

  1. as-tu pensé à initialiser l'eeprom juste après le flashage?
  2. as-tu positionné les cavaliers des pilotes comme ceci:

UARTTMC.png.a8523e77c548c7c749e36872158dc9df.png

 

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

à l’instant, pommeverte a dit :

J'ai l'impression que les pas/mm des moteurs X et Y sont 2x trop important (vitesse et déplacement lors de la prise d'origine trop grands), or les valeurs du firmware sont correctes. Donc:

  1. as-tu pensé à initialiser l'eeprom juste après le flashage?
  2. as-tu positionné les cavaliers des pilotes comme ceci:

UARTTMC.png.a8523e77c548c7c749e36872158dc9df.png

 

Eeprom : OUI

Step : non réglé je le fais souvent après le premier print d'un cube je mesure et j'adapte. Sans print je ne sais pas le faire

Cavalier : non c'est pour activer le UART ? la position est bonne car j'ai un V3.1 

Merci

Lien vers le commentaire
Partager sur d’autres sites

il y a 4 minutes, kilicool a dit :

Cavalier : non c'est pour activer le UART ?

oui

Si tu demandes un déplacement de 10mm vers la droite, juste après avoir mis l'imprimante sous tension et avant une prise d'origine, de quelle distance s'est-elle déplacée? 10mm ou 20mm?

Lien vers le commentaire
Partager sur d’autres sites

il y a 6 minutes, pommeverte a dit :

oui

Si tu demandes un déplacement de 10mm vers la droite, juste après avoir mis l'imprimante sous tension et avant une prise d'origine, de quelle distance s'est-elle déplacée? 10mm ou 20mm?

En effet avec les cavaliers sur les 4 drivers, j'ai validé par un M122 c'est OK.

Le G28 est fonctionnel. mais malheureusement pas au centre centre avec le decallage du fang. Qu'ai je raté dans la configuration pour que le décalage que j'ai mis dans le 

#define NOZZLE_TO_PROBE_OFFSET { -25.4, -30.3, 0 }

soit aussi pris en compte dans le G28 ?

Je ne règle donc pas la tension des drivers ?

Je peux lancer mon leveling et un premier cube pr ajuster les steps ?

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

D'après la vidéo, ces valeurs de décalage du BLtouch par rapport à la buse semblent bonnes. Après, c'est tout à fait normal que la buse ne soit pas au centre du plateau lors de l'origine en Z. C'est la touche du BLtouch qui doit être au centre du plateau.

il y a 8 minutes, kilicool a dit :

Je ne règle donc pas la tension des drivers ?

seulement si les moteurs sont trop chauds lors de l'impression (réduction) ou si tu as des décalages de couche (augmentation). Les valeurs actuelles te permettent d'avoir ~30% de marge, ce qui est bien.

il y a 8 minutes, kilicool a dit :

Je peux lancer mon leveling et un premier cube pr ajuster les steps ?

oui 

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

il y a 1 minute, pommeverte a dit :

D'après la vidéo, ces valeurs de décalage du BLtouch par rapport à la buse semblent bonnes. Après, c'est tout à fait normal que la buse ne soit pas au centre du plateau lors de l'origine en Z. C'est la touche du BLtouch qui doit être au centre du plateau.

seulement si les moteurs sont trop chauds lors de l'impression (réduction) ou si tu as des décalages de couche (augmentation). Les valeurs actuelles te permettent d'avoir ~30% de marge, ce qui est bien.

oui 

Justement ce n'est pas la tige du bltouch qui est au milieu mais les axes..il tient pas compte du décalage. Quai je rate ?

Lien vers le commentaire
Partager sur d’autres sites

il y a 16 minutes, pommeverte a dit :

A la fin de l'origine en Z, est-ce que tu peux mesurer la position de la buse par rapport au bord gauche et à l'avant du plateau et nous donner les valeurs?

Il est clairement au milieu, pas de doute mais il prend pas en compte mes valeurs de décalage bltouch pourtant indiquée : #define NOZZLE_TO_PROBE_OFFSET { -25.4, -30.3, 0 }

il y a 16 minutes, pommeverte a dit :

A la fin de l'origine en Z, est-ce que tu peux mesurer la position de la buse par rapport au bord gauche et à l'avant du plateau et nous donner les valeurs?

Voila deux photos qui montre le g28

 

PXL_20230328_193631922.jpg

PXL_20230328_193626145.jpg

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

  • Solution

En préparant tes fichiers pour la dernière version stable de Marlin V2.1.2, j'ai vu qu'il y avait:

  • 2 extrudeurs de paramétrés 🤨.
  • bizarrement, le détecteur de fin de course Y est câblé sur Ymax alors qu'il devrait être sur Ymin. Je pense que l'axe Y sera inversé (pièce imprimée en miroir) dans le cas actuel. Il faudrait donc le déplacer sur Ymin, sachant que j'ai fait les modifs dans le firmware.

J'ai aussi activé:

  • l'input shaping qu'il faudra inhiber en ajoutant un M593 F0 dans le Gcode de démarrage, jusqu'à ce que tu fasses le réglage, si tu le souhaites
  • le linear advance mais sa valeur est à 0. Ce sera à régler ultérieurement si tu le souhaites

par contre, je n'ai pas activé le PID pour le lit chauffant

Voici donc le firmware et les fichiers de config pour Marlin V2.1.2, en espérant que je n'ai pas fait de boulettes 🥴 et que tes soucis seront solutionnés:

 

Robin_nano_v3.bin platformio.ini Configuration_adv.h Configuration.h

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

il y a une heure, pommeverte a dit :

En préparant tes fichiers pour la dernière version stable de Marlin V2.1.2, j'ai vu qu'il y avait:

  • 2 extrudeurs de paramétrés 🤨.
  • bizarrement, le détecteur de fin de course Y est câblé sur Ymax alors qu'il devrait être sur Ymin. Je pense que l'axe Y sera inversé (pièce imprimée en miroir) dans le cas actuel. Il faudrait donc le déplacer sur Ymin, sachant que j'ai fait les modifs dans le firmware.

J'ai aussi activé:

  • l'input shaping qu'il faudra inhiber en ajoutant un M593 F0 dans le Gcode de démarrage, jusqu'à ce que tu fasses le réglage, si tu le souhaites
  • le linear advance mais sa valeur est à 0. Ce sera à régler ultérieurement si tu le souhaites

par contre, je n'ai pas activé le PID pour le lit chauffant

Voici donc le firmware et les fichiers de config pour Marlin V2.1.2, en espérant que je n'ai pas fait de boulettes 🥴 et que tes soucis seront solutionnés:

 

Robin_nano_v3.bin 342.8 Ko · 0 downloads platformio.ini 10.2 Ko · 0 downloads Configuration_adv.h 173.28 Ko · 0 downloads Configuration.h 124.02 Ko · 0 downloads

Merci je vais regarder

Pourquoi tu n'as pas activé le lit chauffant ? On fait comment justement car quand j'avais testé avec la V 2.1.2 comme toi j'avais pas la possibilité de régler le lit !

Qu'est ce que l'input shaping et le linear advance ?

 

EDIT : je te confirme l'axe Y est pas bon. Comment ça se fait je vois pas de paramétrage incorrect 😞 Je vais modifier ça comme ça

#define INVERT_Y_DIR true

mais je comprends pas car dans ma version il est sur false.

 

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

Salut,

Il y a 13 heures, kilicool a dit :

Pourquoi tu n'as pas activé le lit chauffant ?

Je ne voulais pas changer tes habitudes, d'autant que ce n'est pas crucial. Pour activer le PID du lit, il suffit de décommenter cette ligne du fichier configuration.h:
//#define PIDTEMPBED

pour le réglage du PID, tu peux suivre ces instructions

Il y a 13 heures, kilicool a dit :

Qu'est ce que l'input shaping et le linear advance ?

 

  • l'input shaping: tout est décrit dans cette vidéo en anglais et ce tuto en francais. Il faudra penser à régler l'accélération et le Junction Deviation avant (voir cette méthode)
  • le linear advance: tout est expliqué dans cette vidéo
Il y a 13 heures, kilicool a dit :

je te confirme l'axe Y est pas bon. Comment ça se fait je vois pas de paramétrage incorrect 😞 Je vais modifier ça comme ça

#define INVERT_Y_DIR true

mais je comprends pas car dans ma version il est sur false.

En effet, j'aurais dû y penser 😅. C'est normal, tu faisais l'origine en Ymin alors que tu avais paramétré que c'était du Ymax. L'axe Y était donc inversé.

Il y a 10 heures, kilicool a dit :

J'ai du corriger / modifier quelques trucs dont je te parlerais

merci, ce sera intéressant

Lien vers le commentaire
Partager sur d’autres sites

Salut salut !

Me revoilà 😉

Merci pour les précisons et les liens que tu m'as envoyé, ça fait parti de l'amélioration je regarderais ça plus tard.

- Concernant l'inversion de l'axe Y que j'ai du faire, je n'ai pas compris pourquoi avec ta config c'était obligatoire alors qu'avec la mienne non. Qu'elles sont les différences qui imposent cela ?

- Qu'as tu mis en plus (ou en moins) comme config pour que le G28 soit bien au centre du capteur bltouch ?

Concernant les modifications :

- Dans config_adv j'ai du commenter cette ligne car à chaque démarrage d'impression il demandait à reboot la machine, une fois reboot je reprends, ça demande de reboot etc à l'infini

  //#define POWER_LOSS_RECOVERY

- Toujours dans config_adv comme j'ai pas réussi à lire un fichier STL depuis ma clé usb, pire en la mettant ça faisait reboot, j'ai tenté de décommenter la ligne suivante :

#define USB_FLASH_DRIVE_SUPPORT

Malheureusement ça n'a pas amélioré le système. Du coup j'imprime depuis une carte micro sd. As tu une idée de la root cause ?

- Dans config, j'ai du passer à true les 3 lignes suivantes :

#define X_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.

- Dans config, la ligne suivante était commenté, je l'ai décommenté :

#define TOUCH_SCREEN

Julien

Lien vers le commentaire
Partager sur d’autres sites

Il y a 3 heures, kilicool a dit :

Concernant l'inversion de l'axe Y que j'ai du faire, je n'ai pas compris pourquoi avec ta config c'était obligatoire alors qu'avec la mienne non. Qu'elles sont les différences qui imposent cela ?

Déjà, as-tu déplacé le détecteur de fin de course Y sur le connecteur Ymin de la carte-mère?

Il y a 3 heures, kilicool a dit :

Qu'as tu mis en plus (ou en moins) comme config pour que le G28 soit bien au centre du capteur bltouch ?

Mise à part le fait que tu avais déclaré 2 extrudeurs, à priori rien. 🤔

Il y a 3 heures, kilicool a dit :

Dans config_adv j'ai du commenter cette ligne car à chaque démarrage d'impression il demandait à reboot la machine, une fois reboot je reprends, ça demande de reboot etc à l'infini

  //#define POWER_LOSS_RECOVERY

Bizarre, je ne comprends pas pourquoi l'imprimante redémarre.

Il y a 3 heures, kilicool a dit :

Toujours dans config_adv comme j'ai pas réussi à lire un fichier STL depuis ma clé usb, pire en la mettant ça faisait reboot, j'ai tenté de décommenter la ligne suivante :

#define USB_FLASH_DRIVE_SUPPORT

C'est un début, mais il faut également modifier l'environement dans le fichier platformio.ini, à la ligne 16:
default_envs = mks_robin_nano_v3_1
devient
default_envs = mks_robin_nano_v3_usb_flash_drive_msc # ou mks_robin_nano_v3_1_usb_flash_drive

Il y a 3 heures, kilicool a dit :

Dans config, j'ai du passer à true les 3 lignes suivantes :

#define X_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop.

et pourquoi donc? normalement, tu n'es pas censé avoir de détecteur branché sur ces connecteurs

Il y a 3 heures, kilicool a dit :

Dans config, la ligne suivante était commenté, je l'ai décommenté :

#define TOUCH_SCREEN

En effet, je suis passé à coté 🥴

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

Citation

Déjà, as-tu déplacé le détecteur de fin de course Y sur le connecteur Ymin de la carte-mère?

Bien sur, je n'ai qu'un connecteur sur la CM de fin de course en Y nommé "Y"

Citation

Bizarre, je ne comprends pas pourquoi l'imprimante redémarre.

As tu eu une idée depuis ?

Citation

C'est un début, mais il faut également modifier l'environement dans le fichier platformio.ini, à la ligne 16:
default_envs = mks_robin_nano_v3_1
devient
default_envs = mks_robin_nano_v3_usb_flash_drive_msc # ou mks_robin_nano_v3_1_usb_flash_drive

Exact je l'avais fait dans ma version en plus ... oublie 😞

Citation

et pourquoi donc? normalement, tu n'es pas censé avoir de détecteur branché sur ces connecteurs

Possible, j'ai repris ce que j'avais fait avant sans trop comprendre 😞

 

Sinon, maintenant que j'ai des drives 2209 et une bonne carte mère, quelles sont les vitesses que peut encaisser les bestio sans perte de qualité ? As tu des conseils et ou vidéo/tuto sur cette partie ?

Autre chose, dans Cura, je ne spécifie rien que ma CM est une Robin Nano V3 pour qu'il optimise en conséquence ?

Merci !

Lien vers le commentaire
Partager sur d’autres sites

il y a 39 minutes, kilicool a dit :

Bien sur, je n'ai qu'un connecteur sur la CM de fin de course en Y nommé "Y"

J'aurais dû vérifier avant de poser la question 😅. Donc la raison de l'inversion du moteur Y vient du fait que tu avais déclaré USE_YMAX_PLUG au lieu de USE_YMIN_PLUG. Pour venir en contact avec le détecteur Y max, tu as donc dû inverser le sens Y puisqu'en réalité, c'était le détecteur Y min.

il y a 42 minutes, kilicool a dit :

As tu eu une idée depuis ?

pas depuis la dernière heure, non 🥴

il y a 43 minutes, kilicool a dit :

quelles sont les vitesses que peut encaisser les bestio sans perte de qualité ?

difficile à dire, j'imagine entre 100mm/s à 150mm/s. Mais à cette dynamique, il faudra régler précisément les paramètres déjà évoqués: accélération, junction deviation, linear advance, input shaping, et la vitesse avec ce test. Tu verras que la limite sera peut-être la tête et sa capacité à faire fondre le filament suffisamment vite.

il y a 47 minutes, kilicool a dit :

dans Cura, je ne spécifie rien que ma CM est une Robin Nano V3 pour qu'il optimise en conséquence ?

non, il faut déterminer les paramètres par toi-même, en réalisant les tests précédemment cités.

Lien vers le commentaire
Partager sur d’autres sites

il y a 16 minutes, kilicool a dit :

Ce lien explique tout ou juste la vitesse ?

juste la vitesse. Pour résumer:

  • l'accélération et le Junction Deviation (voir cette méthode)
  • le linear advance: tout est expliqué dans cette vidéo
  • l'input shaping: tout est décrit dans cette vidéo en anglais et ce tuto en francais.
  • la vitesse avec ce test
il y a 16 minutes, kilicool a dit :

Tu aurais pas la même mais en FR ?

non 🥴 mais les vidéos attachées aux pages du youtuber TeachingTech sont assez explicites à mon avis. Sinon tu peux installer des extensions dans Cura pour générer des pièces test (bouton "marché en ligne" en haut à droite). Ces extensions sont:

  • auto towers
  • part for calibration
il y a 16 minutes, kilicool a dit :

j'avais des tlsmoother je les remets avec ma config mnt ou plus la peine ?

ils sont désormais inutiles puisque tu as des TMC2209

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

Il y a 10 heures, pommeverte a dit :

juste la vitesse. Pour résumer:

  • l'accélération et le Junction Deviation (voir cette méthode)
  • le linear advance: tout est expliqué dans cette vidéo
  • l'input shaping: tout est décrit dans cette vidéo en anglais et ce tuto en francais.
  • la vitesse avec ce test

non 🥴 mais les vidéos attachées aux pages du youtuber TeachingTech sont assez explicites à mon avis. Sinon tu peux installer des extensions dans Cura pour générer des pièces test (bouton "marché en ligne" en haut à droite). Ces extensions sont:

  • auto towers
  • part for calibration

ils sont désormais inutiles puisque tu as des TMC2209

Merci pour toutes tes réponses. 

 

 

 

Modifié (le) par kilicool
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...