Aller au contenu

Probing error - Custom firmware Marlin - Bigtreetech SKR Mini RRF + 3D Touch - CR10S


Messages recommandés

Posté(e)

Bonjour à tous,

Je rencontre un problème dans la configuration de Marlin pour adapter un firmware à l'origine prévu pour Ender3.

Je m'explique:

- J'ai installé une carte SKR MiniRRF pour remplacer la carte Creality d'origine de ma CR10S

- J'ai installé un 3DTouch de Bigtreetech toujours

- Si j'utilise le firmware précompilé dispo sur le github Bigtreetech, pas de problème, le 3DTouch fonctionne bien, je peux faire une bed leveling mesh avec la commande G29. Sauf que le firmware en question c'est pour une Ender 3 (et en plus sur une branche de dev de Marlin), donc pas la bonne taille de plateau, etc.

Pas de problème, je télécharge la dernière version de Marlin, identifie les changements effectués par bigtreetech dans le fichier configuration.h pour les porter sur la dernière branche de Marlin, et ajuste pour ma CR10S. Ca compile sans problème, ca démarre, je peux imprimer. Par contre, dès que je lance la commande G28 suivi de G29, la tête va se positionner dans le coin inférieur droit, déploie la sonde, descend, et boum erreur critique M112

Je me dis OK, je vais modifier et recompiler directement le firmware fourni par bigtreetech, donc à priori le bon code source. Je fais les mêmes modifs qu'indiqué sur la vidéo fournie en lien (histoire d'être cohérent avec mon installation), je compile, et boum même erreur

Si j'utilise le firmware d'origine précompilé, aucun problème, donc ce n'est pas un problème de compatibilité HW.

Petite différences de comportement néammoins:

- Lors de la commande G29, la tête démarre dans le coin inférieur gauche (firmware précompilé) au lieu de démarrer dans le coin inférieur droit (firmware modifié)

