Compilation du firmware CAN
Démarrage de la compilation
- Vous devez utiliser une station supérieure avec le service
klipper
installé Connexion via SSH par réseau - Assurez-vous que l'appareil est bien connecté à la station supérieure
- Attention : Veuillez utiliser une station supérieure ordinaire, comme un Raspberry Pi ou un FLY Pi. Si vous utilisez une station supérieure modifiée (par exemple, une clé WiFi, Redmi, etc.), ces stations présentent trop de problèmes et nous ne pouvons pas vous fournir de support technique
- Pour passer de l'utilisateur
ROOT
à un utilisateur normal, vous pouvez entrer la commande ci-dessous - N'utilisez pas l'utilisateur
ROOT
- L'utilisateur fly peut simplement entrer :
su fly
, si vous n'êtes pas l'utilisateur fly, veuillez remplacer<Votre nom d'utilisateur sur la station supérieure>
par votre nom d'utilisateur sur la station supérieure !
su <Votre nom d'utilisateur sur la station supérieure>
- Assurez-vous que l'hôte peut se connecter normalement à Internet
- Avant de compiler le firmware, vous devez utiliser SSH pour vous connecter à distance via le réseau à l'hôte
- Veuillez ne pas utiliser d'outil de terminal série pour vous connecter à l'hôte
Instructions d'utilisation pour la compilation et la configuration du firmware Klipper
Assurez-vous que le mode de saisie du clavier est en mode demi-largeur, c'est-à-dire en mode anglais
- La touche
↑
(haut) et la touche↓
(bas) du clavier sont utilisées pour déplacer le curseur verticalement afin de sélectionner les éléments du menu - La touche
Entrée
ou la toucheEspace
est utilisée pour cocher une option de menu ou entrer dans un sous-menu - La touche
Échap
est utilisée pour revenir au menu précédent - La touche
Q
permet de quitter la page de configuration du firmware Klipper - La touche
Y
, lorsqu'on quitte la page de configuration du firmware Klipper et qu'une invite apparaît, appuyez surY
pour enregistrer le fichier de configuration
Si le nombre d'options de la page de configuration est limité, activez d'abord [ ] Activer les options de configuration de niveau inférieur supplémentaires
pour afficher certaines options masquées
Voici comment compiler le firmware :
-
Connectez-vous via SSH, puis entrez la commande suivante et appuyez sur Entrée :
cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig
-
Où
rm -rf ~/klipper/.config && rm -rf ~/klipper/out
est la suppression des données de compilation précédentes et du firmware, etmake menuconfig
est la compilation du firmware ; après exécution, l'interface ci-dessous devrait apparaître : -
Sélectionnez Activer les options de configuration de bas niveau supplémentaires et appuyez sur Entrée
-
Allez dans le menu Architecture du microcontrôleur puis sélectionnez Raspberry Pi RP2040/RP235x et appuyez sur Entrée
-
Sélectionnez Offset du bootloader, puis choisissez : 16KiB bootloader
-
Sélectionnez Interface de communication, puis choisissez : BUS CAN
-
Sélectionnez
(4) Numéro de broche RX CAN
, effacez4
et tapez1
-
Sélectionnez
(5) Numéro de broche TX CAN
, effacez5
et tapez0
- Sélectionnez GPIO pins to set at micro-controller startup, saisissez : !gpio18
Veuillez saisir !gpio18
en mode d'entrée anglais

- Vérifiez l'image ci-dessus pour vous assurer qu'elle est identique à l'image ci-dessus, puis passez à l'étape suivante
- Appuyez sur la touche
Q
, Save configuration apparaît, puis appuyez surY
- Vous devriez maintenant avoir sauvegardé la configuration et être retourné à l'interface de ligne de commande
- Entrez la commande ci-dessous pour commencer la compilation, cela prendra un certain temps
make -j4

