Problème de timeout d'homing sous Klipper
Description du problème
Une erreur de timeout de communication se produit lors de l'homing :
Error during homing z: Communication timeout during homing
Cela se produit principalement lors de l'homing de l'axe Z avec plusieurs MCU. 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
Modifier la configuration du délai
sed -i 's/TRSYNC_TIMEOUT = [0-9.]*$/TRSYNC_TIMEOUT = 0.05/' ~/klipper/klippy/mcu.py
Redémarrer le service pour appliquer
sudo systemctl restart klipper
Commandes associées
# Voir le réglage actuel
grep "TRSYNC_TIMEOUT =" ~/klipper/klippy/mcu.py
# Restaurer le réglage par défaut
sed -i 's/TRSYNC_TIMEOUT = [0-9.]*$/TRSYNC_TIMEOUT = 0.025/' ~/klipper/klippy/mcu.py
Méthode 2 : Gérer KlipperScreen
Fermer temporairement KlipperScreen pour libérer des ressources système et résoudre le problème de timeout de communication lors de l'homing.
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
klipper_macros.cfg: - Remarque :
/data/klipper-klipperscreen-manager/scripts/doit être remplacé par le chemin réel
# ===== Macro de contrôle KlipperScreen =====
# Auteur : MELLOW-张伟
# Description : Permet de gérer la fermeture et la restauration 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. Utilisation
Fermer 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 fermant temporairement l'interface KlipperScreen, réduisant la charge CPU et évitant ainsi les problèmes de timeout de communication lors de l'homing.
- Vérifier que Klipper est installé
- L'utilisateur actuel est l'utilisateur d'installation de Klipper
- Les chemins de fichiers sont corrects