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 programmer via une commande après la compilation du firmware. La commande la réinitialisera automatiquement en Katapult et terminera la programmation.
  • État d'Usine : La carte est pré-programmée avec le firmware Katapult en mode CAN, à une vitesse de 1M.
  • Vérification de l'État (via LED) : Si la LED clignote (comme ci-dessous), cela indique qu'elle est en mode Katapult et prête pour la programmation.
    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 la Connexion Physique

  1. Configuration des Interrupteurs DIP : Quel que soit l'état actuel, veuillez d'abord régler l'interrupteur 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 Clé (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é à 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 une coupure de fil.
      • Environ 40Ω : Il y a peut-être une résistance supplémentaire, vérifiez les nœuds intermédiaires.

Commencer la Compilation

Guide succinct de compilation du firmware

Points à noter

  • Réseau : Assurez-vous que l'ordinateur hôte (Raspberry Pi, etc.) est connecté à Internet.
  • Méthode de connexion : Utilisez obligatoirement SSH pour vous connecter via le réseau, désactivez le port série.
  • Méthode de saisie : Gardez le clavier en mode anglais demi-chasse.

Connexion SSH et changement d'utilisateur

Utilisez des outils comme MobaXterm, PuTTY, etc., pour vous connecter en SSH à l'ordinateur hôte.

Changement d'utilisateur :

  • Système standard (système officiel Raspberry Pi, etc.)
    L'utilisation de root est interdite, il faut passer à un utilisateur standard :
    su <nom_utilisateur>
  • Ordinateur hôte FLY (système FlyOS-FAST)
    Seul l'utilisateur root est pris en charge pour la connexion (mot de passe : mellow)

Guide opérationnel de compilation du firmware

Dans l'interface de configuration du firmware Klipper, seules les opérations au clavier sont prises en charge, l'utilisation de la souris est impossible.

ToucheFonction
↑ / ↓Déplacer le curseur vers le haut/le bas, sélectionner un élément du menu
Entrée / EspaceConfirmer la sélection, cocher une option ou entrer dans un sous-menu
ÉchapRetourner au menu précédent
QQuitter l'interface de configuration
YLors de la sortie, appuyer sur Y si une confirmation est demandée pour sauvegarder la configuration

Démarrage de la compilation du firmware

Voici comment compiler le firmware :

  • Après la connexion SSH, saisissez 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 de compilation et le firmware 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, puis choisissez : 16KiB bootloader.

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

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

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

    Loading...
  • 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 que cela correspond, puis passez à l'étape suivante
  • Appuyez sur la touche Q. Save configuration apparaît, puis appuyez sur Y.
Loading...
  • La configuration devrait maintenant être enregistrée et vous devriez être revenu à l'interface en ligne de commande.
  • Saisissez la commande suivante pour démarrer la compilation. Cela peut prendre un certain temps.
make -j4
Loading...
  • Si la sortie finale correspond au contenu ci-dessous, la compilation a réussi.
  • En raison des différences de versions de Klipper, l'apparition de out/klipper.bin indique le succès.
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

Rechercher l'ID et Programmer

Interroger l'UUID du bus CAN

À savoir avant l'opération
  • Il est recommandé d'effectuer les opérations de recherche d'ID et de flashage du firmware en dehors d'une impression en cours, 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 leur firmware Katapult (CANBoot) et leur firmware Klipper.
Prérequis

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

  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. L'exécution de la commande lsusb affiche le périphérique 1d50:606f (adaptateur USB-CAN)

Commandes de recherche (selon le système)

  • 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

Explication des résultats de recherche

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

  • Affichage : Un ID CAN est affiché, avec la mention Application: Klipper
  • Explication : Le périphérique exécute déjà 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 présent, il s'agit de la carte mère.
Loading...

Cas n°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 est prête pour le flashage.
Loading...

Cas n°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 n°4 : Aucun ID affiché

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

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

Si vous ne parvenez pas à interroger l'UUID, consultez : Guide de dépannage des problèmes CAN

Flashage du firmware

Commande de flashage

  1. Remplacez 241696050c56 dans la commande ci-dessous par l'UUID que vous avez réellement interrogé
  2. Remarque : Il doit y avoir un espace après le paramètre -u
python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56

Confirmation de 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 du périphérique est détectable (ou que Klipper est connecté au périphérique)
  3. Exécuter la même commande de flashage
python3 ~/klipper/lib/canboot/flash_can.py -u <MCU ID>

Exemple de mise à jour réussie

Loading...

Vérifier si le Firmware Démare

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