Configuration du réseau CAN et recherche d'ID
Notes avant utilisation
- Connectez l'UTOR ou une carte mère avec le firmware de pont CAN flashé à l'ordinateur hôte via USB.
- Veuillez vous connecter à l'interface d'administration de l'ordinateur hôte via le réseau, n'utilisez pas le port série.
- Si vous utilisez le système FlyOS-FAST, aucune configuration CAN n'est nécessaire (le système est préconfiguré avec un débit de 1M et un cache de 1024).
Vérifier si l'ordinateur hôte prend en charge le CAN
Si vous utilisez un ordinateur hôte FLY, vous pouvez ignorer cette étape.
Exécutez la commande suivante pour détecter la prise en charge du CAN par le noyau :
sudo modprobe can && echo "Le noyau prend en charge le CAN" || echo "Le noyau ne prend pas en charge le CAN"
Si "Le noyau prend en charge le CAN" s'affiche, vous pouvez poursuivre la configuration.
Configurer CAN0
⚠️ Cette opération écrasera la configuration CAN0 existante. Un redémarrage du système est requis après l'avoir terminée.
Le système FAST n'a pas besoin de l'exécuter !
Choisissez la méthode de configuration correspondante selon le type de système :
- Système Linux standard
- Système Raspberry Pi
Système Linux standard
Configuration pour un débit de 1M :
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
Configuration pour un débit de 500K :
Remplacez simplement 1000000 par 500000 dans la commande ci-dessus.
Système Raspberry Pi
Créez le fichier de configuration réseau (vous pouvez modifier la valeur BitRate) :
sudo tee /etc/systemd/network/99-can.network > /dev/null <<'EOF'
[Match]
Name=can*
[CAN]
BitRate=1000000
RestartSec=100ms
EOF
Créez le fichier de configuration de lien (il n'est pas recommandé de modifier le cache) :
sudo tee /etc/systemd/network/99-can.link > /dev/null <<'EOF'
[Match]
OriginalName=can*
[Link]
TxQueueLength=1024
EOF
Enfin, redémarrez l'appareil :
sudo reboot
Commandes pour rechercher l'ID CAN
- Commande de recherche pour un ordinateur hôte standard
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 - Commande de recherche pour un ordinateur hôte FLY
python3 ~/klipper/scripts/canbus_query.py can0 - Si un ID apparaît et que
Application:à la fin afficheKlipper, cela signifie que cet ID peut être utilisé directement. - Si un ID apparaît et que
Application:à la fin afficheCANBOOTouKatapult, cela signifie qu'un flashage du firmware est nécessaire avant de pouvoir l'utiliser.Loading...
Messages d'erreur courants
- Voici les erreurs courantes ci-dessous
- 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 signifie que l'ordinateur hôte ne trouve pas de périphérique CAN (carte mère avec firmware de pont USB flashé ou UTOC).
- La deuxième signifie que l'ordinateur hôte n'a pas configuré ou a mal configuré CAN0.
- La troisième signifie que le cache de l'ordinateur hôte est insuffisant ou qu'un problème système a provoqué un crash du cache.
- Pour les deuxième et troisième points, reportez-vous à la configuration de CAN0, une reconfiguration suffit.
Guide de recherche d'ID de la carte outil et dépannage
1. Vérifier et configurer le débit CAN
Le débit de communication CAN du firmware de la carte outil doit être exactement le même que la configuration de l'ordinateur hôte, sinon l'appareil ne pourra pas être détecté.
Procédure :
- Exécutez la commande suivante dans le terminal de l'hôte pour voir l'état actuel de l'interface CAN0 :
ip -details link show can0 - Dans les informations de sortie, confirmez deux paramètres clés :
bitrate: Le débit de communication CAN actuel (par exemple,1000000signifie 1 Mbps).TxQueueLength: La longueur de la file d'attente d'envoi / taille du cache (par exemple,1024).
La figure ci-dessous montre un exemple de sortie de commande. Veuillez vérifier attentivement que le paramètre bitrate dans le cadre rouge correspond aux paramètres de votre appareil :
2. Exclure l'occupation par l'ID système
Si la carte outil a déjà été flashée avec le firmware Klipper et que son ID a été écrit dans le fichier de configuration de l'hôte (printer.cfg), cet ID sera occupé par le système et ne s'affichera pas dans la recherche.
Solution :
- Commentez temporairement ou supprimez tous les paragraphes de configuration relatifs à cette carte outil dans
printer.cfg. - Après avoir effectué les modifications, vous devez éteindre complètement la machine et débrancher l'alimentation pendant environ 10 secondes, puis la rallumer.
3. Vérifier la résistance de terminaison du bus CAN
- Un réseau de bus CAN stable doit avoir des résistances de terminaison de
120Ωinstallées aux deux extrémités physiques du câblage. - Il faut s'assurer que la résistance mesurée entre CAN-H et CAN-L à l'aide d'un multimètre, avec l'alimentation coupée, est d'environ
60Ω.
Méthode de vérification :
- Opérez impérativement avec l'appareil complètement hors tension.
- Utilisez le multimètre en mode mesure de résistance pour mesurer la résistance entre les broches CAN-H et CAN-L sur l'interface CAN de la carte mère ou sur la carte outil.
- La résistance correcte du bus doit être d'environ 60Ω (résultat de deux résistances de
120Ωen parallèle). Si la valeur mesurée s'écarte trop (comme un circuit ouvert ou seulement120Ω), cela indique une erreur de câblage ou de configuration des résistances de terminaison.
Règles de configuration pour chaque appareil :
| Type d'appareil | Exigence de résistance de terminaison | Instructions |
|---|---|---|
| Carte outil CAN | Nécessite une résistance de terminaison de 120Ω | Activez-la via le cavalier ou le commutateur DIP intégré à la carte. |
| Interface CAN de la carte mère | Nécessite une résistance de terminaison de 120Ω | Activez-la via le cavalier ou le commutateur DIP intégré à la carte. |
| Module de conversion de type UTOC | Intègre déjà une résistance de 120Ω | Aucune autre résistance de terminaison à activer. |