Aller au contenu principal

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
note
  • 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>
prompt
  • 请确保上位机可以正常联网
  • 固件编译前需要使用SSH通过网络登录上位机
  • 请不要使用串口工具登录上位机

Klipper固件编译和配置页面操作说明

prompt

请确保键盘输入法为半角模式,即英文模式

  1. 键盘上键,下键,用于上下移动光标来选中菜单项
  2. 确认键Enter 或 空格键Space,用于勾选菜单或进入子菜单
  3. 退出键ESC,用于返回上一级菜单
  4. Q键,用于退出Klipper固件配置页面
  5. Y键,在退出Klipper固件配置页面时,如果有提示,则点击Y键保存配置文件
note

如果配置页面选项比较少,请先勾选[ ] Enable extra low-level configuration options,用于显示部分隐藏选项

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
  • rm -rf ~/klipper/.config && rm -rf ~/klipper/out est la suppression des données de compilation précédentes et du firmware, et make 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, effacez 4 et tapez 1

  • Sélectionnez (5) Numéro de broche TX CAN, effacez 5 et tapez 0

  • Sélectionnez GPIO pins à configurer au démarrage du micro-contrôleur, entrez : !gpio18
note

Veuillez entrer !gpio18 en mode de saisie anglaise.

  • Vérifiez que cela correspond à l'image ci-dessus pour être sûr qu'il soit identique avant d'aller plus loin
  • Appuyez sur la touche Q, puis sur Y pour sauvegarder la configuration
  • Vous devriez maintenant avoir sauvegardé la configuration et être revenu à l'interface de commande
  • Entrez la commande suivante pour commencer la compilation, qui prend un certain temps
make -j4
  • Si la sortie finale est similaire à ce qui suit, la compilation a réussi

    Linking out/klipper.elf
    Creating bin file out/klipper.bin

Configuration de l'ordinateur principal

note

Si votre ordinateur principal est un FLY, vous n'avez pas besoin d'exécuter cette étape de configuration de l'ordinateur principal.

note

Si votre ordinateur principal est un non-FLY, veuillez exécuter les étapes suivantes.

Vérification de la prise en charge CAN de l'ordinateur principal

  • Si c'est un ordinateur principal FLY, vous n'avez pas besoin d'exécuter cette opération
  • Si votre système est Ubuntu, vous devez configurer CAN0 pour Ubuntu, cette documentation n'a pas encore été mise à jour
  • Entrez la commande suivante pour vérifier si le noyau du système prend en charge CAN
sudo modprobe can && echo "Votre noyau supporte CAN" || echo "Votre noyau ne supporte pas CAN"
  • Après avoir entré cette commande, si votre noyau prend en charge CAN, il retournera : Votre noyau supporte CAN. Sinon, il retournera : Votre noyau ne supporte pas CAN.
prompt

Si le résultat est Votre noyau supporte CAN, vous pouvez passer à la configuration de CAN0. Si le résultat est Votre noyau ne supporte pas CAN, veuillez changer de système ou remplacer votre ordinateur principal !

Configuration de CAN0

  • Cette commande remplace la configuration système précédente de CAN0, il est nécessaire de redémarrer après son exécution
  • Choisissez l'une des options suivantes en fonction de vos besoins (Le taux par défaut de Klipper est de 1M, il est recommandé d'utiliser un taux de 1M)
note

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 1024
EOF
note

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

Vérification du mode de mise à jour

  • Assurez-vous que l'ordinateur principal peut se connecter normalement à Internet et que le câble de données reliant la carte inférieure à l'ordinateur principal possède une fonction de transmission de données.
  • Connectez-vous via SSH à l'ordinateur principal 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 retournée, il s'agit d'un problème du système de l'ordinateur principal, nous ne pouvons rien faire. Vous devez changer de système fonctionnel ou remplacer l'ordinateur principal.
    • Si le message indique que la commande lsusb n'est pas trouvée, vous pouvez installer cette commande en exécutant :
      sudo apt-get install usbutils
  • Le suffixe OpenMoko, Inc. Geschwister Schneider CAN adapter peut servir de critère de jugement.
    • Certains ordinateurs principaux peuvent afficher des informations incomplètes ou ne pas afficher du tout en raison de problèmes du système.

Écriture du firmware

  • Avant d'écrire le firmware, connectez la carte d'outil avec une ligne de données XT30 à UTOC ou à une carte mère flashée avec le firmware de pont. Voici un schéma de câblage de référence
  • Vérifiez que les interrupteurs sont bien positionnés

Schéma de l'interface KF

Schéma de l'interface XT30

  • Assurez-vous que la résistance entre CAN H et CAN L est d'environ 60Ω lorsqu'elle est mesurée avec un multimètre en décharge. Si elle est de 120Ω, connectez un saut de 120Ω. Si elle est d'environ 40Ω, retirez le saut
prompt
  • 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.
note
  • Veuillez vous assurer que le réseau CAN de l'ordinateur principal a été configuré.
  • Lorsque 1d50:606f apparaît après la commande lsusb, 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.
    • 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 correctement, la LED s'allumera
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -
- 3D Mellow -