Ignorer et passer au contenu

Livraison GRATUITE pour toute commande supérieure à 100€ dans l'UE. Les commandes passées jusqu'au 14 seront expédiées le 15 !

MyRigs
Article précédent
En cours de lecture:
Redonnez vie à vos Prusa Mk3 avec Klipper 2/5 – Compilez et flashez Klipper
Article suivant

Redonnez vie à vos Prusa Mk3 avec Klipper 2/5 – Compilez et flashez Klipper

Chapitre 2/5

Installation de Mainsail, compilation de Klipper, flashage de la carte Einsy avec Klipper et création du fichier Printer.cfg pour Prusa Mk3

Il s'agit d'une série de 5 chapitres :

À la fin de ce chapitre, vos Prusa Mk3 exécuteront le logiciel Klipper et vous serez capable de :

  • Utilisez le microcontrôleur Raspberry Pi pour tous les calculs, améliorant ainsi la qualité de l'impression. La carte Einsy contrôlera uniquement les moteurs pas à pas.
  • Imprimez via Wi-Fi.
  • Augmentez la vitesse et les accélérations.
  • Bénéficiez de définitions et de réglages logiciels illimités.

Tout d’abord, vous aurez besoin de :

Notre configuration sera impeccable : pas d'adaptateurs, pas de convertisseurs, rien du tout. Nous allons connecter un RPI zéro 2 W à l'arrière de la carte Einsy et utiliser cette carte pour alimenter le RPI et transmettre les données via une connexion série UART. Comme sur l'image ci-dessous.




Qu'est-ce que la grand-voile ?

Mainsail est l'interface Web où vous pouvez contrôler et gérer votre imprimante 3D qui exécute Klipper.

Consultez leur github https://github.com/mainsail-crew/mainsail et envisagez de faire un don https://ko-fi.com/mainsail

Comment installer la grand-voile :

    1. Téléchargez l'imageur Raspberry Pi ici https://www.raspberrypi.com/software/
    2. Cliquez sur « Choisir un système d’exploitation » > « Autre système d’exploitation spécifique » > « Impression 3D » > « Système d’exploitation principal » > « Système d’exploitation principal 32 bits ».
    3. Cliquez ensuite sur le coin inférieur droit pour plus de définitions :

            • définir le nom d'hôte : prusa
            • activer SSH
            • définir le nom d'utilisateur : pi
            • définir le mot de passe : framboise
            • configurer le wlan (vérifiez si votre SSID et votre mot de passe wifi sont présents)
            • définir les paramètres de localisation
            • appuyez sur le bouton Enregistrer
    4. Cliquez sur le bouton Écrire
    5. Retirez la carte microSD de votre ordinateur et placez-la sur le rpi zero 2w
    6. Alimentez le RPI zéro 2w en le connectant avec un câble micro USB à un chargeur.
    7. Trouvez la nouvelle adresse IP de votre RPi Zero 2W. Accédez au tableau de bord en ligne de votre routeur et recherchez les nouveaux appareils connectés au réseau. Vous pouvez également accéder au RPi via un navigateur en saisissant : prusa.local dans la barre d'adresse.
    8. Éteignez le RPi. Sur l'interface web de Mainsail, recherchez l'icône d'alimentation dans la barre supérieure droite. Cliquez dessus et sélectionnez « Arrêter ». Cette étape est obligatoire chaque fois que vous souhaitez éteindre l'imprimante, sinon vous risquez de voir votre carte SD corrompue.

Carte Flash Einsy avec Klipper

Maintenant que la framboise fonctionne, Grand-voile est prête à continuer.

  1. Alimentez le RPI Zero 2 W à l'aide d'un chargeur micro USB, connectez un câble OTG micro USB au connecteur micro USB disponible, puis connectez le câble USB de type B à l'OTG et à la partie supérieure de la carte Einsy. Comme illustré ci-dessous.

  2. Nous allons nous connecter au RPI via SSH en utilisant Putty https://www.putty.org/
    • placez l'adresse IP du rpi. sélectionnez SSH. cliquez sur ouvrir.
    • le nom d'utilisateur est pi
    • le mot de passe est framboise
  3. Exécutez les commandes suivantes :
 CD Klipper
 faire le ménage
 créer menuconfig

Nous devons maintenant décider si nous allons utiliser un Raspberry connecté via USB ou Serial UART

Par USB :


Tout comme l'image

