Aller au contenu principal

Compilation du firmware CAN

Avant la programmation

Vérifier le mode actuel et le chemin d'opération

  • Note importante : Si la carte outil est déjà en mode Klipper-CAN, vous pouvez directement la programmer via une commande après avoir compilé le firmware. La commande la réinitialisera automatiquement en mode Katapult et effectuera la programmation.
  • État d'usine : La carte est préprogrammée avec le firmware Katapult en mode CAN, avec un débit de 1M.
  • Vérification de l'état (via la LED) : Si la LED clignote (comme ci-dessous), cela indique qu'elle est en mode Katapult et peut être programmée.
    Loading...
  • Mode anormal : Si la LED ne clignote pas, cela signifie que le firmware n'est pas Katapult. Vous devez d'abord le reprogrammer en suivant les instructions du lien ci-dessous : Cliquez ici pour programmer le firmware Katapult

Configurer les interrupteurs DIP et les connexions physiques

  1. Configuration des interrupteurs DIP : Quel que soit l'état actuel, veuillez d'abord configurer les interrupteurs DIP de la carte en mode CAN, et activer l'interrupteur 120Ω (comme illustré ci-dessous).

    Loading...
  2. Connexion de l'appareil : Utilisez un câble CAN pour connecter la carte outil à un UTOC ou à une carte mère déjà programmée avec le firmware de pont. Reportez-vous à l'image ci-dessous pour le câblage :

    Loading...
  3. Vérification cruciale (résistance de terminaison) : En coupant complètement l'alimentation, utilisez un multimètre pour mesurer la résistance entre les broches CAN_H et CAN_L.

    AppareilInstructions
    Carte outilTrouvez et insérez le cavalier marqué 120Ω.
    Carte mèreSi connectée à une carte mère, insérez également son cavalier 120Ω.
    Module UTOCRésistance intégrée.

    Comment vérifier :

    1. Assurez-vous que l'alimentation est complètement coupée.
    2. Utilisez un multimètre pour mesurer la résistance entre CAN-H et CAN-L du port CAN de la carte outil.
    3. Interprétation des résultats :
      • Environ 60Ω : Normal, les résistances aux deux extrémités sont correctement connectées.
      • Environ 140Ω : CAN-H et CAN-L sont peut-être inversés.
      • Environ 120Ω : Le cavalier 120Ω n'est pas installé ou il y a un fil coupé.
      • Environ 90Ω : Un seul cavalier 120Ω est installé.
      • Environ 40Ω : Il y a peut-être une résistance supplémentaire, vérifiez les nœuds intermédiaires.

Commencer la compilation

Notes et guide de compilation du firmware

Notes importantes

📌 Prérequis essentiels
  1. Connexion réseau : Assurez-vous que l'ordinateur hôte (Raspberry Pi, etc.) est connecté au réseau.
  2. Méthode d'accès : Vous devez vous connecter à l'ordinateur hôte via SSH sur le réseau. L'utilisation d'outils série est interdite.
  3. Permissions utilisateur : Utilisez le compte utilisateur approprié en fonction du type de système de l'ordinateur hôte.
  4. Méthode de saisie : Assurez-vous que la méthode de saisie du clavier est en mode demi-largeur (mode anglais).

Connexion SSH et changement d'utilisateur

Connexion SSH à l'ordinateur hôte

Utilisez un outil SSH (comme MobaXterm, PuTTY, etc.) pour vous connecter à l'ordinateur hôte via le réseau : Voir le tutoriel détaillé sur la connexion SSH

Changer d'utilisateur selon le type de système

Systèmes applicables :

  • Système officiel Raspberry Pi
  • Système Armbian FLY Pi
  • Autres systèmes avec Klipper installé

Exigences de permissions utilisateur :

  • Il est interdit d'utiliser l'utilisateur root pour toute opération.
  • Vous devez passer à un utilisateur standard pour effectuer les opérations.

