diff --git a/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc b/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc index 742d4cb76..61afded1c 100644 Binary files a/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc and b/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc differ diff --git a/fr/404.html b/fr/404.html index 983873941..0be445f44 100644 --- a/fr/404.html +++ b/fr/404.html @@ -445,7 +445,7 @@
Ce document décrit le module [axis_twist_compensation].
Some printers may have a small twist in their X rail which can skew the results of a probe attached to the X carriage. This is common in printers with designs like the Prusa MK3, Sovol SV06 etc and is further described under probe location bias. It may result in probe operations such as Bed Mesh, Screws Tilt Adjust, Z Tilt Adjust etc returning inaccurate representations of the bed.
-This module uses manual measurements by the user to correct the probe's results. Note that if your axis is significantly twisted it is strongly recommended to first use mechanical means to fix it prior to applying software corrections.
+Ce module utilise des mesures manuelles effectuées par l'utilisateur afin de corriger les résultats de la sonde. Notez que si votre axe est significativement tordu il est fortement recommandé d'utiliser en premier lieu des moyens mécaniques pour le corriger avant d'utiliser des solutions logicielles.
Warning: This module is not compatible with dockable probes yet and will try to probe the bed without attaching the probe if you use it.
diff --git a/fr/BLTouch.html b/fr/BLTouch.html index e0b72840d..19950c6fa 100644 --- a/fr/BLTouch.html +++ b/fr/BLTouch.html @@ -452,7 +452,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1367,7 +1367,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Beaglebone.html b/fr/Beaglebone.html index 7321487c7..c0bf18f25 100644 --- a/fr/Beaglebone.html +++ b/fr/Beaglebone.html @@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1386,7 +1386,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Bed_Level.html b/fr/Bed_Level.html index ab418745c..acc5aab64 100644 --- a/fr/Bed_Level.html +++ b/fr/Bed_Level.html @@ -452,7 +452,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1332,7 +1332,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Bed_Mesh.html b/fr/Bed_Mesh.html index 3ae3a697f..1e30b40f2 100644 --- a/fr/Bed_Mesh.html +++ b/fr/Bed_Mesh.html @@ -452,7 +452,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1555,7 +1555,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Benchmarks.html b/fr/Benchmarks.html index 148f86b98..8b45c4424 100644 --- a/fr/Benchmarks.html +++ b/fr/Benchmarks.html @@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1462,7 +1462,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Bootloader_Entry.html b/fr/Bootloader_Entry.html index 3ef50fc33..99c8c2305 100644 --- a/fr/Bootloader_Entry.html +++ b/fr/Bootloader_Entry.html @@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1416,7 +1416,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Bootloaders.html b/fr/Bootloaders.html index 62814bd61..46a158e27 100644 --- a/fr/Bootloaders.html +++ b/fr/Bootloaders.html @@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1488,7 +1488,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/CANBUS.html b/fr/CANBUS.html index 7b9c41d33..e479eba27 100644 --- a/fr/CANBUS.html +++ b/fr/CANBUS.html @@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1358,7 +1358,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/CANBUS_Troubleshooting.html b/fr/CANBUS_Troubleshooting.html index dcdbf84dd..6d0d35fff 100644 --- a/fr/CANBUS_Troubleshooting.html +++ b/fr/CANBUS_Troubleshooting.html @@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1357,7 +1357,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/CANBUS_protocol.html b/fr/CANBUS_protocol.html index e3800621c..789313a44 100644 --- a/fr/CANBUS_protocol.html +++ b/fr/CANBUS_protocol.html @@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1357,7 +1357,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/CONTRIBUTING.html b/fr/CONTRIBUTING.html index 438457a4e..7fe99a246 100644 --- a/fr/CONTRIBUTING.html +++ b/fr/CONTRIBUTING.html @@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1357,7 +1357,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Code_Overview.html b/fr/Code_Overview.html index c1244a463..738f8b46e 100644 --- a/fr/Code_Overview.html +++ b/fr/Code_Overview.html @@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1372,7 +1372,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Command_Templates.html b/fr/Command_Templates.html index ac399649e..43b738061 100644 --- a/fr/Command_Templates.html +++ b/fr/Command_Templates.html @@ -452,7 +452,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1408,7 +1408,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Config_Changes.html b/fr/Config_Changes.html index a8ca4bff2..1d15721a0 100644 --- a/fr/Config_Changes.html +++ b/fr/Config_Changes.html @@ -491,7 +491,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1314,7 +1314,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Config_Reference.html b/fr/Config_Reference.html index ec32dadc3..a2e787d23 100644 --- a/fr/Config_Reference.html +++ b/fr/Config_Reference.html @@ -452,7 +452,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -2587,7 +2587,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault @@ -5620,7 +5620,7 @@ sensor_type: ldc1612[axis_twist_compensation]¶
-A tool to compensate for inaccurate probe readings due to twist in X or Y gantry. See the Axis Twist Compensation Guide for more detailed information regarding symptoms, configuration and setup.
+PROBE
diff --git a/fr/Config_checks.html b/fr/Config_checks.html index b90abbe84..6d3f1217e 100644 --- a/fr/Config_checks.html +++ b/fr/Config_checks.html @@ -452,7 +452,7 @@[axis_twist_compensation] #speed: 50 # The speed (in mm/s) of non-probing moves during the calibration. @@ -8115,7 +8115,7 @@ cs_pin:- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1372,7 +1372,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Contact.html b/fr/Contact.html index edf5340f2..1d6d4abd5 100644 --- a/fr/Contact.html +++ b/fr/Contact.html @@ -540,7 +540,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1363,7 +1363,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Debugging.html b/fr/Debugging.html index f479c6594..9f545562c 100644 --- a/fr/Debugging.html +++ b/fr/Debugging.html @@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1371,7 +1371,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Delta_Calibrate.html b/fr/Delta_Calibrate.html index f6b168ba3..1662e3782 100644 --- a/fr/Delta_Calibrate.html +++ b/fr/Delta_Calibrate.html @@ -452,7 +452,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1352,7 +1352,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Eddy_Probe.html b/fr/Eddy_Probe.html index b3527e6bb..c6fd72928 100644 --- a/fr/Eddy_Probe.html +++ b/fr/Eddy_Probe.html @@ -13,7 +13,7 @@ -Eddy Current Inductive probe - Documentation Klipper +Sonde inductive à courants de Foucault - Documentation Klipper @@ -74,7 +74,7 @@- + Aller au contenu @@ -106,7 +106,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault@@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1284,12 +1284,12 @@ - Eddy Current Inductive probe + Sonde inductive à courants de Foucault @@ -1394,9 +1394,9 @@ -Eddy Current Inductive probe¶
-This document describes how to use an eddy current inductive probe in Klipper.
-Currently, an eddy current probe can not be used for Z homing. The sensor can only be used for Z probing.
+Sonde inductive à courants de Foucault¶
+Ce document décrit comment utiliser une sonde inductive à courants de Foucault dans Klipper.
+Actuellement, une sonde à courants de Foucault ne peut pas être utilisée pour une mise à zéro du Z . Le capteur ne peut être utilisé que pour le palpage Z.
Start by declaring a probe_eddy_current config section in the printer.cfg file. It is recommended to set the
z_offsetto 0.5mm. It is typical for the sensor to require anx_offsetandy_offset. If these values are not known, one should estimate the values during initial calibration.The first step in calibration is to determine the appropriate DRIVE_CURRENT for the sensor. Home the printer and navigate the toolhead so that the sensor is near the center of the bed and is about 20mm above the bed. Then issue an
LDC_CALIBRATE_DRIVE_CURRENT CHIP=<config_name>command. For example, if the config section was named[probe_eddy_current my_eddy_probe]then one would runLDC_CALIBRATE_DRIVE_CURRENT CHIP=my_eddy_probe. This command should complete in a few seconds. After it completes, issue aSAVE_CONFIGcommand to save the results to the printer.cfg and restart.The second step in calibration is to correlate the sensor readings to the corresponding Z heights. Home the printer and navigate the toolhead so that the nozzle is near the center of the bed. Then run an
diff --git a/fr/Endstop_Phase.html b/fr/Endstop_Phase.html index 4828e2aad..6996ce752 100644 --- a/fr/Endstop_Phase.html +++ b/fr/Endstop_Phase.html @@ -452,7 +452,7 @@PROBE_EDDY_CURRENT_CALIBRATE CHIP=my_eddy_probecommand. Once the tool starts, follow the steps described at "the paper test" to determine the actual distance between the nozzle and bed at the given location. Once those steps are complete one canACCEPTthe position. The tool will then move the the toolhead so that the sensor is above the point where the nozzle used to be and run a series of movements to correlate the sensor to Z positions. This will take a couple of minutes. After the tool completes, issue aSAVE_CONFIGcommand to save the results to the printer.cfg and restart.- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1331,7 +1331,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Example_Configs.html b/fr/Example_Configs.html index e6ccd9f38..3a2b57023 100644 --- a/fr/Example_Configs.html +++ b/fr/Example_Configs.html @@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1316,7 +1316,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Exclude_Object.html b/fr/Exclude_Object.html index 0b7305f55..db08d724d 100644 --- a/fr/Exclude_Object.html +++ b/fr/Exclude_Object.html @@ -452,7 +452,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1343,7 +1343,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/FAQ.html b/fr/FAQ.html index 9303c0d0d..017bccc25 100644 --- a/fr/FAQ.html +++ b/fr/FAQ.html @@ -652,7 +652,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1475,7 +1475,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Features.html b/fr/Features.html index 8c2a442de..1d51c0666 100644 --- a/fr/Features.html +++ b/fr/Features.html @@ -498,7 +498,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1321,7 +1321,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/G-Codes.html b/fr/G-Codes.html index 675f6a49e..bdb86fc81 100644 --- a/fr/G-Codes.html +++ b/fr/G-Codes.html @@ -452,7 +452,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -2993,7 +2993,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault @@ -4799,7 +4799,7 @@ACCELEROMETER_DEBUG_READ¶
ACCELEROMETER_DEBUG_READ [CHIP=<nom_de_la_configuration>] REG=<registre>: interroge le registre ADXL345 "registre" (par exemple 44 ou 0x2C). Peut être utile à des fins de débogage.ACCELEROMETER_DEBUG_WRITE¶
-+
ACCELEROMETER_DEBUG_WRITE [CHIP=<nom_de_la_configuration>] REG=<registre> VAL=<valeur>: Ecrit la "valeur" brute dans le registre "registre". La "valeur" et le "registre" peuvent être des entiers décimaux ou hexadécimaux. A utiliser avec précaution, et se référer à la fiche technique de l'ADXL345 pour la référence.
ACCELEROMETER_DEBUG_WRITE [CHIP=<nom_de_la_configuration>] REG=<registre> VAL=<valeur>: Ecrit la "valeur" brute dans le registre "registre". La "valeur" et le "registre" peuvent être des entiers décimaux ou hexadécimaux. À utiliser avec précaution, et se référer à la fiche technique de l'ADXL345 pour la référence.[angle]¶
Les commandes suivantes sont disponibles lorsqu'une section angle config est activée.
ANGLE_CALIBRATE¶
diff --git a/fr/Hall_Filament_Width_Sensor.html b/fr/Hall_Filament_Width_Sensor.html index be89a1d40..f288ab154 100644 --- a/fr/Hall_Filament_Width_Sensor.html +++ b/fr/Hall_Filament_Width_Sensor.html @@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1344,7 +1344,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault @@ -1518,13 +1518,13 @@ index: 1 - +Suivant - Eddy Current Inductive probe + Sonde inductive à courants de Foucaultdiff --git a/fr/Installation.html b/fr/Installation.html index ce2bdd516..b7cbc6b19 100644 --- a/fr/Installation.html +++ b/fr/Installation.html @@ -530,7 +530,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1353,7 +1353,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault @@ -1582,13 +1582,13 @@ serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 - +Suivant - OctoPrint for Klipper + OctoPrint pour Klipperdiff --git a/fr/Kinematics.html b/fr/Kinematics.html index c794d4d90..b7b682d57 100644 --- a/fr/Kinematics.html +++ b/fr/Kinematics.html @@ -450,7 +450,7 @@diff --git a/fr/Status_Reference.html b/fr/Status_Reference.html index b29e7f08b..d6d3f4992 100644 --- a/fr/Status_Reference.html +++ b/fr/Status_Reference.html @@ -452,7 +452,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1398,7 +1398,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/MCU_Commands.html b/fr/MCU_Commands.html index 36e26a053..a10bfc429 100644 --- a/fr/MCU_Commands.html +++ b/fr/MCU_Commands.html @@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1370,7 +1370,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Manual_Level.html b/fr/Manual_Level.html index 038ac64d3..63fc00c5c 100644 --- a/fr/Manual_Level.html +++ b/fr/Manual_Level.html @@ -452,7 +452,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1345,7 +1345,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Measuring_Resonances.html b/fr/Measuring_Resonances.html index dc08d5666..976beb95f 100644 --- a/fr/Measuring_Resonances.html +++ b/fr/Measuring_Resonances.html @@ -452,7 +452,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1582,7 +1582,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Multi_MCU_Homing.html b/fr/Multi_MCU_Homing.html index 2d4ad5d6f..fec7c8de0 100644 --- a/fr/Multi_MCU_Homing.html +++ b/fr/Multi_MCU_Homing.html @@ -452,7 +452,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1285,7 +1285,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Navigation.html b/fr/Navigation.html index d66fbefa7..3b4430f00 100644 --- a/fr/Navigation.html +++ b/fr/Navigation.html @@ -445,7 +445,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1268,7 +1268,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/OctoPrint.html b/fr/OctoPrint.html index bba1b201c..d31ae0e3b 100644 --- a/fr/OctoPrint.html +++ b/fr/OctoPrint.html @@ -13,7 +13,7 @@ -OctoPrint for Klipper - Documentation Klipper +OctoPrint pour Klipper - Documentation Klipper @@ -74,7 +74,7 @@- + Aller au contenu @@ -106,7 +106,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper@@ -463,12 +463,12 @@ - OctoPrint for Klipper + OctoPrint pour Klipper @@ -487,8 +487,8 @@
- - - Install with OctoPi + + Installer avec OctoPi
@@ -1332,7 +1332,7 @@- - Eddy Current Inductive probe + Sonde inductive à courants de Foucault
@@ -1387,8 +1387,8 @@
- - - Install with OctoPi + + Installer avec OctoPi
@@ -1424,9 +1424,9 @@ -OctoPrint for Klipper¶
-Klipper has a few options for its front ends, Octoprint was the first and original front end for Klipper. This document will give a brief overview of installing with this option.
-Install with OctoPi¶
+OctoPrint pour Klipper¶
+Klipper possède quelques nouvelles options pour ses frontaux, Octoprint était le premier et le frontal original pour Klipper. Ce document donne une brève aperçue de l'installation avec cette option.
+Installer avec OctoPi¶
Start by installing OctoPi on the Raspberry Pi computer. Use OctoPi v0.17.0 or later - see the OctoPi releases for release information.
One should verify that OctoPi boots and that the OctoPrint web server works. After connecting to the OctoPrint web page, follow the prompt to upgrade OctoPrint if needed.
After installing OctoPi and upgrading OctoPrint, it will be necessary to ssh into the target machine to run a handful of system commands.
diff --git a/fr/Overview.html b/fr/Overview.html index 9ab7b7f29..6fe5429c1 100644 --- a/fr/Overview.html +++ b/fr/Overview.html @@ -512,7 +512,7 @@- - OctoPrint for Klipper + OctoPrint pour Klipper
@@ -1335,7 +1335,7 @@- - Eddy Current Inductive probe + Sonde inductive à courants de Foucault
diff --git a/fr/Packaging.html b/fr/Packaging.html index 3e7b1ca9f..5762fafe8 100644 --- a/fr/Packaging.html +++ b/fr/Packaging.html @@ -450,7 +450,7 @@- - OctoPrint for Klipper + OctoPrint pour Klipper
@@ -1337,7 +1337,7 @@- - Eddy Current Inductive probe + Sonde inductive à courants de Foucault
diff --git a/fr/Pressure_Advance.html b/fr/Pressure_Advance.html index 78b10ecce..709f14788 100644 --- a/fr/Pressure_Advance.html +++ b/fr/Pressure_Advance.html @@ -452,7 +452,7 @@- - OctoPrint for Klipper + OctoPrint pour Klipper
@@ -1323,7 +1323,7 @@- - Eddy Current Inductive probe + Sonde inductive à courants de Foucault
diff --git a/fr/Probe_Calibrate.html b/fr/Probe_Calibrate.html index 6fe524d77..f5a13909e 100644 --- a/fr/Probe_Calibrate.html +++ b/fr/Probe_Calibrate.html @@ -452,7 +452,7 @@- - OctoPrint for Klipper + OctoPrint pour Klipper
@@ -1346,7 +1346,7 @@- - Eddy Current Inductive probe + Sonde inductive à courants de Foucault
diff --git a/fr/Protocol.html b/fr/Protocol.html index b0a115001..c61a61f1e 100644 --- a/fr/Protocol.html +++ b/fr/Protocol.html @@ -450,7 +450,7 @@- - OctoPrint for Klipper + OctoPrint pour Klipper
@@ -1424,7 +1424,7 @@- - Eddy Current Inductive probe + Sonde inductive à courants de Foucault
diff --git a/fr/RPi_microcontroller.html b/fr/RPi_microcontroller.html index 2207f328d..78b00a291 100644 --- a/fr/RPi_microcontroller.html +++ b/fr/RPi_microcontroller.html @@ -450,7 +450,7 @@- - OctoPrint for Klipper + OctoPrint pour Klipper
@@ -1365,7 +1365,7 @@- - Eddy Current Inductive probe + Sonde inductive à courants de Foucault
diff --git a/fr/Releases.html b/fr/Releases.html index 5dcfe9d9b..7171e84e4 100644 --- a/fr/Releases.html +++ b/fr/Releases.html @@ -567,7 +567,7 @@- - OctoPrint for Klipper + OctoPrint pour Klipper
@@ -1390,7 +1390,7 @@- - Eddy Current Inductive probe + Sonde inductive à courants de Foucault
diff --git a/fr/Resonance_Compensation.html b/fr/Resonance_Compensation.html index 01ce9c67f..060c777fc 100644 --- a/fr/Resonance_Compensation.html +++ b/fr/Resonance_Compensation.html @@ -452,7 +452,7 @@- - OctoPrint for Klipper + OctoPrint pour Klipper
@@ -1441,7 +1441,7 @@- - Eddy Current Inductive probe + Sonde inductive à courants de Foucault
diff --git a/fr/Rotation_Distance.html b/fr/Rotation_Distance.html index 1156ceb6c..5bf8b051c 100644 --- a/fr/Rotation_Distance.html +++ b/fr/Rotation_Distance.html @@ -452,7 +452,7 @@- - OctoPrint for Klipper + OctoPrint pour Klipper
@@ -1366,7 +1366,7 @@- - Eddy Current Inductive probe + Sonde inductive à courants de Foucault
diff --git a/fr/SDCard_Updates.html b/fr/SDCard_Updates.html index b039770ed..8b953baa5 100644 --- a/fr/SDCard_Updates.html +++ b/fr/SDCard_Updates.html @@ -450,7 +450,7 @@- - OctoPrint for Klipper + OctoPrint pour Klipper
@@ -1371,7 +1371,7 @@- - Eddy Current Inductive probe + Sonde inductive à courants de Foucault
diff --git a/fr/Skew_Correction.html b/fr/Skew_Correction.html index e34feea88..9b8283abc 100644 --- a/fr/Skew_Correction.html +++ b/fr/Skew_Correction.html @@ -452,7 +452,7 @@- - OctoPrint for Klipper + OctoPrint pour Klipper
@@ -1344,7 +1344,7 @@- - Eddy Current Inductive probe + Sonde inductive à courants de Foucault
diff --git a/fr/Slicers.html b/fr/Slicers.html index d450c4f7c..71777bade 100644 --- a/fr/Slicers.html +++ b/fr/Slicers.html @@ -452,7 +452,7 @@- - OctoPrint for Klipper + OctoPrint pour Klipper
@@ -1365,7 +1365,7 @@- - Eddy Current Inductive probe + Sonde inductive à courants de Foucault
diff --git a/fr/Sponsors.html b/fr/Sponsors.html index b78bf01d5..425a61d46 100644 --- a/fr/Sponsors.html +++ b/fr/Sponsors.html @@ -450,7 +450,7 @@- - OctoPrint for Klipper + OctoPrint pour Klipper
@@ -1273,7 +1273,7 @@- - Eddy Current Inductive probe + Sonde inductive à courants de Foucault
@@ -1513,7 +1513,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1626,7 +1626,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/TMC_Drivers.html b/fr/TMC_Drivers.html index 79583665e..03147f4a3 100644 --- a/fr/TMC_Drivers.html +++ b/fr/TMC_Drivers.html @@ -452,7 +452,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1522,7 +1522,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/TSL1401CL_Filament_Width_Sensor.html b/fr/TSL1401CL_Filament_Width_Sensor.html index ae81fbfee..b8c5b3d63 100644 --- a/fr/TSL1401CL_Filament_Width_Sensor.html +++ b/fr/TSL1401CL_Filament_Width_Sensor.html @@ -450,7 +450,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1323,7 +1323,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/Using_PWM_Tools.html b/fr/Using_PWM_Tools.html index f0270ca38..65dcaec7a 100644 --- a/fr/Using_PWM_Tools.html +++ b/fr/Using_PWM_Tools.html @@ -452,7 +452,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1337,7 +1337,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc b/fr/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc index 742d4cb76..61afded1c 100644 Binary files a/fr/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc and b/fr/_klipper3d/__pycache__/mkdocs_hooks.cpython-38.pyc differ diff --git a/fr/index.html b/fr/index.html index 13faa9a2b..3b04cd5d9 100644 --- a/fr/index.html +++ b/fr/index.html @@ -447,7 +447,7 @@- OctoPrint for Klipper + OctoPrint pour Klipper @@ -1270,7 +1270,7 @@- Eddy Current Inductive probe + Sonde inductive à courants de Foucault diff --git a/fr/search/search_index.json b/fr/search/search_index.json index b215040df..24bc6b299 100644 --- a/fr/search/search_index.json +++ b/fr/search/search_index.json @@ -1 +1 @@ -{"config":{"indexing":"full","lang":["fr"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"index.html","text":"Klipper est un microprogramme pour imprimante 3D. Il combine la puissance d'un ordinateur classique avec un ou plusieurs microcontr\u00f4leurs. Consultez le document Fonctionnalit\u00e9s pour plus d'informations sur les raisons pour lesquelles vous devriez utiliser Klipper. Pour commencer \u00e0 utiliser Klipper, commencez par effectuer l' installation . Klipper est un logiciel libre. Lisez la documentation ou consultez le code de Klipper sur github . Nous d\u00e9pendons du soutien g\u00e9n\u00e9reux de nos sponsors .","title":"Bienvenue"},{"location":"API_Server.html","text":"Serveur API \u00b6 Ce document d\u00e9crit l'Interface de Programmation d'Applications (API) de Klipper. Cette interface permet \u00e0 des applications externes d'interroger et de contr\u00f4ler Klipper. Activer le socket API \u00b6 Pour pouvoir utiliser les Serveur API, le logiciel h\u00f4te klippy.py doit \u00eatre d\u00e9marr\u00e9 avec le param\u00e8tre -a . Par exemple : ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -a /tmp/klippy_uds -l /tmp/klippy.log Cela force le logiciel h\u00f4te \u00e0 cr\u00e9er un socket de domaine Unix. Un client peut alors ouvrir une connexion sur ce socket et envoyer des commandes \u00e0 Klipper. Voir le projet Moonraker pour un outil populaire qui peut transf\u00e9rer les requ\u00eates HTTP vers le socket du serveur d'API de Klipper. Format de la demande \u00b6 Les messages envoy\u00e9s et re\u00e7us sur le socket sont des cha\u00eenes au format JSON et termin\u00e9es par le caract\u00e8re ASCII 0x03 :<0x03> <0x03>... Klipper contiens un outil scripts/whconsole.py qui peut effectuer la mise en forme du message ci-dessus. Par exemple : ~/klipper/scripts/whconsole.py /tmp/klippy_uds Cet outil peut lire une s\u00e9rie de commandes JSON \u00e0 partir de l'entr\u00e9e standard stdin, les envoyer \u00e0 Klipper et afficher les r\u00e9sultats. Cet outil s'attend \u00e0 avoir une commande JSON par ligne et il ajoute automatiquement le terminateur 0x03 avant d'envoyer les requ\u00eates. (Le serveur d'API de Klipper ne attend pas un saut de ligne.) Protocole de l'API \u00b6 Le protocole de commande utilis\u00e9 sur le socket de communications est inspir\u00e9 par json-rpc . Une requ\u00eate pourrait ressembler \u00e0 \u00e7a : {\"id\": 123, \"method\": \"info\", \"params\": {}} et une r\u00e9ponse pourrait ressembler \u00e0 \u00e7a : {\"id\": 123, \"result\": {\"state_message\": \"Printer is ready\", \"klipper_path\": \"/home/pi/klipper\", \"config_file\": \"/home/pi/printer.cfg\", \"software_version\": \"v0.8.0-823-g883b1cb6\", \"hostname\": \"octopi\", \"cpu_info\": \"4 core ARMv7 Processor rev 4 (v7l)\", \"state\": \"ready\", \"python_path\": \"/home/pi/klippy-env/bin/python\", \"log_file\": \"/tmp/klippy.log\"}} Toutes les requ\u00eates doivent \u00eatre un dictionnaire JSON. (Ce document utilise le terme Python 'dictionary' pour d\u00e9crire un objet JSON - une affectation de paires Cl\u00e9/Valeur comprises en deux parenth\u00e8ses {} .) le dictionnaire de requ\u00eate doit contenir un param\u00e8tre \"m\u00e9thode\" disponible dans les \"points de terminaison\" de Klipper. Le dictionnaire de requ\u00eate peut contenir un param\u00e8tre \"params\" qui doit \u00eatre de type dictionnaire. Les \"params\" fournissent des informations de param\u00e8tre suppl\u00e9mentaires au \"endpoint\" Klipper qui traite la demande. Son contenu est sp\u00e9cifique au \"endpoint\". Le dictionnaire de requ\u00eate peut contenir un param\u00e8tre \"id\" qui peut \u00eatre de n'importe quel type JSON. Si \"id\" est pr\u00e9sent, alors Klipper r\u00e9pondra \u00e0 la demande avec une r\u00e9ponse contenant cet \"id\". Si \"id\" est omis (ou d\u00e9fini sur une valeur JSON \"null\"), Klipper ne fournira aucune r\u00e9ponse \u00e0 la requ\u00eate. Un message de r\u00e9ponse est un dictionnaire JSON contenant \"id\" et \"result\". Le \"r\u00e9sultat\" est toujours un dictionnaire - son contenu est sp\u00e9cifique au \"endpoint\" traitant la demande. Si le traitement d'un requ\u00eate est en erreur, le message de r\u00e9ponse contiendra un champ \"error\" au lieu de \"result\". Par exemple, la requ\u00eate : {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G1 X200\"}} pourrait retourner une erreur telle que :: {\"id\": 123, \"error\": {\"message\": \"Must home axis first: 200.000 0.000 0.000 [0.000]\", \"error\": \"WebRequestError\"}} Klipper traite toujours les demandes dans l'ordre de leur r\u00e9ception. Cependant, certaines requ\u00eates peuvent ne pas se terminer imm\u00e9diatement, ce qui peut entra\u00eener l'envoi de la r\u00e9ponse associ\u00e9e dans le d\u00e9sordre par rapport aux r\u00e9ponses d'autres requ\u00eates. Une requ\u00eate JSON ne suspend jamais le traitement des requ\u00eates JSON suivantes. Abonnements \u00b6 Certains \"endpoint\" de Klipper autorisent un \"abonnement\" pour de futurs messages asynchrone de mise \u00e0 jour. Par exemple : {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{\"key\": 345}}} Peut r\u00e9pondre dans un premier temps : {\"id\": 123, \"result\": {}} et faire en sorte que Klipper envoie de futurs messages similaires \u00e0 : {\"params\": {\"response\": \"ok B:22.8 /0.0 T0:22.4 /0.0\"}, \"key\": 345} Une demande d'abonnement accepte un dictionnaire \"response_template\" dans le champ \"params\" de la demande. Ce dictionnaire \"response_template\" est utilis\u00e9 comme mod\u00e8le pour les futurs messages asynchrones - il peut contenir des paires cl\u00e9/valeur arbitraires. Lors de l'envoi de ces futurs messages asynchrones, Klipper ajoutera un champ \"params\" contenant un dictionnaire avec un contenu sp\u00e9cifique \"endpoint\" au mod\u00e8le de r\u00e9ponse, puis enverra ce mod\u00e8le. Si un champ \"response_template\" n'est pas fourni, il s'agit par d\u00e9faut d'un dictionnaire vide ( {} ). \"endpoints\" disponibles \u00b6 Par convention, les \"endpoints\" de Klipper sont de la forme / . Lors d'une demande \u00e0 un \"endpoint\", le nom complet doit \u00eatre d\u00e9fini dans le param\u00e8tre \"method\" du dictionnaire de requ\u00eate (par exemple, {\"method\"=\"gcode/restart\"} ). Info \u00b6 Le point de terminaison \"info\" est utilis\u00e9 pour obtenir des informations sur le syst\u00e8me et la version de Klipper. Il est \u00e9galement utilis\u00e9 pour fournir les informations de version du client \u00e0 Klipper. Par exemple : {\"id\": 123, \"method\": \"info\", \"params\": { \"client_info\": { \"version\": \"v1\"}}} S'il est pr\u00e9sent, le param\u00e8tre \"client_info\" doit \u00eatre un dictionnaire, mais ce dictionnaire peut avoir un contenu arbitraire. Les clients sont encourag\u00e9s \u00e0 fournir le nom du client et sa version logicielle lors de la premi\u00e8re connexion au serveur API Klipper. arr\u00eat d'urgence \u00b6 Le point de terminaison \"emergency_stop\" est utilis\u00e9 pour demander \u00e0 Klipper de passer \u00e0 un \u00e9tat \"shutdown\". Il se comporte de la m\u00eame mani\u00e8re que la commande G-Code M112 . Par exemple : {\"id\": 123, \"method\": \"emergency_stop\"} register_remote_method \u00b6 Ce point de terminaison permet aux clients d'enregistrer des m\u00e9thodes pouvant \u00eatre appel\u00e9es depuis klipper. Il renverra un objet vide en cas de succ\u00e8s. Par exemple : {\"id\": 123, \"method\": \"register_remote_method\", \"params\": {\"response_template\": {\"action\": \"run_paneldue_beep\"}, \"remote_method\": \"paneldue_beep\"}} renverra : }` La m\u00e9thode distante paneldue_beep peut d\u00e9sormais \u00eatre appel\u00e9e depuis Klipper. Notez que si la m\u00e9thode prend des param\u00e8tres, ils doivent \u00eatre fournis en tant qu'arguments de mots cl\u00e9s. Voici un exemple de la fa\u00e7on dont il peut \u00eatre appel\u00e9 \u00e0 partir d'un gcode_macro : [gcode_macro PANELDUE_BEEP] gcode: {action_call_remote_method(\"paneldue_beep\", frequency=300, duration=1.0)} Lorsque la macro gcode PANELDUE_BEEP est ex\u00e9cut\u00e9e, Klipper enverra ce qui suit sur le socket : {\"action\": \"run_paneldue_beep\", \"params\": {\"frequency\": 300, \"duration\": 1.0}} objects/list \u00b6 Ce point de terminaison remonte la liste des \"objets\" disponibles de l'imprimante que l'on peut interroger (via le point de terminaison \"objects/query\"). Par exemple : {\"id\": 123, \"method\": \"objects/list\"} peut renvoyer : {\"id\": 123, \"result\": {\"objects\": [\" webhooks\", \"configfile\", \"heaters\", \"gcode_move\", \"query_endstops\", \"idle_timeout\", \"toolhead\", \"extruder\"]}} objects/query \u00b6 Ce point de terminaison permet de retrouver des informations \u00e0 partir d'objets de l'imprimante. Par exemple : {\"id\": 123, \"method\": \"objects/query\", \"params\": {\"objects\": {\"toolhead\": [\"position\"], \"webhooks\": null}} } peut renvoyer : {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\", \"state_message\": \"L'imprimante est pr\u00eate\"} , \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3051555.377933684}} Le param\u00e8tre \"objects\" dans la requ\u00eate doit \u00eatre un dictionnaire contenant des objets de l'imprimante \u00e0 interroger - la cl\u00e9 contient le nom de l'objet imprimante et la valeur est soit \"null\" (pour interroger tous les champs) soit une liste de noms de champs. Le message de r\u00e9ponse contiendra un champ \"statut\" contenant un dictionnaire avec les informations demand\u00e9es - la cl\u00e9 contient le nom de l'objet imprimante et la valeur est un dictionnaire contenant ses champs. Le message de r\u00e9ponse contiendra \u00e9galement un champ \"eventtime\" contenant l'horodatage \u00e0 partir duquel la requ\u00eate a \u00e9t\u00e9 prise. Les champs disponibles sont document\u00e9s dans le document R\u00e9f\u00e9rence des \u00e9tats . objects/subscribe \u00b6 Ce point de terminaison permet d'interroger puis de s'abonner \u00e0 des informations provenant d'objets de l'imprimante. La demande et la r\u00e9ponse du point de terminaison sont identiques au point de terminaison \"objects/query\". Par exemple : {\"id\": 123, \"method\": \"objects/subscribe\", \"params\": {\"objects\":{\"toolhead\": [\"position\"], \"webhooks\": [\"state \"]}, \"response_template\":{}}} peut renvoyer : {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"pr\u00eat\" }, \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3052153.382083195}} et entra\u00eener des messages asynchrones ult\u00e9rieurs tels que : {\"params\": {\"status\": {\"webhooks\": {\"state\": \"shutdown\"}}, \"eventtime\": 3052165.418815847}} gcode/help \u00b6 Ce point de terminaison permet de retrouver les commandes G-Code disponibles qui ont une cha\u00eene d'aide d\u00e9finie. Par exemple : {\"id\": 123, \"method\": \"gcode/help\"} peut renvoyer : {\"id\": 123, \"result\": {\"RESTORE_GCODE_STATE\": \"Restaurer un \u00e9tat G-Code pr\u00e9c\u00e9demment enregistr\u00e9\", \"PID_CALIBRATE\": \"Ex\u00e9cuter le test d'\u00e9talonnage PID\", \"QUERY_ADC\": \"Rapport de la derni\u00e8re valeur d'une broche analogique\", ...}} gcode/script \u00b6 Ce point de terminaison permet d'ex\u00e9cuter une s\u00e9rie de commandes G-Code. Par exemple : {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G90\"}} Si le script G-Code fourni g\u00e9n\u00e8re une erreur, une r\u00e9ponse d'erreur est g\u00e9n\u00e9r\u00e9e. Cependant, si la commande G-Code produit une sortie vers le terminal, cette sortie n'est pas remont\u00e9e dans la r\u00e9ponse. (Utilisez le point de terminaison \"gcode/subscribe_output\" pour obtenir la remont\u00e9e des sortie du terminal G-Code.) Si une commande G-Code est en cours de traitement lorsque cette demande est re\u00e7ue, le script re\u00e7u sera mis en file d'attente. Ce d\u00e9lai peut \u00eatre important (par exemple, si une commande d'attente de temp\u00e9rature de code G est en cours). Le message de r\u00e9ponse JSON est envoy\u00e9 lorsque le traitement du script est enti\u00e8rement termin\u00e9. gcode/restart \u00b6 Ce point de terminaison permet de demander un red\u00e9marrage - il est similaire \u00e0 l'ex\u00e9cution de la commande G-Code \"RESTART\". Par exemple : {\"id\": 123, \"method\": \"gcode/restart\"} Comme pour le point de terminaison \"gcode/script\", ce point de terminaison ne se termine qu'apr\u00e8s la fin de toutes les commandes G-Code en attente. gcode/firmware_restart \u00b6 Ceci est similaire au point de terminaison \"gcode/restart\" - il impl\u00e9mente la commande G-Code \"FIRMWARE_RESTART\". Par exemple : {\"id\": 123, \"method\": \"gcode/firmware_restart\"} Comme pour le point de terminaison \"gcode/script\", ce point de terminaison ne se termine qu'apr\u00e8s la fin de toutes les commandes G-Code en attente. gcode/subscribe_output \u00b6 Ce point de terminaison est utilis\u00e9 pour s'abonner aux messages du terminal G-Code de Klipper. Par exemple : {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{}}} peut ult\u00e9rieurement produire des messages asynchrones tels que : {\"params\": {\"response\": \"// \u00c9tat de Klipper : Arr\u00eat\"}} Ce point de terminaison est destin\u00e9 \u00e0 prendre en charge l'interaction humaine via une interface \"fen\u00eatre de terminal\". L'analyse du contenu de la sortie du terminal G-Code est d\u00e9conseill\u00e9e. Utilisez le point de terminaison \"objects/subscribe\" pour obtenir des mises \u00e0 jour sur l'\u00e9tat de Klipper. motion_report/dump_stepper \u00b6 Ce point de terminaison est utilis\u00e9 pour s'abonner au flux de commandes interne stepper queue_step de Klipper pour un stepper. L'obtention de ces mises \u00e0 jour de mouvement de bas niveau peut \u00eatre utile \u00e0 des fins de diagnostic et de d\u00e9bogage. L'utilisation de ce point de terminaison peut augmenter la charge syst\u00e8me de Klipper. Une requ\u00eate peut ressembler \u00e0 : {\"id\": 123, \"method\":\"motion_report/dump_stepper\", \"params\": {\"name\": \"stepper_x\", \"response_template\": {}}} et peut renvoyer : {\"id\": 123, \"result\": {\"header\": [\"interval\", \"count\", \"add\"]}} et peut produire ult\u00e9rieurement des messages asynchrones tels que : {\"params\": {\"first_clock\": 179601081, \"first_time\": 8.98, \"first_position\": 0, \"last_clock\": 219686097, \"last_time\": 10.984, \"data\": [[179601081, 1, 0 ], [29573, 2, -8685], [16230, 4, -1525], [10559, 6, -160], [10000, 976, 0], [10000, 1000, 0], [10000, 1000, 0], [10000, 1000, 0], [9855, 5, 187], [11632, 4, 1534], [20756, 2, 9442]]}} Le champ \"en-t\u00eate\" dans la r\u00e9ponse initiale \u00e0 la requ\u00eate est utilis\u00e9 pour d\u00e9crire les champs pr\u00e9sents dans les r\u00e9ponses \"donn\u00e9es\" ult\u00e9rieures. motion_report/dump_trapq \u00b6 Ce point de terminaison est utilis\u00e9 pour s'abonner \u00e0 la \"file d'attente de mouvements trap\u00e9zo\u00efdaux\" interne de Klipper. L'obtention de ces mises \u00e0 jour de mouvement de bas niveau peut \u00eatre utile \u00e0 des fins de diagnostic et de d\u00e9bogage. L'utilisation de ce point de terminaison peut augmenter la charge syst\u00e8me de Klipper. Une requ\u00eate peut ressembler \u00e0 : {\"id\": 123, \"method\": \"motion_report/dump_trapq\", \"params\": {\"name\": \"toolhead\", \"response_template\":{}}} et peut renvoyer : {\"id\": 1, \"result\": {\"header\": [\"time\", \"duration\", \"start_velocity\", \"acceleration\", \"start_position\", \"direction\"]}} et peut produire ult\u00e9rieurement des messages asynchrones tels que : {\"params\": {\"data\": [[4.05, 1.0, 0.0, 0.0, [300.0, 0.0, 0.0], [0.0, 0.0, 0.0] ], [5.054, 0.001, 0.0, 3000.0, [300.0, 0.0, 0.0], [-1.0, 0.0, 0.0]]]}} Le champ \"en-t\u00eate\" dans la r\u00e9ponse initiale \u00e0 la requ\u00eate est utilis\u00e9 pour d\u00e9crire les champs pr\u00e9sents dans les r\u00e9ponses \"donn\u00e9es\" ult\u00e9rieures. adxl345/dump_adxl345 \u00b6 Ce point de terminaison est utilis\u00e9 pour s'abonner aux donn\u00e9es de l'acc\u00e9l\u00e9rom\u00e8tre ADXL345. L'obtention de ces mises \u00e0 jour de mouvement de bas niveau peut \u00eatre utile \u00e0 des fins de diagnostic et de d\u00e9bogage. L'utilisation de ce point de terminaison peut augmenter la charge syst\u00e8me de Klipper. Une requ\u00eate peut ressembler \u00e0 : {\"id\": 123, \"method\":\"adxl345/dump_adxl345\", \"params\": {\"sensor\": \"adxl345\", \"response_template\": {}}} et pourrait renvoyer : {\"id\": 123,\"result\":{\"header\":[\"time\",\"x_acceleration\",\"y_acceleration\", \"z_acceleration\"]}} et pourrait plus tard produire des messages asynchrones messages tels que : {\"params\":{\"overflows\":0,\"data\":[[3292.432935,-535.44309,-1529.8374,9561.4], [3292.433256,-382.45935,-1606.32927,9561.48375]]}} Le champ \"en-t\u00eate\" dans la r\u00e9ponse initiale \u00e0 la requ\u00eate est utilis\u00e9 pour d\u00e9crire les champs pr\u00e9sents dans les r\u00e9ponses \"donn\u00e9es\" ult\u00e9rieures. angle/dump_angle \u00b6 Ce point de terminaison est utilis\u00e9 pour s'abonner aux donn\u00e9es du capteur d'angle . L'obtention de ces mises \u00e0 jour de mouvement de bas niveau peut \u00eatre utile \u00e0 des fins de diagnostic et de d\u00e9bogage. L'utilisation de ce point de terminaison peut augmenter la charge syst\u00e8me de Klipper. Une requ\u00eate peut ressembler \u00e0 : {\"id\": 123, \"method\":\"angle/dump_angle\", \"params\": {\"sensor\": \"my_angle_sensor\", \"response_template\": {}}} et peut renvoyer : {\"id\": 123,\"result\":{\"header\":[\"time\",\"angle\"]}} et peut produire ult\u00e9rieurement des messages asynchrones tels que : { \"params\":{\"position_offset\":3.151562,\"errors\":0, \"data\":[[1290.951905,-5063],[1290.952321,-5065]]}} Le champ \"en-t\u00eate\" dans la r\u00e9ponse initiale \u00e0 la requ\u00eate est utilis\u00e9 pour d\u00e9crire les champs pr\u00e9sents dans les r\u00e9ponses \"donn\u00e9es\" ult\u00e9rieures. hx71x/dump_hx71x \u00b6 This endpoint is used to subscribe to raw HX711 and HX717 ADC data. Obtaining these low-level ADC updates may be useful for diagnostic and debugging purposes. Using this endpoint may increase Klipper's system load. A request may look like: {\"id\": 123, \"method\":\"hx71x/dump_hx71x\", \"params\": {\"sensor\": \"load_cell\", \"response_template\": {}}} and might return: {\"id\": 123,\"result\":{\"header\":[\"time\",\"counts\",\"value\"]}} and might later produce asynchronous messages such as: {\"params\":{\"data\":[[3292.432935, 562534, 0.067059278], [3292.4394937, 5625322, 0.670590639]]}} ads1220/dump_ads1220 \u00b6 This endpoint is used to subscribe to raw ADS1220 ADC data. Obtaining these low-level ADC updates may be useful for diagnostic and debugging purposes. Using this endpoint may increase Klipper's system load. A request may look like: {\"id\": 123, \"method\":\"ads1220/dump_ads1220\", \"params\": {\"sensor\": \"load_cell\", \"response_template\": {}}} and might return: {\"id\": 123,\"result\":{\"header\":[\"time\",\"counts\",\"value\"]}} and might later produce asynchronous messages such as: {\"params\":{\"data\":[[3292.432935, 562534, 0.067059278], [3292.4394937, 5625322, 0.670590639]]}} pause_resume/cancel \u00b6 Ce point final est similaire \u00e0 l'ex\u00e9cution de la commande G-Code \"PRINT_CANCEL\". Par exemple : {\"id\": 123, \"method\": \"pause_resume/cancel\"} Comme pour le point de terminaison \"gcode/script\", ce point de terminaison ne se termine qu'apr\u00e8s la fin de toutes les commandes G-Code en attente. pause_resume/pause \u00b6 Ce point d'entr\u00e9e est similaire \u00e0 l'ex\u00e9cution de la commande G-Code \"PAUSE\". Par exemple : {\"id\": 123, \"method\": \"pause_resume/pause\"} Comme pour le point de terminaison \"gcode/script\", ce point de terminaison ne se termine qu'apr\u00e8s la fin de toutes les commandes G-Code en attente. pause_resume/resume \u00b6 Ce point de terminaison est similaire \u00e0 l'ex\u00e9cution de la commande G-Code \"RESUME\". Par exemple : {\"id\": 123, \"method\": \"pause_resume/resume\"} Comme pour le point de terminaison \"gcode/script\", ce point de terminaison ne se termine qu'apr\u00e8s la fin de toutes les commandes G-Code en attente. query_endstops/status \u00b6 Ce point de terminaison interrogera les fins de course actifs et renverra leur \u00e9tat. Par exemple : {\"id\": 123, \"method\": \"query_endstops/status\"} peut renvoyer : {\"id\": 123, \"result\": {\"y\": \"open \", \"x\": \"open\", \"z\": \"TRIGGERED\"}} Comme pour le point de terminaison \"gcode/script\", ce point de terminaison ne se termine qu'apr\u00e8s la fin de toutes les commandes G-Code en attente. bed_mesh/dump_mesh \u00b6 Dumps the configuration and state for the current mesh and all saved profiles. For example: {\"id\": 123, \"method\": \"bed_mesh/dump_mesh\"} might return: { \"current_mesh\": { \"name\": \"eddy-scan-test\", \"probed_matrix\": [...], \"mesh_matrix\": [...], \"mesh_params\": { \"x_count\": 9, \"y_count\": 9, \"mesh_x_pps\": 2, \"mesh_y_pps\": 2, \"algo\": \"bicubic\", \"tension\": 0.5, \"min_x\": 20, \"max_x\": 330, \"min_y\": 30, \"max_y\": 320 } }, \"profiles\": { \"default\": { \"points\": [...], \"mesh_params\": { \"min_x\": 20, \"max_x\": 330, \"min_y\": 30, \"max_y\": 320, \"x_count\": 9, \"y_count\": 9, \"mesh_x_pps\": 2, \"mesh_y_pps\": 2, \"algo\": \"bicubic\", \"tension\": 0.5 } }, \"eddy-scan-test\": { \"points\": [...], \"mesh_params\": { \"x_count\": 9, \"y_count\": 9, \"mesh_x_pps\": 2, \"mesh_y_pps\": 2, \"algo\": \"bicubic\", \"tension\": 0.5, \"min_x\": 20, \"max_x\": 330, \"min_y\": 30, \"max_y\": 320 } }, \"eddy-rapid-test\": { \"points\": [...], \"mesh_params\": { \"x_count\": 9, \"y_count\": 9, \"mesh_x_pps\": 2, \"mesh_y_pps\": 2, \"algo\": \"bicubic\", \"tension\": 0.5, \"min_x\": 20, \"max_x\": 330, \"min_y\": 30, \"max_y\": 320 } } }, \"calibration\": { \"points\": [...], \"config\": { \"x_count\": 9, \"y_count\": 9, \"mesh_x_pps\": 2, \"mesh_y_pps\": 2, \"algo\": \"bicubic\", \"tension\": 0.5, \"mesh_min\": [ 20, 30 ], \"mesh_max\": [ 330, 320 ], \"origin\": null, \"radius\": null }, \"probe_path\": [...], \"rapid_path\": [...] }, \"probe_offsets\": [ 0, 25, 0.5 ], \"axis_minimum\": [ 0, 0, -5, 0 ], \"axis_maximum\": [ 351, 358, 330, 0 ] } The dump_mesh endpoint takes one optional parameter, mesh_args . This parameter must be an object, where the keys and values are parameters available to BED_MESH_CALIBRATE . This will update the mesh configuration and probe points using the supplied parameters prior to returning the result. It is recommended to omit mesh parameters unless it is desired to visualize the probe points and/or travel path before performing BED_MESH_CALIBRATE .","title":"Serveur API"},{"location":"API_Server.html#serveur-api","text":"Ce document d\u00e9crit l'Interface de Programmation d'Applications (API) de Klipper. Cette interface permet \u00e0 des applications externes d'interroger et de contr\u00f4ler Klipper.","title":"Serveur API"},{"location":"API_Server.html#activer-le-socket-api","text":"Pour pouvoir utiliser les Serveur API, le logiciel h\u00f4te klippy.py doit \u00eatre d\u00e9marr\u00e9 avec le param\u00e8tre -a . Par exemple : ~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -a /tmp/klippy_uds -l /tmp/klippy.log Cela force le logiciel h\u00f4te \u00e0 cr\u00e9er un socket de domaine Unix. Un client peut alors ouvrir une connexion sur ce socket et envoyer des commandes \u00e0 Klipper. Voir le projet Moonraker pour un outil populaire qui peut transf\u00e9rer les requ\u00eates HTTP vers le socket du serveur d'API de Klipper.","title":"Activer le socket API"},{"location":"API_Server.html#format-de-la-demande","text":"Les messages envoy\u00e9s et re\u00e7us sur le socket sont des cha\u00eenes au format JSON et termin\u00e9es par le caract\u00e8re ASCII 0x03 : <0x03> <0x03>... Klipper contiens un outil scripts/whconsole.py qui peut effectuer la mise en forme du message ci-dessus. Par exemple : ~/klipper/scripts/whconsole.py /tmp/klippy_uds Cet outil peut lire une s\u00e9rie de commandes JSON \u00e0 partir de l'entr\u00e9e standard stdin, les envoyer \u00e0 Klipper et afficher les r\u00e9sultats. Cet outil s'attend \u00e0 avoir une commande JSON par ligne et il ajoute automatiquement le terminateur 0x03 avant d'envoyer les requ\u00eates. (Le serveur d'API de Klipper ne attend pas un saut de ligne.)","title":"Format de la demande"},{"location":"API_Server.html#protocole-de-lapi","text":"Le protocole de commande utilis\u00e9 sur le socket de communications est inspir\u00e9 par json-rpc . Une requ\u00eate pourrait ressembler \u00e0 \u00e7a : {\"id\": 123, \"method\": \"info\", \"params\": {}} et une r\u00e9ponse pourrait ressembler \u00e0 \u00e7a : {\"id\": 123, \"result\": {\"state_message\": \"Printer is ready\", \"klipper_path\": \"/home/pi/klipper\", \"config_file\": \"/home/pi/printer.cfg\", \"software_version\": \"v0.8.0-823-g883b1cb6\", \"hostname\": \"octopi\", \"cpu_info\": \"4 core ARMv7 Processor rev 4 (v7l)\", \"state\": \"ready\", \"python_path\": \"/home/pi/klippy-env/bin/python\", \"log_file\": \"/tmp/klippy.log\"}} Toutes les requ\u00eates doivent \u00eatre un dictionnaire JSON. (Ce document utilise le terme Python 'dictionary' pour d\u00e9crire un objet JSON - une affectation de paires Cl\u00e9/Valeur comprises en deux parenth\u00e8ses {} .) le dictionnaire de requ\u00eate doit contenir un param\u00e8tre \"m\u00e9thode\" disponible dans les \"points de terminaison\" de Klipper. Le dictionnaire de requ\u00eate peut contenir un param\u00e8tre \"params\" qui doit \u00eatre de type dictionnaire. Les \"params\" fournissent des informations de param\u00e8tre suppl\u00e9mentaires au \"endpoint\" Klipper qui traite la demande. Son contenu est sp\u00e9cifique au \"endpoint\". Le dictionnaire de requ\u00eate peut contenir un param\u00e8tre \"id\" qui peut \u00eatre de n'importe quel type JSON. Si \"id\" est pr\u00e9sent, alors Klipper r\u00e9pondra \u00e0 la demande avec une r\u00e9ponse contenant cet \"id\". Si \"id\" est omis (ou d\u00e9fini sur une valeur JSON \"null\"), Klipper ne fournira aucune r\u00e9ponse \u00e0 la requ\u00eate. Un message de r\u00e9ponse est un dictionnaire JSON contenant \"id\" et \"result\". Le \"r\u00e9sultat\" est toujours un dictionnaire - son contenu est sp\u00e9cifique au \"endpoint\" traitant la demande. Si le traitement d'un requ\u00eate est en erreur, le message de r\u00e9ponse contiendra un champ \"error\" au lieu de \"result\". Par exemple, la requ\u00eate : {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G1 X200\"}} pourrait retourner une erreur telle que :: {\"id\": 123, \"error\": {\"message\": \"Must home axis first: 200.000 0.000 0.000 [0.000]\", \"error\": \"WebRequestError\"}} Klipper traite toujours les demandes dans l'ordre de leur r\u00e9ception. Cependant, certaines requ\u00eates peuvent ne pas se terminer imm\u00e9diatement, ce qui peut entra\u00eener l'envoi de la r\u00e9ponse associ\u00e9e dans le d\u00e9sordre par rapport aux r\u00e9ponses d'autres requ\u00eates. Une requ\u00eate JSON ne suspend jamais le traitement des requ\u00eates JSON suivantes.","title":"Protocole de l'API"},{"location":"API_Server.html#abonnements","text":"Certains \"endpoint\" de Klipper autorisent un \"abonnement\" pour de futurs messages asynchrone de mise \u00e0 jour. Par exemple : {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{\"key\": 345}}} Peut r\u00e9pondre dans un premier temps : {\"id\": 123, \"result\": {}} et faire en sorte que Klipper envoie de futurs messages similaires \u00e0 : {\"params\": {\"response\": \"ok B:22.8 /0.0 T0:22.4 /0.0\"}, \"key\": 345} Une demande d'abonnement accepte un dictionnaire \"response_template\" dans le champ \"params\" de la demande. Ce dictionnaire \"response_template\" est utilis\u00e9 comme mod\u00e8le pour les futurs messages asynchrones - il peut contenir des paires cl\u00e9/valeur arbitraires. Lors de l'envoi de ces futurs messages asynchrones, Klipper ajoutera un champ \"params\" contenant un dictionnaire avec un contenu sp\u00e9cifique \"endpoint\" au mod\u00e8le de r\u00e9ponse, puis enverra ce mod\u00e8le. Si un champ \"response_template\" n'est pas fourni, il s'agit par d\u00e9faut d'un dictionnaire vide ( {} ).","title":"Abonnements"},{"location":"API_Server.html#endpoints-disponibles","text":"Par convention, les \"endpoints\" de Klipper sont de la forme / . Lors d'une demande \u00e0 un \"endpoint\", le nom complet doit \u00eatre d\u00e9fini dans le param\u00e8tre \"method\" du dictionnaire de requ\u00eate (par exemple, {\"method\"=\"gcode/restart\"} ).","title":"\"endpoints\" disponibles"},{"location":"API_Server.html#info","text":"Le point de terminaison \"info\" est utilis\u00e9 pour obtenir des informations sur le syst\u00e8me et la version de Klipper. Il est \u00e9galement utilis\u00e9 pour fournir les informations de version du client \u00e0 Klipper. Par exemple : {\"id\": 123, \"method\": \"info\", \"params\": { \"client_info\": { \"version\": \"v1\"}}} S'il est pr\u00e9sent, le param\u00e8tre \"client_info\" doit \u00eatre un dictionnaire, mais ce dictionnaire peut avoir un contenu arbitraire. Les clients sont encourag\u00e9s \u00e0 fournir le nom du client et sa version logicielle lors de la premi\u00e8re connexion au serveur API Klipper.","title":"Info"},{"location":"API_Server.html#arret-durgence","text":"Le point de terminaison \"emergency_stop\" est utilis\u00e9 pour demander \u00e0 Klipper de passer \u00e0 un \u00e9tat \"shutdown\". Il se comporte de la m\u00eame mani\u00e8re que la commande G-Code M112 . Par exemple : {\"id\": 123, \"method\": \"emergency_stop\"}","title":"arr\u00eat d'urgence"},{"location":"API_Server.html#register_remote_method","text":"Ce point de terminaison permet aux clients d'enregistrer des m\u00e9thodes pouvant \u00eatre appel\u00e9es depuis klipper. Il renverra un objet vide en cas de succ\u00e8s. Par exemple : {\"id\": 123, \"method\": \"register_remote_method\", \"params\": {\"response_template\": {\"action\": \"run_paneldue_beep\"}, \"remote_method\": \"paneldue_beep\"}} renverra : }` La m\u00e9thode distante paneldue_beep peut d\u00e9sormais \u00eatre appel\u00e9e depuis Klipper. Notez que si la m\u00e9thode prend des param\u00e8tres, ils doivent \u00eatre fournis en tant qu'arguments de mots cl\u00e9s. Voici un exemple de la fa\u00e7on dont il peut \u00eatre appel\u00e9 \u00e0 partir d'un gcode_macro : [gcode_macro PANELDUE_BEEP] gcode: {action_call_remote_method(\"paneldue_beep\", frequency=300, duration=1.0)} Lorsque la macro gcode PANELDUE_BEEP est ex\u00e9cut\u00e9e, Klipper enverra ce qui suit sur le socket : {\"action\": \"run_paneldue_beep\", \"params\": {\"frequency\": 300, \"duration\": 1.0}}","title":"register_remote_method"},{"location":"API_Server.html#objectslist","text":"Ce point de terminaison remonte la liste des \"objets\" disponibles de l'imprimante que l'on peut interroger (via le point de terminaison \"objects/query\"). Par exemple : {\"id\": 123, \"method\": \"objects/list\"} peut renvoyer : {\"id\": 123, \"result\": {\"objects\": [\" webhooks\", \"configfile\", \"heaters\", \"gcode_move\", \"query_endstops\", \"idle_timeout\", \"toolhead\", \"extruder\"]}}","title":"objects/list"},{"location":"API_Server.html#objectsquery","text":"Ce point de terminaison permet de retrouver des informations \u00e0 partir d'objets de l'imprimante. Par exemple : {\"id\": 123, \"method\": \"objects/query\", \"params\": {\"objects\": {\"toolhead\": [\"position\"], \"webhooks\": null}} } peut renvoyer : {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"ready\", \"state_message\": \"L'imprimante est pr\u00eate\"} , \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3051555.377933684}} Le param\u00e8tre \"objects\" dans la requ\u00eate doit \u00eatre un dictionnaire contenant des objets de l'imprimante \u00e0 interroger - la cl\u00e9 contient le nom de l'objet imprimante et la valeur est soit \"null\" (pour interroger tous les champs) soit une liste de noms de champs. Le message de r\u00e9ponse contiendra un champ \"statut\" contenant un dictionnaire avec les informations demand\u00e9es - la cl\u00e9 contient le nom de l'objet imprimante et la valeur est un dictionnaire contenant ses champs. Le message de r\u00e9ponse contiendra \u00e9galement un champ \"eventtime\" contenant l'horodatage \u00e0 partir duquel la requ\u00eate a \u00e9t\u00e9 prise. Les champs disponibles sont document\u00e9s dans le document R\u00e9f\u00e9rence des \u00e9tats .","title":"objects/query"},{"location":"API_Server.html#objectssubscribe","text":"Ce point de terminaison permet d'interroger puis de s'abonner \u00e0 des informations provenant d'objets de l'imprimante. La demande et la r\u00e9ponse du point de terminaison sont identiques au point de terminaison \"objects/query\". Par exemple : {\"id\": 123, \"method\": \"objects/subscribe\", \"params\": {\"objects\":{\"toolhead\": [\"position\"], \"webhooks\": [\"state \"]}, \"response_template\":{}}} peut renvoyer : {\"id\": 123, \"result\": {\"status\": {\"webhooks\": {\"state\": \"pr\u00eat\" }, \"toolhead\": {\"position\": [0.0, 0.0, 0.0, 0.0]}}, \"eventtime\": 3052153.382083195}} et entra\u00eener des messages asynchrones ult\u00e9rieurs tels que : {\"params\": {\"status\": {\"webhooks\": {\"state\": \"shutdown\"}}, \"eventtime\": 3052165.418815847}}","title":"objects/subscribe"},{"location":"API_Server.html#gcodehelp","text":"Ce point de terminaison permet de retrouver les commandes G-Code disponibles qui ont une cha\u00eene d'aide d\u00e9finie. Par exemple : {\"id\": 123, \"method\": \"gcode/help\"} peut renvoyer : {\"id\": 123, \"result\": {\"RESTORE_GCODE_STATE\": \"Restaurer un \u00e9tat G-Code pr\u00e9c\u00e9demment enregistr\u00e9\", \"PID_CALIBRATE\": \"Ex\u00e9cuter le test d'\u00e9talonnage PID\", \"QUERY_ADC\": \"Rapport de la derni\u00e8re valeur d'une broche analogique\", ...}}","title":"gcode/help"},{"location":"API_Server.html#gcodescript","text":"Ce point de terminaison permet d'ex\u00e9cuter une s\u00e9rie de commandes G-Code. Par exemple : {\"id\": 123, \"method\": \"gcode/script\", \"params\": {\"script\": \"G90\"}} Si le script G-Code fourni g\u00e9n\u00e8re une erreur, une r\u00e9ponse d'erreur est g\u00e9n\u00e9r\u00e9e. Cependant, si la commande G-Code produit une sortie vers le terminal, cette sortie n'est pas remont\u00e9e dans la r\u00e9ponse. (Utilisez le point de terminaison \"gcode/subscribe_output\" pour obtenir la remont\u00e9e des sortie du terminal G-Code.) Si une commande G-Code est en cours de traitement lorsque cette demande est re\u00e7ue, le script re\u00e7u sera mis en file d'attente. Ce d\u00e9lai peut \u00eatre important (par exemple, si une commande d'attente de temp\u00e9rature de code G est en cours). Le message de r\u00e9ponse JSON est envoy\u00e9 lorsque le traitement du script est enti\u00e8rement termin\u00e9.","title":"gcode/script"},{"location":"API_Server.html#gcoderestart","text":"Ce point de terminaison permet de demander un red\u00e9marrage - il est similaire \u00e0 l'ex\u00e9cution de la commande G-Code \"RESTART\". Par exemple : {\"id\": 123, \"method\": \"gcode/restart\"} Comme pour le point de terminaison \"gcode/script\", ce point de terminaison ne se termine qu'apr\u00e8s la fin de toutes les commandes G-Code en attente.","title":"gcode/restart"},{"location":"API_Server.html#gcodefirmware_restart","text":"Ceci est similaire au point de terminaison \"gcode/restart\" - il impl\u00e9mente la commande G-Code \"FIRMWARE_RESTART\". Par exemple : {\"id\": 123, \"method\": \"gcode/firmware_restart\"} Comme pour le point de terminaison \"gcode/script\", ce point de terminaison ne se termine qu'apr\u00e8s la fin de toutes les commandes G-Code en attente.","title":"gcode/firmware_restart"},{"location":"API_Server.html#gcodesubscribe_output","text":"Ce point de terminaison est utilis\u00e9 pour s'abonner aux messages du terminal G-Code de Klipper. Par exemple : {\"id\": 123, \"method\": \"gcode/subscribe_output\", \"params\": {\"response_template\":{}}} peut ult\u00e9rieurement produire des messages asynchrones tels que : {\"params\": {\"response\": \"// \u00c9tat de Klipper : Arr\u00eat\"}} Ce point de terminaison est destin\u00e9 \u00e0 prendre en charge l'interaction humaine via une interface \"fen\u00eatre de terminal\". L'analyse du contenu de la sortie du terminal G-Code est d\u00e9conseill\u00e9e. Utilisez le point de terminaison \"objects/subscribe\" pour obtenir des mises \u00e0 jour sur l'\u00e9tat de Klipper.","title":"gcode/subscribe_output"},{"location":"API_Server.html#motion_reportdump_stepper","text":"Ce point de terminaison est utilis\u00e9 pour s'abonner au flux de commandes interne stepper queue_step de Klipper pour un stepper. L'obtention de ces mises \u00e0 jour de mouvement de bas niveau peut \u00eatre utile \u00e0 des fins de diagnostic et de d\u00e9bogage. L'utilisation de ce point de terminaison peut augmenter la charge syst\u00e8me de Klipper. Une requ\u00eate peut ressembler \u00e0 : {\"id\": 123, \"method\":\"motion_report/dump_stepper\", \"params\": {\"name\": \"stepper_x\", \"response_template\": {}}} et peut renvoyer : {\"id\": 123, \"result\": {\"header\": [\"interval\", \"count\", \"add\"]}} et peut produire ult\u00e9rieurement des messages asynchrones tels que : {\"params\": {\"first_clock\": 179601081, \"first_time\": 8.98, \"first_position\": 0, \"last_clock\": 219686097, \"last_time\": 10.984, \"data\": [[179601081, 1, 0 ], [29573, 2, -8685], [16230, 4, -1525], [10559, 6, -160], [10000, 976, 0], [10000, 1000, 0], [10000, 1000, 0], [10000, 1000, 0], [9855, 5, 187], [11632, 4, 1534], [20756, 2, 9442]]}} Le champ \"en-t\u00eate\" dans la r\u00e9ponse initiale \u00e0 la requ\u00eate est utilis\u00e9 pour d\u00e9crire les champs pr\u00e9sents dans les r\u00e9ponses \"donn\u00e9es\" ult\u00e9rieures.","title":"motion_report/dump_stepper"},{"location":"API_Server.html#motion_reportdump_trapq","text":"Ce point de terminaison est utilis\u00e9 pour s'abonner \u00e0 la \"file d'attente de mouvements trap\u00e9zo\u00efdaux\" interne de Klipper. L'obtention de ces mises \u00e0 jour de mouvement de bas niveau peut \u00eatre utile \u00e0 des fins de diagnostic et de d\u00e9bogage. L'utilisation de ce point de terminaison peut augmenter la charge syst\u00e8me de Klipper. Une requ\u00eate peut ressembler \u00e0 : {\"id\": 123, \"method\": \"motion_report/dump_trapq\", \"params\": {\"name\": \"toolhead\", \"response_template\":{}}} et peut renvoyer : {\"id\": 1, \"result\": {\"header\": [\"time\", \"duration\", \"start_velocity\", \"acceleration\", \"start_position\", \"direction\"]}} et peut produire ult\u00e9rieurement des messages asynchrones tels que : {\"params\": {\"data\": [[4.05, 1.0, 0.0, 0.0, [300.0, 0.0, 0.0], [0.0, 0.0, 0.0] ], [5.054, 0.001, 0.0, 3000.0, [300.0, 0.0, 0.0], [-1.0, 0.0, 0.0]]]}} Le champ \"en-t\u00eate\" dans la r\u00e9ponse initiale \u00e0 la requ\u00eate est utilis\u00e9 pour d\u00e9crire les champs pr\u00e9sents dans les r\u00e9ponses \"donn\u00e9es\" ult\u00e9rieures.","title":"motion_report/dump_trapq"},{"location":"API_Server.html#adxl345dump_adxl345","text":"Ce point de terminaison est utilis\u00e9 pour s'abonner aux donn\u00e9es de l'acc\u00e9l\u00e9rom\u00e8tre ADXL345. L'obtention de ces mises \u00e0 jour de mouvement de bas niveau peut \u00eatre utile \u00e0 des fins de diagnostic et de d\u00e9bogage. L'utilisation de ce point de terminaison peut augmenter la charge syst\u00e8me de Klipper. Une requ\u00eate peut ressembler \u00e0 : {\"id\": 123, \"method\":\"adxl345/dump_adxl345\", \"params\": {\"sensor\": \"adxl345\", \"response_template\": {}}} et pourrait renvoyer : {\"id\": 123,\"result\":{\"header\":[\"time\",\"x_acceleration\",\"y_acceleration\", \"z_acceleration\"]}} et pourrait plus tard produire des messages asynchrones messages tels que : {\"params\":{\"overflows\":0,\"data\":[[3292.432935,-535.44309,-1529.8374,9561.4], [3292.433256,-382.45935,-1606.32927,9561.48375]]}} Le champ \"en-t\u00eate\" dans la r\u00e9ponse initiale \u00e0 la requ\u00eate est utilis\u00e9 pour d\u00e9crire les champs pr\u00e9sents dans les r\u00e9ponses \"donn\u00e9es\" ult\u00e9rieures.","title":"adxl345/dump_adxl345"},{"location":"API_Server.html#angledump_angle","text":"Ce point de terminaison est utilis\u00e9 pour s'abonner aux donn\u00e9es du capteur d'angle . L'obtention de ces mises \u00e0 jour de mouvement de bas niveau peut \u00eatre utile \u00e0 des fins de diagnostic et de d\u00e9bogage. L'utilisation de ce point de terminaison peut augmenter la charge syst\u00e8me de Klipper. Une requ\u00eate peut ressembler \u00e0 : {\"id\": 123, \"method\":\"angle/dump_angle\", \"params\": {\"sensor\": \"my_angle_sensor\", \"response_template\": {}}} et peut renvoyer : {\"id\": 123,\"result\":{\"header\":[\"time\",\"angle\"]}} et peut produire ult\u00e9rieurement des messages asynchrones tels que : { \"params\":{\"position_offset\":3.151562,\"errors\":0, \"data\":[[1290.951905,-5063],[1290.952321,-5065]]}} Le champ \"en-t\u00eate\" dans la r\u00e9ponse initiale \u00e0 la requ\u00eate est utilis\u00e9 pour d\u00e9crire les champs pr\u00e9sents dans les r\u00e9ponses \"donn\u00e9es\" ult\u00e9rieures.","title":"angle/dump_angle"},{"location":"API_Server.html#hx71xdump_hx71x","text":"This endpoint is used to subscribe to raw HX711 and HX717 ADC data. Obtaining these low-level ADC updates may be useful for diagnostic and debugging purposes. Using this endpoint may increase Klipper's system load. A request may look like: {\"id\": 123, \"method\":\"hx71x/dump_hx71x\", \"params\": {\"sensor\": \"load_cell\", \"response_template\": {}}} and might return: {\"id\": 123,\"result\":{\"header\":[\"time\",\"counts\",\"value\"]}} and might later produce asynchronous messages such as: {\"params\":{\"data\":[[3292.432935, 562534, 0.067059278], [3292.4394937, 5625322, 0.670590639]]}}","title":"hx71x/dump_hx71x"},{"location":"API_Server.html#ads1220dump_ads1220","text":"This endpoint is used to subscribe to raw ADS1220 ADC data. Obtaining these low-level ADC updates may be useful for diagnostic and debugging purposes. Using this endpoint may increase Klipper's system load. A request may look like: {\"id\": 123, \"method\":\"ads1220/dump_ads1220\", \"params\": {\"sensor\": \"load_cell\", \"response_template\": {}}} and might return: {\"id\": 123,\"result\":{\"header\":[\"time\",\"counts\",\"value\"]}} and might later produce asynchronous messages such as: {\"params\":{\"data\":[[3292.432935, 562534, 0.067059278], [3292.4394937, 5625322, 0.670590639]]}}","title":"ads1220/dump_ads1220"},{"location":"API_Server.html#pause_resumecancel","text":"Ce point final est similaire \u00e0 l'ex\u00e9cution de la commande G-Code \"PRINT_CANCEL\". Par exemple : {\"id\": 123, \"method\": \"pause_resume/cancel\"} Comme pour le point de terminaison \"gcode/script\", ce point de terminaison ne se termine qu'apr\u00e8s la fin de toutes les commandes G-Code en attente.","title":"pause_resume/cancel"},{"location":"API_Server.html#pause_resumepause","text":"Ce point d'entr\u00e9e est similaire \u00e0 l'ex\u00e9cution de la commande G-Code \"PAUSE\". Par exemple : {\"id\": 123, \"method\": \"pause_resume/pause\"} Comme pour le point de terminaison \"gcode/script\", ce point de terminaison ne se termine qu'apr\u00e8s la fin de toutes les commandes G-Code en attente.","title":"pause_resume/pause"},{"location":"API_Server.html#pause_resumeresume","text":"Ce point de terminaison est similaire \u00e0 l'ex\u00e9cution de la commande G-Code \"RESUME\". Par exemple : {\"id\": 123, \"method\": \"pause_resume/resume\"} Comme pour le point de terminaison \"gcode/script\", ce point de terminaison ne se termine qu'apr\u00e8s la fin de toutes les commandes G-Code en attente.","title":"pause_resume/resume"},{"location":"API_Server.html#query_endstopsstatus","text":"Ce point de terminaison interrogera les fins de course actifs et renverra leur \u00e9tat. Par exemple : {\"id\": 123, \"method\": \"query_endstops/status\"} peut renvoyer : {\"id\": 123, \"result\": {\"y\": \"open \", \"x\": \"open\", \"z\": \"TRIGGERED\"}} Comme pour le point de terminaison \"gcode/script\", ce point de terminaison ne se termine qu'apr\u00e8s la fin de toutes les commandes G-Code en attente.","title":"query_endstops/status"},{"location":"API_Server.html#bed_meshdump_mesh","text":"Dumps the configuration and state for the current mesh and all saved profiles. For example: {\"id\": 123, \"method\": \"bed_mesh/dump_mesh\"} might return: { \"current_mesh\": { \"name\": \"eddy-scan-test\", \"probed_matrix\": [...], \"mesh_matrix\": [...], \"mesh_params\": { \"x_count\": 9, \"y_count\": 9, \"mesh_x_pps\": 2, \"mesh_y_pps\": 2, \"algo\": \"bicubic\", \"tension\": 0.5, \"min_x\": 20, \"max_x\": 330, \"min_y\": 30, \"max_y\": 320 } }, \"profiles\": { \"default\": { \"points\": [...], \"mesh_params\": { \"min_x\": 20, \"max_x\": 330, \"min_y\": 30, \"max_y\": 320, \"x_count\": 9, \"y_count\": 9, \"mesh_x_pps\": 2, \"mesh_y_pps\": 2, \"algo\": \"bicubic\", \"tension\": 0.5 } }, \"eddy-scan-test\": { \"points\": [...], \"mesh_params\": { \"x_count\": 9, \"y_count\": 9, \"mesh_x_pps\": 2, \"mesh_y_pps\": 2, \"algo\": \"bicubic\", \"tension\": 0.5, \"min_x\": 20, \"max_x\": 330, \"min_y\": 30, \"max_y\": 320 } }, \"eddy-rapid-test\": { \"points\": [...], \"mesh_params\": { \"x_count\": 9, \"y_count\": 9, \"mesh_x_pps\": 2, \"mesh_y_pps\": 2, \"algo\": \"bicubic\", \"tension\": 0.5, \"min_x\": 20, \"max_x\": 330, \"min_y\": 30, \"max_y\": 320 } } }, \"calibration\": { \"points\": [...], \"config\": { \"x_count\": 9, \"y_count\": 9, \"mesh_x_pps\": 2, \"mesh_y_pps\": 2, \"algo\": \"bicubic\", \"tension\": 0.5, \"mesh_min\": [ 20, 30 ], \"mesh_max\": [ 330, 320 ], \"origin\": null, \"radius\": null }, \"probe_path\": [...], \"rapid_path\": [...] }, \"probe_offsets\": [ 0, 25, 0.5 ], \"axis_minimum\": [ 0, 0, -5, 0 ], \"axis_maximum\": [ 351, 358, 330, 0 ] } The dump_mesh endpoint takes one optional parameter, mesh_args . This parameter must be an object, where the keys and values are parameters available to BED_MESH_CALIBRATE . This will update the mesh configuration and probe points using the supplied parameters prior to returning the result. It is recommended to omit mesh parameters unless it is desired to visualize the probe points and/or travel path before performing BED_MESH_CALIBRATE .","title":"bed_mesh/dump_mesh"},{"location":"Axis_Twist_Compensation.html","text":"Compensation de torsion de l'axe \u00b6 Ce document d\u00e9crit le module [axis_twist_compensation]. Some printers may have a small twist in their X rail which can skew the results of a probe attached to the X carriage. This is common in printers with designs like the Prusa MK3, Sovol SV06 etc and is further described under probe location bias . It may result in probe operations such as Bed Mesh , Screws Tilt Adjust , Z Tilt Adjust etc returning inaccurate representations of the bed. This module uses manual measurements by the user to correct the probe's results. Note that if your axis is significantly twisted it is strongly recommended to first use mechanical means to fix it prior to applying software corrections. Warning : This module is not compatible with dockable probes yet and will try to probe the bed without attaching the probe if you use it. Overview of compensation usage \u00b6 Tip: Make sure the probe X and Y offsets are correctly set as they greatly influence calibration. Basic Usage: X-Axis Calibration \u00b6 After setting up the [axis_twist_compensation] module, run: AXIS_TWIST_COMPENSATION_CALIBRATE This command will calibrate the X-axis by default. - The calibration wizard will prompt you to measure the probe Z offset at several points along the bed. - By default, the calibration uses 3 points, but you can specify a different number with the option: SAMPLE_COUNT= Adjust Your Z Offset: After completing the calibration, be sure to [adjust your Z offset] (Probe_Calibrate.md#calibrating-probe-z-offset). Perform Bed Leveling Operations: Use probe-based operations as needed, such as: Screws Tilt Adjust Z Tilt Adjust Finalize the Setup: Home all axes, and perform a Bed Mesh if necessary. Run a test print, followed by any fine-tuning if needed. For Y-Axis Calibration \u00b6 The calibration process for the Y-axis is similar to the X-axis. To calibrate the Y-axis, use: AXIS_TWIST_COMPENSATION_CALIBRATE AXIS=Y This will guide you through the same measuring process as for the X-axis. Automatic Calibration for Both Axes \u00b6 To perform automatic calibration for both the X and Y axes without manual intervention, use: AXIS_TWIST_COMPENSATION_CALIBRATE AUTO=True In this mode, the calibration process will run for both axes automatically. Conseil : La temp\u00e9rature du plateau ainsi que la temp\u00e9rature et la taille de la buse ne semblent pas avoir d'influence sur le processus de calibration. [axis_twist_compensation] setup and commands \u00b6 Configuration options for [axis_twist_compensation] can be found in the Configuration Reference . Commands for [axis_twist_compensation] can be found in the G-Codes Reference","title":"Compensation de torsion de l'axe"},{"location":"Axis_Twist_Compensation.html#compensation-de-torsion-de-laxe","text":"Ce document d\u00e9crit le module [axis_twist_compensation]. Some printers may have a small twist in their X rail which can skew the results of a probe attached to the X carriage. This is common in printers with designs like the Prusa MK3, Sovol SV06 etc and is further described under probe location bias . It may result in probe operations such as Bed Mesh , Screws Tilt Adjust , Z Tilt Adjust etc returning inaccurate representations of the bed. This module uses manual measurements by the user to correct the probe's results. Note that if your axis is significantly twisted it is strongly recommended to first use mechanical means to fix it prior to applying software corrections. Warning : This module is not compatible with dockable probes yet and will try to probe the bed without attaching the probe if you use it.","title":"Compensation de torsion de l'axe"},{"location":"Axis_Twist_Compensation.html#overview-of-compensation-usage","text":"Tip: Make sure the probe X and Y offsets are correctly set as they greatly influence calibration.","title":"Overview of compensation usage"},{"location":"Axis_Twist_Compensation.html#basic-usage-x-axis-calibration","text":"After setting up the [axis_twist_compensation] module, run: AXIS_TWIST_COMPENSATION_CALIBRATE This command will calibrate the X-axis by default. - The calibration wizard will prompt you to measure the probe Z offset at several points along the bed. - By default, the calibration uses 3 points, but you can specify a different number with the option: SAMPLE_COUNT= Adjust Your Z Offset: After completing the calibration, be sure to [adjust your Z offset] (Probe_Calibrate.md#calibrating-probe-z-offset). Perform Bed Leveling Operations: Use probe-based operations as needed, such as: Screws Tilt Adjust Z Tilt Adjust Finalize the Setup: Home all axes, and perform a Bed Mesh if necessary. Run a test print, followed by any fine-tuning if needed.","title":"Basic Usage: X-Axis Calibration"},{"location":"Axis_Twist_Compensation.html#for-y-axis-calibration","text":"The calibration process for the Y-axis is similar to the X-axis. To calibrate the Y-axis, use: AXIS_TWIST_COMPENSATION_CALIBRATE AXIS=Y This will guide you through the same measuring process as for the X-axis.","title":"For Y-Axis Calibration"},{"location":"Axis_Twist_Compensation.html#automatic-calibration-for-both-axes","text":"To perform automatic calibration for both the X and Y axes without manual intervention, use: AXIS_TWIST_COMPENSATION_CALIBRATE AUTO=True In this mode, the calibration process will run for both axes automatically. Conseil : La temp\u00e9rature du plateau ainsi que la temp\u00e9rature et la taille de la buse ne semblent pas avoir d'influence sur le processus de calibration.","title":"Automatic Calibration for Both Axes"},{"location":"Axis_Twist_Compensation.html#axis_twist_compensation-setup-and-commands","text":"Configuration options for [axis_twist_compensation] can be found in the Configuration Reference . Commands for [axis_twist_compensation] can be found in the G-Codes Reference","title":"[axis_twist_compensation] setup and commands"},{"location":"BLTouch.html","text":"BL-Touch \u00b6 Connexion du BL-Touch \u00b6 Un avertissement avant de commencer : \u00c9vitez de toucher la broche BL-Touch avec vos doigts nus, car elle est tr\u00e8s sensible \u00e0 la graisse des doigts. Et si vous la touchez, soyez tr\u00e8s doux, afin de ne pas plier ou pousser quoi que ce soit. Connectez le connecteur \"servo\" de la BL-Touch \u00e0 une control_pin selon la documentation de la BL-Touch ou celle de votre MCU. En utilisant le c\u00e2blage originel, le fil jaune du c\u00e2blage triple est la control_pin et le fil blanc du c\u00e2blage double est la sensor_pin . Vous devez configurer ces broches en fonction de votre c\u00e2blage. La plupart des dispositifs BL-Touch n\u00e9cessitent un pullup sur la broche du capteur (pr\u00e9fixez le nom de la broche par \"^\"). Par exemple : [bltouch] sensor_pin: ^P1.24 control_pin: P1.26 Si le BL-Touch est utilis\u00e9 pour amener l'axe Z \u00e0 l'origine, r\u00e9glez endstop_pin : probe:z_virtual_endstop et supprimez position_endstop dans la section de configuration [stepper_z] , puis ajoutez une section de configuration [safe_z_home] pour lever l'axe z, ramener les axes xy \u00e0 la position d'origine, se d\u00e9placer au centre du lit et ramener l'axe z \u00e0 la position d'origine. Par exemple : [safe_z_home] home_xy_position: 100, 100 # Change coordinates to the center of your print bed speed: 50 z_hop: 10 # Move up 10mm z_hop_speed: 5 Il est important que le mouvement z_hop dans safe_z_home soit suffisamment \u00e9lev\u00e9 pour que la sonde ne heurte rien, m\u00eame si la broche de la sonde se trouve dans son \u00e9tat le plus bas. Tests initiaux \u00b6 Avant de poursuivre, v\u00e9rifiez que la BL-Touch est mont\u00e9e \u00e0 la bonne hauteur, la tige doit se trouver \u00e0 environ 2 mm au-dessus de la buse lorsqu'elle est r\u00e9tract\u00e9e Lorsque vous mettez l'imprimante sous tension, la sonde BL-Touch doit effectuer un auto-test en sortant et r\u00e9tractant le pointeau plusieurs Une fois l'auto-test termin\u00e9, le pointeau doit \u00eatre r\u00e9tract\u00e9 et le voyant rouge de la sonde doit \u00eatre allum\u00e9. En cas d'erreur, par exemple si la sonde clignote en rouge ou si le pointeau est en bas au lieu d'\u00eatre en haut, veuillez \u00e9teindre l'imprimante et v\u00e9rifier le c\u00e2blage et la configuration. Si tout ce qui pr\u00e9c\u00e8de semble bon, il est temps de tester que la broche de contr\u00f4le fonctionne correctement. Ex\u00e9cutez d'abord BLTOUCH_DEBUG COMMAND=pin_down dans votre terminal d'imprimante. V\u00e9rifiez que le pointeau se d\u00e9place vers le bas et que la LED rouge de la sonde s'\u00e9teint. Si ce n'est pas le cas, v\u00e9rifiez \u00e0 nouveau votre c\u00e2blage et votre configuration. Ensuite, lancez une commande BLTOUCH_DEBUG COMMAND=pin_up , v\u00e9rifiez que le pointeau se r\u00e9tracte et que la lumi\u00e8re rouge s'allume \u00e0 nouveau. Si elle clignote, il y a un probl\u00e8me. L'\u00e9tape suivante consiste \u00e0 confirmer que la tige du capteur fonctionne correctement. Ex\u00e9cutez BLTOUCH_DEBUG COMMAND=pin_down , v\u00e9rifiez que le pointeau se d\u00e9place vers le bas, ex\u00e9cutez BLTOUCH_DEBUG COMMAND=touch_mode , ex\u00e9cutez QUERY_PROBE , et v\u00e9rifiez que la commande rapporte \"probe : open\". Ensuite, tout en poussant l\u00e9g\u00e8rement le pointeau vers le haut avec l'ongle de votre doigt, ex\u00e9cutez \u00e0 nouveau QUERY_PROBE . V\u00e9rifiez que la commande rapporte \"probe : TRIGGERED\". Si l'une ou l'autre des requ\u00eates ne donne pas le bon message, cela indique g\u00e9n\u00e9ralement un c\u00e2blage ou une configuration incorrecte (certains clones peuvent n\u00e9cessiter une manipulation sp\u00e9ciale). A la fin de ce test, ex\u00e9cutez BLTOUCH_DEBUG COMMAND=pin_up et v\u00e9rifiez que le pointeau se d\u00e9place vers le haut. Apr\u00e8s avoir effectu\u00e9 les tests de la broche de contr\u00f4le et de la broche de d\u00e9tection du BL-Touch, il est maintenant temps de tester le palpage, mais avec une petite astuce. Au lieu de laisser le pointeau de la sonde toucher le lit d'impression, laissez-le toucher l'ongle de votre doigt. Positionnez la t\u00eate d'impression loin du lit, \u00e9mettez un G28 (ou PROBE si vous n'utilisez pas probe:z_virtual_endstop), attendez que la t\u00eate d'impression commence \u00e0 descendre, et arr\u00eatez le mouvement en touchant tr\u00e8s doucement le pointeau avec votre ongle. Il se peut que vous deviez le faire deux fois, car la configuration par d\u00e9faut de l'autoguidage sonde deux fois. Pr\u00e9parez-vous \u00e0 \u00e9teindre l'imprimante si elle ne s'arr\u00eate pas lorsque vous touchez le pointeau. Si ce test a r\u00e9ussi, faites un autre G28 (ou PROBE ) mais cette fois-ci laissez-le toucher le lit comme il se doit. BL-Touch d\u00e9faillant \u00b6 Une fois que le BL-Touch est dans un \u00e9tat incoh\u00e9rent, il se met \u00e0 clignoter en rouge. Vous pouvez le forcer \u00e0 quitter cet \u00e9tat en \u00e9mettant : BLTOUCH_DEBUG COMMAND=reset Cela peut se produire si son \u00e9talonnage est interrompu par un blocage de l'extraction du pointeau. Cependant, il se peut \u00e9galement que le BL-Touch ne soit plus capable de se calibrer lui-m\u00eame. Cela se produit si la vis situ\u00e9e sur le dessus est mal positionn\u00e9e ou si le noyau magn\u00e9tique \u00e0 l'int\u00e9rieur de la tige du pointeau a boug\u00e9. S'il s'est d\u00e9plac\u00e9 vers le haut au point de coller \u00e0 la vis, il se peut que le BL-Touch ne soit plus capable de lib\u00e9rer sa tige. Dans ce cas, vous devez ouvrir la vis et utiliser un stylo \u00e0 bille pour le remettre doucement en place. R\u00e9introduisez la tige dans le BL-Touch de fa\u00e7on \u00e0 ce qu'elle tombe dans la position extraite. R\u00e9ajustez d\u00e9licatement la vis sans t\u00eate du dessus. Vous devez trouver la juste position pour qu'elle soit capable d'abaisser et de relever la tige et que la lumi\u00e8re rouge s'allume et s'\u00e9teigne. Utilisez les commandes reset , pin_up et pin_down pour y parvenir. \"Clones\" du BL-Touch \u00b6 De nombreux \"clones\" BL-Touch fonctionnent correctement avec Klipper en utilisant la configuration par d\u00e9faut. Cependant, certains \"clones\" peuvent ne pas supporter la commande QUERY_PROBE et certains autres \"clones\" peuvent n\u00e9cessiter la configuration de pin_up_reports_not_triggered ou pin_up_touch_mode_reports_triggered . Important ! Ne configurez pas pin_up_reports_not_triggered ou pin_up_touch_mode_reports_triggered \u00e0 False sans suivre ces instructions. Ne configurez pas l'une ou l'autre de ces options sur False sur un v\u00e9ritable BL-Touch. Une configuration incorrecte de ces param\u00e8tres sur False peut augmenter le temps de palpage et peut augmenter le risque d'endommager l'imprimante. Certains \"clones\" ne supportent pas le touch_mode et par cons\u00e9quent la commande QUERY_PROBE ne fonctionne pas. Malgr\u00e9 cela, il est possible d'effectuer un palpage et une mise \u00e0 l'origine avec ces dispositifs. Sur ces dispositifs, la commande QUERY_PROBE pendant les tests initiaux n'aboutira pas, mais le test suivant G28 (ou PROBE ) aboutira. Il est possible d'utiliser ces \"clones\" avec Klipper tant que l'on n'utilise pas la commande QUERY_PROBE et que l'on n'active pas la fonction probe_with_touch_mode . Certains \"clones\" sont incapables d'effectuer le test de v\u00e9rification du capteur interne de Klipper. Sur ces appareils, les tentatives de mise \u00e0 l'origine ou de palpage peuvent entra\u00eener le signalement par Klipper de l'erreur \"BLTouch failed to verify sensor state\". Si cela se produit, ex\u00e9cutez manuellement les \u00e9tapes pour confirmer que la broche du capteur fonctionne comme d\u00e9crit dans la section tests initiaux . Si les commandes QUERY_PROBE de ce test produisent toujours les r\u00e9sultats attendus et que l'erreur \"BLTouch failed to verify sensor state\" se produit toujours, il peut \u00eatre n\u00e9cessaire de mettre pin_up_touch_mode_reports_triggered \u00e0 False dans le fichier de configuration de Klipper. Un nombre rare d'anciens \"clones\" sont incapables de signaler qu'ils ont r\u00e9ussi \u00e0 relever leur pointeau. Sur ces appareils, Klipper signalera une erreur \"BLTouch failed to raise probe\" apr\u00e8s chaque tentative de retour \u00e0 l'origine ou de palpage. On peut tester ces appareils - \u00e9loigner la t\u00eate du lit, ex\u00e9cuter BLTOUCH_DEBUG COMMAND=pin_down , v\u00e9rifier que le pointeau s'est d\u00e9plac\u00e9 vers le bas, ex\u00e9cuter QUERY_PROBE , v\u00e9rifier que la commande rapporte \"probe : open\", ex\u00e9cuter BLTOUCH_DEBUG COMMAND=pin_up , v\u00e9rifier que le pointeau s'est d\u00e9plac\u00e9 vers le haut, et ex\u00e9cuter QUERY_PROBE . Si la broche reste en haut, que le dispositif n'entre pas dans un \u00e9tat d'erreur, et que la premi\u00e8re requ\u00eate rapporte \"probe : open\" alors que la seconde rapporte \"probe : TRIGGERED\" alors cela indique que pin_up_reports_not_triggered doit \u00eatre mis \u00e0 False dans le fichier de configuration de Klipper. BL-Touch v3 \u00b6 Certains BL-Touch v3.0 et BL-Touch 3.1 peuvent n\u00e9cessiter la configuration de probe_with_touch_mode dans le fichier de configuration de l'imprimante. Si le fil de signal du BL-Touch v3.0 est connect\u00e9 \u00e0 une broche d'arr\u00eat (avec un condensateur de filtrage du bruit), il se peut que le BL-Touch v3.0 ne soit pas capable d'envoyer un signal de mani\u00e8re constante pendant la recherche de l'origine et le palpage. Si les commandes QUERY_PROBE dans la section des tests initiaux produisent toujours les r\u00e9sultats attendus, mais que la t\u00eate de l'outil ne s'arr\u00eate toujours pas pendant les commandes G28/PROBE, alors cela indique ce probl\u00e8me. Une solution de contournement est de d\u00e9finir probe_with_touch_mode : True dans le fichier de configuration. Le BL-Touch v3.1 peut entrer incorrectement dans un \u00e9tat d'erreur apr\u00e8s une tentative de sondage r\u00e9ussie. Les sympt\u00f4mes sont une lumi\u00e8re clignotante occasionnelle sur le BL-Touch v3.1 qui dure quelques secondes apr\u00e8s qu'il ait r\u00e9ussi \u00e0 entrer en contact avec le lit. Klipper devrait effacer cette erreur automatiquement et elle est g\u00e9n\u00e9ralement inoffensive. Cependant, on peut d\u00e9finir probe_with_touch_mode dans le fichier de configuration pour \u00e9viter ce probl\u00e8me. Important ! Certains \"clones\" ainsi que le BL-Touch v2.0 (et ant\u00e9rieur) peuvent avoir une pr\u00e9cision r\u00e9duite lorsque probe_with_touch_mode est r\u00e9gl\u00e9 sur True. Le r\u00e9glage de cette valeur sur True augmente \u00e9galement le temps n\u00e9cessaire au d\u00e9ploiement de la sonde. Si vous configurez cette valeur sur un dispositif BL-Touch \"clone\" ou plus ancien, assurez-vous de tester la pr\u00e9cision de la sonde avant et apr\u00e8s avoir d\u00e9fini cette valeur (utilisez la commande PROBE_ACCURACY pour tester). Multi-palpages sans r\u00e9traction du pointeau \u00b6 Par d\u00e9faut, Klipper d\u00e9ploie le pointeau au d\u00e9but de chaque tentative de mesure et le r\u00e9tracte ensuite. Ce d\u00e9ploiement et cette r\u00e9traction r\u00e9p\u00e9titifs du pointeau peuvent augmenter la dur\u00e9e totale des s\u00e9quences d'\u00e9talonnage impliquant de nombreuses mesures du plateau. Klipper permet de laisser le pointeau d\u00e9ploy\u00e9 entre deux mesures cons\u00e9cutives, ce qui peut r\u00e9duire la dur\u00e9e totale des mesures. Ce mode est activ\u00e9 en configurant stow_on_each_sample \u00e0 False dans le fichier de configuration. Important ! Si vous r\u00e9glez la valeur Stow_on_each_sample sur False, Klipper peut effectuer des mouvements horizontaux de la t\u00eate de l'outil durant le d\u00e9ploiement du palpeur. Assurez-vous que toutes les op\u00e9rations de palpage ont un d\u00e9gagement Z suffisant avant de r\u00e9gler cette valeur sur False. Si l'espace est insuffisant, un mouvement horizontal peut faire en sorte que le pointeau s'accroche \u00e0 une obstruction et endommager l'imprimante. Important ! Il est recommand\u00e9 d'utiliser probe_with_touch_mode configur\u00e9 \u00e0 True lorsque vous utilisez stow_on_each_sample configur\u00e9 \u00e0 False. Certains \"clones\" peuvent ne pas d\u00e9tecter un contact ult\u00e9rieur du lit si probe_with_touch_mode n'est pas configur\u00e9. Sur tous les dispositifs, l'utilisation de la combinaison de ces deux param\u00e8tres simplifie la signalisation de l'appareil, am\u00e9liorant la stabilit\u00e9 globale. Notez cependant que certains \"clones\" ainsi que le BL-Touch v2.0 (et ant\u00e9rieurs) peuvent avoir une pr\u00e9cision r\u00e9duite lorsque probe_with_touch_mode est r\u00e9gl\u00e9 sur True. Sur ces appareils, c'est une bonne id\u00e9e de tester la pr\u00e9cision de la sonde avant et apr\u00e8s avoir r\u00e9gl\u00e9 probe_with_touch_mode (utilisez la commande PROBE_ACCURACY pour tester). \u00c9talonnage des d\u00e9calages du BL-Touch \u00b6 Suivez les instructions du guide Calibration de la sonde pour d\u00e9finir les param\u00e8tres de configuration x_offset, y_offset et z_offset. C'est une bonne id\u00e9e de v\u00e9rifier que le d\u00e9calage Z est proche de 1mm. Si ce n'est pas le cas, vous devrez probablement d\u00e9placer le dispositif vers le haut ou vers le bas pour r\u00e9soudre ce probl\u00e8me. Vous voulez qu'il se d\u00e9clenche bien avant que la buse ne touche le lit, afin qu'un \u00e9ventuel filament coinc\u00e9 ou un lit d\u00e9form\u00e9 n'affecte pas l'action du BL-Touch. Mais en m\u00eame temps, vous voulez que la position r\u00e9tract\u00e9e soit aussi loin que possible au-dessus de la buse pour \u00e9viter qu'elle ne touche les pi\u00e8ces imprim\u00e9es. Si un ajustement est effectu\u00e9 sur la position du BL-Touch, recommencez les \u00e9tapes d'\u00e9talonnage de celui-ci. Mode de sortie du BL-Touch \u00b6 Un BL-Touch V3.0 accepte le r\u00e9glage d'un mode de sortie 5V ou OPEN-DRAIN, un BL-Touch V3.1 le supporte aussi et peut \u00e9galement le stocker dans son EEPROM interne. Si votre carte contr\u00f4leur a besoin du niveau logique haut de 5V du mode 5V, vous pouvez r\u00e9gler le param\u00e8tre 'set_output_mode' dans la section [bltouch] du fichier de configuration de l'imprimante sur \"5V\". N'utilisez le mode 5V que si la ligne d'entr\u00e9e de votre carte contr\u00f4leur est tol\u00e9rante \u00e0 cette tension (5V). C'est pourquoi la configuration par d\u00e9faut de ces versions de BL-Touch est le mode OPEN-DRAIN. Vous pourriez potentiellement endommager le CPU de votre carte contr\u00f4leur En r\u00e9sum\u00e9 : Si une carte contr\u00f4leur a besoin d'un mode 5V ET qu'elle est tol\u00e9rante \u00e0 5V sur sa ligne de signal d'entr\u00e9e ET si vous avez un BL-Touch Smart V3.0, vous devez utiliser le param\u00e8tre 'set_output_mode : 5V' pour assurer ce r\u00e9glage \u00e0 chaque d\u00e9marrage, puisque la sonde ne peut pas se souvenir du r\u00e9glage n\u00e9cessaire. vous avez un BL-Touch Smart V3.1, vous avez le choix d'utiliser 'set_output_mode : 5V' ou de m\u00e9moriser le mode une fois pour toutes en utilisant une commande 'BLTOUCH_STORE MODE=5V' manuellement et sans plus utiliser le param\u00e8tre 'set_output_mode:'. vous avez une autre sonde : Certaines sondes ont une trace sur la carte de circuit imprim\u00e9 \u00e0 couper ou un cavalier \u00e0 r\u00e9gler afin de d\u00e9finir (de fa\u00e7on permanente) le mode de sortie. Dans ce cas, omettez compl\u00e8tement le param\u00e8tre 'set_output_mode'. Si vous avez une version V3.1, n'automatisez pas ou ne r\u00e9p\u00e9tez pas la m\u00e9morisation du mode de sortie afin d'\u00e9viter d'user l'EEPROM de la sonde. L'EEPROM du BLTouch permet environ 100.000 mises \u00e0 jour. 100 mises \u00e0 jour par jour repr\u00e9sentent environ 3 ans de fonctionnement avant l'usure de la m\u00e9moire. Ainsi, le stockage du mode de sortie dans la V3.1 est con\u00e7u par le vendeur pour \u00eatre une op\u00e9ration compliqu\u00e9e (le d\u00e9faut d'usine \u00e9tant un mode s\u00fbr OPEN DRAIN) et n'est pas adapt\u00e9 pour \u00eatre \u00e9mis de mani\u00e8re r\u00e9p\u00e9t\u00e9e par un trancheur, une macro ou autre, il est pr\u00e9f\u00e9rable de ne l'utiliser que lors de la premi\u00e8re int\u00e9gration de la sonde dans l'\u00e9lectronique de l'imprimante.","title":"BL-Touch"},{"location":"BLTouch.html#bl-touch","text":"","title":"BL-Touch"},{"location":"BLTouch.html#connexion-du-bl-touch","text":"Un avertissement avant de commencer : \u00c9vitez de toucher la broche BL-Touch avec vos doigts nus, car elle est tr\u00e8s sensible \u00e0 la graisse des doigts. Et si vous la touchez, soyez tr\u00e8s doux, afin de ne pas plier ou pousser quoi que ce soit. Connectez le connecteur \"servo\" de la BL-Touch \u00e0 une control_pin selon la documentation de la BL-Touch ou celle de votre MCU. En utilisant le c\u00e2blage originel, le fil jaune du c\u00e2blage triple est la control_pin et le fil blanc du c\u00e2blage double est la sensor_pin . Vous devez configurer ces broches en fonction de votre c\u00e2blage. La plupart des dispositifs BL-Touch n\u00e9cessitent un pullup sur la broche du capteur (pr\u00e9fixez le nom de la broche par \"^\"). Par exemple : [bltouch] sensor_pin: ^P1.24 control_pin: P1.26 Si le BL-Touch est utilis\u00e9 pour amener l'axe Z \u00e0 l'origine, r\u00e9glez endstop_pin : probe:z_virtual_endstop et supprimez position_endstop dans la section de configuration [stepper_z] , puis ajoutez une section de configuration [safe_z_home] pour lever l'axe z, ramener les axes xy \u00e0 la position d'origine, se d\u00e9placer au centre du lit et ramener l'axe z \u00e0 la position d'origine. Par exemple : [safe_z_home] home_xy_position: 100, 100 # Change coordinates to the center of your print bed speed: 50 z_hop: 10 # Move up 10mm z_hop_speed: 5 Il est important que le mouvement z_hop dans safe_z_home soit suffisamment \u00e9lev\u00e9 pour que la sonde ne heurte rien, m\u00eame si la broche de la sonde se trouve dans son \u00e9tat le plus bas.","title":"Connexion du BL-Touch"},{"location":"BLTouch.html#tests-initiaux","text":"Avant de poursuivre, v\u00e9rifiez que la BL-Touch est mont\u00e9e \u00e0 la bonne hauteur, la tige doit se trouver \u00e0 environ 2 mm au-dessus de la buse lorsqu'elle est r\u00e9tract\u00e9e Lorsque vous mettez l'imprimante sous tension, la sonde BL-Touch doit effectuer un auto-test en sortant et r\u00e9tractant le pointeau plusieurs Une fois l'auto-test termin\u00e9, le pointeau doit \u00eatre r\u00e9tract\u00e9 et le voyant rouge de la sonde doit \u00eatre allum\u00e9. En cas d'erreur, par exemple si la sonde clignote en rouge ou si le pointeau est en bas au lieu d'\u00eatre en haut, veuillez \u00e9teindre l'imprimante et v\u00e9rifier le c\u00e2blage et la configuration. Si tout ce qui pr\u00e9c\u00e8de semble bon, il est temps de tester que la broche de contr\u00f4le fonctionne correctement. Ex\u00e9cutez d'abord BLTOUCH_DEBUG COMMAND=pin_down dans votre terminal d'imprimante. V\u00e9rifiez que le pointeau se d\u00e9place vers le bas et que la LED rouge de la sonde s'\u00e9teint. Si ce n'est pas le cas, v\u00e9rifiez \u00e0 nouveau votre c\u00e2blage et votre configuration. Ensuite, lancez une commande BLTOUCH_DEBUG COMMAND=pin_up , v\u00e9rifiez que le pointeau se r\u00e9tracte et que la lumi\u00e8re rouge s'allume \u00e0 nouveau. Si elle clignote, il y a un probl\u00e8me. L'\u00e9tape suivante consiste \u00e0 confirmer que la tige du capteur fonctionne correctement. Ex\u00e9cutez BLTOUCH_DEBUG COMMAND=pin_down , v\u00e9rifiez que le pointeau se d\u00e9place vers le bas, ex\u00e9cutez BLTOUCH_DEBUG COMMAND=touch_mode , ex\u00e9cutez QUERY_PROBE , et v\u00e9rifiez que la commande rapporte \"probe : open\". Ensuite, tout en poussant l\u00e9g\u00e8rement le pointeau vers le haut avec l'ongle de votre doigt, ex\u00e9cutez \u00e0 nouveau QUERY_PROBE . V\u00e9rifiez que la commande rapporte \"probe : TRIGGERED\". Si l'une ou l'autre des requ\u00eates ne donne pas le bon message, cela indique g\u00e9n\u00e9ralement un c\u00e2blage ou une configuration incorrecte (certains clones peuvent n\u00e9cessiter une manipulation sp\u00e9ciale). A la fin de ce test, ex\u00e9cutez BLTOUCH_DEBUG COMMAND=pin_up et v\u00e9rifiez que le pointeau se d\u00e9place vers le haut. Apr\u00e8s avoir effectu\u00e9 les tests de la broche de contr\u00f4le et de la broche de d\u00e9tection du BL-Touch, il est maintenant temps de tester le palpage, mais avec une petite astuce. Au lieu de laisser le pointeau de la sonde toucher le lit d'impression, laissez-le toucher l'ongle de votre doigt. Positionnez la t\u00eate d'impression loin du lit, \u00e9mettez un G28 (ou PROBE si vous n'utilisez pas probe:z_virtual_endstop), attendez que la t\u00eate d'impression commence \u00e0 descendre, et arr\u00eatez le mouvement en touchant tr\u00e8s doucement le pointeau avec votre ongle. Il se peut que vous deviez le faire deux fois, car la configuration par d\u00e9faut de l'autoguidage sonde deux fois. Pr\u00e9parez-vous \u00e0 \u00e9teindre l'imprimante si elle ne s'arr\u00eate pas lorsque vous touchez le pointeau. Si ce test a r\u00e9ussi, faites un autre G28 (ou PROBE ) mais cette fois-ci laissez-le toucher le lit comme il se doit.","title":"Tests initiaux"},{"location":"BLTouch.html#bl-touch-defaillant","text":"Une fois que le BL-Touch est dans un \u00e9tat incoh\u00e9rent, il se met \u00e0 clignoter en rouge. Vous pouvez le forcer \u00e0 quitter cet \u00e9tat en \u00e9mettant : BLTOUCH_DEBUG COMMAND=reset Cela peut se produire si son \u00e9talonnage est interrompu par un blocage de l'extraction du pointeau. Cependant, il se peut \u00e9galement que le BL-Touch ne soit plus capable de se calibrer lui-m\u00eame. Cela se produit si la vis situ\u00e9e sur le dessus est mal positionn\u00e9e ou si le noyau magn\u00e9tique \u00e0 l'int\u00e9rieur de la tige du pointeau a boug\u00e9. S'il s'est d\u00e9plac\u00e9 vers le haut au point de coller \u00e0 la vis, il se peut que le BL-Touch ne soit plus capable de lib\u00e9rer sa tige. Dans ce cas, vous devez ouvrir la vis et utiliser un stylo \u00e0 bille pour le remettre doucement en place. R\u00e9introduisez la tige dans le BL-Touch de fa\u00e7on \u00e0 ce qu'elle tombe dans la position extraite. R\u00e9ajustez d\u00e9licatement la vis sans t\u00eate du dessus. Vous devez trouver la juste position pour qu'elle soit capable d'abaisser et de relever la tige et que la lumi\u00e8re rouge s'allume et s'\u00e9teigne. Utilisez les commandes reset , pin_up et pin_down pour y parvenir.","title":"BL-Touch d\u00e9faillant"},{"location":"BLTouch.html#clones-du-bl-touch","text":"De nombreux \"clones\" BL-Touch fonctionnent correctement avec Klipper en utilisant la configuration par d\u00e9faut. Cependant, certains \"clones\" peuvent ne pas supporter la commande QUERY_PROBE et certains autres \"clones\" peuvent n\u00e9cessiter la configuration de pin_up_reports_not_triggered ou pin_up_touch_mode_reports_triggered . Important ! Ne configurez pas pin_up_reports_not_triggered ou pin_up_touch_mode_reports_triggered \u00e0 False sans suivre ces instructions. Ne configurez pas l'une ou l'autre de ces options sur False sur un v\u00e9ritable BL-Touch. Une configuration incorrecte de ces param\u00e8tres sur False peut augmenter le temps de palpage et peut augmenter le risque d'endommager l'imprimante. Certains \"clones\" ne supportent pas le touch_mode et par cons\u00e9quent la commande QUERY_PROBE ne fonctionne pas. Malgr\u00e9 cela, il est possible d'effectuer un palpage et une mise \u00e0 l'origine avec ces dispositifs. Sur ces dispositifs, la commande QUERY_PROBE pendant les tests initiaux n'aboutira pas, mais le test suivant G28 (ou PROBE ) aboutira. Il est possible d'utiliser ces \"clones\" avec Klipper tant que l'on n'utilise pas la commande QUERY_PROBE et que l'on n'active pas la fonction probe_with_touch_mode . Certains \"clones\" sont incapables d'effectuer le test de v\u00e9rification du capteur interne de Klipper. Sur ces appareils, les tentatives de mise \u00e0 l'origine ou de palpage peuvent entra\u00eener le signalement par Klipper de l'erreur \"BLTouch failed to verify sensor state\". Si cela se produit, ex\u00e9cutez manuellement les \u00e9tapes pour confirmer que la broche du capteur fonctionne comme d\u00e9crit dans la section tests initiaux . Si les commandes QUERY_PROBE de ce test produisent toujours les r\u00e9sultats attendus et que l'erreur \"BLTouch failed to verify sensor state\" se produit toujours, il peut \u00eatre n\u00e9cessaire de mettre pin_up_touch_mode_reports_triggered \u00e0 False dans le fichier de configuration de Klipper. Un nombre rare d'anciens \"clones\" sont incapables de signaler qu'ils ont r\u00e9ussi \u00e0 relever leur pointeau. Sur ces appareils, Klipper signalera une erreur \"BLTouch failed to raise probe\" apr\u00e8s chaque tentative de retour \u00e0 l'origine ou de palpage. On peut tester ces appareils - \u00e9loigner la t\u00eate du lit, ex\u00e9cuter BLTOUCH_DEBUG COMMAND=pin_down , v\u00e9rifier que le pointeau s'est d\u00e9plac\u00e9 vers le bas, ex\u00e9cuter QUERY_PROBE , v\u00e9rifier que la commande rapporte \"probe : open\", ex\u00e9cuter BLTOUCH_DEBUG COMMAND=pin_up , v\u00e9rifier que le pointeau s'est d\u00e9plac\u00e9 vers le haut, et ex\u00e9cuter QUERY_PROBE . Si la broche reste en haut, que le dispositif n'entre pas dans un \u00e9tat d'erreur, et que la premi\u00e8re requ\u00eate rapporte \"probe : open\" alors que la seconde rapporte \"probe : TRIGGERED\" alors cela indique que pin_up_reports_not_triggered doit \u00eatre mis \u00e0 False dans le fichier de configuration de Klipper.","title":"\"Clones\" du BL-Touch"},{"location":"BLTouch.html#bl-touch-v3","text":"Certains BL-Touch v3.0 et BL-Touch 3.1 peuvent n\u00e9cessiter la configuration de probe_with_touch_mode dans le fichier de configuration de l'imprimante. Si le fil de signal du BL-Touch v3.0 est connect\u00e9 \u00e0 une broche d'arr\u00eat (avec un condensateur de filtrage du bruit), il se peut que le BL-Touch v3.0 ne soit pas capable d'envoyer un signal de mani\u00e8re constante pendant la recherche de l'origine et le palpage. Si les commandes QUERY_PROBE dans la section des tests initiaux produisent toujours les r\u00e9sultats attendus, mais que la t\u00eate de l'outil ne s'arr\u00eate toujours pas pendant les commandes G28/PROBE, alors cela indique ce probl\u00e8me. Une solution de contournement est de d\u00e9finir probe_with_touch_mode : True dans le fichier de configuration. Le BL-Touch v3.1 peut entrer incorrectement dans un \u00e9tat d'erreur apr\u00e8s une tentative de sondage r\u00e9ussie. Les sympt\u00f4mes sont une lumi\u00e8re clignotante occasionnelle sur le BL-Touch v3.1 qui dure quelques secondes apr\u00e8s qu'il ait r\u00e9ussi \u00e0 entrer en contact avec le lit. Klipper devrait effacer cette erreur automatiquement et elle est g\u00e9n\u00e9ralement inoffensive. Cependant, on peut d\u00e9finir probe_with_touch_mode dans le fichier de configuration pour \u00e9viter ce probl\u00e8me. Important ! Certains \"clones\" ainsi que le BL-Touch v2.0 (et ant\u00e9rieur) peuvent avoir une pr\u00e9cision r\u00e9duite lorsque probe_with_touch_mode est r\u00e9gl\u00e9 sur True. Le r\u00e9glage de cette valeur sur True augmente \u00e9galement le temps n\u00e9cessaire au d\u00e9ploiement de la sonde. Si vous configurez cette valeur sur un dispositif BL-Touch \"clone\" ou plus ancien, assurez-vous de tester la pr\u00e9cision de la sonde avant et apr\u00e8s avoir d\u00e9fini cette valeur (utilisez la commande PROBE_ACCURACY pour tester).","title":"BL-Touch v3"},{"location":"BLTouch.html#multi-palpages-sans-retraction-du-pointeau","text":"Par d\u00e9faut, Klipper d\u00e9ploie le pointeau au d\u00e9but de chaque tentative de mesure et le r\u00e9tracte ensuite. Ce d\u00e9ploiement et cette r\u00e9traction r\u00e9p\u00e9titifs du pointeau peuvent augmenter la dur\u00e9e totale des s\u00e9quences d'\u00e9talonnage impliquant de nombreuses mesures du plateau. Klipper permet de laisser le pointeau d\u00e9ploy\u00e9 entre deux mesures cons\u00e9cutives, ce qui peut r\u00e9duire la dur\u00e9e totale des mesures. Ce mode est activ\u00e9 en configurant stow_on_each_sample \u00e0 False dans le fichier de configuration. Important ! Si vous r\u00e9glez la valeur Stow_on_each_sample sur False, Klipper peut effectuer des mouvements horizontaux de la t\u00eate de l'outil durant le d\u00e9ploiement du palpeur. Assurez-vous que toutes les op\u00e9rations de palpage ont un d\u00e9gagement Z suffisant avant de r\u00e9gler cette valeur sur False. Si l'espace est insuffisant, un mouvement horizontal peut faire en sorte que le pointeau s'accroche \u00e0 une obstruction et endommager l'imprimante. Important ! Il est recommand\u00e9 d'utiliser probe_with_touch_mode configur\u00e9 \u00e0 True lorsque vous utilisez stow_on_each_sample configur\u00e9 \u00e0 False. Certains \"clones\" peuvent ne pas d\u00e9tecter un contact ult\u00e9rieur du lit si probe_with_touch_mode n'est pas configur\u00e9. Sur tous les dispositifs, l'utilisation de la combinaison de ces deux param\u00e8tres simplifie la signalisation de l'appareil, am\u00e9liorant la stabilit\u00e9 globale. Notez cependant que certains \"clones\" ainsi que le BL-Touch v2.0 (et ant\u00e9rieurs) peuvent avoir une pr\u00e9cision r\u00e9duite lorsque probe_with_touch_mode est r\u00e9gl\u00e9 sur True. Sur ces appareils, c'est une bonne id\u00e9e de tester la pr\u00e9cision de la sonde avant et apr\u00e8s avoir r\u00e9gl\u00e9 probe_with_touch_mode (utilisez la commande PROBE_ACCURACY pour tester).","title":"Multi-palpages sans r\u00e9traction du pointeau"},{"location":"BLTouch.html#etalonnage-des-decalages-du-bl-touch","text":"Suivez les instructions du guide Calibration de la sonde pour d\u00e9finir les param\u00e8tres de configuration x_offset, y_offset et z_offset. C'est une bonne id\u00e9e de v\u00e9rifier que le d\u00e9calage Z est proche de 1mm. Si ce n'est pas le cas, vous devrez probablement d\u00e9placer le dispositif vers le haut ou vers le bas pour r\u00e9soudre ce probl\u00e8me. Vous voulez qu'il se d\u00e9clenche bien avant que la buse ne touche le lit, afin qu'un \u00e9ventuel filament coinc\u00e9 ou un lit d\u00e9form\u00e9 n'affecte pas l'action du BL-Touch. Mais en m\u00eame temps, vous voulez que la position r\u00e9tract\u00e9e soit aussi loin que possible au-dessus de la buse pour \u00e9viter qu'elle ne touche les pi\u00e8ces imprim\u00e9es. Si un ajustement est effectu\u00e9 sur la position du BL-Touch, recommencez les \u00e9tapes d'\u00e9talonnage de celui-ci.","title":"\u00c9talonnage des d\u00e9calages du BL-Touch"},{"location":"BLTouch.html#mode-de-sortie-du-bl-touch","text":"Un BL-Touch V3.0 accepte le r\u00e9glage d'un mode de sortie 5V ou OPEN-DRAIN, un BL-Touch V3.1 le supporte aussi et peut \u00e9galement le stocker dans son EEPROM interne. Si votre carte contr\u00f4leur a besoin du niveau logique haut de 5V du mode 5V, vous pouvez r\u00e9gler le param\u00e8tre 'set_output_mode' dans la section [bltouch] du fichier de configuration de l'imprimante sur \"5V\". N'utilisez le mode 5V que si la ligne d'entr\u00e9e de votre carte contr\u00f4leur est tol\u00e9rante \u00e0 cette tension (5V). C'est pourquoi la configuration par d\u00e9faut de ces versions de BL-Touch est le mode OPEN-DRAIN. Vous pourriez potentiellement endommager le CPU de votre carte contr\u00f4leur En r\u00e9sum\u00e9 : Si une carte contr\u00f4leur a besoin d'un mode 5V ET qu'elle est tol\u00e9rante \u00e0 5V sur sa ligne de signal d'entr\u00e9e ET si vous avez un BL-Touch Smart V3.0, vous devez utiliser le param\u00e8tre 'set_output_mode : 5V' pour assurer ce r\u00e9glage \u00e0 chaque d\u00e9marrage, puisque la sonde ne peut pas se souvenir du r\u00e9glage n\u00e9cessaire. vous avez un BL-Touch Smart V3.1, vous avez le choix d'utiliser 'set_output_mode : 5V' ou de m\u00e9moriser le mode une fois pour toutes en utilisant une commande 'BLTOUCH_STORE MODE=5V' manuellement et sans plus utiliser le param\u00e8tre 'set_output_mode:'. vous avez une autre sonde : Certaines sondes ont une trace sur la carte de circuit imprim\u00e9 \u00e0 couper ou un cavalier \u00e0 r\u00e9gler afin de d\u00e9finir (de fa\u00e7on permanente) le mode de sortie. Dans ce cas, omettez compl\u00e8tement le param\u00e8tre 'set_output_mode'. Si vous avez une version V3.1, n'automatisez pas ou ne r\u00e9p\u00e9tez pas la m\u00e9morisation du mode de sortie afin d'\u00e9viter d'user l'EEPROM de la sonde. L'EEPROM du BLTouch permet environ 100.000 mises \u00e0 jour. 100 mises \u00e0 jour par jour repr\u00e9sentent environ 3 ans de fonctionnement avant l'usure de la m\u00e9moire. Ainsi, le stockage du mode de sortie dans la V3.1 est con\u00e7u par le vendeur pour \u00eatre une op\u00e9ration compliqu\u00e9e (le d\u00e9faut d'usine \u00e9tant un mode s\u00fbr OPEN DRAIN) et n'est pas adapt\u00e9 pour \u00eatre \u00e9mis de mani\u00e8re r\u00e9p\u00e9t\u00e9e par un trancheur, une macro ou autre, il est pr\u00e9f\u00e9rable de ne l'utiliser que lors de la premi\u00e8re int\u00e9gration de la sonde dans l'\u00e9lectronique de l'imprimante.","title":"Mode de sortie du BL-Touch"},{"location":"Beaglebone.html","text":"Beaglebone \u00b6 Ce document d\u00e9crit le processus d'ex\u00e9cution de Klipper sur un Beaglebone PRU. Construire l'image du syst\u00e8me \u00b6 Start by installing the Debian 11.7 2023-09-02 4GB microSD IoT image. One may run the image from either a micro-SD card or from builtin eMMC. If using the eMMC, install it to eMMC now by following the instructions from the above link. Then ssh into the Beaglebone machine ( ssh debian@beaglebone -- password is temppwd ). Before start installing Klipper you need to free-up additional space. there are 3 options to do that: remove some BeagleBone \"Demo\" resources if you did boot from SD-Card, and it's bigger than 4Gb - you can expand current filesystem to take whole card space do option #1 and #2 together. To remove some BeagleBone \"Demo\" resources execute these commands sudo apt remove bb-node-red-installer sudo apt remove bb-code-server To expand filesystem to full size of your SD-Card execute this command, reboot is not required. sudo growpart /dev/mmcblk0 1 sudo resize2fs /dev/mmcblk0p1 Install Klipper by running the following commands: git clone https://github.com/Klipper3d/klipper.git ./klipper/scripts/install-beaglebone.sh After installing Klipper you need to decide what kind of deployment do you need, but take a note that BeagleBone is 3.3v based hardware and in most cases you can't directly connect pins to 5v or 12v based hardware without conversion boards. As Klipper have multimodule architecture on BeagleBone you can achieve many different use cases, but general ones are following: Use case 1: Use BeagleBone only as a host system to run Klipper and additional software like OctoPrint/Fluidd + Moonraker/... and this configuration will be driving external micro-controllers via serial/usb/canbus connections. Use case 2: Use BeagleBone with extension board (cape) like CRAMPS board. in this configuration BeagleBone will host Klipper + additional software, and it will drive extension board with BeagleBone PRU cores (2 additional cores 200Mh, 32Bit). Use case 3: It's same as \"Use case 1\" but additionally you want to drive BeagleBone GPIOs with high speed by utilizing PRU cores to offload main CPU. Installing Octoprint \u00b6 One may then install Octoprint or fully skip this section if desired other software: git clone https://github.com/foosel/OctoPrint.git cd OctoPrint/ virtualenv venv ./venv/bin/python setup.py install Et configurer OctoPrint pour qu'il d\u00e9marre au d\u00e9marrage : sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint sudo chmod +x /etc/init.d/octoprint sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint sudo update-rc.d octoprint defaults Il est n\u00e9cessaire de modifier le fichier de configuration d'OctoPrint /etc/default/octoprint . Il faut changer l'utilisateur OCTOPRINT_USER en debian , changer NICELEVEL en 0 , d\u00e9commenter les param\u00e8tres BASEDIR , CONFIGFILE , et DAEMON et changer les r\u00e9f\u00e9rences de /home/pi/ en /home/debian/ : sudo nano /etc/default/octoprint D\u00e9marrez ensuite le service Octoprint : sudo systemctl start octoprint Wait 1-2 minutes and make sure the OctoPrint web server is accessible - it should be at: http://beaglebone:5000/ Building the BeagleBone PRU micro-controller code (PRU firmware) \u00b6 This section is required for \"Use case 2\" and \"Use case 3\" mentioned above, you should skip it for \"Use case 1\". Check that required devices are present sudo beagle-version You should check that output contains successful \"remoteproc\" drivers loading and presence of PRU cores, in Kernel 5.10 they should be \"remoteproc1\" and \"remoteproc2\" (4a334000.pru, 4a338000.pru) Also check that many GPIOs are loaded they will look like \"Allocated GPIO id=0 name='P8_03'\" Usually everything is fine and no hardware configuration is required. If something is missing - try to play with \"uboot overlays\" options or with cape-overlays Just for reference some output of working BeagleBone Black configuration with CRAMPS board: model:[TI_AM335x_BeagleBone_Black] UBOOT: Booted Device-Tree:[am335x-boneblack-uboot-univ.dts] UBOOT: Loaded Overlay:[BB-ADC-00A0.bb.org-overlays] UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0.bb.org-overlays] kernel:[5.10.168-ti-r71] /boot/uEnv.txt Settings: uboot_overlay_options:[enable_uboot_overlays=1] uboot_overlay_options:[disable_uboot_overlay_video=0] uboot_overlay_options:[disable_uboot_overlay_audio=1] uboot_overlay_options:[disable_uboot_overlay_wireless=1] uboot_overlay_options:[enable_uboot_cape_universal=1] pkg:[bb-cape-overlays]:[4.14.20210821.0-0~bullseye+20210821] pkg:[bb-customizations]:[1.20230720.1-0~bullseye+20230720] pkg:[bb-usb-gadgets]:[1.20230414.0-0~bullseye+20230414] pkg:[bb-wl18xx-firmware]:[1.20230414.0-0~bullseye+20230414] ............. ............. To compile the Klipper micro-controller code, start by configuring it for the \"Beaglebone PRU\", for \"BeagleBone Black\" additionally disable options \"Support GPIO Bit-banging devices\" and disable \"Support LCD devices\" inside the \"Optional features\" because they will not fit in 8Kb PRU firmware memory, then exit and save config: cd ~/klipper/ make menuconfig To build and install the new PRU micro-controller code, run: sudo service klipper stop make flash sudo service klipper start After previous commands was executed your PRU firmware should be ready and started to check if everything was fine you can execute following command dmesg and compare last messages with sample one which indicate that everything started properly: [ 71.105499] remoteproc remoteproc1: 4a334000.pru is available [ 71.157155] remoteproc remoteproc2: 4a338000.pru is available [ 73.256287] remoteproc remoteproc1: powering up 4a334000.pru [ 73.279246] remoteproc remoteproc1: Booting fw image am335x-pru0-fw, size 97112 [ 73.285807] remoteproc1#vdev0buffer: registered virtio0 (type 7) [ 73.285836] remoteproc remoteproc1: remote processor 4a334000.pru is now up [ 73.286322] remoteproc remoteproc2: powering up 4a338000.pru [ 73.313717] remoteproc remoteproc2: Booting fw image am335x-pru1-fw, size 188560 [ 73.313753] remoteproc remoteproc2: header-less resource table [ 73.329964] remoteproc remoteproc2: header-less resource table [ 73.348321] remoteproc remoteproc2: remote processor 4a338000.pru is now up [ 73.443355] virtio_rpmsg_bus virtio0: creating channel rpmsg-pru addr 0x1e [ 73.443727] virtio_rpmsg_bus virtio0: msg received with no recipient [ 73.444352] virtio_rpmsg_bus virtio0: rpmsg host is online [ 73.540993] rpmsg_pru virtio0.rpmsg-pru.-1.30: new rpmsg_pru device: /dev/rpmsg_pru30 take a note about \"/dev/rpmsg_pru30\" - it's your future serial device for main mcu configuration this device is required to be present, if it's absent - your PRU cores did not start properly. Building and installing Linux host micro-controller code \u00b6 This section is required for \"Use case 2\" and optional for \"Use case 3\" mentioned above Il est \u00e9galement n\u00e9cessaire de compiler et d'installer le code du microcontr\u00f4leur pour un processus h\u00f4te Linux. Configurez-le une seconde fois pour un \"processus Linux\" : make menuconfig Puis installez \u00e9galement ce code de micro-contr\u00f4leur : sudo service klipper stop make flash sudo service klipper start take a note about \"/tmp/klipper_host_mcu\" - it will be your future serial device for \"mcu host\" if that file don't exist - refer to \"scripts/klipper-mcu.service\" file, it was installed by previous commands, and it's responsible for it. Take a note for \"Use case 2\" about following: when you will define printer configuration you should always use temperature sensors from \"mcu host\" because ADCs not present in default \"mcu\" (PRU cores). Sample configuration of \"sensor_pin\" for extruder and heated bed are available in \"generic-cramps.cfg\" You can use any other GPIO directly from \"mcu host\" by referencing them this way \"host:gpiochip1/gpio17\" but that should be avoided because it will be creating additional load on main CPU and most probably you can't use them for stepper control. Configuration restante \u00b6 Complete the installation by configuring Klipper following the instructions in the main Installation document. Imprimer avec le Beaglebone \u00b6 Unfortunately, the Beaglebone processor can sometimes struggle to run OctoPrint well. Print stalls have been known to occur on complex prints (the printer may move faster than OctoPrint can send movement commands). If this occurs, consider using the \"virtual_sdcard\" feature (see Config Reference for details) to print directly from Klipper and disable any DEBUG or VERBOSE logging options if you did enable them. AVR micro-controller code build \u00b6 This environment have everything to build necessary micro-controller code except AVR, AVR packages was removed because of conflict with PRU packages. if you still want to build AVR micro-controller code in this environment you need to remove PRU packages and install AVR packages by executing following commands sudo apt-get remove gcc-pru sudo apt-get install avrdude gcc-avr binutils-avr avr-libc if you need to restore PRU packages - then remove ARV packages before that sudo apt-get remove avrdude gcc-avr binutils-avr avr-libc sudo apt-get install gcc-pru Hardware Pin designation \u00b6 BeagleBone is very flexible in terms of pin designation, same pin can be configured for different function but always single function for single pin, same function can be present on different pins. So you can't have multiple functions on single pin or have same function on multiple pins. Example: P9_20 - i2c2_sda/can0_tx/spi1_cs0/gpio0_12/uart1_ctsn P9_19 - i2c2_scl/can0_rx/spi1_cs1/gpio0_13/uart1_rtsn P9_24 - i2c1_scl/can1_rx/gpio0_15/uart1_tx P9_26 - i2c1_sda/can1_tx/gpio0_14/uart1_rx Pin designation is defined by using special \"overlays\" which will be loaded during linux boot they are configured by editing file /boot/uEnv.txt with elevated permissions sudo editor /boot/uEnv.txt and defining which functionality to load, for example to enable CAN1 you need to define overlay for it uboot_overlay_addr4=/lib/firmware/BB-CAN1-00A0.dtbo This overlay BB-CAN1-00A0.dtbo will reconfigure all required pins for CAN1 and create CAN device in Linux. Any change in overlays will require system reboot to be applied. If you need to understand which pins are involved in some overlay - you can analyze source files in this location: /opt/sources/bb.org-overlays/src/arm/ or search info in BeagleBone forums. Enabling hardware SPI \u00b6 BeagleBone usually have multiple hardware SPI buses, for example BeagleBone Black can have 2 of them, they can work up to 48Mhz, but usually they are limited to 16Mhz by Kernel Device-tree. By default, in BeagleBone Black some of SPI1 pins are configured for HDMI-Audio output, to fully enable 4-wire SPI1 you need to disable HDMI Audio and enable SPI1 To do that edit file /boot/uEnv.txt with elevated permissions sudo editor /boot/uEnv.txt uncomment variable disable_uboot_overlay_audio=1 next uncomment variable and define it this way uboot_overlay_addr4=/lib/firmware/BB-SPIDEV1-00A0.dtbo Save changes in /boot/uEnv.txt and reboot the board. Now you have SPI1 Enabled, to verify its presence execute command ls /dev/spidev1.* Take a note that BeagleBone usually is 3.3v based hardware and to use 5V SPI devices you need to add Level-Shifting chip, for example SN74CBTD3861, SN74LVC1G34 or similar. If you are using CRAMPS board - it already contains Level-Shifting chip and SPI1 pins will become available on P503 port, and they can accept 5v hardware, check CRAMPS board Schematics for pin references. Enabling hardware I2C \u00b6 BeagleBone usually have multiple hardware I2C buses, for example BeagleBone Black can have 3 of them, they support speed up-to 400Kbit Fast mode. By default, in BeagleBone Black there are two of them (i2c-1 and i2c-2) usually both are already configured and present on P9, third ic2-0 usually reserved for internal use. If you are using CRAMPS board then i2c-2 is present on P303 port with 3.3v level, If you want to obtain I2c-1 in CRAMPS board - you can get them on Extruder1.Step, Extruder1.Dir pins, they also are 3.3v based, check CRAMPS board Schematics for pin references. Related overlays, for Hardware Pin designation : I2C1(100Kbit): BB-I2C1-00A0.dtbo I2C1(400Kbit): BB-I2C1-FAST-00A0.dtbo I2C2(100Kbit): BB-I2C2-00A0.dtbo I2C2(400Kbit): BB-I2C2-FAST-00A0.dtbo Enabling hardware UART(Serial)/CAN \u00b6 BeagleBone have up to 6 hardware UART(Serial) buses (up to 3Mbit) and up to 2 hardware CAN(1Mbit) buses. UART1(RX,TX) and CAN1(TX,RX) and I2C2(SDA,SCL) are using same pins - so you need to chose what to use UART1(CTSN,RTSN) and CAN0(TX,RX) and I2C1(SDA,SCL) are using same pins - so you need to chose what to use All UART/CAN related pins are 3.3v based, so you will need to use Transceiver chips/boards like SN74LVC2G241DCUR (for UART), SN65HVD230 (for CAN), TTL-RS485 (for RS-485) or something similar which can convert 3.3v signals to appropriate levels. Related overlays, for Hardware Pin designation CAN0: BB-CAN0-00A0.dtbo CAN1: BB-CAN1-00A0.dtbo UART0: - used for Console UART1(RX,TX): BB-UART1-00A0.dtbo UART1(RTS,CTS): BB-UART1-RTSCTS-00A0.dtbo UART2(RX,TX): BB-UART2-00A0.dtbo UART3(RX,TX): BB-UART3-00A0.dtbo UART4(RS-485): BB-UART4-RS485-00A0.dtbo UART5(RX,TX): BB-UART5-00A0.dtbo","title":"Beaglebone"},{"location":"Beaglebone.html#beaglebone","text":"Ce document d\u00e9crit le processus d'ex\u00e9cution de Klipper sur un Beaglebone PRU.","title":"Beaglebone"},{"location":"Beaglebone.html#construire-limage-du-systeme","text":"Start by installing the Debian 11.7 2023-09-02 4GB microSD IoT image. One may run the image from either a micro-SD card or from builtin eMMC. If using the eMMC, install it to eMMC now by following the instructions from the above link. Then ssh into the Beaglebone machine ( ssh debian@beaglebone -- password is temppwd ). Before start installing Klipper you need to free-up additional space. there are 3 options to do that: remove some BeagleBone \"Demo\" resources if you did boot from SD-Card, and it's bigger than 4Gb - you can expand current filesystem to take whole card space do option #1 and #2 together. To remove some BeagleBone \"Demo\" resources execute these commands sudo apt remove bb-node-red-installer sudo apt remove bb-code-server To expand filesystem to full size of your SD-Card execute this command, reboot is not required. sudo growpart /dev/mmcblk0 1 sudo resize2fs /dev/mmcblk0p1 Install Klipper by running the following commands: git clone https://github.com/Klipper3d/klipper.git ./klipper/scripts/install-beaglebone.sh After installing Klipper you need to decide what kind of deployment do you need, but take a note that BeagleBone is 3.3v based hardware and in most cases you can't directly connect pins to 5v or 12v based hardware without conversion boards. As Klipper have multimodule architecture on BeagleBone you can achieve many different use cases, but general ones are following: Use case 1: Use BeagleBone only as a host system to run Klipper and additional software like OctoPrint/Fluidd + Moonraker/... and this configuration will be driving external micro-controllers via serial/usb/canbus connections. Use case 2: Use BeagleBone with extension board (cape) like CRAMPS board. in this configuration BeagleBone will host Klipper + additional software, and it will drive extension board with BeagleBone PRU cores (2 additional cores 200Mh, 32Bit). Use case 3: It's same as \"Use case 1\" but additionally you want to drive BeagleBone GPIOs with high speed by utilizing PRU cores to offload main CPU.","title":"Construire l'image du syst\u00e8me"},{"location":"Beaglebone.html#installing-octoprint","text":"One may then install Octoprint or fully skip this section if desired other software: git clone https://github.com/foosel/OctoPrint.git cd OctoPrint/ virtualenv venv ./venv/bin/python setup.py install Et configurer OctoPrint pour qu'il d\u00e9marre au d\u00e9marrage : sudo cp ~/OctoPrint/scripts/octoprint.init /etc/init.d/octoprint sudo chmod +x /etc/init.d/octoprint sudo cp ~/OctoPrint/scripts/octoprint.default /etc/default/octoprint sudo update-rc.d octoprint defaults Il est n\u00e9cessaire de modifier le fichier de configuration d'OctoPrint /etc/default/octoprint . Il faut changer l'utilisateur OCTOPRINT_USER en debian , changer NICELEVEL en 0 , d\u00e9commenter les param\u00e8tres BASEDIR , CONFIGFILE , et DAEMON et changer les r\u00e9f\u00e9rences de /home/pi/ en /home/debian/ : sudo nano /etc/default/octoprint D\u00e9marrez ensuite le service Octoprint : sudo systemctl start octoprint Wait 1-2 minutes and make sure the OctoPrint web server is accessible - it should be at: http://beaglebone:5000/","title":"Installing Octoprint"},{"location":"Beaglebone.html#building-the-beaglebone-pru-micro-controller-code-pru-firmware","text":"This section is required for \"Use case 2\" and \"Use case 3\" mentioned above, you should skip it for \"Use case 1\". Check that required devices are present sudo beagle-version You should check that output contains successful \"remoteproc\" drivers loading and presence of PRU cores, in Kernel 5.10 they should be \"remoteproc1\" and \"remoteproc2\" (4a334000.pru, 4a338000.pru) Also check that many GPIOs are loaded they will look like \"Allocated GPIO id=0 name='P8_03'\" Usually everything is fine and no hardware configuration is required. If something is missing - try to play with \"uboot overlays\" options or with cape-overlays Just for reference some output of working BeagleBone Black configuration with CRAMPS board: model:[TI_AM335x_BeagleBone_Black] UBOOT: Booted Device-Tree:[am335x-boneblack-uboot-univ.dts] UBOOT: Loaded Overlay:[BB-ADC-00A0.bb.org-overlays] UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0.bb.org-overlays] kernel:[5.10.168-ti-r71] /boot/uEnv.txt Settings: uboot_overlay_options:[enable_uboot_overlays=1] uboot_overlay_options:[disable_uboot_overlay_video=0] uboot_overlay_options:[disable_uboot_overlay_audio=1] uboot_overlay_options:[disable_uboot_overlay_wireless=1] uboot_overlay_options:[enable_uboot_cape_universal=1] pkg:[bb-cape-overlays]:[4.14.20210821.0-0~bullseye+20210821] pkg:[bb-customizations]:[1.20230720.1-0~bullseye+20230720] pkg:[bb-usb-gadgets]:[1.20230414.0-0~bullseye+20230414] pkg:[bb-wl18xx-firmware]:[1.20230414.0-0~bullseye+20230414] ............. ............. To compile the Klipper micro-controller code, start by configuring it for the \"Beaglebone PRU\", for \"BeagleBone Black\" additionally disable options \"Support GPIO Bit-banging devices\" and disable \"Support LCD devices\" inside the \"Optional features\" because they will not fit in 8Kb PRU firmware memory, then exit and save config: cd ~/klipper/ make menuconfig To build and install the new PRU micro-controller code, run: sudo service klipper stop make flash sudo service klipper start After previous commands was executed your PRU firmware should be ready and started to check if everything was fine you can execute following command dmesg and compare last messages with sample one which indicate that everything started properly: [ 71.105499] remoteproc remoteproc1: 4a334000.pru is available [ 71.157155] remoteproc remoteproc2: 4a338000.pru is available [ 73.256287] remoteproc remoteproc1: powering up 4a334000.pru [ 73.279246] remoteproc remoteproc1: Booting fw image am335x-pru0-fw, size 97112 [ 73.285807] remoteproc1#vdev0buffer: registered virtio0 (type 7) [ 73.285836] remoteproc remoteproc1: remote processor 4a334000.pru is now up [ 73.286322] remoteproc remoteproc2: powering up 4a338000.pru [ 73.313717] remoteproc remoteproc2: Booting fw image am335x-pru1-fw, size 188560 [ 73.313753] remoteproc remoteproc2: header-less resource table [ 73.329964] remoteproc remoteproc2: header-less resource table [ 73.348321] remoteproc remoteproc2: remote processor 4a338000.pru is now up [ 73.443355] virtio_rpmsg_bus virtio0: creating channel rpmsg-pru addr 0x1e [ 73.443727] virtio_rpmsg_bus virtio0: msg received with no recipient [ 73.444352] virtio_rpmsg_bus virtio0: rpmsg host is online [ 73.540993] rpmsg_pru virtio0.rpmsg-pru.-1.30: new rpmsg_pru device: /dev/rpmsg_pru30 take a note about \"/dev/rpmsg_pru30\" - it's your future serial device for main mcu configuration this device is required to be present, if it's absent - your PRU cores did not start properly.","title":"Building the BeagleBone PRU micro-controller code (PRU firmware)"},{"location":"Beaglebone.html#building-and-installing-linux-host-micro-controller-code","text":"This section is required for \"Use case 2\" and optional for \"Use case 3\" mentioned above Il est \u00e9galement n\u00e9cessaire de compiler et d'installer le code du microcontr\u00f4leur pour un processus h\u00f4te Linux. Configurez-le une seconde fois pour un \"processus Linux\" : make menuconfig Puis installez \u00e9galement ce code de micro-contr\u00f4leur : sudo service klipper stop make flash sudo service klipper start take a note about \"/tmp/klipper_host_mcu\" - it will be your future serial device for \"mcu host\" if that file don't exist - refer to \"scripts/klipper-mcu.service\" file, it was installed by previous commands, and it's responsible for it. Take a note for \"Use case 2\" about following: when you will define printer configuration you should always use temperature sensors from \"mcu host\" because ADCs not present in default \"mcu\" (PRU cores). Sample configuration of \"sensor_pin\" for extruder and heated bed are available in \"generic-cramps.cfg\" You can use any other GPIO directly from \"mcu host\" by referencing them this way \"host:gpiochip1/gpio17\" but that should be avoided because it will be creating additional load on main CPU and most probably you can't use them for stepper control.","title":"Building and installing Linux host micro-controller code"},{"location":"Beaglebone.html#configuration-restante","text":"Complete the installation by configuring Klipper following the instructions in the main Installation document.","title":"Configuration restante"},{"location":"Beaglebone.html#imprimer-avec-le-beaglebone","text":"Unfortunately, the Beaglebone processor can sometimes struggle to run OctoPrint well. Print stalls have been known to occur on complex prints (the printer may move faster than OctoPrint can send movement commands). If this occurs, consider using the \"virtual_sdcard\" feature (see Config Reference for details) to print directly from Klipper and disable any DEBUG or VERBOSE logging options if you did enable them.","title":"Imprimer avec le Beaglebone"},{"location":"Beaglebone.html#avr-micro-controller-code-build","text":"This environment have everything to build necessary micro-controller code except AVR, AVR packages was removed because of conflict with PRU packages. if you still want to build AVR micro-controller code in this environment you need to remove PRU packages and install AVR packages by executing following commands sudo apt-get remove gcc-pru sudo apt-get install avrdude gcc-avr binutils-avr avr-libc if you need to restore PRU packages - then remove ARV packages before that sudo apt-get remove avrdude gcc-avr binutils-avr avr-libc sudo apt-get install gcc-pru","title":"AVR micro-controller code build"},{"location":"Beaglebone.html#hardware-pin-designation","text":"BeagleBone is very flexible in terms of pin designation, same pin can be configured for different function but always single function for single pin, same function can be present on different pins. So you can't have multiple functions on single pin or have same function on multiple pins. Example: P9_20 - i2c2_sda/can0_tx/spi1_cs0/gpio0_12/uart1_ctsn P9_19 - i2c2_scl/can0_rx/spi1_cs1/gpio0_13/uart1_rtsn P9_24 - i2c1_scl/can1_rx/gpio0_15/uart1_tx P9_26 - i2c1_sda/can1_tx/gpio0_14/uart1_rx Pin designation is defined by using special \"overlays\" which will be loaded during linux boot they are configured by editing file /boot/uEnv.txt with elevated permissions sudo editor /boot/uEnv.txt and defining which functionality to load, for example to enable CAN1 you need to define overlay for it uboot_overlay_addr4=/lib/firmware/BB-CAN1-00A0.dtbo This overlay BB-CAN1-00A0.dtbo will reconfigure all required pins for CAN1 and create CAN device in Linux. Any change in overlays will require system reboot to be applied. If you need to understand which pins are involved in some overlay - you can analyze source files in this location: /opt/sources/bb.org-overlays/src/arm/ or search info in BeagleBone forums.","title":"Hardware Pin designation"},{"location":"Beaglebone.html#enabling-hardware-spi","text":"BeagleBone usually have multiple hardware SPI buses, for example BeagleBone Black can have 2 of them, they can work up to 48Mhz, but usually they are limited to 16Mhz by Kernel Device-tree. By default, in BeagleBone Black some of SPI1 pins are configured for HDMI-Audio output, to fully enable 4-wire SPI1 you need to disable HDMI Audio and enable SPI1 To do that edit file /boot/uEnv.txt with elevated permissions sudo editor /boot/uEnv.txt uncomment variable disable_uboot_overlay_audio=1 next uncomment variable and define it this way uboot_overlay_addr4=/lib/firmware/BB-SPIDEV1-00A0.dtbo Save changes in /boot/uEnv.txt and reboot the board. Now you have SPI1 Enabled, to verify its presence execute command ls /dev/spidev1.* Take a note that BeagleBone usually is 3.3v based hardware and to use 5V SPI devices you need to add Level-Shifting chip, for example SN74CBTD3861, SN74LVC1G34 or similar. If you are using CRAMPS board - it already contains Level-Shifting chip and SPI1 pins will become available on P503 port, and they can accept 5v hardware, check CRAMPS board Schematics for pin references.","title":"Enabling hardware SPI"},{"location":"Beaglebone.html#enabling-hardware-i2c","text":"BeagleBone usually have multiple hardware I2C buses, for example BeagleBone Black can have 3 of them, they support speed up-to 400Kbit Fast mode. By default, in BeagleBone Black there are two of them (i2c-1 and i2c-2) usually both are already configured and present on P9, third ic2-0 usually reserved for internal use. If you are using CRAMPS board then i2c-2 is present on P303 port with 3.3v level, If you want to obtain I2c-1 in CRAMPS board - you can get them on Extruder1.Step, Extruder1.Dir pins, they also are 3.3v based, check CRAMPS board Schematics for pin references. Related overlays, for Hardware Pin designation : I2C1(100Kbit): BB-I2C1-00A0.dtbo I2C1(400Kbit): BB-I2C1-FAST-00A0.dtbo I2C2(100Kbit): BB-I2C2-00A0.dtbo I2C2(400Kbit): BB-I2C2-FAST-00A0.dtbo","title":"Enabling hardware I2C"},{"location":"Beaglebone.html#enabling-hardware-uartserialcan","text":"BeagleBone have up to 6 hardware UART(Serial) buses (up to 3Mbit) and up to 2 hardware CAN(1Mbit) buses. UART1(RX,TX) and CAN1(TX,RX) and I2C2(SDA,SCL) are using same pins - so you need to chose what to use UART1(CTSN,RTSN) and CAN0(TX,RX) and I2C1(SDA,SCL) are using same pins - so you need to chose what to use All UART/CAN related pins are 3.3v based, so you will need to use Transceiver chips/boards like SN74LVC2G241DCUR (for UART), SN65HVD230 (for CAN), TTL-RS485 (for RS-485) or something similar which can convert 3.3v signals to appropriate levels. Related overlays, for Hardware Pin designation CAN0: BB-CAN0-00A0.dtbo CAN1: BB-CAN1-00A0.dtbo UART0: - used for Console UART1(RX,TX): BB-UART1-00A0.dtbo UART1(RTS,CTS): BB-UART1-RTSCTS-00A0.dtbo UART2(RX,TX): BB-UART2-00A0.dtbo UART3(RX,TX): BB-UART3-00A0.dtbo UART4(RS-485): BB-UART4-RS485-00A0.dtbo UART5(RX,TX): BB-UART5-00A0.dtbo","title":"Enabling hardware UART(Serial)/CAN"},{"location":"Bed_Level.html","text":"Nivellement du lit \u00b6 Le nivellement du lit (parfois aussi appel\u00e9 \u00ab tramage du lit \u00bb) est essentiel pour obtenir des impressions de haute qualit\u00e9. Si un lit n'est pas correctement \"nivel\u00e9\", cela peut entra\u00eener une mauvaise adh\u00e9rence du lit, un \"gauchissement\" et des probl\u00e8mes subtils tout au long de l'impression. Ce document sert de guide pour effectuer le nivellement du lit dans Klipper. Il est important de comprendre l'objectif du nivellement du lit. Si l'imprimante doit aller \u00e0 la position X0 Y0 Z10 pendant une impression, alors l'objectif est que la buse de l'imprimante soit exactement \u00e0 10 mm du lit de l'imprimante. De plus, si l'imprimante doit ensuite aller \u00e0 la position \"X50 Z10\", l'objectif est que la buse maintienne une distance exacte de 10 mm du lit pendant tout ce mouvement horizontal. Afin d'obtenir des impressions de bonne qualit\u00e9, l'imprimante doit \u00eatre calibr\u00e9e de sorte que les distances Z soient pr\u00e9cises \u00e0 environ 25 microns (0,025 mm). Il s'agit d'une petite distance - nettement inf\u00e9rieure \u00e0 la largeur d'un cheveu humain. Cette \u00e9chelle ne peut pas \u00eatre mesur\u00e9e \"\u00e0 l'\u0153il\". Des effets subtils (tels que la dilatation thermique) ont un impact sur les mesures \u00e0 cette \u00e9chelle. Le secret pour obtenir une grande pr\u00e9cision est d'utiliser un processus reproductible et d'utiliser une m\u00e9thode de mise \u00e0 niveau qui tire parti de la haute pr\u00e9cision du propre syst\u00e8me de mouvement de l'imprimante. Choisissez le m\u00e9canisme d'\u00e9talonnage appropri\u00e9 \u00b6 Diff\u00e9rents types d'imprimantes utilisent diff\u00e9rentes m\u00e9thodes pour effectuer le nivellement du lit. A la fin toutes les m\u00e9thodes d\u00e9pendent du \"test du papier\" (d\u00e9crit ci-dessous). Cependant, le processus pour un type particulier d'imprimante est d\u00e9crit dans les autres documents. Avant d'ex\u00e9cuter l'un de ces outils d'\u00e9talonnage, assurez-vous d'ex\u00e9cuter les v\u00e9rifications d\u00e9crites dans le document de v\u00e9rification de la configuration . Il est n\u00e9cessaire de v\u00e9rifier les mouvements de base de l'imprimante avant d'effectuer le nivellement du lit. Pour les imprimantes avec une sonde Z automatique, assurez-vous de calibrer la sonde en suivant les instructions du document R\u00e9glages de la sonde . Pour les imprimantes delta, consultez le document R\u00e9glage des deltas . Pour les imprimantes avec un lit r\u00e9glable par vis et des fin de course Z traditionnels, consultez le document Nivellement manuel . Pendant le calibrage, il peut \u00eatre n\u00e9cessaire de d\u00e9finir la position_min du Z de l'imprimante sur un nombre n\u00e9gatif (par exemple, position_min = -2 ). L'imprimante effectue des v\u00e9rifications des limites m\u00eame pendant les routines d'\u00e9talonnage. La d\u00e9finition d'un nombre n\u00e9gatif permet \u00e0 l'imprimante de se d\u00e9placer en dessous de la position nominale du lit, ce qui peut aider \u00e0 d\u00e9terminer la position r\u00e9elle du lit. Le \"Test du papier\" \u00b6 Le principal m\u00e9canisme d'\u00e9talonnage du lit est le \"test du papier\". Il s'agit de placer un morceau r\u00e9gulier de \"papier pour photocopieuse\" entre le lit et la buse de l'imprimante, puis de d\u00e9placer la buse \u00e0 diff\u00e9rentes hauteurs Z jusqu'\u00e0 ce que l'on ressente une petite friction lorsque l'on pousse le papier d'avant en arri\u00e8re. Il est important de bien comprendre le \"test papier\" m\u00eame si l'on dispose d'une \"sonde Z automatique\". La sonde elle-m\u00eame doit souvent \u00eatre calibr\u00e9e pour obtenir de bons r\u00e9sultats. Cet \u00e9talonnage de la sonde est effectu\u00e9 \u00e0 l'aide de ce \"test papier\". Afin d'effectuer le test du papier, coupez un petit morceau de papier rectangulaire \u00e0 l'aide d'une paire de ciseaux (par exemple, 5x3 cm). Le papier a g\u00e9n\u00e9ralement une \u00e9paisseur d'environ 100 microns (0,100 mm). (L'\u00e9paisseur exacte du papier n'est pas cruciale.) La premi\u00e8re \u00e9tape du test du papier consiste \u00e0 inspecter la buse et le lit de l'imprimante. Assurez-vous qu'il n'y a pas de plastique (ou d'autres d\u00e9bris) sur la buse ou le lit. Inspectez la buse et le lit pour vous assurer qu'il n'y a pas de plastique ! Si l'on imprime toujours sur une bande adh\u00e9sive ou une surface d'impression particuli\u00e8re, on peut alors effectuer le test papier avec cette bande/surface en place. Cependant, notez que le ruban lui-m\u00eame a une \u00e9paisseur et que diff\u00e9rents rubans (ou toute autre surface d'impression) auront un impact sur les mesures Z. Assurez-vous de relancer le test du papier pour mesurer chaque type de surface utilis\u00e9. S'il y a du plastique sur la buse, chauffez la buse et utilisez une pince \u00e0 \u00e9piler en m\u00e9tal pour retirer ce plastique. Attendez que la buse refroidisse compl\u00e8tement \u00e0 temp\u00e9rature ambiante avant de continuer avec le test papier. Pendant que la buse refroidit, utilisez la pince \u00e0 \u00e9piler en m\u00e9tal pour retirer tout plastique susceptible de suinter. Effectuez toujours le test du papier lorsque la buse et le lit sont \u00e0 temp\u00e9rature ambiante ! Lorsque la buse est chauff\u00e9e, sa position (par rapport au lit) change en raison de la dilatation thermique. Cette dilatation thermique est g\u00e9n\u00e9ralement d'environ 100 microns, ce qui correspond \u00e0 peu pr\u00e8s \u00e0 la m\u00eame \u00e9paisseur qu'un morceau de papier d'imprimante typique. La quantit\u00e9 exacte de dilatation thermique n'est pas cruciale, tout comme l'\u00e9paisseur exacte du papier n'est pas cruciale. Commencez par l'hypoth\u00e8se que les deux sont \u00e9gaux (voir ci-dessous pour une m\u00e9thode de d\u00e9termination de la diff\u00e9rence entre les deux distances). Il peut sembler \u00e9tonnant de calibrer la distance \u00e0 temp\u00e9rature ambiante alors que l'objectif est d'avoir une distance constante lorsqu'il est chauff\u00e9. Cependant, si l'on calibre lorsque la buse est chauff\u00e9e, elle a tendance \u00e0 laisser couler de petites quantit\u00e9s de plastique fondu sur le papier, ce qui modifie la quantit\u00e9 de frottement ressenti. Cela complique l'obtention d'un bon calibrage. Le calibrage alors que le lit/la buse est chaud augmente \u00e9galement consid\u00e9rablement le risque de se br\u00fbler. La dilatation thermique est stable, elle est donc facilement prise en compte plus tard dans le processus d'\u00e9talonnage. Utilisez un outil automatique pour d\u00e9terminer des hauteurs Z pr\u00e9cises ! Klipper a de nombreux scripts d'aide disponibles (par exemple, MANUAL_PROBE, Z_ENDSTOP_CALIBRATE, PROBE_CALIBRATE, DELTA_CALIBRATE). Lisez les documents d\u00e9crits ci-dessus pour en choisir un. Ex\u00e9cutez la commande choisie dans la fen\u00eatre du terminal OctoPrint. Le script demandera une action de l'utilisateur dans la sortie du terminal OctoPrint. Cela ressemblera \u00e0 quelque chose comme : Recv: // Starting manual Z probe. Use TESTZ to adjust position. Recv: // Finish with ACCEPT or ABORT command. Recv: // Z position: ?????? --> 5.000 <-- ?????? La hauteur actuelle de la buse (telle que l'imprimante la calcule) est indiqu\u00e9e entre \"--> <--\". Le nombre \u00e0 droite est la hauteur du dernier essai de sondage juste sup\u00e9rieure \u00e0 la hauteur actuelle, et \u00e0 gauche c'est la hauteur du dernier essai de sondage inf\u00e9rieur \u00e0 la hauteur actuelle (ou ?????? si aucune tentative n'a \u00e9t\u00e9 effectu\u00e9e). Placez le papier entre la buse et le lit. Il peut \u00eatre utile de plier un coin du papier pour qu'il soit plus facile \u00e0 saisir. (Essayez de ne pas appuyer sur le lit lorsque vous d\u00e9placez le papier d'avant en arri\u00e8re.) Utilisez la commande TESTZ pour demander \u00e0 la buse de se rapprocher du papier. Par exemple : TESTZ Z=-0.1 La commande TESTZ d\u00e9placera la buse \u00e0 une distance relative de la position actuelle de la buse. (Ainsi, Z = -0.1 demande \u00e0 la buse de se rapprocher du lit de 0,1 mm.) Une fois que la buse a cess\u00e9 de bouger, poussez le papier d'avant en arri\u00e8re pour v\u00e9rifier si la buse est en contact avec le papier et pour sentir la quantit\u00e9 de frottement. Continuez \u00e0 \u00e9mettre des commandes TESTZ jusqu'\u00e0 ce que vous ressentiez une l\u00e9g\u00e8re friction lors du test avec le papier. Si il y a trop de frottement, on peut utiliser une valeur Z positive pour d\u00e9placer la buse vers le haut. Il est \u00e9galement possible d'utiliser TESTZ Z=+ ou TESTZ Z=- pour \"dichotomiser\" la derni\u00e8re position - c'est-\u00e0-dire se d\u00e9placer vers une position \u00e0 mi-chemin entre deux positions. Par exemple, si l'on re\u00e7oit l'invite suivante d'une commande TESTZ : Recv: // Z position: 0.130 --> 0.230 <-- 0.280 Ensuite, un 'TESTZ Z=-' d\u00e9placerait la buse vers une position Z de 0,180 (\u00e0 mi-chemin entre 0,130 et 0,230). On peut utiliser cette fonctionnalit\u00e9 pour aider \u00e0 r\u00e9duire rapidement \u00e0 un frottement constant. Il est \u00e9galement possible d'utiliser Z=++ et Z=-- pour revenir directement \u00e0 une mesure pass\u00e9e - par exemple, apr\u00e8s l'invite ci-dessus, une commande TESTZ Z=-- d\u00e9placerait la buse vers un Z position de 0,130. Apr\u00e8s r\u00e9gl\u00e9 la l\u00e9g\u00e8re force de friction, ex\u00e9cutez la commande ACCEPT : ACCEPT Cela validera la hauteur Z donn\u00e9e et enregistrera la valeur d'\u00e9talonnage. La force de friction ressentie n'est pas cruciale, tout comme la quantit\u00e9 de dilatation thermique et la largeur exacte du papier ne sont pas cruciales. Essayez simplement d'obtenir la m\u00eame quantit\u00e9 de frottement \u00e0 chaque fois que vous ex\u00e9cutez le test. Si quelque chose ne va pas pendant le test, on peut utiliser la commande ABORT pour quitter l'outil d'\u00e9talonnage. D\u00e9termination de la dilatation thermique \u00b6 Apr\u00e8s avoir effectu\u00e9 le nivellement du lit, on peut continuer \u00e0 calculer une valeur plus pr\u00e9cise pour compenser \u00abl'expansion thermique\u00bb, \u00abl'\u00e9paisseur du papier\u00bb et la \u00abquantit\u00e9 de frottement ressentie pendant le test du papier\u00bb. Ce type de calcul n'est g\u00e9n\u00e9ralement pas n\u00e9cessaire car la plupart des utilisateurs trouvent que le simple \"test papier\" donne de bons r\u00e9sultats. La fa\u00e7on la plus simple de faire ce calcul est d'imprimer un objet de test qui a des parois droites de tous les c\u00f4t\u00e9s. Le grand carr\u00e9 creux trouv\u00e9 dans docs/prints/square.stl peut \u00eatre utilis\u00e9 pour cela. Lors du d\u00e9coupage de l'objet, assurez-vous que le segment utilise la m\u00eame hauteur de couche et la m\u00eame largeur d'extrusion pour le premier niveau et pour toutes les couches suivantes. Utilisez une hauteur de couche grossi\u00e8re (la hauteur de couche doit \u00eatre d'environ 75 % du diam\u00e8tre de la buse) et n'utilisez pas de bordure ou de radeau. Imprimez l'objet \u00e0 tester, attendez qu'il refroidisse et retirez-le du lit. Inspectez la couche la plus basse de l'objet. (Il peut \u00e9galement \u00eatre utile de passer un doigt ou un ongle le long du bord inf\u00e9rieur.) Si l'on constate que la couche inf\u00e9rieure est l\u00e9g\u00e8rement bomb\u00e9e le long de tous les c\u00f4t\u00e9s de l'objet, cela indique que la buse \u00e9tait l\u00e9g\u00e8rement plus proche du lit qu'elle ne l'aurait d\u00fb. On peut \u00e9mettre une commande SET_GCODE_OFFSET Z=+.010 pour augmenter la hauteur. Dans les impressions suivantes, on peut inspecter ce comportement et effectuer d'autres ajustements si n\u00e9cessaire. Les ajustements de ce type se font g\u00e9n\u00e9ralement en dizaines de microns (0,010 mm). Si la couche inf\u00e9rieure appara\u00eet syst\u00e9matiquement plus \u00e9troite que les couches suivantes, vous pouvez utiliser la commande SET_GCODE_OFFSET pour effectuer un ajustement Z n\u00e9gatif. En cas de doute, on peut diminuer le r\u00e9glage Z jusqu'\u00e0 ce que la couche inf\u00e9rieure des impressions pr\u00e9sente un petit renflement, puis reculer jusqu'\u00e0 ce qu'il disparaisse. Le moyen le plus simple d'appliquer l'ajustement Z souhait\u00e9 consiste \u00e0 cr\u00e9er une macro de g-code START_PRINT et \u00e0 faire en sorte que le slicer appelle cette macro au d\u00e9but de chaque impression et \u00e0 ajouter une commande SET_GCODE_OFFSET \u00e0 cette macro. Voir le document trancheurs pour plus de d\u00e9tails.","title":"Nivellement du lit"},{"location":"Bed_Level.html#nivellement-du-lit","text":"Le nivellement du lit (parfois aussi appel\u00e9 \u00ab tramage du lit \u00bb) est essentiel pour obtenir des impressions de haute qualit\u00e9. Si un lit n'est pas correctement \"nivel\u00e9\", cela peut entra\u00eener une mauvaise adh\u00e9rence du lit, un \"gauchissement\" et des probl\u00e8mes subtils tout au long de l'impression. Ce document sert de guide pour effectuer le nivellement du lit dans Klipper. Il est important de comprendre l'objectif du nivellement du lit. Si l'imprimante doit aller \u00e0 la position X0 Y0 Z10 pendant une impression, alors l'objectif est que la buse de l'imprimante soit exactement \u00e0 10 mm du lit de l'imprimante. De plus, si l'imprimante doit ensuite aller \u00e0 la position \"X50 Z10\", l'objectif est que la buse maintienne une distance exacte de 10 mm du lit pendant tout ce mouvement horizontal. Afin d'obtenir des impressions de bonne qualit\u00e9, l'imprimante doit \u00eatre calibr\u00e9e de sorte que les distances Z soient pr\u00e9cises \u00e0 environ 25 microns (0,025 mm). Il s'agit d'une petite distance - nettement inf\u00e9rieure \u00e0 la largeur d'un cheveu humain. Cette \u00e9chelle ne peut pas \u00eatre mesur\u00e9e \"\u00e0 l'\u0153il\". Des effets subtils (tels que la dilatation thermique) ont un impact sur les mesures \u00e0 cette \u00e9chelle. Le secret pour obtenir une grande pr\u00e9cision est d'utiliser un processus reproductible et d'utiliser une m\u00e9thode de mise \u00e0 niveau qui tire parti de la haute pr\u00e9cision du propre syst\u00e8me de mouvement de l'imprimante.","title":"Nivellement du lit"},{"location":"Bed_Level.html#choisissez-le-mecanisme-detalonnage-approprie","text":"Diff\u00e9rents types d'imprimantes utilisent diff\u00e9rentes m\u00e9thodes pour effectuer le nivellement du lit. A la fin toutes les m\u00e9thodes d\u00e9pendent du \"test du papier\" (d\u00e9crit ci-dessous). Cependant, le processus pour un type particulier d'imprimante est d\u00e9crit dans les autres documents. Avant d'ex\u00e9cuter l'un de ces outils d'\u00e9talonnage, assurez-vous d'ex\u00e9cuter les v\u00e9rifications d\u00e9crites dans le document de v\u00e9rification de la configuration . Il est n\u00e9cessaire de v\u00e9rifier les mouvements de base de l'imprimante avant d'effectuer le nivellement du lit. Pour les imprimantes avec une sonde Z automatique, assurez-vous de calibrer la sonde en suivant les instructions du document R\u00e9glages de la sonde . Pour les imprimantes delta, consultez le document R\u00e9glage des deltas . Pour les imprimantes avec un lit r\u00e9glable par vis et des fin de course Z traditionnels, consultez le document Nivellement manuel . Pendant le calibrage, il peut \u00eatre n\u00e9cessaire de d\u00e9finir la position_min du Z de l'imprimante sur un nombre n\u00e9gatif (par exemple, position_min = -2 ). L'imprimante effectue des v\u00e9rifications des limites m\u00eame pendant les routines d'\u00e9talonnage. La d\u00e9finition d'un nombre n\u00e9gatif permet \u00e0 l'imprimante de se d\u00e9placer en dessous de la position nominale du lit, ce qui peut aider \u00e0 d\u00e9terminer la position r\u00e9elle du lit.","title":"Choisissez le m\u00e9canisme d'\u00e9talonnage appropri\u00e9"},{"location":"Bed_Level.html#le-test-du-papier","text":"Le principal m\u00e9canisme d'\u00e9talonnage du lit est le \"test du papier\". Il s'agit de placer un morceau r\u00e9gulier de \"papier pour photocopieuse\" entre le lit et la buse de l'imprimante, puis de d\u00e9placer la buse \u00e0 diff\u00e9rentes hauteurs Z jusqu'\u00e0 ce que l'on ressente une petite friction lorsque l'on pousse le papier d'avant en arri\u00e8re. Il est important de bien comprendre le \"test papier\" m\u00eame si l'on dispose d'une \"sonde Z automatique\". La sonde elle-m\u00eame doit souvent \u00eatre calibr\u00e9e pour obtenir de bons r\u00e9sultats. Cet \u00e9talonnage de la sonde est effectu\u00e9 \u00e0 l'aide de ce \"test papier\". Afin d'effectuer le test du papier, coupez un petit morceau de papier rectangulaire \u00e0 l'aide d'une paire de ciseaux (par exemple, 5x3 cm). Le papier a g\u00e9n\u00e9ralement une \u00e9paisseur d'environ 100 microns (0,100 mm). (L'\u00e9paisseur exacte du papier n'est pas cruciale.) La premi\u00e8re \u00e9tape du test du papier consiste \u00e0 inspecter la buse et le lit de l'imprimante. Assurez-vous qu'il n'y a pas de plastique (ou d'autres d\u00e9bris) sur la buse ou le lit. Inspectez la buse et le lit pour vous assurer qu'il n'y a pas de plastique ! Si l'on imprime toujours sur une bande adh\u00e9sive ou une surface d'impression particuli\u00e8re, on peut alors effectuer le test papier avec cette bande/surface en place. Cependant, notez que le ruban lui-m\u00eame a une \u00e9paisseur et que diff\u00e9rents rubans (ou toute autre surface d'impression) auront un impact sur les mesures Z. Assurez-vous de relancer le test du papier pour mesurer chaque type de surface utilis\u00e9. S'il y a du plastique sur la buse, chauffez la buse et utilisez une pince \u00e0 \u00e9piler en m\u00e9tal pour retirer ce plastique. Attendez que la buse refroidisse compl\u00e8tement \u00e0 temp\u00e9rature ambiante avant de continuer avec le test papier. Pendant que la buse refroidit, utilisez la pince \u00e0 \u00e9piler en m\u00e9tal pour retirer tout plastique susceptible de suinter. Effectuez toujours le test du papier lorsque la buse et le lit sont \u00e0 temp\u00e9rature ambiante ! Lorsque la buse est chauff\u00e9e, sa position (par rapport au lit) change en raison de la dilatation thermique. Cette dilatation thermique est g\u00e9n\u00e9ralement d'environ 100 microns, ce qui correspond \u00e0 peu pr\u00e8s \u00e0 la m\u00eame \u00e9paisseur qu'un morceau de papier d'imprimante typique. La quantit\u00e9 exacte de dilatation thermique n'est pas cruciale, tout comme l'\u00e9paisseur exacte du papier n'est pas cruciale. Commencez par l'hypoth\u00e8se que les deux sont \u00e9gaux (voir ci-dessous pour une m\u00e9thode de d\u00e9termination de la diff\u00e9rence entre les deux distances). Il peut sembler \u00e9tonnant de calibrer la distance \u00e0 temp\u00e9rature ambiante alors que l'objectif est d'avoir une distance constante lorsqu'il est chauff\u00e9. Cependant, si l'on calibre lorsque la buse est chauff\u00e9e, elle a tendance \u00e0 laisser couler de petites quantit\u00e9s de plastique fondu sur le papier, ce qui modifie la quantit\u00e9 de frottement ressenti. Cela complique l'obtention d'un bon calibrage. Le calibrage alors que le lit/la buse est chaud augmente \u00e9galement consid\u00e9rablement le risque de se br\u00fbler. La dilatation thermique est stable, elle est donc facilement prise en compte plus tard dans le processus d'\u00e9talonnage. Utilisez un outil automatique pour d\u00e9terminer des hauteurs Z pr\u00e9cises ! Klipper a de nombreux scripts d'aide disponibles (par exemple, MANUAL_PROBE, Z_ENDSTOP_CALIBRATE, PROBE_CALIBRATE, DELTA_CALIBRATE). Lisez les documents d\u00e9crits ci-dessus pour en choisir un. Ex\u00e9cutez la commande choisie dans la fen\u00eatre du terminal OctoPrint. Le script demandera une action de l'utilisateur dans la sortie du terminal OctoPrint. Cela ressemblera \u00e0 quelque chose comme : Recv: // Starting manual Z probe. Use TESTZ to adjust position. Recv: // Finish with ACCEPT or ABORT command. Recv: // Z position: ?????? --> 5.000 <-- ?????? La hauteur actuelle de la buse (telle que l'imprimante la calcule) est indiqu\u00e9e entre \"--> <--\". Le nombre \u00e0 droite est la hauteur du dernier essai de sondage juste sup\u00e9rieure \u00e0 la hauteur actuelle, et \u00e0 gauche c'est la hauteur du dernier essai de sondage inf\u00e9rieur \u00e0 la hauteur actuelle (ou ?????? si aucune tentative n'a \u00e9t\u00e9 effectu\u00e9e). Placez le papier entre la buse et le lit. Il peut \u00eatre utile de plier un coin du papier pour qu'il soit plus facile \u00e0 saisir. (Essayez de ne pas appuyer sur le lit lorsque vous d\u00e9placez le papier d'avant en arri\u00e8re.) Utilisez la commande TESTZ pour demander \u00e0 la buse de se rapprocher du papier. Par exemple : TESTZ Z=-0.1 La commande TESTZ d\u00e9placera la buse \u00e0 une distance relative de la position actuelle de la buse. (Ainsi, Z = -0.1 demande \u00e0 la buse de se rapprocher du lit de 0,1 mm.) Une fois que la buse a cess\u00e9 de bouger, poussez le papier d'avant en arri\u00e8re pour v\u00e9rifier si la buse est en contact avec le papier et pour sentir la quantit\u00e9 de frottement. Continuez \u00e0 \u00e9mettre des commandes TESTZ jusqu'\u00e0 ce que vous ressentiez une l\u00e9g\u00e8re friction lors du test avec le papier. Si il y a trop de frottement, on peut utiliser une valeur Z positive pour d\u00e9placer la buse vers le haut. Il est \u00e9galement possible d'utiliser TESTZ Z=+ ou TESTZ Z=- pour \"dichotomiser\" la derni\u00e8re position - c'est-\u00e0-dire se d\u00e9placer vers une position \u00e0 mi-chemin entre deux positions. Par exemple, si l'on re\u00e7oit l'invite suivante d'une commande TESTZ : Recv: // Z position: 0.130 --> 0.230 <-- 0.280 Ensuite, un 'TESTZ Z=-' d\u00e9placerait la buse vers une position Z de 0,180 (\u00e0 mi-chemin entre 0,130 et 0,230). On peut utiliser cette fonctionnalit\u00e9 pour aider \u00e0 r\u00e9duire rapidement \u00e0 un frottement constant. Il est \u00e9galement possible d'utiliser Z=++ et Z=-- pour revenir directement \u00e0 une mesure pass\u00e9e - par exemple, apr\u00e8s l'invite ci-dessus, une commande TESTZ Z=-- d\u00e9placerait la buse vers un Z position de 0,130. Apr\u00e8s r\u00e9gl\u00e9 la l\u00e9g\u00e8re force de friction, ex\u00e9cutez la commande ACCEPT : ACCEPT Cela validera la hauteur Z donn\u00e9e et enregistrera la valeur d'\u00e9talonnage. La force de friction ressentie n'est pas cruciale, tout comme la quantit\u00e9 de dilatation thermique et la largeur exacte du papier ne sont pas cruciales. Essayez simplement d'obtenir la m\u00eame quantit\u00e9 de frottement \u00e0 chaque fois que vous ex\u00e9cutez le test. Si quelque chose ne va pas pendant le test, on peut utiliser la commande ABORT pour quitter l'outil d'\u00e9talonnage.","title":"Le \"Test du papier\""},{"location":"Bed_Level.html#determination-de-la-dilatation-thermique","text":"Apr\u00e8s avoir effectu\u00e9 le nivellement du lit, on peut continuer \u00e0 calculer une valeur plus pr\u00e9cise pour compenser \u00abl'expansion thermique\u00bb, \u00abl'\u00e9paisseur du papier\u00bb et la \u00abquantit\u00e9 de frottement ressentie pendant le test du papier\u00bb. Ce type de calcul n'est g\u00e9n\u00e9ralement pas n\u00e9cessaire car la plupart des utilisateurs trouvent que le simple \"test papier\" donne de bons r\u00e9sultats. La fa\u00e7on la plus simple de faire ce calcul est d'imprimer un objet de test qui a des parois droites de tous les c\u00f4t\u00e9s. Le grand carr\u00e9 creux trouv\u00e9 dans docs/prints/square.stl peut \u00eatre utilis\u00e9 pour cela. Lors du d\u00e9coupage de l'objet, assurez-vous que le segment utilise la m\u00eame hauteur de couche et la m\u00eame largeur d'extrusion pour le premier niveau et pour toutes les couches suivantes. Utilisez une hauteur de couche grossi\u00e8re (la hauteur de couche doit \u00eatre d'environ 75 % du diam\u00e8tre de la buse) et n'utilisez pas de bordure ou de radeau. Imprimez l'objet \u00e0 tester, attendez qu'il refroidisse et retirez-le du lit. Inspectez la couche la plus basse de l'objet. (Il peut \u00e9galement \u00eatre utile de passer un doigt ou un ongle le long du bord inf\u00e9rieur.) Si l'on constate que la couche inf\u00e9rieure est l\u00e9g\u00e8rement bomb\u00e9e le long de tous les c\u00f4t\u00e9s de l'objet, cela indique que la buse \u00e9tait l\u00e9g\u00e8rement plus proche du lit qu'elle ne l'aurait d\u00fb. On peut \u00e9mettre une commande SET_GCODE_OFFSET Z=+.010 pour augmenter la hauteur. Dans les impressions suivantes, on peut inspecter ce comportement et effectuer d'autres ajustements si n\u00e9cessaire. Les ajustements de ce type se font g\u00e9n\u00e9ralement en dizaines de microns (0,010 mm). Si la couche inf\u00e9rieure appara\u00eet syst\u00e9matiquement plus \u00e9troite que les couches suivantes, vous pouvez utiliser la commande SET_GCODE_OFFSET pour effectuer un ajustement Z n\u00e9gatif. En cas de doute, on peut diminuer le r\u00e9glage Z jusqu'\u00e0 ce que la couche inf\u00e9rieure des impressions pr\u00e9sente un petit renflement, puis reculer jusqu'\u00e0 ce qu'il disparaisse. Le moyen le plus simple d'appliquer l'ajustement Z souhait\u00e9 consiste \u00e0 cr\u00e9er une macro de g-code START_PRINT et \u00e0 faire en sorte que le slicer appelle cette macro au d\u00e9but de chaque impression et \u00e0 ajouter une commande SET_GCODE_OFFSET \u00e0 cette macro. Voir le document trancheurs pour plus de d\u00e9tails.","title":"D\u00e9termination de la dilatation thermique"},{"location":"Bed_Mesh.html","text":"Maillage du Bed \u00b6 Le module Bed Mesh peut \u00eatre utilis\u00e9 pour compenser les irr\u00e9gularit\u00e9s de la surface du lit afin d'obtenir une meilleure premi\u00e8re couche sur l'ensemble du lit. Il convient de noter que la correction bas\u00e9e sur un logiciel n'atteindra pas des r\u00e9sultats parfaits, elle ne peut qu'approximer la forme du lit. Bed Mesh ne peut pas non plus compenser les probl\u00e8mes m\u00e9caniques et \u00e9lectriques. Si un axe est fauss\u00e9 ou si une sonde n'est pas pr\u00e9cise, le module bed_mesh ne recevra pas de r\u00e9sultats pr\u00e9cis du processus de sonde. Avant de proc\u00e9der \u00e0 l'\u00e9talonnage du maillage, vous devez vous assurer que l'offset Z de votre sonde est r\u00e9gl\u00e9. Si vous utilisez une but\u00e9e de fin de course pour la mise \u00e0 l'origine en Z, elle doit \u00e9galement \u00eatre r\u00e9gl\u00e9e. Voir Calibration de la sonde et Z_ENDSTOP_CALIBRATE dans Nivelage manuel pour plus d'informations. Configuration de base \u00b6 Lits rectangulaires \u00b6 Cet exemple suppose une imprimante avec un lit rectangulaire de 250 mm x 220 mm et une sonde avec un d\u00e9calage x de 24 mm et un d\u00e9calage y de 5 mm. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 speed : 120 Valeur par d\u00e9faut : 50 La vitesse \u00e0 laquelle l'outil se d\u00e9place entre les points palp\u00e9s. horizontal_move_z : 5 Valeur par d\u00e9faut : 5 La coordonn\u00e9e Z \u00e0 laquelle la sonde s'\u00e9l\u00e8ve avant de se d\u00e9placer entre les points. mesh_min : 35, 6 Requis La premi\u00e8re coordonn\u00e9e palp\u00e9e, la plus proche de l'origine. Cette coordonn\u00e9e est relative \u00e0 l'emplacement de la sonde. mesh_max: 240, 198 Required The probed coordinate farthest from the origin. This is not necessarily the last point probed, as the probing process occurs in a zig-zag fashion. As with mesh_min , this coordinate is relative to the probe's location. probe_count : 5, 3 Valeur par d\u00e9faut : 3, 3 Le nombre de points \u00e0 palper sur chaque axe, sp\u00e9cifi\u00e9 sous forme de valeurs enti\u00e8res X, Y. Dans cet exemple, 5 points seront palp\u00e9s le long de l'axe X, avec 3 points le long de l'axe Y, pour un total de 15 points palp\u00e9s. Notez que si vous voulez une grille carr\u00e9e, par exemple 3x3, il est possible de n'utiliser qu'une seule valeur enti\u00e8re pour les deux axes, par exemple probe_count : 3 . Notez qu'un maillage n\u00e9cessite un nombre minimum de 3 points de sondage sur chaque axe. L'illustration ci-dessous montre comment les options mesh_min , mesh_max , et probe_count sont utilis\u00e9es pour g\u00e9n\u00e9rer des points de palpage. Les fl\u00e8ches indiquent la direction de la proc\u00e9dure de palpage, commen\u00e7ant en mesh_min . Pour r\u00e9f\u00e9rence, lorsque la sonde est \u00e0 mesh_min , la buse sera \u00e0 (11, 1), et lorsque la sonde est \u00e0 mesh_max , la buse sera \u00e0 (206, 193). Lits circulaires \u00b6 Cet exemple suppose une imprimante \u00e9quip\u00e9e d'un lit circulaire de 100 mm de rayon. Nous utiliserons les m\u00eames d\u00e9calages de sonde que dans l'exemple rectangulaire, 24 mm sur X et 5 mm sur Y. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_radius: 75 mesh_origin: 0, 0 round_probe_count: 5 mesh_radius : 75 Requis Le rayon du maillage palp\u00e9 en mm, par rapport \u00e0 mesh_origin . Notez que les d\u00e9calages de la sonde limitent la taille du rayon du maillage. Dans cet exemple, un rayon sup\u00e9rieur \u00e0 76 d\u00e9placerait la t\u00eate de l'outil en dehors des limites physiques de l'imprimante. mesh_origin : 0, 0 Valeur par d\u00e9faut : 0, 0 Le point central du maillage. Cette coordonn\u00e9e est relative \u00e0 l'emplacement de la sonde. Bien que la valeur par d\u00e9faut soit 0, 0, il peut \u00eatre utile d'ajuster l'origine dans le but de sonder une plus grande partie du lit. Voir l'illustration ci-dessous. round_probe_count : 5 Valeur par d\u00e9faut : 5 C'est une valeur enti\u00e8re d\u00e9finissant le nombre maximum de points palp\u00e9s le long des axes X et Y. Par \"maximum\", nous entendons le nombre de points palp\u00e9s le long de l'origine du maillage. Cette valeur doit \u00eatre un nombre impair, car il est n\u00e9cessaire que le centre du maillage soit palp\u00e9. L'illustration ci-dessous montre comment les points palp\u00e9s sont g\u00e9n\u00e9r\u00e9s. Comme vous pouvez le voir, d\u00e9finir mesh_origin sur (-10, 0) nous permet de sp\u00e9cifier un rayon de maillage plus grand de 85. Configuration avanc\u00e9e \u00b6 Les options de configuration plus avanc\u00e9es sont expliqu\u00e9es en d\u00e9tail ci-dessous. Chaque exemple s'appuie sur la configuration de base du lit rectangulaire pr\u00e9sent\u00e9e ci-dessus. Chacune des options avanc\u00e9es s'applique de la m\u00eame mani\u00e8re aux lits circulaires. Interpolation du maillage \u00b6 Bien qu'il soit possible d'\u00e9chantillonner directement la matrice sond\u00e9e \u00e0 l'aide d'une simple interpolation bilin\u00e9aire pour d\u00e9terminer les valeurs Z entre les points sond\u00e9s, il est souvent utile d'interpoler des points suppl\u00e9mentaires \u00e0 l'aide d'algorithmes d'interpolation plus avanc\u00e9s pour augmenter la densit\u00e9 du maillage. Ces algorithmes ajoutent une courbure au maillage, tentant de simuler les propri\u00e9t\u00e9s mat\u00e9rielles du lit. Bed Mesh offre une interpolation lagrange et bicubique pour y parvenir. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 mesh_pps: 2, 3 algorithm: bicubic bicubic_tension: 0.2 mesh_pps : 2, 3 Valeur par d\u00e9faut : 2, 2 L'option mesh_pps est l'abr\u00e9viation de Mesh Points Per Segment. Cette option indique le nombre de points \u00e0 interpoler pour chaque segment le long des axes X et Y. Un 'segment' est l'espace entre chaque point palp\u00e9. Comme pour probe_count , mesh_pps est sp\u00e9cifi\u00e9 en tant que paire de nombres entiers X, Y mais peut aussi \u00eatre sp\u00e9cifi\u00e9 comme un seul nombre entier en ce cas appliqu\u00e9 aux deux axes. Dans cet exemple, il y a 4 segments le long de l'axe X et 2 segments le long de l'axe Y. Cela r\u00e9sulte en 8 points interpol\u00e9s le long de l'axe X et 6 points interpol\u00e9s le long de l'axe Y, ce qui donne un maillage de 13x8. Notez que si mesh_pps est d\u00e9fini \u00e0 0, l'interpolation de maillage est d\u00e9sactiv\u00e9e et la matrice sond\u00e9e sera \u00e9chantillonn\u00e9e directement. algorithm : lagrange Valeur par d\u00e9faut : lagrange L'algorithme utilis\u00e9 pour interpoler le maillage. Peut \u00eatre lagrange ou bicubique . L'interpolation de Lagrange est plafonn\u00e9e \u00e0 6 points palp\u00e9s car une oscillation tend \u00e0 se produire avec un plus grand nombre d'\u00e9chantillons. L'interpolation bicubique requiert un minimum de 4 points le long de chaque axe, si moins de 4 points sont sp\u00e9cifi\u00e9s, l'\u00e9chantillonnage de Lagrange est forc\u00e9. Si mesh_pps est d\u00e9fini \u00e0 0 alors cette valeur est ignor\u00e9e car aucune interpolation de maille n'est faite. bicubic_tension : 0.2 Valeur par d\u00e9faut : 0.2 Si l'option algorithm est d\u00e9finie sur bicubique, il est possible d'indiquer une valeur de tension. Plus la tension est \u00e9lev\u00e9e, plus la pente est interpol\u00e9e. Soyez prudent lorsque vous ajustez cette valeur, car des valeurs plus \u00e9lev\u00e9es cr\u00e9ent \u00e9galement plus de d\u00e9passement, ce qui entra\u00eenera des valeurs interpol\u00e9es plus \u00e9lev\u00e9es ou plus basses que vos points palp\u00e9s. L'illustration ci-dessous montre comment les options ci-dessus sont utilis\u00e9es pour g\u00e9n\u00e9rer un maillage interpol\u00e9. Fractionnement des d\u00e9placements \u00b6 Le maillage du lit fonctionne en interceptant les commandes de d\u00e9placement du gcode et en appliquant une transformation \u00e0 leur coordonn\u00e9e Z. Les longs d\u00e9placements doivent \u00eatre divis\u00e9s en d\u00e9placements plus petits pour suivre correctement la forme du lit. Les options ci-dessous contr\u00f4lent le comportement du fractionnement. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 move_check_distance: 5 split_delta_z: .025 move_check_distance : 5 Valeur par d\u00e9faut : 5 La distance minimale de v\u00e9rification de changement de Z souhait\u00e9 avant d'effectuer un fractionnemeny. Dans cet exemple, un mouvement de plus de 5mm sera travers\u00e9 par l'algorithme. Tous les 5 mm, une recherche de maille Z sera effectu\u00e9e, en la comparant \u00e0 la valeur Z du mouvement pr\u00e9c\u00e9dent. Si le delta atteint le seuil fix\u00e9 par split_delta_z , le mouvement sera divis\u00e9 et la travers\u00e9e continuera. Ce processus se r\u00e9p\u00e8te jusqu'\u00e0 ce que la fin du d\u00e9placement soit atteinte, o\u00f9 un ajustement final sera appliqu\u00e9. Les d\u00e9placements plus courts que la move_check_distance ont l'ajustement Z correct appliqu\u00e9 directement au d\u00e9placement sans travers\u00e9e ou division. split_delta_z : .025 Valeur par d\u00e9faut : .025 Comme mentionn\u00e9 ci-dessus, il s'agit de l'\u00e9cart minimum requis pour d\u00e9clencher un fractionnement du mouvement. Dans cet exemple, toute valeur Z avec un \u00e9cart de +/- 0,025 mm d\u00e9clenchera un fractionnement. G\u00e9n\u00e9ralement, les valeurs par d\u00e9faut de ces options sont suffisantes, en fait la valeur par d\u00e9faut de 5 mm pour la move_check_distance peut \u00eatre exag\u00e9r\u00e9e. Cependant, un utilisateur avanc\u00e9 peut souhaiter exp\u00e9rimenter ces options afin d'obtenir une premi\u00e8re couche optimale. Att\u00e9nuation du maillage \u00b6 Lorsque l'option \"fondu\" est activ\u00e9e, l'ajustement du Z est r\u00e9duit progressivement sur une distance d\u00e9finie par la configuration. Ceci est r\u00e9alis\u00e9 en appliquant de petits ajustements \u00e0 la hauteur de la couche, en augmentant ou en diminuant selon la forme du lit. Lorsque le fondu est termin\u00e9, l'ajustement Z n'est plus appliqu\u00e9, ce qui permet au sommet de l'impression d'\u00eatre plat plut\u00f4t que de refl\u00e9ter la forme du lit. Le fondu peut \u00e9galement pr\u00e9senter quelques caract\u00e9ristiques ind\u00e9sirables, si le fondu est effectu\u00e9 trop rapidement, il peut entra\u00eener des artefacts visibles sur l'impression. De plus, si votre lit est sensiblement d\u00e9form\u00e9, le fondu peut r\u00e9tr\u00e9cir ou \u00e9tirer la hauteur Z de l'impression. C'est pourquoi le fondu est d\u00e9sactiv\u00e9 par d\u00e9faut. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 fade_start: 1 fade_end: 10 fade_target: 0 fade_start: 1 Valeur par d\u00e9faut : 1 La hauteur Z \u00e0 laquelle il faut commencer l'att\u00e9nuation progressive de l'ajustement. C'est une bonne id\u00e9e d'avoir quelques couches d\u00e9j\u00e0 d\u00e9pos\u00e9es avant de commencer le processus de fondu. fade_end : 10 Valeur par d\u00e9faut : 0 La hauteur Z \u00e0 laquelle le fondu doit s'arr\u00eater. Si cette valeur est inf\u00e9rieure \u00e0 fade_start , le fondu est d\u00e9sactiv\u00e9. Cette valeur peut \u00eatre ajust\u00e9e en fonction de la d\u00e9formation de la surface d'impression. Une surface fortement d\u00e9form\u00e9e devrait s'estomper sur une plus grande distance. Une surface presque plate peut \u00eatre capable de r\u00e9duire cette valeur pour s'estomper plus rapidement. 10mm est une valeur raisonnable pour commencer si vous utilisez la valeur par d\u00e9faut de 1 pour fade_start . fade_target : 0 Valeur par d\u00e9faut : la valeur Z moyenne du maillage Le fade_target peut \u00eatre consid\u00e9r\u00e9 comme un d\u00e9calage Z suppl\u00e9mentaire appliqu\u00e9 \u00e0 l'ensemble du lit une fois l'interpolation termin\u00e9e . L'id\u00e9al serait d'avoir cette valeur \u00e0 0, mais il y a des circonstances o\u00f9 elle ne peut pas l'\u00eatre. Par exemple, supposons que votre position de r\u00e9f\u00e9rence sur le lit est une valeur aberrante, 0,2 mm inf\u00e9rieure \u00e0 la hauteur moyenne sond\u00e9e du lit. Si le fade_target est 0, le fondu r\u00e9duira l'impression de 0,2 mm en moyenne sur le lit. En r\u00e9glant fade_target sur 0,2, la zone r\u00e9f\u00e9renc\u00e9e s'agrandira de 0,2 mm, cependant, le reste du lit sera dimensionn\u00e9 avec pr\u00e9cision. G\u00e9n\u00e9ralement, c'est une bonne id\u00e9e de laisser fade_target hors de la configuration afin que la hauteur moyenne du maillage soit utilis\u00e9e, cependant il peut \u00eatre souhaitable d'ajuster manuellement cette valeur si l'on veut imprimer sur une partie sp\u00e9cifique du lit. Configuration de la position d'origine \u00b6 Many probes are susceptible to \"drift\", ie: inaccuracies in probing introduced by heat or interference. This can make calculating the probe's z-offset challenging, particularly at different bed temperatures. As such, some printers use an endstop for homing the Z axis and a probe for calibrating the mesh. In this configuration it is possible offset the mesh so that the (X, Y) reference position applies zero adjustment. The reference postion should be the location on the bed where a Z_ENDSTOP_CALIBRATE paper test is performed. The bed_mesh module provides the zero_reference_position option for specifying this coordinate: [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 zero_reference_position: 125, 110 probe_count: 5, 3 zero_reference_position: Default Value: None (disabled) The zero_reference_position expects an (X, Y) coordinate matching that of the reference position described above. If the coordinate lies within the mesh then the mesh will be offset so the reference position applies zero adjustment. If the coordinate lies outside of the mesh then the coordinate will be probed after calibration, with the resulting z-value used as the z-offset. Note that this coordinate must NOT be in a location specified as a faulty_region if a probe is necessary. The deprecated relative_reference_index \u00b6 Existing configurations using the relative_reference_index option must be updated to use the zero_reference_position . The response to the BED_MESH_OUTPUT PGP=1 gcode command will include the (X, Y) coordinate associated with the index; this position may be used as the value for the zero_reference_position . The output will look similar to the following: // bed_mesh: generated points // Index | Tool Adjusted | Probe // 0 | (1.0, 1.0) | (24.0, 6.0) // 1 | (36.7, 1.0) | (59.7, 6.0) // 2 | (72.3, 1.0) | (95.3, 6.0) // 3 | (108.0, 1.0) | (131.0, 6.0) ... (additional generated points) // bed_mesh: relative_reference_index 24 is (131.5, 108.0) Note: The above output is also printed in klippy.log during initialization. Using the example above we see that the relative_reference_index is printed along with its coordinate. Thus the zero_reference_position is 131.5, 108 . R\u00e9gions d\u00e9fectueuses \u00b6 Il est possible que certaines zones d'un lit donnent des r\u00e9sultats inexacts lors du palpage en raison d'un \"d\u00e9faut\" \u00e0 des endroits particuliers. Le meilleur exemple de ce ph\u00e9nom\u00e8ne est celui des lits comportant une s\u00e9rie d'aimants int\u00e9gr\u00e9s utilis\u00e9s pour retenir les t\u00f4les d'acier amovibles. Le champ magn\u00e9tique au niveau et autour de ces aimants peut faire qu'une sonde inductive se d\u00e9clenche \u00e0 une distance plus \u00e9lev\u00e9e ou plus basse qu'elle ne le ferait autrement, ce qui donne un maillage ne repr\u00e9sentant pas pr\u00e9cis\u00e9ment la surface \u00e0 ces endroits. Remarque : Il ne faut pas confondre ce ph\u00e9nom\u00e8ne avec le biais de l'emplacement de la sonde, qui produit des r\u00e9sultats inexacts sur l'ensemble du lit. Les options faulty_region peuvent \u00eatre configur\u00e9es pour compenser cet effet. Si un point g\u00e9n\u00e9r\u00e9 se trouve dans une r\u00e9gion d\u00e9fectueuse, le maillage du lit tentera de palper jusqu'\u00e0 4 points aux limites de cette r\u00e9gion. Ces valeurs palp\u00e9es seront moyenn\u00e9es et ins\u00e9r\u00e9es dans le maillage comme valeur Z \u00e0 la coordonn\u00e9e (X, Y) g\u00e9n\u00e9r\u00e9e. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 faulty_region_1_min: 130.0, 0.0 faulty_region_1_max: 145.0, 40.0 faulty_region_2_min: 225.0, 0.0 faulty_region_2_max: 250.0, 25.0 faulty_region_3_min: 165.0, 95.0 faulty_region_3_max: 205.0, 110.0 faulty_region_4_min: 30.0, 170.0 faulty_region_4_max: 45.0, 210.0 faulty_region_{1...99}_min faulty_region_{1..99}_max Valeur par d\u00e9faut : None (d\u00e9sactiv\u00e9) Les r\u00e9gions d\u00e9fectueuses sont d\u00e9finies d'une mani\u00e8re similaire \u00e0 celle du maillage lui-m\u00eame, o\u00f9 les coordonn\u00e9es minimum et maximum (X, Y) doivent \u00eatre infiqu\u00e9es pour chaque r\u00e9gion. Une r\u00e9gion d\u00e9fectueuse peut s'\u00e9tendre \u00e0 l'ext\u00e9rieur d'un maillage, mais les points alternatifs g\u00e9n\u00e9r\u00e9s seront toujours \u00e0 l'int\u00e9rieur des limites du maillage. Deux r\u00e9gions ne peuvent pas se chevaucher. L'image ci-dessous illustre comment les points de remplacement sont g\u00e9n\u00e9r\u00e9s lorsqu'un point g\u00e9n\u00e9r\u00e9 se trouve dans une r\u00e9gion d\u00e9fectueuse. Les r\u00e9gions repr\u00e9sent\u00e9es correspondent \u00e0 celles de l'exemple de configuration ci-dessus. Les points de remplacement et leurs coordonn\u00e9es sont identifi\u00e9s en vert. Adaptive Meshes \u00b6 Adaptive bed meshing is a way to speed up the bed mesh generation by only probing the area of the bed used by the objects being printed. When used, the method will automatically adjust the mesh parameters based on the area occupied by the defined print objects. The adapted mesh area will be computed from the area defined by the boundaries of all the defined print objects so it covers every object, including any margins defined in the configuration. After the area is computed, the number of probe points will be scaled down based on the ratio of the default mesh area and the adapted mesh area. To illustrate this consider the following example: For a 150mmx150mm bed with mesh_min set to 25,25 and mesh_max set to 125,125 , the default mesh area is a 100mmx100mm square. An adapted mesh area of 50,50 means a ratio of 0.5x0.5 between the adapted area and default mesh area. If the bed_mesh configuration specified probe_count as 7x7 , the adapted bed mesh will use 4x4 probe points (7 * 0.5 rounded up). [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5, 3 adaptive_margin: 5 adaptive_margin Default Value: 0 Margin (in mm) to add around the area of the bed used by the defined objects. The diagram below shows the adapted bed mesh area with an adaptive_margin of 5mm. The adapted mesh area (area in green) is computed as the used bed area (area in blue) plus the defined margin. By nature, adaptive bed meshes use the objects defined by the Gcode file being printed. Therefore, it is expected that each Gcode file will generate a mesh that probes a different area of the print bed. Therefore, adapted bed meshes should not be re-used. The expectation is that a new mesh will be generated for each print if adaptive meshing is used. It is also important to consider that adaptive bed meshing is best used on machines that can normally probe the entire bed and achieve a maximum variance less than or equal to 1 layer height. Machines with mechanical issues that a full bed mesh normally compensates for may have undesirable results when attempting print moves outside of the probed area. If a full bed mesh has a variance greater than 1 layer height, caution must be taken when using adaptive bed meshes and attempting print moves outside of the meshed area. Surface Scans \u00b6 Some probes, such as the Eddy Current Probe , are capable of \"scanning\" the surface of the bed. That is, these probes can sample a mesh without lifting the tool between samples. To activate scanning mode, the METHOD=scan or METHOD=rapid_scan probe parameter should be passed in the BED_MESH_CALIBRATE gcode command. Scan Height \u00b6 The scan height is set by the horizontal_move_z option in [bed_mesh] . In addition it can be supplied with the BED_MESH_CALIBRATE gcode command via the HORIZONTAL_MOVE_Z parameter. The scan height must be sufficiently low to avoid scanning errors. Typically a height of 2mm (ie: HORIZONTAL_MOVE_Z=2 ) should work well, presuming that the probe is mounted correctly. It should be noted that if the probe is more than 4mm above the surface then the results will be invalid. Thus, scanning is not possible on beds with severe surface deviation or beds with extreme tilt that hasn't been corrected. Rapid (Continuous) Scanning \u00b6 When performing a rapid_scan one should keep in mind that the results will have some amount of error. This error should be low enough to be useful on large print areas with reasonably thick layer heights. Some probes may be more prone to error than others. It is not recommended that rapid mode be used to scan a \"dense\" mesh. Some of the error introduced during a rapid scan may be gaussian noise from the sensor, and a dense mesh will reflect this noise (ie: there will be peaks and valleys). Bed Mesh will attempt to optimize the travel path to provide the best possible result based on the configuration. This includes avoiding faulty regions when collecting samples and \"overshooting\" the mesh when changing direction. This overshoot improves sampling at the edges of a mesh, however it requires that the mesh be configured in a way that allows the tool to travel outside of the mesh. [bed_mesh] speed: 120 horizontal_move_z: 5 mesh_min: 35, 6 mesh_max: 240, 198 probe_count: 5 scan_overshoot: 8 scan_overshoot Default Value: 0 (disabled) The maximum amount of travel (in mm) available outside of the mesh. For rectangular beds this applies to travel on the X axis, and for round beds it applies to the entire radius. The tool must be able to travel the amount specified outside of the mesh. This value is used to optimize the travel path when performing a \"rapid scan\". The minimum value that may be specified is 1. The default is no overshoot. If no scan overshoot is configured then travel path optimization will not be applied to changes in direction. Gcodes de maillage du lit \u00b6 Calibration \u00b6 BED_MESH_CALIBRATE PROFILE= METHOD=[manual | automatic | scan | rapid_scan] \\ [ = ] [ = ] [ADAPTIVE=[0|1] \\ [ADAPTIVE_MARGIN= ] Default Profile: default Default Method: automatic if a probe is detected, otherwise manual Default Adaptive: 0 Default Adaptive Margin: 0 Lance la proc\u00e9dure de palpage de l'\u00e9talonnage du maillage du lit. The mesh will be saved into a profile specified by the PROFILE parameter, or default if unspecified. The METHOD parameter takes one of the following values: METHOD=manual : enables manual probing using the nozzle and the paper test METHOD=automatic : Automatic (standard) probing. This is the default. METHOD=scan : Enables surface scanning. The tool will pause over each position to collect a sample. METHOD=rapid_scan : Enables continuous surface scanning. XY positions are automatically adjusted to include the X and/or Y offsets when a probing method other than manual is selected. Il est possible de sp\u00e9cifier des param\u00e8tres de maillage pour modifier la zone palp\u00e9e. Les param\u00e8tres suivants sont disponibles : Lits rectangulaires (cart\u00e9siens) : MESH_MIN MESH_MAX PROBE_COUNT Lits circulaires (delta) : MESH_RADIUS MESH_ORIGIN ROUND_PROBE_COUNT Tous les lits : MESH_PPS ALGORITHM ADAPTIVE ADAPTIVE_MARGIN Consultez la documentation de configuration ci-dessus pour plus de d\u00e9tails sur la fa\u00e7on dont chaque param\u00e8tre s'applique au maillage. Profils \u00b6 BED_MESH_PROFILE SAVE= LOAD= REMOVE= Apr\u00e8s avoir r\u00e9alis\u00e9 un BED_MESH_CALIBRATE, il est possible de sauvegarder l'\u00e9tat actuel du maillage dans un profil nomm\u00e9. Cela permet de charger un maillage sans re-palper le lit. Apr\u00e8s qu'un profil ait \u00e9t\u00e9 enregistr\u00e9 en utilisant BED_MESH_PROFILE SAVE= , le gcode SAVE_CONFIG peut \u00eatre ex\u00e9cut\u00e9 pour \u00e9crire le profil dans printer.cfg. Les profils peuvent \u00eatre charg\u00e9s en ex\u00e9cutant BED_MESH_PROFILE LOAD= . Il convient de noter qu'\u00e0 chaque fois qu'un BED_MESH_CALIBRATE se produit, l'\u00e9tat actuel est automatiquement enregistr\u00e9 dans le profil default . Le profil default peut \u00eatre supprim\u00e9 comme suit : BED_MESH_PROFILE REMOVE=default Tout autre profil enregistr\u00e9 peut \u00eatre supprim\u00e9 de la m\u00eame mani\u00e8re, en rempla\u00e7ant default par le nom du profil que vous souhaitez supprimer. Chargement du profil par d\u00e9faut \u00b6 Les versions pr\u00e9c\u00e9dentes de bed_mesh chargeaient toujours le profil nomm\u00e9 default au d\u00e9marrage s'il \u00e9tait pr\u00e9sent. Ce comportement a \u00e9t\u00e9 supprim\u00e9 afin de permettre \u00e0 l'utilisateur de d\u00e9terminer quand un profil est charg\u00e9. Si un utilisateur souhaite charger le profil par d\u00e9faut, il est recommand\u00e9 d'ajouter BED_MESH_PROFILE LOAD=default \u00e0 sa macro START_PRINT ou \u00e0 la configuration \"Start G-Code\" de son trancheur, selon ce qui est applicable. Alternativement, l'ancien comportement de chargement d'un profil au d\u00e9marrage peut \u00eatre restaur\u00e9 avec un [delayed_gcode] : [delayed_gcode bed_mesh_init] initial_duration : .01 gcode : BED_MESH_PROFILE LOAD = default Sortie \u00b6 BED_MESH_OUTPUT PGP=[0 | 1] Affiche l'\u00e9tat actuel du maillage dans le terminal. Notez que le maillage lui-m\u00eame est affich\u00e9 Le param\u00e8tre PGP est l'abr\u00e9viation de \"Print Generated Points\". Si PGP=1 est d\u00e9fini, les points palp\u00e9s g\u00e9n\u00e9r\u00e9s seront affich\u00e9s sur le terminal : // bed_mesh: generated points // Index | Tool Adjusted | Probe // 0 | (11.0, 1.0) | (35.0, 6.0) // 1 | (62.2, 1.0) | (86.2, 6.0) // 2 | (113.5, 1.0) | (137.5, 6.0) // 3 | (164.8, 1.0) | (188.8, 6.0) // 4 | (216.0, 1.0) | (240.0, 6.0) // 5 | (216.0, 97.0) | (240.0, 102.0) // 6 | (164.8, 97.0) | (188.8, 102.0) // 7 | (113.5, 97.0) | (137.5, 102.0) // 8 | (62.2, 97.0) | (86.2, 102.0) // 9 | (11.0, 97.0) | (35.0, 102.0) // 10 | (11.0, 193.0) | (35.0, 198.0) // 11 | (62.2, 193.0) | (86.2, 198.0) // 12 | (113.5, 193.0) | (137.5, 198.0) // 13 | (164.8, 193.0) | (188.8, 198.0) // 14 | (216.0, 193.0) | (240.0, 198.0) Les points de la colonne \"Tool Adjusted\" font r\u00e9f\u00e9rence \u00e0 l'emplacement de la buse, et les points de la colonne \"Probe\" font r\u00e9f\u00e9rence \u00e0 l'emplacement du palpeur. Notez que lors d'un palpage manuel, les points \"Probe\" se r\u00e9f\u00e8rent \u00e0 la fois \u00e0 l'emplacement de l'outil et de la buse. Effacer l'\u00e9tat du maillage \u00b6 BED_MESH_CLEAR Ce G-Code peut \u00eatre utilis\u00e9 pour effacer l'\u00e9tat interne du maillage. Appliquer les d\u00e9calages X/Y \u00b6 BED_MESH_OFFSET [X= ] [Y= ] [ZFADE= ] This is useful for printers with multiple independent extruders, as an offset is necessary to produce correct Z adjustment after a tool change. Offsets should be specified relative to the primary extruder. That is, a positive X offset should be specified if the secondary extruder is mounted to the right of the primary extruder, a positive Y offset should be specified if the secondary extruder is mounted \"behind\" the primary extruder, and a positive ZFADE offset should be specified if the secondary extruder's nozzle is above the primary extruder's. Note that a ZFADE offset does NOT directly apply additional adjustment. It is intended to compensate for a gcode offset when mesh fade is enabled. For example, if a secondary extruder is higher than the primary and needs a negative gcode offset, ie: SET_GCODE_OFFSET Z=-.2 , it can be accounted for in bed_mesh with BED_MESH_OFFSET ZFADE=.2 . Bed Mesh Webhooks APIs \u00b6 Dumping mesh data \u00b6 {\"id\": 123, \"method\": \"bed_mesh/dump_mesh\"} Dumps the configuration and state for the current mesh and all saved profiles. The dump_mesh endpoint takes one optional parameter, mesh_args . This parameter must be an object, where the keys and values are parameters available to BED_MESH_CALIBRATE . This will update the mesh configuration and probe points using the supplied parameters prior to returning the result. It is recommended to omit mesh parameters unless it is desired to visualize the probe points and/or travel path before performing BED_MESH_CALIBRATE . Visualization and analysis \u00b6 Most users will likely find that the visualizers included with applications such as Mainsail, Fluidd, and Octoprint are sufficient for basic analysis. However, Klipper's scripts folder contains the graph_mesh.py script that may be used to perform additional visualizations and more detailed analysis, particularly useful for debugging hardware or the results produced by bed_mesh : usage: graph_mesh.py [-h] {list,plot,analyze,dump} ... Graph Bed Mesh Data positional arguments: {list,plot,analyze,dump} list List available plot types plot Plot a specified type analyze Perform analysis on mesh data dump Dump API response to json file options: -h, --help show this help message and exit Pre-requisites \u00b6 Like most graphing tools provided by Klipper, graph_mesh.py requires the matplotlib and numpy python dependencies. In addition, connecting to Klipper via Moonraker's websocket requires the websockets python dependency. While all visualizations can be output to an svg file, most of the visualizations offered by graph_mesh.py are better viewed in live preview mode on a desktop class PC. For example, the 3D visualizations may be rotated and zoomed in preview mode, and the path visualizations can optionally be animated in preview mode. Plotting Mesh data \u00b6 The graph_mesh.py tool can plot several types of visualizations. Available types can be shown by running graph_mesh.py list : graph_mesh.py list points Plot original generated points path Plot probe travel path rapid Plot rapid scan travel path probedz Plot probed Z values meshz Plot mesh Z values overlay Plots the current probed mesh overlaid with a profile delta Plots the delta between current probed mesh and a profile Several options are available when plotting visualizations: usage: graph_mesh.py plot [-h] [-a] [-s] [-p PROFILE_NAME] [-o OUTPUT] positional arguments: Type of data to graph Path/url to Klipper Socket or path to json file options: -h, --help show this help message and exit -a, --animate Animate paths in live preview -s, --scale-plot Use axis limits reported by Klipper to scale plot X/Y -p PROFILE_NAME, --profile-name PROFILE_NAME Optional name of a profile to plot for 'probedz' -o OUTPUT, --output OUTPUT Output file path Below is a description of each argument: plot type : A required positional argument designating the type of visualization to generate. Must be one of the types output by the graph_mesh.py list command. input : A required positional argument containing a path or url to the input source. This must be one of the following: A path to Klipper's Unix Domain Socket A url to an instance of Moonraker A path to a json file produced by graph_mesh.py dump -a : Optional animation for the path and rapid visualization types. Animations only apply to a live preview. -s : Optionally scales a plot using the axis_minimum and axis_maximum values reported by Klipper's toolhead object when the dump file was generated. -p : A profile name that may be specified when generating the probedz 3D mesh visualization. When generating an overlay or delta visualization this argument must be provided. -o : An optional file path indicating that the script should save the visualization to this location rather than run in preview mode. Images are saved in svg format. For example, to plot an animated rapid path, connecting via Klipper's unix socket: graph_mesh.py plot -a rapid ~/printer_data/comms/klippy.sock Or to plot a 3d visualization of the mesh, connecting via Moonraker: graph_mesh.py plot meshz http://my-printer.local Bed Mesh Analysis \u00b6 The graph_mesh.py tool may also be used to perform an analysis on the data provided by the bed_mesh/dump_mesh API: graph_mesh.py analyze As with the plot command, the must be a path to Klipper's unix socket, a URL to an instance of Moonraker, or a path to a json file generated by the dump command. To begin, the analysis will perform various checks on the points and probe paths generated by bed_mesh at the time of the dump. This includes the following: The number of probe points generated, without any additions The number of probe points generated including any points generated as the result faulty regions and/or a configured zero reference position. The number of probe points generated when performing a rapid scan. The total number of moves generated for a rapid scan. A validation that the probe points generated for a rapid scan are identical to the probe points generated for a standard probing procedure. A \"backtracking\" check for both the standard probe path and a rapid scan path. Backtracking can be defined as moving to the same position more than once during the probing procedure. Backtracking should never occur during a standard probe. Faulty regions can result in backtracking during a rapid scan in an attempt to avoid entering a faulty region when approaching or leaving a probe location, however should never occur otherwise. Next each probed mesh present in the dump will by analyzed, beginning with the mesh loaded at the time of the dump (if present) and followed by any saved profiles. The following data is extracted: Mesh shape (Min X,Y, Max X,Y Probe Count) Mesh Z range, (Minimum Z, Maximum Z) Mean Z value in the mesh Standard Deviation of the Z values in the Mesh In addition to the above, a delta analysis is performed between meshes with the same shape, reporting the following: The range of the delta between to meshes (Minimum and Maximum) The mean delta Standard Deviation of the delta The absolute maximum difference The absolute mean Save mesh data to a file \u00b6 The dump command may be used to save the response to a file which can be shared for analysis when troubleshooting: graph_mesh.py dump -o