Problème de timeout d'homing Klipper
Description du problème
Une erreur de timeout de communication se produit pendant l'homing :
Error during homing z: Communication timeout during homing
Cela se produit principalement lors de l'homing de l'axe Z avec plusieurs MCUs. Klipper exige une réponse dans les 0,025 secondes.
- Ajuster le délai d'attente
- Gérer KlipperScreen
Méthode 1 : Ajuster le délai d'attente (timeout)
Modifier la configuration du timeout
sed -i 's/TRSYNC_TIMEOUT = [0-9.]*$/TRSYNC_TIMEOUT = 0.05/' ~/klipper/klippy/mcu.py
Redémarrer le service pour appliquer les changements
sudo systemctl restart klipper
Commandes associées
# Voir le paramètre actuel
grep "TRSYNC_TIMEOUT =" ~/klipper/klippy/mcu.py
# Restaurer le paramètre par défaut
sed -i 's/TRSYNC_TIMEOUT = [0-9.]*$/TRSYNC_TIMEOUT = 0.025/' ~/klipper/klippy/mcu.py
Méthode 2 : Gérer KlipperScreen
Résoudre le problème de timeout de communication pendant l'homing en libérant des ressources système via la désactivation temporaire de KlipperScreen.
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éez le fichier
klipper_macros.cfgdans le répertoire de configuration de Klipper. - Ajoutez ceci au tout début du fichier
printer.cfg:[include klipper_macros.cfg]
4. Configurer les macros
- Ajoutez le contenu suivant dans
klipper_macros.cfg: - Notez que
/data/klipper-klipperscreen-manager/scripts/doit être remplacé par le chemin réel.
# ===== Macros de contrôle KlipperScreen =====
# Auteur : MELLOW-Zhang Wei
# Description : Pour gérer la désactivation et la récupération 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 (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 de 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 libère des ressources système en désactivant temporairement l'interface KlipperScreen, réduisant ainsi la charge CPU et évitant les problèmes de timeout de communication pendant l'homing.
- Vérifiez que Klipper est installé.
- L'utilisateur actuel est l'utilisateur d'installation de Klipper.
- Les chemins de fichiers sont corrects.