Compilation du firmware CAN
Démarrer 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>
- 请确保上位机可以正常联网
- 固件编译前需要使用SSH通过网络登录上位机
- 请不要使用串口工具登录上位机
Klipper固件编译和配置页面操作说明
请确保键盘输入法为半角模式,即英文模式
- 键盘上键
↑
,下键↓
,用于上下移动光标来选中菜单项 - 确认键
Enter
或 空格键Space
,用于勾选菜单或进入子菜单 - 退出键
ESC
,用于返回上一级菜单 Q
键,用于退出Klipper固件配置页面Y
键,在退出Klipper固件配置页面时,如果有提示,则点击Y
键保存配置文件
如果配置页面选项比较少,请先勾选[ ] Enable extra low-level configuration options
,用于显示部分隐藏选项
Voici comment compiler le firmware :
-
Connectez-vous à 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 firmwaremake menuconfig
est la compilation du firmware, une fois exécutée, cela devrait afficher l'interface ci-dessous -
Sélectionnez Activer les options de configuration de bas niveau supplémentaires et appuyez sur Entrée
-
Accédez au menu Micro-controleur Architecture puis sélectionnez Raspberry Pi RP2040 et appuyez sur Entrée
-
Sélectionnez Bootloader offset, choisissez : 16KiB bootloader
-
Sélectionnez Interface de communication, choisissez : BUS CAN
-
Sélectionnez
(4) Numéro de broche CAN RX
, supprimez4
et entrez1
-
Sélectionnez
(5) Numéro de broche CAN TX
, supprimez5
et entrez0
- Sélectionnez GPIO pins to set at micro-controller startup, entrez : !gpio5
Veuillez entrer !gpio5
en mode d'entrée anglaise.