Commande de changement :

  • Autres systèmes (remplacez <username> par votre nom d'utilisateur)

    su <username>
💡 Astuce

L'utilisateur standard dispose généralement des permissions de compilation nécessaires. L'utilisation de l'utilisateur root peut entraîner des problèmes de permissions.


Explications sur la compilation du firmware

1. Guide des raccourcis clavier

  • Sur la page de configuration du firmware Klipper, vous ne pouvez utiliser que les raccourcis clavier suivants :
  • L'utilisation directe de la souris est impossible !
ToucheFonction
Flèches ↑ ↓Déplacer le curseur vers le haut/le bas pour sélectionner un élément du menu
Entrée ou EspaceConfirmer la sélection/cocher l'élément du menu ou entrer dans un sous-menu
ÉchapRevenir au menu précédent
QQuitter la page de configuration du firmware Klipper
YSi une confirmation apparaît à la sortie, appuyez sur Y pour enregistrer la configuration

Afficher les options masquées

⚠️ Afficher les options masquées

Si la page de configuration affiche peu d'options, cochez d'abord :

[ ] Activer les options de configuration de bas niveau supplémentaires

Cette option permet d'afficher certaines options de configuration masquées.

Commencer la compilation du firmware

Voici comment compiler le firmware :

  • Après la connexion SSH, entrez la commande suivante et appuyez sur Entrée :

    cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig
  • Ici, rm -rf ~/klipper/.config && rm -rf ~/klipper/out supprime les données et le firmware de compilation précédents.

  • make menuconfig compile le firmware. Après exécution, l'interface suivante devrait apparaître :

    Loading...
  • Sélectionnez Enable extra low-level configuration options et appuyez sur Entrée.

    Loading...
  • Accédez au menu Micro-controller Architecture et sélectionnez Raspberry Pi RP2040/RP235x, puis appuyez sur Entrée.

    Loading...
  • Sélectionnez Bootloader offset, choisissez : 16KiB bootloader.

    Loading...
  • Sélectionnez Communication interface, choisissez : CAN bus.

    Loading...
  • Sélectionnez (4) CAN RX gpio number, supprimez 4 et entrez 1.

  • Sélectionnez (5) CAN TX gpio number, supprimez 5 et entrez 0.

    Loading...

123

  • Sélectionnez GPIO pins to set at micro-controller startup, entrez :
    !gpio5
note

Veuillez saisir en mode de saisie anglais

!gpio5
Loading...
  • Veuillez vérifier en comparant avec l'image ci-dessus, assurez-vous qu'elle correspond, puis passez à l'étape suivante
  • Appuyez sur la touche Q, Save configuration apparaît, puis appuyez sur la touche Y.
Loading...
  • La configuration devrait maintenant être enregistrée et vous devriez être revenu à l'interface de ligne de commande.
  • Entrez la commande ci-dessous pour commencer la compilation, cela prendra un certain temps.
make -j4
Loading...
  • Si la sortie finale est la suivante, la compilation a réussi.
  • En raison des versions de Klipper, il suffit que out/klipper.bin apparaisse pour indiquer le succès.
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

Rechercher l'ID et programmer

Recherche de périphériques

  • Maintenant que vous êtes correctement connecté à l'ordinateur hôte, vous pouvez entrer la commande lsusb pour rechercher les périphériques. Plusieurs cas peuvent se présenter :
    • Si la commande lsusb affiche un message indiquant que ls est introuvable, vous pouvez installer les utilitaires nécessaires en utilisant la commande suivante :
      sudo apt-get install usbutils
    • Si la commande lsusb ne donne aucune réponse, cela indique un problème système pour lequel nous ne pouvons rien faire. Vous devez changer de système ou utiliser un système dont vous savez qu'il fonctionne correctement.
    • Si vous voyez apparaître les informations comme sur l'image ci-dessous (à titre d'exemple), vérifiez simplement que 1d50:606f s'affiche bien.
      Loading...
  • 1d50:606f est le périphérique que vous devez utiliser lors de cette étape.
  • S'il y a plusieurs périphériques 1d50:606f, vous devez en éliminer un, sinon cela affectera le processus d'écriture du firmware et la connexion à ce dernier. Par exemple, si vous avez un FLY MINI PAD, il est recommandé d'utiliser le UTOC intégré à la carte et non d'autres périphériques de pontage CAN.
  • Si aucun périphérique n'apparaît, vérifiez que le câble USB est correctement branché et que le firmware approprié a été gravé.