- Lors de la commande G28, la tête se centre sur le plateau (enfin en 25x25 puisque l'ender 3 est plus petite), et utilise clairement le 3DTouch pour calibrer le Z, sans forcer. Dans le cas du firmware modifié, il force un peu sur le bltouch avant de s'arrêter, car il descend la tête plus bas. Manifestement il y a un réglage dans Marlin pour utiliser le 3DTouch au lieu du contacteur Z, pas encore trouvé lequel c'était

J'ai aussi un problème de positionnement du 3DTouch, celui ci semble monté trop bas avec la plaque de montage fournie, et du coup lorsque la tête est positionnée à la position la plus basse pour imprimer sur le plateau, le 3DTouch se retrouve poussé vers le haut, pas terrible. Il va donc falloir que j'imprime une autre pièce de positionnement pour remonter le 3DTouch vers le haut

 

Si quelqu'un a des suggestions, je suis preneur

 

Posté(e)
il y a 4 minutes, Ashram56 a dit :

Je rencontre un problème dans la configuration de Marlin

il faudrait que tu postes tes fichiers configuration.h et configuration_adv.h ce sera plus simple.

Posté(e)

Bon et bien je me réponds à moi même: 

La constante qui définit l'utilisation du 3DTouch comme Z endstop, c'est 

#define USE_PROBE_FOR_Z_HOMING

Ca marche beaucoup mieux, plus d'erreur

Reste maintenant à régler le problème de hauteur en imprimant une pièce adaptée.

Posté(e) (modifié)
il y a 15 minutes, Ashram56 a dit :

celui ci semble monté trop bas avec la plaque de montage fournie

normalement aiguille rentrée, la pointe du bltouch doit être 2-3mm au dessus de la buse 

Modifié (le) par Savate
Posté(e)

Bon, deuxième problème...

J'ai maintenant le bed leveling qui fonctionne, avec la dernière version de Marlin

Par contre nouveau problème: le fan de refroidissement de la hotend ne démarre pas avec ce firmware (ni celui du refroidissement du plastique pointé sur la sortie de la tête). Je peux le controller manuellement (ie Fan On / Fan Off), mais il ne s'active pas automatiquement lors de l'allumage du chauffage de la tête.

J'ai du coup deux questions:

- Sur la SKR RRF, il y a deux connecteurs Fan. De ce que j'ai compris, ils  sont controllable en PWM, mais où dans Marlin définit on celui qui refroidit la hotend, et celui qui refroidit la pièce ? Ou bien est ce codé en dur (auquel cas il faut que je swappe)

- Comment activer le deuxième fan, dans configuration.h j'ai trouvé une section pour définir des fans supplémentaires, mais comme je ne connais pas les valeurs à mettre...

- Où se configure le déclenchement du fan lorsque la température de la hotend dépasse 50C ?

Merci

Posté(e)
à l’instant, Ashram56 a dit :

le fan de refroidissement de la hotend ne démarre pas avec ce firmware (ni celui du refroidissement du plastique pointé sur la sortie de la tête). Je peux le controller manuellement (ie Fan On / Fan Off), mais il ne s'active pas automatiquement lors de l'allumage du chauffage de la tête.

Alors, ne pas tout confondre :

* Le fan de refroidissement doit se mettre en route au dessus d'une certaine température (en général 50)

* le fan de refroidissement de la pièce lui ne sera en route qu'à partir de la 3ème ou 4ème couche (ça dépend du matériau et de ce qui est paramétré dans le trancheur)

à l’instant, Ashram56 a dit :

mais où dans Marlin définit on celui qui refroidit la hotend, et celui qui refroidit la pièce ? Ou bien est ce codé en dur (auquel cas il faut que je swappe)

en général c'est dans le fichier de définition des pins de la carte (mais si ils sont inversés - et pour rester à peu prés standard - il vaut mieux inverser le connexions

 

à l’instant, Ashram56 a dit :

Comment activer le deuxième fan

.pourquoi faire, tu as 3 fans ?

Posté(e) (modifié)

Une raison particulière d'avoir choisi la SKR E3 RRF (plutôt utilisée avec le firmware Reprap) qu'une simple SKR mini E3 ?

Pour ton vnetilateur de refroidissement du radiateur, configuration_adv.h (exemple pour ma CR30) :

/**
 * Extruder cooling fans
 *
 * Extruder auto fans automatically turn on when their extruders'
 * temperatures go above EXTRUDER_AUTO_FAN_TEMPERATURE.
 *
 * Your board's pins file specifies the recommended pins. Override those here
 * or set to -1 to disable completely.
 *
 * Multiple extruders can be assigned to the same pin in which case
 * the fan will turn on when any selected extruder is above the threshold.
 */
#define E0_AUTO_FAN_PIN PC0
#define E1_AUTO_FAN_PIN -1
#define E2_AUTO_FAN_PIN -1
#define E3_AUTO_FAN_PIN -1
#define E4_AUTO_FAN_PIN -1
#define E5_AUTO_FAN_PIN -1
#define E6_AUTO_FAN_PIN -1
#define E7_AUTO_FAN_PIN -1
#define CHAMBER_AUTO_FAN_PIN -1
#define COOLER_AUTO_FAN_PIN -1
#define COOLER_FAN_PIN -1

#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255   // 255 == full speed
#define CHAMBER_AUTO_FAN_TEMPERATURE 30
#define CHAMBER_AUTO_FAN_SPEED 255
#define COOLER_AUTO_FAN_TEMPERATURE 18
#define COOLER_AUTO_FAN_SPEED 255

Le Github de BTT te permettra de trouver quelle broche il faut utiliser.

🙂

Modifié (le) par fran6p
Posté(e) (modifié)

Merci pour vos conseils,

J'ai presque retrouvé mes petits. Le github de BTT n'a pas été d'une grande aide, les fichiers config sont incomplets. Par exemple, E0_AUTO_FAN_PIN n'était pas défini.

Mais comme j'ai le pinout, j'ai retrouvé à quelle pin cela correspondait.

Par contre je dois dire que je m'interroge toujours:

- J'ai donc mon auto démarrage maintenant configuré pour le fan de la hotend, connecté sur FAN0, c'est à dire PB5

- Le fan pour refroidir la pièce (le "part fan" donc) est lui connecté sur FAN1, c'est à dire PB6. Mais où dans Marlin trouve t'on la configuration de ce fan ? Si je regarde dans le "pins_btt_E3_RRF.h", je trouve une section où PB6 est défini comme "Controller_fan", ce qui de ce que je comprends correspond en fait à la ventilation du boitier

Et d'ailleurs le code est écrit de telle manière qu'il force l'usage du PB6 pour justement le refroidissement du boitier:

#ifndef CONTROLLER_FAN_PIN
  #define CONTROLLER_FAN_PIN                PB6   // "FAN1"
#endif

Je peux commenter ces lignes, mais par quelle ID de fan dois je remplacer "controller_fan_pin" ?

J'ai cherché dans la doc Marlin, vraiment rien trouvé à ce sujet

- D'ailleurs, pour ma compréhension, le réglage de fan dans l'interface Marlin, c'est censé controller le fan de la hot end, ou bien celui de refroidissement de la pièce ?

[EDIT]

Bon et bien je réponds à ma question, en faisant un peu plus de recherche (et du coup... ben il y a une erreur dans la vidéo que j'ai référencé plus haut sur les branchements des fans)

FAN_PIN est hard codé dans Marlin comme étant le "part fan". C'est la raison pour laquelle il n'y a aucune documentation à ce sujet.

J'ai trouvé l'info ici:

E0_AUTO_FAN_PIN cannot be FAN_PIN · Issue #17301 · MarlinFirmware/Marlin (github.com)

Donc dans mon fichier "pins_BTT_E3_RRF.h", par défaut FAN_PIN est connecté sur FAN0 (sur la vidéo il connecte le fan de l'extrudeur).

Du coup: mon contrôle fan dans Octoprint / Marlin démarrait le fan de l'extrudeur, alors que celui ci est normalement "hard codé" dans le fichier configuration_adv.h pour démarrer à pleine vitesse au delà de 50C.

J'ai ajusté la config dans le fichier pins et configuration_adv.h, et ça a l'air de mieux marcher (ie le fan du hotend démarre bien tout seul au dela de 50C, et celui de refroidissement du part démarre sous controle GCode).

Modifié (le) par Ashram56
Posté(e)

Sur ma CR30, le ventilateur de refroidissement du boitier (pilotes moteurs) se déclenche uniquement quand les moteurs sont utilisés 😉 (en plus de celui du radiateur de la tête quand la température est supérieure à 50°C). Par contre pour que ça fonctionne il faut un troisième emplacement de prise ventilateur «pilotable». Quand l'imprimante est allumée sans aucune impression, elle est totalement silencieuse.

/**
 * Controller Fan
 * To cool down the stepper drivers and MOSFETs.
 *
 * The fan turns on automatically whenever any driver is enabled and turns
 * off (or reduces to idle speed) shortly after drivers are turned off.
 */
#define USE_CONTROLLER_FAN
#if ENABLED(USE_CONTROLLER_FAN)
  #define CONTROLLER_FAN_PIN PC1            // Set a custom pin for the controller fan
  //#define CONTROLLER_FAN_USE_Z_ONLY       // With this option only the Z axis is considered
  //#define CONTROLLER_FAN_IGNORE_Z         // Ignore Z stepper. Useful when stepper timeout is disabled.
  #define CONTROLLERFAN_SPEED_MIN         0 // (0-255) Minimum speed. (If set below this value the fan is turned off.)
  #define CONTROLLERFAN_SPEED_ACTIVE    255 // (0-255) Active speed, used when any motor is enabled
  #define CONTROLLERFAN_SPEED_IDLE        0 // (0-255) Idle speed, used when motors are disabled
  #define CONTROLLERFAN_IDLE_TIME        60 // (seconds) Extra time to keep the fan running after disabling motors

  // Use TEMP_SENSOR_BOARD as a trigger for enabling the controller fan
  //#define CONTROLLER_FAN_MIN_BOARD_TEMP 40  // (°C) Turn on the fan if the board reaches this temperature

  #define CONTROLLER_FAN_EDITABLE           // Enable M710 configurable settings
  #if ENABLED(CONTROLLER_FAN_EDITABLE)
    #define CONTROLLER_FAN_MENU             // Enable the Controller Fan submenu
  #endif
#endif

🙂

Posté(e)
Il y a 3 heures, fran6p a dit :

Sur ma CR30, le ventilateur de refroidissement du boitier (pilotes moteurs) se déclenche uniquement quand les moteurs sont utilisés 😉 (en plus de celui du radiateur de la tête quand la température est supérieure à 50°C). Par contre pour que ça fonctionne il faut un troisième emplacement de prise ventilateur «pilotable». Quand l'imprimante est allumée sans aucune impression, elle est totalement silencieuse.

/**
 * Controller Fan
 * To cool down the stepper drivers and MOSFETs.
 *
 * The fan turns on automatically whenever any driver is enabled and turns
 * off (or reduces to idle speed) shortly after drivers are turned off.
 */
#define USE_CONTROLLER_FAN
#if ENABLED(USE_CONTROLLER_FAN)
  #define CONTROLLER_FAN_PIN PC1            // Set a custom pin for the controller fan
  //#define CONTROLLER_FAN_USE_Z_ONLY       // With this option only the Z axis is considered
  //#define CONTROLLER_FAN_IGNORE_Z         // Ignore Z stepper. Useful when stepper timeout is disabled.
  #define CONTROLLERFAN_SPEED_MIN         0 // (0-255) Minimum speed. (If set below this value the fan is turned off.)
  #define CONTROLLERFAN_SPEED_ACTIVE    255 // (0-255) Active speed, used when any motor is enabled
  #define CONTROLLERFAN_SPEED_IDLE        0 // (0-255) Idle speed, used when motors are disabled
  #define CONTROLLERFAN_IDLE_TIME        60 // (seconds) Extra time to keep the fan running after disabling motors

  // Use TEMP_SENSOR_BOARD as a trigger for enabling the controller fan
  //#define CONTROLLER_FAN_MIN_BOARD_TEMP 40  // (°C) Turn on the fan if the board reaches this temperature

  #define CONTROLLER_FAN_EDITABLE           // Enable M710 configurable settings
  #if ENABLED(CONTROLLER_FAN_EDITABLE)
    #define CONTROLLER_FAN_MENU             // Enable the Controller Fan submenu
  #endif
#endif

🙂

Malheureusement la SKR RRF n'a pas de troisième port pilotable. Bon j'ai fait une astuce en fait, j'ai connecté les ventilos du boitier sur l'alim de la hotend. Du coup quand la tête chauffe, les ventilos s'allument

Posté(e)
il y a 33 minutes, Ashram56 a dit :

j'ai connecté les ventilos du boitier sur l'alim de la hotend. Du coup quand la tête chauffe, les ventilos s'allument

et puis ils s'éteignent et puis ils se rallument et puis ils s'éteignent et puis ils se rallument ... (je les aurais plutôt branchés sur le ventilateur de refroidissement de la hotend)

Posté(e)
il y a 34 minutes, Savate a dit :

et puis ils s'éteignent et puis ils se rallument et puis ils s'éteignent et puis ils se rallument ... (je les aurais plutôt branchés sur le ventilateur de refroidissement de la hotend)

La hotend est controllée en PWM. Du coup le fan est aussi géré en PWM, cela ne se traduit donc pas par une extinction/allumage, mais plutot par une vitesse plus réduite. Ceci dit à l'oreille on a pas l'impression que ca change grand chose, je pense que la fréquence PWM de maintien de la température de la hotend est telle que le fan en lui même tourne à une vitesse assez élevée

Mais oui dans l'absolu il faudrait que j'ajoute un mux ou quelque chose comme ça sur la sortie de controle du fan de la hotend

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