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 :
- Chapitre 1 – Chargeur de démarrage Flash
- Chapitre 2 – Compiler et flasher Klipper
- Chapitre 3 – Plateforme plate parfaite avec Klipper sur une Prusa Mk3s
- Chapitre 4 – Nouvelle combinaison d'extrudeuse avec Galileo 2 et un V6 CHC Dragon Hotend sur une Prusa Mk3s
- Chapitre 5 – Input Shaper ADXL345 et CAN via USB dans une Prusa Mk3s
À 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 :
- Un Raspberry Pi (nous recommandons d'utiliser un Raspberry Pi Zero 2W , fixé à l'arrière de la carte Einsy. Vérifiez comment souder les broches plus longues ici , ou lorsque vous achetez notre RPi Zero 2W , demandez-nous de le faire pour vous.)
- Une bonne carte micro SD A2 avec au moins 8 Go
- Terminez le premier chapitre de cette série en flashant un nouveau chargeur de démarrage sur la carte Einsy avant de continuer.
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 :
-
- Téléchargez l'imageur Raspberry Pi ici https://www.raspberrypi.com/software/
- 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 ».
- 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
-
-
-
- Cliquez sur le bouton Écrire
- Retirez la carte microSD de votre ordinateur et placez-la sur le rpi zero 2w
- Alimentez le RPI zéro 2w en le connectant avec un câble micro USB à un chargeur.
- 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.
- É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.
- 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.
- 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
- 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.
-
- Appuyez maintenant sur Échap / Oui. Nous allons compiler le firmware en exécutant
faire
- 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/*
- Nous devrions détecter « usb-Prusa_Research__prusa3d.com__Original_Prusa_i3_MK3-if00 »
- 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
- Si tout se passe bien, vous devriez voir un message de réussite à l'écran comme celui-ci :
- 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
- Éteignez le RPI et l'imprimante. Vous pouvez l'arrêter avec la commande « shh »
sudo shutdown -r nowou 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.
- Appuyez maintenant sur Échap / Oui. Nous allons compiler le firmware en exécutant
Comment connecter le RPI Zero à l'arrière de la carte Einsy par Serial UART ?
-
- 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 - 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
- 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).
- 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
- allumer l'imprimante
- 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.
- 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.
- Nous devons d’abord activer le Serial UART sur le Raspberry Pi.
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.