Par Serial UART (à l'arrière de la carte einsy) :

Tout comme sur la photo.

    1. Appuyez maintenant sur Échap / Oui. Nous allons compiler le firmware en exécutant
       faire
    1. Nous allons allumer l'imprimante et vérifier si nous pouvons détecter la carte Einsy en exécutant la commande
       ls /dev/serial/by-id/*
    2. Nous devrions détecter « usb-Prusa_Research__prusa3d.com__Original_Prusa_i3_MK3-if00 »
    3. Continuons et envoyons le firmware compilé à la carte einsy en exécutant la commande suivante
       sudo service klipper stop
      
       faire flash FLASH_DEVICE=usb-Prusa_Research__prusa3d.com__Original_Prusa_i3_MK3-if00
    4. Si tout se passe bien, vous devriez voir un message de réussite à l'écran comme celui-ci :

    5. Vous devriez voir un message sur l'écran de l'imprimante indiquant la mise à jour. Ignorez-le et redémarrez Klipper.
       sudo service klipper start
    6. Éteignez le RPI et l'imprimante. Vous pouvez l'arrêter avec la commande « shh » sudo shutdown -r now ou accéder à Mainsail. Dans la barre supérieure droite de l'interface web, cliquez sur l'icône d'alimentation et arrêtez. Cette opération est obligatoire à chaque fois que vous souhaitez éteindre l'imprimante, sous peine de voir votre carte SD corrompue.


Comment connecter le RPI Zero à l'arrière de la carte Einsy par Serial UART ?

    1. Nous devons d’abord activer le Serial UART sur le Raspberry Pi.
      Alimentez le RPI. Accédez via SSH et exécutez :

       exécuter sudo raspi-config

      Sélectionnez 3. Options d'interface
      Sélectionner le port série
      Alors non quand il vous demande si vous souhaitez qu'un shell de connexion soit accessible via série.
      Puis oui lorsqu'il vous demande si vous souhaitez que le matériel soit activé.
      Arrêtez le RPI et retirez tous les câbles qui y sont attachés

    2. Suivez exactement les étapes du blog Prusa : « Assurez-vous que l'imprimante est éteinte, découpez soigneusement toutes les pièces en plastique indiquées et retirez la pièce découpée. Pendant la découpe, veillez à NE PAS COUPER la carte Einsy ! »
      Cette petite pièce imprimée orange est un cadre permettant de maintenir le RPI 2W à bonne distance de la carte Einsy. Vous pouvez la télécharger ici : https://www.printables.com/model/86489-raspberry-pi-zero-2-w-frame-for-einsy-rambo

    3. Insérez le RPi Zero, avec son cadre, dans les trous de connexion indiqués ci-dessous (carré vert). Ensuite, fixez le couvercle pour protéger le RPi Zero W (flèches violettes).

    4. Téléchargez une couverture pour fermer le dos de l'einsy sur https://www.printables.com/model/36118-raspberry-pi-zero-frame-for-einsy-rambo

    5. allumer l'imprimante
    6. Trouvez la nouvelle adresse IP de votre RPI Zero 2W. Accédez au tableau de bord en ligne de votre routeur et recherchez les nouveaux appareils connectés au réseau. Vous pouvez également accéder au RPI via votre navigateur en saisissant « prusa.local » dans la barre d'adresse. Vous avez désormais accès à votre installation Mainsail.
    7. La grand-voile va afficher des erreurs car il n'existe pas de fichier printer.cfg. Ce fichier permet de définir tous les paramètres de votre planche et de votre imprimante.
      Mainsail nécessite une configuration minimale pour fonctionner correctement et affichera un avertissement au démarrage si les composants requis ne sont pas présents dans vos fichiers de configuration. Passons maintenant au sujet suivant.

Créer un fichier Printer.cfg pour Prusa Mk3s

Sur le côté gauche de l'écran, cliquez sur Machine et créez un nouveau fichier

Dans la boîte de dialogue, écrivez printer.cfg et cliquez sur créer
Copiez et collez le code suivant.

 ###################################################################################
 ###################################################################################
 ################ Configuration du Prusa MK3s Klipper par Lab4450.com ###################
 ###################################################################################
 ###################################################################################

 # Ce fichier contient des mappages de broches et des valeurs par défaut raisonnables pour Prusa i3 MK3S
 # imprimantes. Fonctionne avec les MK3. 
# Des références aux mods communautaires courants sont également incluses.
 #
 # Remarque : les cartes Einsy vendues par Prusa ont un firmware défectueux sur le
 # puce USB-série qui rend les cartes inutilisables avec Klipper via USB.
 # Bien que le flashage du firmware Klipper doive être effectué via USB, la carte peut être utilisée
 # via série sans modification supplémentaire.
 # Pour utiliser cette configuration, le firmware doit être compilé pour l'AVR atmega2560.
 #
 # CONNEXION SÉRIE
 # Si vous souhaitez connecter le Rpi à l'arrière de la carte Einsy comme https://help.prusa3d.com/article/prusaprint-rpi-zero-and-octoprint_2180
 # exécutez sudo raspi-config qui démarrera l'utilitaire puis sélectionnez :
 # Pour utiliser via série, dans « make menuconfig », sélectionnez « Activer les options de configuration de bas niveau supplémentaires »
 # et sélectionnez serial1 (le numéro de série du RasPi)
 # sur le Raspberry Pi, assurez-vous que le port série est activé. exécutez sudo raspi-config
 # 3. Options d'interfaçage
 # sélectionnez le port série
 # Alors non lorsqu'il vous demande si vous souhaitez qu'un shell de connexion soit accessible via série.
 # Puis Oui lorsqu'il vous demande si vous souhaitez que le matériel soit activé. 
# À ce stade, vous souhaiterez peut-être vérifier que le serveur ssh est en cours d'exécution :
 # Depuis l'utilitaire raspi-config :
 # 3. Options d'interfaçage
 # sélectionnez SSH
 # Répondez Oui lorsqu'on vous demande si vous souhaitez que le serveur SSH soit activé.
 #
 # CONNEXION USB
 # Si vous souhaitez utiliser la connexion USB, ne sélectionnez pas « Activer les options de configuration de bas niveau supplémentaires ».
 #

 ### Interface utilisateur
 [inclure mainvoile.cfg]

 ### CONSEIL
 [mcu]
 série : /dev/serial0 # Si vous utilisez un port série RPI interne
 # série : /dev/serial/by-id/usb-Prusa_Research__prusa3d.com__Original_Prusa_i3_MK3-if00 # Si vous utilisez RPI via une connexion USB à l'imprimante
 restart_method : commande

 [capteur de température einsy_board]
 capteur_broche : PF6
 type de capteur : TDK NTCG104LH104JT1
 min_temp: 0
 max_temp: 70

 ### RPI
 [capteur de température raspberry_pi]
 type_de_capteur : température_hôte
 min_temp: 0
 max_temp: 80

 ### DÉFINITIONS DE L'IMPRIMANTE
 [imprimante]
 cinématique : cartésienne
 max_accel: 4000
 max_accel_to_decel : 2 500
 vitesse_max : 300
 vitesse_z_max : 40
 max_z_accel: 200
 square_corner_velocity : 8,0

 ### LIT
 [lit chauffant]
 broche_chauffage : PG5 
type de capteur : EPCOS 100K B57560G104F
 capteur_broche : PF2
 contrôle : pid
 min_temp: 0
 max_temp: 120
 pid_Kp:55.864
 pid_Ki:0.876
 pid_Kd:890.334

 ### FANS
 [ventilateur de chauffage, ventilateur de tête chaude]
 broche : PH5
 chauffage : extrudeuse
 heater_temp: 50,0
 vitesse_du_ventilateur : 1,0

 [ventilateur] # Ventilateur de refroidissement de pièce
 broche : PH3

 ### AFFICHER
 [afficher]
 type d'écran LCD : hd44780
 rs_pin : PD5
 e_pin: PF7
 d4_pin : PF5
 d5_pin: PG4
 d6_pin: PH7
 d7_pin: PG3
 broches_encodeur : ^PJ1,^PJ2
 click_pin: ^!PH6

 [broche_de_sortie broche_de_rétroéclairage_LCD]
 broche : PE3
 pwm : vrai
 hardware_pwm : vrai
 valeur : 0,25 # 30 % de rétroéclairage
 shutdown_value : 1 # Retour au rétroéclairage complet (sans PWM) au redémarrage
 cycle_time : 0,001 # Le temps de cycle par défaut de 0,1 s scintille énormément

 [static_digital_output debug_led] # Maintient la LED de débogage éteinte / non flottante
 broches : !PB7

 [broche_sortie broche_bip]
 broche : PH2
 pwm : vrai
 valeur : 0
 valeur_arrêt : 0
 cycle_time: 0,001
 échelle : 1000

 ### MOTEURS
 [constantes_moteur prusa-xye]
 # installer https://github.com/andrewmcgr/klipper_tmc_autotune/tree/main
 # c'est un moteur personnalisé pour xye
 résistance : 6,5
 inductance : 0,013
 couple de maintien : 0,49
 max_current: 1
 pas_par_tour : 200
 
[constantes_moteur prusa-z]
 # installer https://github.com/andrewmcgr/klipper_tmc_autotune/tree/main
 # c'est un moteur personnalisé pour z
 résistance : 8
 inductance : 0,095
 couple de maintien : 0,32
 max_current: 1
 pas_par_tour : 200

 [autotune_tmc stepper_x]
 moteur : prusa-xye

 [stepper_x]
 step_pin : PC0
 dir_pin : !PL0
 enable_pin : !PA7
 micropas : 16
 distance_de_rotation : 32
 broche de butée : tmc2130_stepper_x : butée_virtuelle
 position_endstop : 0
 position_max : 255
 vitesse de retour à la normale : 50
 homing_retract_dist : 0

 [tmc2130 stepper_x]
 cs_pin : PG0
 interpoler : vrai
 stealthchop_threshold : 0
 run_current : .281738
 hold_current : .281738
 sense_resistor: 0,220
 diag1_pin : !PK2
 driver_IHOLDDELAY : 8
 driver_TPOWERDOWN : 0
 driver_TBL : 2
 driver_TOFF : 3
 driver_HEND : 1
 driver_HSTRT : 5
 driver_PWM_FREQ : 2
 driver_PWM_GRAD : 2
 driver_PWM_AMPL : 230
 driver_PWM_AUTOSCALE : Vrai
 driver_SGT: 3

 [autotune_tmc stepper_y]
 moteur : prusa-xye

 [stepper_y]
 step_pin : PC1
 dir_pin : PL1
 enable_pin : !PA6
 micropas : 16
 distance_de_rotation : 32
 broche de butée : tmc2130_stepper_y : butée_virtuelle
 position_endstop: -4
 position_max : 212,5 
position_min: -4
 vitesse de retour à la normale : 50
 homing_retract_dist: 0

 [tmc2130 stepper_y]
 cs_pin: PG2
 interpoler : vrai
 stealthchop_threshold : 0
 run_current : .281738
 hold_current : .281738
 sense_resistor: 0,220
 diag1_pin : !PK7
 driver_IHOLDDELAY : 8
 driver_TPOWERDOWN : 0
 driver_TBL : 2
 driver_TOFF : 3
 driver_HEND : 1
 driver_HSTRT : 5
 driver_PWM_FREQ : 2
 driver_PWM_GRAD : 2
 driver_PWM_AMPL : 230
 driver_PWM_AUTOSCALE : Vrai
 driver_SGT: 3

 [autotune_tmc stepper_z]
 moteur : prusa-z

 [stepper_z]
 step_pin: PC2
 dir_pin : !PL2
 enable_pin : !PA5
 micropas : 16
 distance_de_rotation : 8
 endstop_pin : sonde : z_virtual_endstop
 position_max : 210
 position_min: -2
 vitesse de retour à la normale : 13,333

 [tmc2130 stepper_z]
 cs_pin : PK5
 run_current : .53033
 hold_current : .53033
 sense_resistor: 0,220
 diag1_pin : !PK6
 interpoler : vrai
 driver_IHOLDDELAY : 8
 driver_TPOWERDOWN : 0
 driver_TBL : 2
 driver_TOFF : 3
 driver_HEND : 1
 driver_HSTRT : 5
 driver_PWM_FREQ : 2
 driver_PWM_GRAD : 4
 driver_PWM_AMPL : 200
 driver_PWM_AUTOSCALE : Vrai
 driver_SGT: 4

 ### EXTRUDEUSE
 [extrudeuse]
 pas_complets_par_rotation : 200
 distance_de_rotation : 22,85696 
max_extrude_cross_section: 50,0
 max_extrude_only_velocity : 120,0
 max_extrude_only_accel : 1 250,0
 max_extrude_only_distance : 200
 diamètre de la buse : 0,4
 diamètre du filament : 1,750
 pression_avance : 0,06
 pressure_advance_smooth_time : 0,040
 step_pin: PC3
 dir_pin : PL6
 enable_pin : !PA4
 micropas : 16
 broche_chauffage : PE5
 type de capteur : ATC Semitec 104GT-2
 capteur_broche : PF0
 max_temp: 285
 min_extrude_temp: 170
 min_temp: 0
 contrôle : pid
 pid_Kp:21.837
 pid_Ki:1.234
 pid_Kd:96.629

 [extrudeuse autotune_tmc]
 moteur : prusa-xye

 [extrudeuse tmc2130]
 cs_pin : PK4
 interpoler : vrai
 run_current : .513757
 hold_current : .513757
 sense_resistor: 0,220
 diag1_pin : !PK3
 driver_IHOLDDELAY : 8
 driver_TPOWERDOWN : 0
 driver_TBL : 2
 driver_TOFF : 3
 driver_HEND : 1
 driver_HSTRT : 5
 driver_PWM_FREQ : 2
 driver_PWM_GRAD : 4
 driver_PWM_AMPL : 240
 driver_PWM_AUTOSCALE : Vrai
 driver_SGT: 3

 [gcode_arcs]
 résolution : 0,25

 [rétraction_du_firmware]
 retract_length: 0,5



 ### MAILLE DE LIT ET SONDE
 [bed_mesh]
 horizontal_move_z : 2
 mesh_min: 35, 6
 mesh_max : 240 198 
# Un nombre impair de points de sonde par dimension (3x3, 5x5, 7x7) est préférable car la zone proche de la vis centrale est alors sondée
 nombre_de_sondes : 7,7
 #probe_count: 5,5
 #probe_count: 3,3
 vitesse : 100
 algorithme : bicubique
 fade_start : 1.0
 fade_end: 10.0
 distance_de_vérification_de_déplacement : 3,0
 split_delta_z : .025
 tension bicubique : .2
 mesh_pps : 0,0 # Ne pas générer de points interconnectés afin que notre maillage soit précis avec un réglage d'inclinaison par vis
 # Évitez les aimants
 faulty_region_1_min : 100,583, 187,376
 faulty_region_1_max : 122,083, 229,376
 faulty_region_2_min : 125,672, -18,124
 faulty_region_2_max : 147,172, 23,876
 faulty_region_3_min : 192,261, 5,126
 faulty_region_3_max : 234,261, 26,626
 faulty_region_4_min : 114,422, 39,876
 faulty_region_4_max : 135,922, 81,876
 faulty_region_5_min : 21,422, 87,126
 faulty_region_5_max : 42,922, 129,126
 faulty_region_6_min : 54,172, 97,376
 faulty_region_6_max : 96,172, 118,876
 faulty_region_7_min : 154,172, 97,376
 faulty_region_7_max : 196,172, 118,876
 faulty_region_8_min : 205,136, 87,126
 faulty_region_8_max : 226,636, 129,126
 faulty_region_9_min : 114,422, 134,376 
faulty_region_9_max : 135,922, 176,376
 faulty_region_10_min : 176,177, 191,394
 faulty_region_10_max : 218,177, 212,894

 [gcode_macro BED_MESH_CALIBRATE]
 renommer_existant : BASE_BED_MESH_CALIBRATE
 gcode:
 LIT_MAILLE_CLAIR
 BASE_BED_MESH_CALIBRAGE

 [safe_z_home]
 home_xy_position : 128 110
 vitesse : 50,0
 z_hop: 15
 z_hop_speed : 15,0
 move_to_previous : Faux

 [sonde]
 broche : PB4
 x_offset: 23
 y_offset: 5
 vitesse : 20,0
 z_offset : 1.480 # la valeur par défaut est zéro. Mettez à jour ceci avec votre décalage Z. c'est juste une valeur sûre pour ne pas écraser la buse contre la plaque pei
 échantillons : 3 # Échantillonnage, principalement pour le maillage du lit. 3 convient aux sondes PINDA normales.
 samples_result : moyenne
 sample_retract_dist : 1,0

 # si vous utilisez un pinda v2 avec 4 câbles, vous pouvez lire la température de la thermistance intégrée du pinda
 # [capteur_de_température pinda]
 # type_capteur : EPCOS 100K B57560G104F
 # sensor_pin: PF3
 # min_temp: 0
 # max_temp: 100
 # gcode_id: C



 [vis_inclinaison_réglable]
 # SW Nylock Mod : La vis 1 utilise l'entretoise métallique de 6 mm, donc sa
 # La hauteur est considérée comme la ligne de base. Pour ajuster l'inclinaison, utilisez le 
# commande SCREWS_TILT_CALCULATE ou MACRO ADJUST_BED_SCREWS, cela doit être votre vis 1 :
 #
 # *****************
 # * S7 S8 S9 *
 # * *
 # Lit : * S5 S1 S6 *
 # * *
 # * S2 S3 S4 *
 # *****************
 #
 vis1 : 128 110
 screw1_name : Centre
 vis2: 13,6
 screw2_name : Avant gauche
 vis3 : 13 115
 screw3_name : Avant Centre
 vis4 : 13 210
 screw4_name : Avant droit
 vis5: 123,6
 screw5_name : Centre gauche
 vis6 : 123 210
 screw6_name : Centre droit
 vis7: 228,6
 screw7_name : Arrière gauche
 vis8 : 228 115
 screw8_name : Arrière Centre
 vis9 : 228 210
 screw9_name : Arrière droit
 déplacement_horizontal_z : 10.
 vitesse : 50.
 filetage : CCW-M3

 [gcode_macro AJUSTEMENT_VIS_LIT]
 gcode:
 # Chauffer le lit à 80ºc pour procéder à un processus plus précis
 M140 S80 ; commencer à chauffer le lit à 80ºc
 G28 ; maison
 Tram_Z ; tram z alias calibrer z

 M190 S80 ; attendre que le lit atteigne 80ºc
 G4 P300000 ; Attend 5 minutes que la température du lit se stabilise
 # TEMPÉRATURE ÉLEVÉE ! ATTENTION AU CONTACT DU LIT OU DES VIS
 # TEMPÉRATURE ÉLEVÉE ! ATTENTION AU CONTACT DU LIT OU DES VIS 
# TEMPÉRATURE ÉLEVÉE ! ATTENTION AU CONTACT DU LIT OU DES VIS
 # TEMPÉRATURE ÉLEVÉE ! ATTENTION AU CONTACT DU LIT OU DES VIS

 VIS_INCLINAISON_CALCULER ÉCHANTILLON_RÉTRACTION_DIST=1
 G1 X180 Y199 Z50 F1000
 M190 S0 ; éteindre le chauffage du lit
 M117 !! ATTENTION LE LIT EST CHAUD !!
 UPDATE_DELAYED_GCODE ID=clear_display DUREE=3
 M117 retirer la feuille pei
 UPDATE_DELAYED_GCODE ID=clear_display DUREE=3
 Vis de réglage du lit M117
 UPDATE_DELAYED_GCODE ID=clear_display DUREE=3
 # RÉPÉTEZ CETTE MACRO JUSQU'À LA PERFECTION

 [menu __main __setup __calib __Ajust_Bed_Screws]
 type : commande
 activer : {not printer.idle_timeout.state == "Impression"}
 nom : Ajuster les vis du lit
 gcode:
 RÉGLAGE_DES_VIS_DE_LIT

 [gcode_macro G80]
 gcode:
 M117 Nivellement du lit
 CALIBRAGE_MAILLE_LIT
 G1 X0 Y0 Z0.4 F4000
 M117
 M400

 [gcode_macro G81]
 gcode:
 SORTIE_MAILLE_LIT

 ### ADXL
 [input_shaper]
 shaper_freq_x : 52,287 # fréquence pour la marque X du modèle de test
 shaper_freq_y : 48,438 # fréquence pour la marque Y du modèle de test
 shaper_type: mzv
 rapport_amortissement_x : 0,1
 rapport_amortissement_y : 0,12

 ### CAPTEUR DE FILAMENT 
[capteur de commutation de filament capteur de filament]
 pause_on_runout : vrai
 runout_gcode :
 Détection d'une rupture de filament du M118
 M600
 BIP_CONDITIONNEL i=3 dur=300 freq=400
 insert_gcode:
 Charge de filament M118 détectée
 LOAD_FILAMENT
 event_delay : 3.0
 # Si vous rencontrez des problèmes de mouvement après l'exécution du runout_gcode
 # vous pouvez augmenter le délai de pause. Il est à noter que ceci
 # est une solution de contournement à un problème avec la façon dont Octoprint gère
 # Remerciements. Ce problème devrait être résolu prochainement.
 # release, après quoi l'option « pause_delay » sera probablement supprimée.
 pause_delay : 0,01
 switch_pin : !PK0

 #[delayed_gcode DISABLEFILAMENTSENSOR] #DÉSACTIVER LE CAPTEUR DE FILAMENT AU DÉMARRAGE
 #initial_duration: 1
 #gcode:
 # SET_FILAMENT_SENSOR SENSOR=capteur_de_filament ENABLE=0

 [gcode_macro M600] # Changement de couleur
 description : Changement de couleur
 gcode:
 {% set X = params.X|default(0)|float %}
 {% set Y = params.Y|default(0)|float %}
 {% set Z = params.Z|default(10)|float %} 
SAVE_GCODE_STATE NOM=M600_state
 PAUSE
 G91
 G1 E-.8 F2700
 G1 Z{Z}
 G90
 G1 X{X} Y{Y} F3000
 G91
 G1 E-50 F1000
 RESTORE_GCODE_STATE NOM=M600_state

 [gcode_macro UNLOAD_FILAMENT]
 gcode:
 SAVE_GCODE_STATE NAME=état_déchargement
 G91
 {% if params.TEMP is defined or printer.extruder.can_extrude|lower == 'false' %}
 M117 Chauffage...
 # Chauffez la tête d'impression à la température fournie ou à 220 par défaut, car cela devrait fonctionner correctement avec la plupart des filaments.
 M109 S{params.TEMP|par défaut(220, vrai)}
 {% endif %}
 M117 Déchargement du filament...
 G92 E0.0
 G91
 G1 E-45 F5000
 G1 E-15 F1000
 G1 E-20 F1000
 G90
 G92 E0.0
 M400
 M117 Retirez le filament maintenant !
 M300 S300 P1000
 Filament M117 déchargé !
 RESTORE_GCODE_STATE NAME=état_déchargement
 MISE À JOUR_RETARDÉE_GCODE ID=clear_display DURÉE=5

 [gcode_macro LOAD_FILAMENT]
 gcode:
 SAVE_GCODE_STATE NAME=load_state
 G91
 # Chauffez la tête d'impression à la température fournie ou à 220 par défaut, car cela devrait fonctionner correctement avec la plupart des filaments.
 {% if params.TEMP is defined or printer.extruder.can_extrude|lower == 'false' %} 
M117 Chauffage...
 M109 S{params.TEMP|par défaut(220, vrai)}
 {% endif %}
 M117 Chargement du filament...
 # Chargez le filament dans la zone de la tête chauffante.
 G92 E0.0
 G91
 G1 E70 F400
 G1 E40 F100
 G90
 G92 E0.0
 M400
 Filament M117 chargé !
 RESTORE_GCODE_STATE NAME=état_chargement
 MISE À JOUR_RETARDÉE_GCODE ID=clear_display DURÉE=5

 [menu __filament __change]
 type : commande
 nom : Changer le filament
 gcode:
 M600

 [menu __filament __resume]
 type : commande
 nom : CV
 gcode:
 CONTINUER

 #####################
 ### MACROS
 #####################

 [répondre]
 default_type : commande

 [correction_d'inclinaison]

 [input_shaper]

 [carte_sd_virtuelle]
 chemin : ~/printer_data/gcodes

 [état_d'affichage]

 [pause_resume]

 [force_move]
 enable_force_move : vrai

 [gcode_macro M486]
 gcode:
 CLEAR_PAUSE

 [gcode_macro M300]
 gcode:
 # Utilisez une tonalité par défaut de 1 kHz si S est omis.
 {% set S = params.S|default(1000)|int %}
 # Utilisez une durée de 10 ms si P est omis.
 {% set P = params.P|default(100)|int %}
 SET_PIN PIN=BEEPER_pin VALEUR=0,5 CYCLE_TIME={ 1,0/S si S > 0 sinon 1 } 
G4 P{P}
 SET_PIN PIN=BEEPER_pin VALEUR=0

 [effacement de l'affichage du code G différé]
 durée_initiale : 0.
 gcode:
 M117

 [menu __main __octoprint] # nous n'utilisons pas ce menu, nous allons donc le supprimer
 type : désactivé

 [pause_resume]

 [état_d'affichage]

 [gcode_macro ANNULER_IMPRESSION]
 description : Annuler l'impression en cours
 renommer_existant : ANNULER_IMPRESSION_BASE
 variable_park : Vrai
 gcode:
 ## Déplacer la tête et se rétracter uniquement si elle n'est pas déjà en état de pause et de stationnement défini sur vrai
 {% if printer.pause_resume.is_paused|lower == 'false' and park|lower == 'true'%}
 _TOOLHEAD_PARK_PAUSE_ANNULER
 {% endif %}
 ÉTEINDRE_LES_CHAUFFAGES
 ANNULER_IMPRESSION_BASE
 FICHIER DE RÉINITIALISATION DE LA CARTE SDC
 # Soulever la buse de 60 mm
 G1 Z60 F3000
 G90
 # Désactiver les steppers
 M84

 [gcode_macro PAUSE]
 description : Mettre en pause l'impression en cours d'exécution
 renommer_existant : PAUSE_BASE
 gcode:
 PAUSE_BASE
 _TOOLHEAD_PARK_PAUSE_ANNULER

 [gcode_macro RESUME]
 description : Reprendre l'impression en cours d'exécution
 renommer_existant : RESUME_BASE
 gcode:
 ##### lire l'extrusion à partir de la macro _TOOLHEAD_PARK_PAUSE_CANCEL ##### 
{% set extrude = printer['gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL'].extrude %}
 #### obtenir le paramètre VELOCITY si spécifié ####
 {% if 'VELOCITY' in params|upper %}
 {% set get_params = ('VELOCITY=' + params.VELOCITY) %}
 {%else %}
 {% set get_params = "" %}
 {% endif %}
 ##### fin des définitions #####
 {% if printer.extruder.can_extrude|lower == 'true' %}
 M83
 G1 E{extruder} F2100
 {% if printer.gcode_move.absolute_extrude |lower == 'true' %} M82 {% endif %}
 {% else %}
 {action_respond_info("L'extrudeuse n'est pas assez chaude")}
 {% endif %}
 REPRISE_BASE {get_params}
 CLEAR_PAUSE

 [gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
 description : Aide : tête d'outil de stationnement utilisée dans PAUSE et CANCEL_PRINT 
variable_extrude : 1,0
 gcode:
 ##### définir la position de stationnement pour x et y #####
 # la valeur par défaut est votre position maximale dans votre printer.cfg
 {% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %}
 {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
 {% set z_park_delta = 2.0 %}
 ##### calculer la position de l'ascenseur de sauvegarde #####
 {% set max_z = printer.toolhead.axis_maximum.z|float %}
 {% set act_z = printer.toolhead.position.z|float %}
 {% if act_z < (max_z - z_park_delta) %}
 {% set z_safe = z_park_delta %}
 {% else %}
 {% set z_safe = max_z - act_z %}
 {% endif %}
 ##### fin des définitions #####
 {% if printer.extruder.can_extrude|lower == 'true' %}
 M83
 G1 E-{extruder} F2100 
{% if printer.gcode_move.absolute_extrude |lower == 'true' %} M82 {% endif %}
 {% else %}
 {action_respond_info("L'extrudeuse n'est pas assez chaude")}
 {% endif %}
 {% if "xyz" in printer.toolhead.homed_axes %}
 G91
 G1 Z{z_safe} F900
 G90
 G1 X{x_park} Y{y_park} F6000
 {% if printer.gcode_move.absolute_coordinates|lower == 'false' %} G91 {% endif %}
 {% else %}
 {action_respond_info("Imprimante non réinstallée")}
 {% endif %}

 [gcode_macro Tram_Z] # Calibrage Z de Prusa
 description : Tram axe Z
 gcode:
 {% set max_z = printer.toolhead.axis_maximum.z|float %}
 {% if printer.toolhead.homed_axes != "xyz" %}
 G28
 {% endif %}
 G1 X20 Y0
 G1 Z{max_z-10} F2000 #Mise à jour avec la hauteur Z. 
FORCE_MOVE STEPPER=stepper_z Distance=20 Vitesse=10
 G1 Z{max_z-50} F2000 # Déplacer vers le bas
 G28 Z # De retour à la maison

 [gcode_macro G34]
 gcode:
 Tram_Z

 [menu __main __setup __calib __Tram_Z]
 type : commande
 activer : {not printer.idle_timeout.state == "Impression"}
 nom : Tram axe Z
 gcode:
 G34

 [gcode_macro PREHEAT_PLA]
 gcode:
 # Démarrer le chauffage du lit
 M140 S60
 # Démarrer le chauffage de la buse
 M104 S200

 [gcode_macro PREHEAT_PETG]
 gcode:
 # Démarrer le chauffage du lit
 M140 S90
 # Démarrer le chauffage de la buse
 M104 S240

 [gcode_macro PREHEAT_TPU]
 gcode:
 # Démarrer le chauffage du lit
 M140 S50
 # Démarrer le chauffage de la buse
 M104 S190

 [gcode_macro PID_TEST_BED]
 gcode:
 # Paramètres
 {% set TARGETTEMP = params.TEMP|default(70)|int %}

 {% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
 {% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}
 G28
 G90
 G1 X{max_x/2} Y{max_y/2} Z40 F6000
 PID_CALIBRATE HEATER=< TARGET={TARGETTEMP}

 [gcode_macro PID_TEST_HOTEND]
 gcode:
 # Paramètres 
{% set TARGETTEMP = params.TEMP|default(245)|int %}

 {% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
 {% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}
 G28
 G90
 G1 X{max_x/2} Y{max_y/2} Z10 F6000
 M106 S64
 PID_CALIBRATE HEATER=extrudeuse TARGET={TARGETTEMP}
 M107 ; Désactiver le ventilateur de refroidissement de l'impression

 [gcode_macro PURGE_LINE]
 gcode:
 Amorçage M117 ...
 G92 E0.0 ; réinitialiser l'extrudeuse
 G90 ; Positionnement absolu
 G0 X5 Y-3.0 F5000 ; Se déplace vers le point de départ en dehors de la zone d'impression
 G0 Z0.4 F500 ; Augmente Z à 0,4
 G91 ; Positionnement incrémental
 G92 E0.0 ; réinitialiser la position de l'extrudeuse
 G90 ; Positionnement absolu
 G1 X50.0 E8.0 F1000.0 ; démarrer la ligne d'introduction
 G1 X90.0 E24.0 F1000.0 ; finition plus épaisse
 G92 E0.0
 G90 ; Position absolue

 [gcode_macro PRINT_START]
 gcode:
 # modifier le slicer
 # M104 S0 ; Empêche PrusaSlicer d'envoyer des attentes temporaires séparément
 # M140 S0 
# print_start EXTRUDER=[température_première_couche[extrudeuse_initiale]] BED=[température_lit_première_couche]

 # Paramètres
 {% set bed = params.BED|int %}
 {% set hotend = params.HOTEND|int %}
 {% set chamber = params.CHAMBER|default(0)|int %}

 M73 P0 ; effacer la barre de progression de l'écran LCD
 M82 ; extrudeuse en mode absolu
 G92 E0 ; mettre l'extrudeuse à zéro
 M140 S{bed} ; faire chauffer le lit
 Chauffage et retour au lit M117
 G28 ; accueil de tous les axes
 G90 ; positionnement absolu
 M190 S{bed} ; attendre la température du lit
 G4 P300000 ; Attend 5 min que la température du lit se stabilise
 # TEMPERATURE_WAIT SENSOR="temperature_sensor pinda" MINIMUM={chambertemp} ; activez si vous avez un pinda v2 avec 4 câbles et que vous souhaitez attendre que le pinda atteigne la température de la chambre du slicer

 G80 ; nivellement du lit et étalonnage du maillage du lit
 M117 Nivellement
 BED_MESH_PROFILE LOAD=par défaut ; charger le maillage du lit
 SCREWS_TILT_CALCULATE MAX_DEVIATION=0.01 ; annulera l'impression si la limite configurée est dépassée

 M107 ; Éteint le ventilateur PT 
M104 S{hotend} ; régler la température de l'extrudeuse
 M109 S{hotend} ; attendre la température de l'extrudeuse
 Chauffage de la tête chauffante M117
 PURGE_LINE; ; exécuter la macro purger la ligne
 M400 ; effacer le tampon
 Impression M117...

 [gcode_macro PRINT_END]
 gcode:
 BIP_CONDITIONNEL I=2 DUR=30 FREQ=8500

 M400 ; attendre que le tampon soit vidé
 G92 E0 ; mettre l'extrudeuse à zéro
 G1 F1000.0 ; régler la vitesse d'avance
 G1 E-3 ; rétracter
 G91 ; positionnement relatif

 # Définir des vitesses sûres
 {% set zVelocity = printer.configfile.settings.printer.max_z_velocity|default(15)|int %}
 {% set maxVelocity = printer.configfile.settings.printer.max_velocity|default(200)|int %}
 {% set zVelocityAdjusted = (0.95 * zVelocity * 60)|int %}
 {% set maxVelocityAdjusted = (0.95 * maxVelocity * 60)|int %}

 # Obtenir des limites
 {% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %} 
{% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}
 {% set max_z = printer.configfile.config["stepper_z"]["position_max"]|float %}

 # Vérifiez la position finale pour déterminer la direction sûre pour se déplacer
 {% if printer.toolhead.position.x < (max_x - 20) %}
 {% set x_safe = 20.0 %}
 {% else %}
 {% set x_safe = -20.0 %}
 {% endif %}

 {% if printer.toolhead.position.y < (max_y - 20) %}
 {% set y_safe = 20.0 %}
 {% else %}
 {% set y_safe = -20.0 %}
 {% endif %}

 {% set lift_height = 25.0 %}
 {% if printer.toolhead.position.z < (max_z - lift_height) %} 
{% set z_safe = lift_height %}
 {% else %}
 {% set z_safe = max_z - printer.toolhead.position.z %}
 {% endif %}

 G0 Z{z_safe} F{zVelocityAdjusted} ; déplacer la buse vers le haut
 G0 X{x_safe} Y{y_safe} F{maxVelocityAdjusted} ; déplacez la buse pour éliminer le filament
 TURN_OFF_HEATERS ; éteindre les radiateurs
 M107 ; éteindre le ventilateur
 G90 ; positionnement absolu
 G0 X60 Y{max_y} F3600 ; buse de stationnement à l'arrière
 M221 S100 ; Réinitialiser le débit du filament
 M84XYE ; désactiver les moteurs xye
 Imprimante M117 prête ; message d'état de l'écran LCD

 [gcode_macro ANNULER_IMPRESSION]
 renommer_existant : BASE_CANCEL_PRINT
 gcode:
 G91
 G1 X-2 Y-2 E-1 F300
 G1 Z50 F3000 ; Relever la buse de 50 mm
 G90
 ÉTEINDRE_LES_CHAUFFAGES
 M107
 CLEAR_PAUSE
 FICHIER DE RÉINITIALISATION DE LA CARTE SDC
 BASE_ANNULER_IMPRESSION
 IMPRESSION_PERSONNELLE_ANNULÉE

 [gcode_macro IMPRESSION_PERSONNELLE_ANNULÉE]
 gcode:
 M117 Impression annulée

Comment installer RPi en tant que mcu secondaire ?

Si vous souhaitez lire la température interne du RPI ou utiliser d'autres fonctions telles qu'un ADXL connecté aux broches GPIO du RPI, vous devez installer le RPi comme MCU secondaire sur Klipper

Après avoir installé Klipper, accédez via SSH et exécutez :

 cd ~/klipper/
 sudo cp ./scripts/klipper-mcu.service /etc/systemd/system/
 sudo systemctl enable klipper-mcu.service

Compiler le nouveau firmware pour le flasher en interne

 cd ~/klipper/
 créer menuconfig

Dans le menu, définissez « Architecture du microcontrôleur » sur « Processus Linux », puis enregistrez et quittez.
Pour créer/compiler et installer le nouveau code du microcontrôleur, exécutez :

 sudo service klipper stop
 faire un flash
 sudo service klipper start

Si klippy.log signale une erreur « Autorisation refusée » lors de la connexion à /tmp/klipper_host_mcu, vous devez ajouter votre utilisateur au groupe tty. La commande suivante ajoutera l'utilisateur « pi » au groupe tty :

 sudo usermod -a -G tty pi

Dans le chapitre suivant, nous devons examiner minutieusement le fichier printer.cfg, réaliser une première couche parfaite avec le mod nylock, ajuster les vis du lit, le décalage z et l'étalonnage de la sonde, le réglage PID, les modifications à apporter sur le slicer et la première impression.

Panier Fermer

Votre carte est actuellement vide.

Commencer à magasiner
Sélectionnez les options Fermer