Sommaire
- Structure du fichier
- Configuration de la carte mère (exemple avec Btt Pi)
- Configuration des moteurs et des axes (exemple d’un axe X)
- Configuration des capteurs (exemple d’un thermistance)
- Configuration des commandes G-code personnalisées (exemple pour le nivellement automatique)
- Configuration du refroidissement (exemple avec un ventilateur)
- Comment éditer le fichier printer.cfg ?
- Conclusion
- Ressources

Le fichier printer.cfg dans Klipper est un élément essentiel de la configuration du firmware Klipper pour les imprimantes 3D.
Klipper est un firmware open-source qui fonctionne sur divers microcontrôleurs, offrant une alternative puissante au firmware d’origine des imprimantes 3D.
Ce fichier permet de personnaliser de manière approfondie le comportement de votre imprimante 3D.
Dans cet article, nous allons explorer en détail le fichier printer.cfg de Klipper et comprendre comment il influence le fonctionnement de votre imprimante.
Structure du fichier
Le fichier printer.cfg est divisé en plusieurs sections, chacune contenant des paramètres spécifiques. Les sections les plus importantes sont les suivantes :
Configuration de la carte mère (exemple avec Btt Pi)
###########################################################################
# Définition du port COM de l'imprimante #
###########################################################################
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f401xc_10001A001350435436313420-if00
restart_method: command
###########################################################################
# Définition du Btt Pi #
###########################################################################
[mcu BttPi]
serial: /tmp/klipper_host_mcu
Dans cet exemple, la section mcu spécifie que Klipper utilise un Btt Pi comme microcontrôleur et que la communication se fait via le port série /dev/serial/by-id/usb-Klipper_stm32f401xc_10001A001350435436313420-if00
Configuration des moteurs et des axes (exemple d’un axe X)
[stepper_x]
step_pin: !PB14
dir_pin: PB13
enable_pin: !PB15
microsteps: 16
rotation_distance: 39.8801
endstop_pin: !PA2
position_endstop: 0
position_max: 300
homing_speed: 100
second_homing_speed: 10
Dans cet exemple, la section stepper_x configure l’axe X. On y spécifie les broches pour le pas, la direction et l’activation du moteur, ainsi que des propriétés telles que la distance de pas, les capteurs d’arrêt en fin de course, les limites de position, la vitesse du homing
Configuration des capteurs (exemple d’un thermistance)
[temperature_sensor bed]
sensor_type: EPCOS 100K B57560G104F
sensor_pin: P1.24
control: pid
heater_pin: bed_heat
Dans cet exemple, la section temperature_sensor configure une thermistance pour le lit chauffant. On y spécifie le type de thermistance, la broche à laquelle elle est connectée, le mode de contrôle (PID), et la broche de chauffe associée.
Configuration des commandes G-code personnalisées (exemple pour le nivellement automatique)
[gcode_macro G29]
gcode: BED_MESH_CALIBRATE
Cette configuration crée une commande G-code personnalisée G29 qui exécute la commande BED_MESH_CALIBRATE pour lancer le nivellement automatique du lit chauffant.
Configuration du refroidissement (exemple avec un ventilateur)
[fan] pin: P2.4
Dans cet exemple, la section fan configure un ventilateur et spécifie la broche à laquelle il est connecté.
Ces exemples illustrent comment le fichier printer.cfg de Klipper permet de configurer en détail les composants et le comportement de votre imprimante 3D, offrant ainsi une flexibilité totale pour adapter votre imprimante à vos besoins spécifiques.
Exemple de printer.cfg complet et detaillé pour une imprimante Artillery Sidewinder X2 :
#########################################################################################################################################################
# #
# FICHIER CONFIGURATION IMPRIMANTE : printer.cfg #
# #
# Version 1.3 30/07/20203 #
# #
# Offert par Papy 3D's Factory 25/05/2023 #
# #
#########################################################################################################################################################
[include mainsail.cfg]
[pause_resume]
[display_status]
###########################################################################
# Chemin d'accès au virtual sdcard #
###########################################################################
[virtual_sdcard]
path: ~/printer_data/gcodes
on_error_gcode: CANCEL_PRINT
###########################################################################
# Définition du port COM de l'imprimante #
###########################################################################
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f401xc_10001A001350435436313420-if00
restart_method: command
###########################################################################
# Définition du Btt Pi #
###########################################################################
[mcu BttPi]
serial: /tmp/klipper_host_mcu
###########################################################################
# Définition et activation du capteur ADXL345 (Input Shaper) #
###########################################################################
# décommenter la ligne suivante pour activer le capteur adxl345 (btt)
# la commenter quand innutilisé
# [include Btt_ADXL345.cfg]
###########################################################################
# Définition de l'IMPRIMANTE #
###########################################################################
[printer]
kinematics: cartesian
max_velocity: 500
# max_accel calculé par le capteur adxl (prendre la valeur la plus faible recommandée entre le résultat de x et y)
max_accel: 2400
# Par défaut le max_accel_to_decel est la moitié de max_accel
max_accel_to_decel: 1200
max_z_velocity: 10
max_z_accel: 100
# square_corner_velocity par defaut 5.0
square_corner_velocity: 5.0
###########################################################################
# Définition de l'extrudeur plus réglage extrusion #
###########################################################################
[include extrudeur.cfg]
###########################################################################
# Adressage des moteurs X Y et Z #
###########################################################################
[stepper_x]
step_pin: !PB14
dir_pin: PB13
enable_pin: !PB15
microsteps: 16
###rotation_distance: 39.94
rotation_distance: 39.8801
endstop_pin: !PA2
position_endstop: 0
position_max: 300
homing_speed: 100
second_homing_speed: 10
[stepper_y]
step_pin: PB10
dir_pin: PB2
enable_pin: !PB12
microsteps: 16
###rotation_distance: 39.94
rotation_distance: 40.0998
endstop_pin: !PA1
position_endstop: 0
position_max: 300
homing_speed: 100
second_homing_speed: 10
[stepper_z]
step_pin: PB0
dir_pin: !PC5
enable_pin: !PB1
microsteps: 16
###rotation_distance: 7.96
rotation_distance: 8.1188
endstop_pin: probe:z_virtual_endstop
position_max: 400
position_min: -2.5
homing_speed: 25
second_homing_speed: 10
# [stepper_z1]
# step_pin: PA4
# dir_pin: !PA3
# enable_pin: !PA5
# microsteps: 16
# rotation_distance: 7.96
# endstop_pin: probe:z_virtual_endstop
###########################################################################
# Adressage du Bed #
###########################################################################
[heater_bed]
heater_pin: PA8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC1
min_temp: 0
max_temp: 130
#############################################################################
# Adressage des ventillateurs plus capteur de temperature de la carte mère # #
#############################################################################
[fan]
#pin: PC6
pin: PC8
[heater_fan hotend_fan]
pin: PC7
heater: extruder
heater_temp: 50.0
[controller_fan stepper_fan]
pin: PC6
idle_timeout: 300
[temperature_sensor Imprimante]
sensor_type: temperature_mcu
min_temp: 10
max_temp: 60
[temperature_sensor Btt-pi]
sensor_type: temperature_host
###########################################################################
# Adressage du BLtouch #
###########################################################################
[bltouch]
sensor_pin: PC2
control_pin: PC3
x_offset:27.25
y_offset:-12.8
#z_offset: 0.45
speed:5
samples: 6
samples_tolerance: 0.060
samples_tolerance_retries: 3
samples_result:average
###########################################################################
# Adressage de la LED NEOPIXEL (Extrudeur) #
###########################################################################
[neopixel extruder]
pin: PB7
initial_RED: 1.0
initial_GREEN: 1.0
initial_BLUE: 1.0
###########################################################################
# Adressage du Capteur de fin de fillament sur le z end stop #
###########################################################################
[filament_switch_sensor RunoutSensor]
switch_pin: PA0
pause_on_runout: True
runout_gcode:
M117 FIN DE FILLAMENT DETECTE
SET_LED LED=extruder RED=1 GREEN=0 BLUE=0 WHITE=0 transmit=1
PAUSE
insert_gcode:
M117 NOUVEAU FILLAMENT DETECTE
SET_LED LED=extruder RED=0 GREEN=1 BLUE=0 WHITE=0 transmit=1
###########################################################################
# Définition du Bed pour le BED MESH et réglage des vis #
###########################################################################
[bed_mesh]
speed: 90
mesh_min: 27.25, 12.8
mesh_max: 272.75, 287.2
algorithm: bicubic
probe_count: 5, 5
mesh_pps: 2, 2
fade_start: 1
fade_end: 10
fade_target: 0
[bed_screws]
screw1: 50,50
screw1_name: front left
screw2: 250,50
screw2_name: front right
screw3: 250,250
screw3_name: back right
screw4: 50,250
screw4_name: back left
speed: 100.0
[screws_tilt_adjust]
screw1: 23,63
screw1_name: front left
screw2: 223,63
screw2_name: front right
screw3: 223,263
screw3_name: back right
screw4: 23,263
screw4_name: back left
speed: 100.0
screw_thread: CW-M5
###########################################################################
# Position du Safe Z Home #
###########################################################################
[safe_z_home]
home_xy_position: 150,150
speed: 60
z_hop: 20
z_hop_speed: 5
###########################################################################
# Input Shaper #
###########################################################################
#[input_shaper]
#accel max y 2400
#shaper_type_y = mzv
#shaper_freq_y = 28.8
#accel max x 9300
#shaper_type_x = mzv
#shaper_freq_x = 56.2
#####################################################################################
# Un arc sera divisé en segments. La longueur de chaque segment sera égale à #
# la résolution en mm définie ci-dessus. Des valeurs plus faibles produiront un #
# arc plus fin, mais également plus de travail de votre machine. Les arcs plus #
# petits que la valeur configurée deviendront des lignes droites. La valeur par #
# défaut est 1 mm. #
#####################################################################################
[gcode_arcs]
#resolution: 1.0
resolution: 0.1
###########################################################################
# Chargement des Macros #
###########################################################################
[include Macro/Macro_Systeme.cfg]
[include Macro/End_Print.cfg]
[include Macro/Filament_Change_M600.cfg]
[include Macro/Input_Shaper.cfg]
[include Macro/Led_Extrudeur_On_Off.cfg]
[include Macro/Load_UnLoad_filament.cfg]
[include Macro/Material_Pressure_Advance.cfg]
[include Macro/Pid.cfg]
[include Macro/Position_Neutre.cfg]
[include Macro/Reglage_Bed.cfg]
[include Macro/Start_Print.cfg]
[include Macro/Z_offset.cfg]
[include Macro/gcode_calibration.cfg]
[include timelapse.cfg]
[display_status]
[pause_resume]
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [bltouch]
#*# z_offset = 0.329
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 20.629
#*# pid_ki = 1.196
#*# pid_kd = 88.962
#*#
#*# [input_shaper]
#*# shaper_type_x = mzv
#*# shaper_freq_x = 54.6
#*# shaper_type_y = mzv
#*# shaper_freq_y = 28.4
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 58.576
#*# pid_ki = 0.572
#*# pid_kd = 1500.285
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 0.021558, 0.048092, 0.085819, 0.111523, 0.088306
#*# 0.078356, 0.035240, 0.010779, -0.000829, -0.028192
#*# 0.124375, 0.101573, 0.072552, 0.010779, -0.053481
#*# 0.080429, 0.065919, 0.057627, 0.011608, -0.028192
#*# 0.001658, 0.010779, 0.049750, 0.032752, 0.004560
#*# x_count = 5
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = bicubic
#*# tension = 0.2
#*# min_x = 27.25
#*# max_x = 272.73
#*# min_y = 12.8
#*# max_y = 287.15999999999997
Comment éditer le fichier printer.cfg ?
Pour éditer le fichier printer.cfg, vous pouvez utiliser un éditeur de texte simple tel que Notepad++ ou Visual Studio Code. Il est crucial de faire des sauvegardes régulières du fichier et de le sauvegarder avec l’encodage UTF-8 pour éviter les problèmes de compatibilité.
Lorsque vous apportez des modifications, assurez-vous de respecter la syntaxe et la structure du fichier. Une simple erreur de syntaxe peut entraîner des problèmes de fonctionnement de votre imprimante.
Une fois que vous avez modifié le fichier printer.cfg, vous devez redémarrer Klipper pour que les modifications prennent effet.
Conclusion
Le fichier printer.cfg est un élément fondamental de la configuration de Klipper pour les imprimantes 3D.
Il vous permet de personnaliser en profondeur le comportement de votre imprimante en définissant des paramètres pour la carte mère, les moteurs, les capteurs, le lit chauffant, l’extrudeur et bien plus encore.
La compréhension de ce fichier est essentielle pour tirer le meilleur parti de Klipper et pour adapter votre imprimante 3D à vos besoins spécifiques.
Cependant, assurez-vous de prendre des précautions lors de la modification de ce fichier pour éviter toute erreur qui pourrait entraîner des problèmes de fonctionnement de votre imprimante.
La documentation complète de Klipper est disponible sur le site Web de Klipper.
Ressources
Il existe de nombreuses ressources disponibles pour aider les utilisateurs à configurer Klipper. Voici quelques-unes des ressources les plus populaires :
- Forum Klipper : forum communautaire où les utilisateurs peuvent poser des questions et obtenir de l’aide.
- Discord Klipper : serveur Discord où les utilisateurs peuvent discuter en temps réel.
- Guide de configuration Klipper : guide étape par étape pour configurer Klipper.
- Exemples de configuration Klipper : répertoire GitHub contenant des exemples de configuration pour différentes imprimantes.
