Problème de timeout d'homologation Klipper
Description du problème
Une erreur de timeout de communication apparaît pendant l'homologation :
Error during homing z: Communication timeout during homing
Ce problème apparaît principalement lors de l'homologation de l'axe Z avec plusieurs MCU, Klipper exigeant une réponse en moins de 0,025 seconde.
- Ajuster le délai d'attente
- Gérer KlipperScreen
Méthode 1 : Ajuster le délai d'attente
Modifier la configuration du délai d'attente
sed -i 's/TRSYNC_TIMEOUT = [0-9.]*$/TRSYNC_TIMEOUT = 0.05/' ~/klipper/klippy/mcu.py
Redémarrer le service pour que les modifications prennent effet
sudo systemctl restart klipper
Commandes associées
# Vérifier la configuration actuelle
grep "TRSYNC_TIMEOUT =" ~/klipper/klippy/mcu.py
# Restaurer la configuration par défaut
sed -i 's/TRSYNC_TIMEOUT = [0-9.]*$/TRSYNC_TIMEOUT = 0.025/' ~/klipper/klippy/mcu.py
Méthode 2 : Gérer KlipperScreen
Désactiver temporairement KlipperScreen afin de libérer les ressources système et résoudre les erreurs de timeout pendant l'homologation.
1. Télécharger les fichiers nécessaires
Système standard :
git clone https://cnb.cool/3dmellow/public/klipper-klipperscreen-manager
curl -# -L --retry 3 --retry-delay 2 -o ~/klipper/klippy/extras/gcode_shell_command.py https://raw.githubusercontent.com/dw-0/kiauh/master/kiauh/extensions/gcode_shell_cmd/assets/gcode_shell_command.py
Système Fast :
cd /data
git clone https://cnb.cool/3dmellow/public/klipper-klipperscreen-manager
curl -# -L --retry 3 --retry-delay 2 -o /data/klipper/klippy/extras/gcode_shell_command.py https://raw.githubusercontent.com/dw-0/kiauh/master/kiauh/extensions/gcode_shell_cmd/assets/gcode_shell_command.py
2. Définir les permissions des scripts
Système standard :
cd ~/klipper-klipperscreen-manager
chmod +x ~/klipper-klipperscreen-manager/scripts/*.sh
Système Fast :
cd /data/klipper-klipperscreen-manager
chmod +x /data/klipper-klipperscreen-manager/scripts/*.sh
3. Créer le fichier de configuration
- Créer le fichier
klipper_macros.cfgdans le répertoire de configuration de Klipper - Ajouter en haut du fichier
printer.cfg:[include klipper_macros.cfg]
4. Configurer les macros
- Ajouter le contenu suivant dans le fichier
klipper_macros.cfg: - Attention, le chemin
/data/klipper-klipperscreen-manager/scripts/doit être remplacé par le chemin réel
# ===== Macros de contrôle KlipperScreen =====
# Auteur : MELLOW-Zhang Wei
# Description : Gérer la désactivation et la réactivation automatique de KlipperScreen
[gcode_shell_command disable_klipperscreen]
command: sh /data/klipper-klipperscreen-manager/scripts/disable_klipperscreen.sh
timeout: 5.0
verbose: True
[gcode_shell_command enable_klipperscreen]
command: sh /data/klipper-klipperscreen-manager/scripts/enable_klipperscreen.sh
timeout: 5.0
verbose: True
[gcode_macro RESTART_KLIpperSCREEN]
variable_time: 60 # Temps d'attente par défaut (en secondes)
gcode:
{% set wait_time = params.TIME|default(printer["gcode_macro RESTART_KLIpperSCREEN"].time)|int %}
{action_respond_info("Temps d'attente : %s secondes" % wait_time)}
RUN_SHELL_COMMAND CMD=disable_klipperscreen PARAMS={wait_time}
[gcode_macro ENABLE_KLIpperSCREEN]
gcode:
{action_respond_info("Démarrage immédiat de KlipperScreen")}
RUN_SHELL_COMMAND CMD=enable_klipperscreen
5. Mode d'emploi
Désactiver temporairement KlipperScreen :
# Utiliser le temps d'attente par défaut (60 secondes)
RESTART_KLIpperSCREEN
# Utiliser un temps d'attente personnalisé (120 secondes)
RESTART_KLIpperSCREEN TIME=120
Redémarrer manuellement KlipperScreen immédiatement :
ENABLE_KLIpperSCREEN
Cette méthode désactive temporairement l'interface KlipperScreen pour libérer les ressources système, réduire la charge CPU, et ainsi éviter les erreurs de timeout pendant l'homologation.
- Vérifier que Klipper est bien installé
- L'utilisateur actuel est celui utilisé pour l'installation de Klipper
- Les chemins des fichiers sont corrects