Remarque importante

La recherche de l'ID CAN ne doit être effectuée que lorsque le périphérique 1d50:606f est détecté.

Recherche de l'UUID CANBus

À savoir avant l'opération
  • Il est recommandé d'effectuer les opérations de recherche d'ID et de flashage du firmware en dehors de l'impression, pour éviter d'interférer avec le processus d'impression.
  • La carte mère et la carte outil utilisent le même ID CAN pour le firmware Katapult (CANBoot) et le firmware Klipper.
Conditions préalables

Assurez-vous que les conditions suivantes sont remplies, sinon il se peut que l'ID CAN ne soit pas détecté normalement :

  1. Le réseau CAN de l'ordinateur hôte est correctement configuré
  2. Le débit CAN de la carte outil est exactement le même que celui de l'ordinateur hôte (une différence de débit empêchera la communication)
  3. Après avoir exécuté la commande lsusb, l'appareil 1d50:606f (adaptateur USB-CAN) est visible.

Commandes de recherche (selon le système)

~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0

Explication des résultats de recherche

Cas 1 : Carte mère / Carte outil avec firmware Klipper déjà flashé

  • Affichage : Un ID CAN est affiché, avec l'indication Application: Klipper
  • Explication : L'appareil exécute le firmware Klipper et peut être utilisé directement. Cet ID peut être celui de la carte mère ou de la carte outil.
  • Méthode de distinction : Débranchez le câble CAN de la carte outil et relancez la recherche. Si l'ID disparaît, il s'agit de la carte outil ; s'il reste, il s'agit de la carte mère.
Loading...

Cas 2 : Carte mère + Carte outil à flasher

  • Affichage : Deux ID CAN sont affichés
  • Explication : La carte mère exécute le firmware Klipper, la carte outil exécute le firmware CanBoot et attend d'être flashée.
Loading...

Cas 3 : UTOC + Carte outil à flasher

  • Affichage : L'UTOC lui-même n'affiche pas d'ID, seul l'ID de la carte outil est affiché
  • Explication : L'UTOC agit uniquement comme un pont. Assurez-vous que la carte outil est en mode CanBoot.
Loading...

Cas 4 : Aucun ID affiché

  • Affichage : Aucun ID n'est affiché
  • Causes possibles :
    1. Le bus CAN est occupé par Klipper
    2. Mauvaise configuration du débit CAN0 de l'ordinateur hôte
    3. Problème de câblage physique
    4. L'appareil n'est pas en mode CanBoot
Loading...

Note importante
  • État prêt au flashage : Lorsque la carte outil est en mode CanBoot, Application: CanBoot est affiché et la LED du firmware clignote. Le flashage du firmware peut alors être effectué.
  • Gestion des ID occupés : Si un appareil exécute déjà le firmware Klipper et que son ID est renseigné dans le fichier de configuration, l'ID ne sera pas affiché (occupé par Klipper). Pour le réafficher, il faut masquer cet ID dans la configuration et redémarrer complètement après une coupure de l'alimentation.
Dépannage

Si l'UUID ne peut pas être interrogé, veuillez consulter : Guide de dépannage CAN

Flashage du firmware

Commande de flashage

  1. Remplacez 241696050c56 dans la commande ci-dessous par l'UUID que vous avez réellement obtenu
  2. Remarque : Un espace est nécessaire après le paramètre -u
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56

Confirmation du flashage réussi

Le message CAN Flash Success indique que le flashage a réussi :

Loading...

Mise à jour du firmware

Méthode de mise à jour

Lorsqu'une mise à jour du firmware est nécessaire, il suffit de :

  1. Recompiler le firmware
  2. S'assurer que l'ID CAN de l'appareil peut être interrogé (ou que Klipper est connecté à l'appareil)
  3. Exécuter la même commande de flashage
python3 ~/klipper/lib/canboot/flash_can.py -u <ID MCU>

Exemple de mise à jour réussie

Loading...

Vérifier si le firmware démarre

  • Si le firmware démarre normalement, la LED s'allumera
    Loading...
Loading...