-
Si le message suivant s'affiche à la fin, la compilation a réussi
Linking out/klipper.elf
Creating bin file out/klipper.bin
Configuration de l'ordinateur hôte
Si votre ordinateur hôte est l'ordinateur hôte FLY, vous n'avez pas besoin d'exécuter cette étape de configuration de l'ordinateur hôte
Si votre ordinateur hôte est un ordinateur hôte non FLY, veuillez exécuter les étapes suivantes
Vérification si l'ordinateur hôte prend en charge CAN
- Si c'est un ordinateur hôte FLY, vous n'avez pas besoin d'exécuter cette opération
- Si votre système est
Ubuntu
, vous avez besoin de configurerUbuntu CAN0
, ce document n'a pas encore été mis à jour - Entrez la commande ci-dessous 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 entré la commande ci-dessus, si votre noyau prend en charge CAN, il renverra :
Votre noyau prend en charge CAN
; sinon, il renverra :Votre noyau ne prend pas en charge CAN
.
Si vous obtenez Votre noyau prend en charge CAN
, vous pouvez passer à la configuration CAN0 suivante. Si vous obtenez Votre noyau ne prend pas en charge CAN
, veuillez changer de système d'ordinateur hôte ou remplacer l'ordinateur hôte !
Configuration de CAN0
- Cette commande remplace la configuration CAN0 du système, après l'exécution, vous devez redémarrer le système
- Veuillez choisir l'une des options selon votre situation réelle (la vitesse CAN par défaut de Klipper est de 1M, il est recommandé d'utiliser une vitesse de 1M)
Entrée de commande pour une vitesse 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
Entrée de commande pour une vitesse de 500K
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émarrez l'appareil
sudo reboot
Vérification si l'ordinateur hôte est en mode de programmation
- Veuillez vous assurer que l'ordinateur hôte peut se connecter à Internet normalement et que le câble de données de l'unité inférieure est capable de transférer des données.
- Connectez-vous à l'ordinateur hôte via SSH et tapez
lsusb
puis appuyez sur Entrée, si l'information encerclée dans l'image ci-dessous apparaît, vous pouvez passer à l'étape suivante.- Si aucune information n'est renvoyée, c'est un problème de système de l'ordinateur hôte, nous ne pouvons rien y faire, vous devez changer de système ou remplacer l'ordinateur hôte.
- Si le message indique qu'il n'y a pas de commande
lsusb
, exécutez cette commande pour l'installersudo apt-get install usbutils
- Le suffixe
OpenMoko, Inc. Geschwister Schneider CAN adapter
peut servir de critère de jugement.- Certains ordinateurs hôtes peuvent afficher incomplètement ou ne pas afficher en raison de problèmes de système.
Programmation du firmware
- Avant de programmer le firmware, utilisez un câble XT30 pour connecter la carte d'outils à UTOC ou à une carte mère avec un firmware de pont flashé, voici le schéma de raccordement de référence
- Veuillez noter si les commutateurs sont positionnés correctement
Schéma du port KF

Schéma du port XT30

- Veuillez vous assurer que la résistance de CAN H et CAN L est d'environ
60Ω
lorsqu'elle est mesurée avec un multimètre sous décharge, si elle est de120Ω
, vous devez connecter un jumper de120Ω
, si elle est d'environ40Ω
, vous devez retirer le jumper
- Il est recommandé de ne pas effectuer la recherche d'ID ou la mise à jour du firmware pendant le processus d'impression.
- Le CAN firmware du même carte mère ou de la carte d'outil Katapult et le CAN firmware de Klipper ont complètement les mêmes IDs.
- Veuillez vous assurer que le réseau CAN de l'ordinateur principal a été configuré.
- Lorsque
1d50:606f
apparaît après la commandelsusb
, vous pouvez utiliser la commande ci-dessous pour rechercher l'ID CAN. - Le taux de transmission CAN de la carte d'outil doit être identique à celui de l'ordinateur principal, sinon il sera impossible de trouver l'ID et de procéder à la programmation.
-
Exécutez la commande suivante pour rechercher l'UUID du CANBus :
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
Pour le système
fast
, utilisez cette commande pour la programmation, remplacez<votre ID de carte mère>
par l'ID trouvé à l'étape précédente.python ~/klipper/scripts/canbus_query.py can0
-
Après avoir entré la commande, plusieurs situations peuvent se produire en fonction de votre machine, voici des références :
- Première situation : Si la carte mère a un firmware bridge, un ID apparaîtra avec le message
Application: Klipper
. - Deuxième situation : Si la carte mère a un firmware bridge et qu'elle est associée à une carte d'outil nécessitant une programmation, deux IDs apparaîtront.
- Troisième situation : Utilisation de UTOC avec une carte d'outil nécessitant une programmation.
- Indication : UTOC n'affiche pas d'ID.
- Quatrième situation : Pas d'ID affiché, généralement c'est parce que Klipper occupe l'ID, le taux de transmission CAN de l'ordinateur principal est incorrect ou il y a une anomalie dans la connexion.
- Première situation : Si la carte mère a un firmware bridge, un ID apparaîtra avec le message
-
En général, si la carte d'outil à programmer est en mode CANBOOT, elle affichera
Application: CanBoot
avec un clignotement correspondant de la LED du firmware. À ce moment-là, vous devez programmer le firmware Klipper, sinon il sera impossible de se connecter !!! -
Indication : Si c'est un firmware Klipper et que l'ID a été rempli dans la configuration, l'ID ne s'affichera pas et sera occupé par Klipper. Vous devez désactiver l'ID correspondant et redémarrer complètement la carte mère.
note- Si aucune UUID n'a été trouvée, consultez le document ci-dessous.
- Résumé des problèmes CAN
-
Programmation du firmware
-
Remplacez
<241696050c56>
par l'UUID trouvée lors de la recherche dans la commande ci-dessous, notez qu'il y a un espace après-u
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
-
Comme illustré ci-dessous, si
CAN Flash Success
apparaît, cela signifie que la programmation a réussi.
Mise à jour du firmware
- Si vous souhaitez mettre à jour le firmware, il suffit de recompiler le firmware puis d'exécuter à nouveau la commande de programmation pour mettre à jour le firmware.
- Mais assurez-vous de pouvoir trouver l'ID correspondant ou que Klipper est déjà connecté.
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>
Vérification du démarrage du firmware
- Si le firmware démarre normalement, la LED s'allumera