Problèmes CAN
Points à vérifier avant de rechercher un appareil
- Avant de rechercher l'ID CAN, veuillez d'abord vous connecter à SSH
- Veuillez noter que vous devez vous connecter via le réseau et non via le port série
- Assurez-vous que la carte mère avec le firmware UTOC ou le pont CAN est bien connectée, et que le câble de données connecté à l'hôte a la capacité de transmettre des données
Vérifier la présence d'un appareil
- Maintenant que vous êtes connecté à l'hôte, vous pouvez entrer
lsusb
pour rechercher des appareils, ce qui donnera l'une des situations suivantes- Si vous entrez
lsusb
et qu'il indique que la commandels
n'est pas trouvée, vous pouvez entrer la commande ci-dessous pour installer l'utilitairesudo apt-get install usbutils
- Si vous entrez
lsusb
et qu'il n'y a aucune réaction, c'est un problème système sur lequel nous ne pouvons rien faire, vous devrez changer de système ou utiliser un système fonctionnel - Si vous voyez les informations illustrées dans l'image ci-dessous, veuillez noter que c'est juste un exemple. Vous devez simplement vérifier si
1d50:606f
apparaît
- Si vous entrez
1d50:606f
correspond à l'appareil que vous devez utiliser pour cette session. Vous n'avez pas besoin de vous soucier des informations supplémentaires, car des problèmes système peuvent entraîner des informations incomplètes ou absentes- Si plusieurs
1d50:606f
sont présents, il est recommandé d'en exclure un pour éviter d'interférer avec la programmation ultérieure et la connexion du firmware, comme pour leFLY MINI PAD
où il est suggéré d'utiliser le UTOC embarqué et non d'autres dispositifs de pont CAN - Si aucun n'est présent, vérifiez vous-même si le câble de données est bien connecté, si le firmware est correctement installé.
Attention
Vous ne pouvez rechercher l'ID CAN que si 1d50:606f
est présent
Diagnostiquer les problèmes en fonction des erreurs
- Voici les erreurs courantes
- OSError: [Errno 19] Aucun tel périphérique
- can.CanError: Échec de la transmission : [Errno 100] Le réseau est en panne
- can.CanError: Échec de la transmission : [Errno 105] Pas d'espace tampon disponible
- La première erreur indique que l'hôte ne trouve pas le périphérique CAN (carte mère avec firmware de pont USB ou UTOC)
- La deuxième erreur indique que l'hôte n'a pas configuré ou mal configuré CAN0
- La troisième erreur est due à une mémoire tampon insuffisante ou à des problèmes système causant l'effondrement de la mémoire tampon
- Pour les deuxièmes et troisièmes points, référez-vous à la configuration de CAN0 ci-dessous pour le dépannage
- Si l'ID n'est pas trouvé, référez-vous à la section la plus basse
Vérifier si l'hôte supporte CAN
- Si vous utilisez l'hôte FLY, cette étape n'est pas nécessaire
- Si votre système est
Ubuntu
, vous aurez besoin deUbuntu configurer CAN0
ce document n'est pas encore mis à jour - Entrez la commande ci-dessous pour vérifier si le système supporte CAN
sudo modprobe can && echo "Votre noyau supporte CAN" || echo "Votre noyau ne supporte pas CAN"
- Après avoir entré la commande ci-dessus, si votre noyau supporte CAN, il répondra :
Votre noyau supporte CAN
; sinon, il répondra :Votre noyau ne supporte pas CAN
. - Si le noyau supporte CAN, vous pouvez passer à l'étape suivante pour configurer CAN0
Configurer CAN0
- Cette commande remplace la configuration CAN0 existante du système, après exécution, vous devez redémarrer le système
- Choisissez parmi les options suivantes en fonction de vos besoins
- Pour un débit de 1M, entrez la commande suivante
sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig $IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 1000000
pre-up ip link set can0 txqueuelen 1024
EOF
- Pour un débit de 500K, entrez la commande suivante
sudo /bin/sh -c "cat > /etc/network/interfaces.d/can0" << EOF
allow-hotplug can0
iface can0 can static
bitrate 500000
up ifconfig $IFACE txqueuelen 1024
pre-up ip link set can0 type can bitrate 500000
pre-up ip link set can0 txqueuelen 1024
EOF
- Redémarrer l'appareil
sudo reboot
Points à vérifier si l'ID n'est pas trouvé
- Si Klipper a configuré l'ID correspondant, vous devez d'abord désactiver l'ID dans la configuration du système, puis éteindre, débrancher puis rebrancher ou appuyer sur le bouton de réinitialisation de la carte mère
- Vérifiez si le taux de CAN de l'hôte correspond à celui de la carte mère, des plaques d'outils, etc.
- Vous pouvez utiliser le code ci-dessous pour vérifier le taux de CAN de l'hôte
- Assurez-vous qu'il n'y a pas de câble déconnecté
- Vérifiez si un jumper de
120Ω
est installé entre la plaque d'outils et le dispositif (carte mère avec firmware de pont USB ou UTOC) - Si un jumper de
120Ω
est installé, utilisez un multimètre pour mesurer la résistance entre CAN H et CAN L, qui devrait être d'environ60Ω
lorsque l'appareil est complètement éteint - Assurez-vous qu'il n'y a pas de câble déconnecté
ip -details link show can0
- La zone encadrée sur l'image ci-dessous indique le taux de CAN de l'hôte et la mémoire tampon
1024
en haut est la taille actuelle de la mémoire tampon de CAN01000000
en bas est le taux actuel de CAN0
-
Si l'UUID n'est toujours pas trouvé, vérifiez soigneusement les points suivants
- Assurez-vous que la carte mère ou la plaque d'outils CAN est correctement connectée
- Vérifiez l'alimentation, il est recommandé de connecter la carte mère à une alimentation VCC
- Vérifiez si l'hôte supporte le réseau CAN
- Vérifiez que la résistance CAN est d'environ
60Ω
- Vérifiez que la compilation du firmware est correcte
Recherche de l'ID
- Entrez la commande suivante pour rechercher l'ID
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
- Si un ID apparaît et que
Application:
indiqueKlipper
à la fin, cela signifie que cet ID peut être utilisé directement - Si un ID apparaît et que
Application:
indiqueCANBOOT
ouKatapult
à la fin, cela signifie que le firmware doit être flashé avant de pouvoir être utilisé