Ensemble de problèmes CAN
Précautions avant la recherche de périphérique
- Avant de rechercher l'ID CAN, veuillez d'abord vous connecter via SSH
- Veuillez vous assurer que vous vous êtes connecté via le réseau et non via un port série
- Veuillez vous assurer que la carte mère avec UTOC connecté ou ayant le firmware de pont CAN gravé est bien connectée, ainsi que le câble reliant l'hôte dispose d'une fonction de transfert de données
Vérifier si le périphérique est présent
- Maintenant que vous êtes connecté normalement à l'hôte, vous pouvez entrer la commande
lsusbpour rechercher le périphérique, vous obtiendrez l'un des cas suivants :- Si la commande
lsusbindique quelsn'est pas trouvée, vous pouvez installer les utilitaires avec la commande suivante :sudo apt-get install usbutils - Si aucune réponse n'apparaît après avoir exécuté
lsusb, cela provient d'un problème système que nous ne pouvons résoudre ici. Vous devrez changer de système ou utiliser un système dont vous êtes certain qu'il fonctionne correctement. - Si vous voyez apparaître l'information comme sur l'image ci-dessous, veuillez noter que c'est seulement à titre d'exemple. Il vous suffit de vérifier la présence de
1d50:606f:
- Si la commande
1d50:606fcorrespond au périphérique que vous allez utiliser. Vous pouvez ignorer les autres indications, car celles-ci peuvent ne pas s'afficher correctement ou pas du tout en raison de problèmes système.- Si plusieurs
1d50:606fapparaissent, il est conseillé d'en retirer un, car cela pourrait affecter les opérations suivantes comme le flashage ou la connexion au firmware. Par exemple, pourFLY MINI PAD, privilégiez l'utilisation de l'UTOC intégré plutôt qu'un autre périphérique de pont CAN. - Si aucun périphérique n'apparaît, vérifiez que les câbles sont bien connectés et que le firmware a été correctement gravé.
Remarque importante
Vous pouvez rechercher l'ID CAN uniquement si 1d50:606f apparaît
Identifier les problèmes à partir des erreurs
- Voici les erreurs courantes :
- OSError: [Errno 19] No such device
- can.CanError: Failed to transmit: [Errno 100] Network is down
- can.CanError: Failed to transmit: [Errno 105] No buffer space available
- La première erreur signifie 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 signifie que CAN0 n'a pas été configuré ou mal configuré sur l'hôte.
- La troisième erreur est due à un manque de mémoire tampon ou à un problème système provoquant un blocage du tampon.
- Pour les points deux et trois, reportez-vous à la section Configuration de CAN0 pour diagnostiquer le problème.
- Si l'ID n'est pas trouvé, reportez-vous à la fin de ce document.
Vérifier si l'hôte prend en charge CAN
- Si vous utilisez l'hôte FLY, vous pouvez ignorer cette étape.
- Si votre système est
Ubuntu, vous devez consulter le documentUbuntu configuration CAN0, qui n'est pas encore mis à jour. - Entrez la commande suivante pour vérifier si le système prend en charge CAN :
sudo modprobe can && echo "Votre noyau prend en charge CAN" || echo "Votre noyau ne prend pas en charge CAN"
- Après avoir exécuté cette commande, si votre noyau prend en charge CAN, vous verrez :
Votre noyau prend en charge CAN; sinon, vous verrez :Votre noyau ne prend pas en charge CAN. - Si vous obtenez
Votre noyau prend en charge CAN, vous pouvez passer à la configuration de CAN0.
Configuration de CAN0
- Cette commande remplace la configuration existante de CAN0 dans le système. Un redémarrage est nécessaire après exécution.
- Les systèmes
FASTn'ont pas besoin d'exécuter cette étape !!!!!! - Sélectionnez l'une des options suivantes en fonction de votre situation.
- Méthode de configuration pour système Linux standard
- Méthode de configuration pour système Raspberry Pi
Méthode de configuration pour système Linux standard
-
Vous devez choisir la vitesse CAN adaptée à votre périphérique.
-
Pour une vitesse 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 une vitesse 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 -
Si un message similaire apparaît, veuillez consulter la méthode de configuration pour système Raspberry Pi
Méthode de configuration pour système Raspberry Pi
- Cette méthode s'applique aux systèmes Raspberry Pi, pour les autres systèmes veuillez utiliser la méthode standard pour Linux.
- Créez un fichier
.network. La valeurBitRatedans cette configuration peut être modifiée selon les besoins, par exemple1000000peut être changé en500000.sudo tee /etc/systemd/network/99-can.network > /dev/null <<'EOF'
[Match]
Name=can*
[CAN]
BitRate=1000000
RestartSec=100ms
EOF - Créez un fichier
.link. La valeurTxQueueLengthdans cette configuration correspond à la mémoire tampon CAN, il n'est pas recommandé de la modifier.sudo tee /etc/systemd/network/99-can.link > /dev/null <<'EOF'
[Match]
OriginalName=can*
[Link]
TxQueueLength=1024
EOF
- Redémarrez l'appareil
sudo reboot
Vérifications à effectuer si l'ID n'est pas trouvé
- Si l'ID est configuré dans Klipper, vous devez désactiver cet ID dans les paramètres système, éteindre le système, couper l'alimentation puis redémarrer ou appuyer sur le bouton de réinitialisation de la carte mère.
- Vérifiez que la vitesse CAN de l'hôte correspond à celle de la carte mère et de la carte d'outils.
- Vous pouvez utiliser la commande ci-dessous pour vérifier la vitesse CAN de l'hôte.
- Vérifiez qu'il n'y a pas de câblage défectueux.
- Vérifiez que le cavalier
120Ωest bien installé entre la carte d'outils et le périphérique (carte mère avec firmware de pont USB ou UTOC). - Si le cavalier
120Ωest installé, utilisez un multimètre pour mesurer la résistance entre CAN H et CAN L lorsque le périphérique est complètement débranché. Celle-ci doit être d'environ60Ω. - Vérifiez qu'il n'y a pas de câblage défectueux.
ip -details link show can0
- La zone entourée dans l'image ci-dessous indique la vitesse CAN et la mémoire tampon de l'hôte.
- La valeur
1024ci-dessus indique la mémoire tampon actuelle de CAN0. - La valeur
1000000ci-dessous indique la vitesse actuelle de CAN0.

-
Si l'UUID n'est toujours pas trouvé, vérifiez attentivement les points suivants :
- Vérifiez que la carte mère ou la carte d'outils est correctement connectée.
- Vérifiez que l'alimentation est correcte, il est recommandé de brancher une alimentation VCC si vous utilisez la carte mère.
- Vérifiez que l'hôte prend en charge le réseau CAN.
- Vérifiez que la résistance CAN est d'environ
60Ω. - Vérifiez que le firmware est correctement compilé.
Rechercher 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:afficheKlipperà la fin, cela signifie que cet ID peut être utilisé directement. - Si un ID apparaît et que
Application:afficheCANBOOTouKatapultà la fin, cela signifie qu'il faut flasher le firmware pour pouvoir l'utiliser.
Loading...