-
Vérifiez l'image ci-dessus pour vous assurer qu'elle correspond, puis passez à l'étape suivante
-
Appuyez sur la touche
Q
, puis apparaîtra Save configuration, appuyez ensuite surY
-
La configuration devrait maintenant être sauvegardée et vous êtes revenu à l'interface de ligne de commande
-
Entrez
make -j4
pour commencer la compilation, cela prend un certain temps -
Si la sortie finale contient le texte suivant, la compilation a réussi :
Linking out/klipper.elf
Creating hex file out/klipper.bin
Configuration de l'hôte
Si votre hôte est un hôte FLY, vous n'avez pas besoin d'exécuter l'étape de Configuration de l'hôte.
Si votre hôte est un hôte non-FLY, veuillez exécuter les étapes suivantes.
Vérification de la prise en charge CAN de l'hôte
- Si votre hôte est un hôte FLY, vous n'avez pas besoin d'exécuter cette opération
- Si votre système est
Ubuntu
, vous devez 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 supporte CAN" || echo "Votre noyau ne supporte pas CAN"
- Après avoir exécuté la commande ci-dessus, si votre noyau supporte CAN, vous obtiendrez la réponse :
Votre noyau supporte CAN
. Sinon, vous obtiendrez :Votre noyau ne supporte pas CAN
.
Si vous obtenez Votre noyau supporte CAN
, vous pouvez passer à l'étape de configuration CAN0. Si vous obtenez Votre noyau ne supporte pas CAN
, veuillez changer le système de votre hôte ou changer l'hôte !
Configuration de CAN0
- Cette commande remplace la configuration système CAN0 précédente et nécessite un redémarrage après son exécution
- Choisissez l'une des options suivantes selon vos besoins (Le taux de CAN par défaut de Klipper est de 1M, il est recommandé d'utiliser le taux de 1M)
Pour un taux 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 1000000
EOF
Pour un taux 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émarrez l'appareil
sudo reboot
Recherche d'appareils
- Assurez-vous que l'hôte est connecté à Internet et que le câble de données du périphérique inférieur est capable de transférer des données.
- Connectez-vous via SSH à l'hôte et entrez
lsusb
puis appuyez sur Entrée. Si vous voyez les informations entourées dans l'image ci-dessous, vous pouvez passer à l'étape suivante.- Si aucune information n'est renvoyée, c'est un problème avec le système de l'hôte, nous ne pouvons rien y faire. Vous devez remplacer le système ou changer l'hôte par un autre qui fonctionne correctement.
- Si la commande
lsusb
ne donne pas de résultats, vous pouvez exécuter cette commande pour l'installer :sudo apt-get install usbutils
1d50:606f
fait référence au périphérique que vous allez utiliser. La mentionOpenMoko, Inc. Geschwister Schneider CAN adapter
peut être utile mais n'est pas une condition nécessaire.- Certains hôtes peuvent afficher le périphérique de manière incomplète ou ne pas le montrer du tout en raison de problèmes de système.
- Si vous entrez la commande
lsusb
et que le périphérique s'affiche, mais sans1d50:606f
, essayez de changer le câble de données et de connecter la carte mère à d'autres ports USB de l'hôte.
- Si vous avez déjà effectué les étapes ci-dessus et que vous avez réussi à flasher le firmware Klipper, et que la carte mère fonctionne normalement, mais que vous voulez simplement mettre à jour le firmware Klipper, consultez le chapitre
Mise à jour du firmware
dans le menu de droite de cette page.
Vous ne pouvez pas passer à l'étape suivante que si vous voyez 1d50:606f
.
Flashage du firmware
- Avant de flasher le firmware, connectez le tableau d'outils au UTOC ou à une carte mère avec un firmware de pont, ci-dessous se trouve un schéma de câblage de référence
- Assurez-vous que les commutateurs sont positionnés correctement
- Assurez-vous que la résistance entre CAN H et CAN L est d'environ
60Ω
en coupant le courant, si c'est120Ω
, connectez un saut de120Ω
, si c'est40Ω
environ, retirez le saut
- Il est conseillé de ne pas effectuer la recherche d'ID ou la mise à jour du firmware pendant le processus d'impression.
- Le CAN Firmware de la même carte mère ou de la carte d'outil Katapult et celui de Klipper ont exactement les mêmes IDs.
- Veuillez vous assurer que le réseau CAN de l'ordinateur supérieur 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 supérieur, sinon l'ID ne pourra pas être trouvé et le flashage ne fonctionnera pas.
-
Exécutez la commande suivante pour rechercher l'UUID du CANBus :
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
-
Après avoir exécuté la commande, une des situations suivantes apparaîtra en fonction de votre machine. Voici un exemple de référence :
- Première situation : La carte principale a installé le firmware de pont, un ID apparaît avec le message
Application: Klipper
- Deuxième situation : La carte principale a installé le firmware de pont et est associée à une carte d'outil devant être flashée, deux IDs apparaissent
- Troisième situation : Utiliser UTOC avec une carte d'outil devant être flashée
- Remarque : UTOC n'affiche pas d'ID
- Quatrième situation : Pas d'ID affiché, généralement c'est Klipper qui l'occupe, le taux de transmission CAN0 de l'ordinateur supérieur n'est pas correct ou il y a une anomalie dans la connexion
- Première situation : La carte principale a installé le firmware de pont, un ID apparaît avec le message
-
En règle générale, si la carte d'outil devant être flashée est en mode CANBOOT, elle affichera
Application: CanBoot
et la LED correspondante clignotera. Dans ce cas, vous devez flasher le firmware Klipper, sinon la connexion ne sera pas possible !!! -
Remarque : Si c'est le firmware Klipper et que l'ID a été inséré dans la configuration, l'ID ne s'affichera plus et sera occupé par Klipper. Vous devez désactiver l'ID correspondant et redémarrer complètement la carte principale.
- Si aucun UUID n'a été trouvé, consultez le document ci-dessous.
- Résumé des problèmes liés à CAN
-
Flashage du firmware
-
Remplacez
<MCU ID>
dans la commande ci-dessous par l'ID UUID trouvé lors de la recherche. Notez qu'il y a un espace après-u
.python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56
-
Comme indiqué ci-dessous, si
CAN Flash Success
apparaît, le flashage a réussi.
Si vous avez besoin de mettre à jour le firmware, il suffit de compiler le nouveau firmware puis de réexécuter la commande de flashage pour mettre à jour le firmware, mais assurez-vous de pouvoir trouver l'ID ou que Klipper soit connecté.
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>

Vérification du démarrage du firmware
- Si le firmware démarre correctement, la LED s'allumera