Aller au contenu principal

Compilation du firmware CAN

Début de la compilation

Guide concis de compilation du firmware

Notes importantes

  • Réseau : Assurez-vous que l'ordinateur maître (Raspberry Pi, etc.) est connecté au réseau.
  • Méthode de connexion : Utilisez obligatoirement SSH via le réseau pour vous connecter, désactivez la liaison série.
  • Méthode de saisie : Gardez le clavier en mode anglais demi-chasse.

Connexion SSH et changement d'utilisateur

Connectez-vous à l'ordinateur maître via SSH avec des outils comme MobaXterm, PuTTY, etc.

Changer d'utilisateur :

  • Système standard (système officiel Raspberry Pi, etc.)
    Interdiction d'utiliser root, basculez vers un utilisateur standard :
    su <nom_utilisateur>
  • FLY ordinateur maître (système FlyOS-FAST)
    Seul l'utilisateur root est autorisé à se connecter (mot de passe : mellow).

Guide d'opération de compilation du firmware

Dans l'interface de configuration du firmware Klipper, seul le clavier est pris en charge, la souris est inutilisable.

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

Commencer la compilation du firmware

Voici comment compiler le firmware :

  1. Connectez-vous en 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 permet de supprimer la configuration et le firmware précédents ; make menuconfig permet d'ouvrir l'interface de configuration du firmware Klipper.

  2. Configurez chaque option dans l'ordre ci-dessous, en terminant chaque étape avant de passer à la suivante.

    1启用 Enable extra low-level configuration options
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!gpio20) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    2Micro-controller Architecture 选择 Raspberry Pi RP2040/RP235x
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!gpio20) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    3Processor model 选择 rp2040
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!gpio20) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    4Bootloader offset 选择 16KiB bootloader
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!gpio20) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    5Communication Interface 选择 CAN bus
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!gpio20) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    6CAN RX gpio number 设置为 4
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!gpio20) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    7CAN TX gpio number 设置为 5
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!gpio20) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    8CAN bus speed 设置为 1000000
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!gpio20) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    9启用 Optimize stepper code for 'step on both edges'
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!gpio20) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    10GPIO pins to set at micro-controller startup 设置为 !gpio20
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!gpio20) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    11GPIO state at micro-controller startup 选择 Not set

    此项是 FLYOS-Klipper 功能。通常保持 Not set;如需设置全部 GPIO 的启动状态,请先阅读 GPIO 启动状态使用说明

    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!gpio20) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    12Q 键退出配置界面
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (Raspberry Pi RP2040/RP235x) --->
    Processor model (rp2040) --->
    Bootloader offset (16KiB bootloader) --->
    Communication Interface (CAN bus) --->
    (4) CAN RX gpio number
    (5) CAN TX gpio number
    (1000000) CAN bus speed
    [*] Optimize stepper code for 'step on both edges'
    (!gpio20) GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    13出现 Save configuration 时按 Y 保存配置
    Quit
    Save configuration?
    (Y)es(N)o(C)ancel
  3. Une fois les deux dernières étapes ci-dessus terminées, appuyez sur Q pour quitter l'interface de configuration, puis sur Y pour enregistrer la configuration.

  4. Revenez à la ligne de commande, saisissez la commande suivante et appuyez sur Entrée pour commencer la compilation :

    make -j4
    root@flyos-11e5f8 ~/klipper # make -j4
    Compiling out/src/../lib/can2040/can2040.o
    Compiling out/src/generic/canserial.o
    Compiling out/src/generic/canbus.o
    Compiling out/src/../lib/fast-hash/fasthash.o
    Compiling out/src/rp2040/hard_pwm.o
    Compiling out/src/rp2040/spi.o
    Compiling out/src/rp2040/i2c.o
    Preprocessing out/src/rp2040/rpxxxx_link.ld
    Building out/compile_time_request.o
    Version: XXXX
    Linking out/klipper.elf
    Creating bin file out/klipper.bin

    终端末尾出现 Linking out/klipper.elf Creating bin file out/klipper.bin,即表示编译成功。 实际编译时,部分 Compiling 行和 Version 会随 Klipper 与系统版本变化。

Câblage

  • Avant de flasher le firmware, utilisez un câble XT30 pour connecter la carte d'outil à l'UTOC ou à la carte mère avec le firmware de pontage flashé. Vous trouverez ci-dessous le schéma de câblage de référence.

  • Veuillez vérifier que les interrupteurs DIP sont positionnés correctement.

    Loading...
  • Assurez-vous que la résistance entre CAN H et CAN L, mesurée avec un multimètre hors tension, est d'environ 60Ω. Si elle est de 120Ω, vous devez installer le cavalier 120Ω ; si elle est d'environ 40Ω, vous devez retirer le cavalier.

    Loading...
  • Une fois la carte d'outil connectée à l'UTOC ou à la carte mère avec le firmware de pontage flashé via le câble XT30, la LED sur la carte mère clignote.

Attention
  • Si la LED ne clignote pas, veuillez reflasher le firmware Katapult : Flasher le firmware Katapult
  • Si la LED ne clignote pas, après avoir flashé le firmware Katapult, passez à l'étape suivante.

Recherche de l'ID et flashage

Interroger l'UUID CANBus

À savoir avant de procéder
  • Il est recommandé d'effectuer la recherche d'ID et la mise à jour du firmware hors impression pour éviter de perturber le processus d'impression.
  • Le firmware Katapult (CANBoot) et le firmware Klipper d'une même carte mère/carte outil utilisent le même ID CAN.
Conditions préalables

Assurez-vous que les conditions suivantes sont remplies, sinon la recherche d'ID CAN risque d'échouer :

  1. Le réseau CAN de l'ordinateur hôte est correctement configuré
  2. Le débit CAN de la carte outil est strictement identique à celui de l'ordinateur hôte (une différence de débit empêchera toute communication)
  3. L'exécution de la commande lsusb affiche le périphérique 1d50:606f (adaptateur USB-CAN)

Commande de recherche (selon le système)

  • Commande de recherche pour ordinateur hôte standard
    ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
  • Commande de recherche pour ordinateur hôte FLY
    python3 ~/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 : 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 celui de la carte outil.
  • Méthode de distinction : Débranchez le câble de connexion CAN de la carte outil, puis relancez la recherche. Si l'ID disparaît, il appartient à la carte outil. Si l'ID est toujours présent, il appartient à 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. Le débit du bus CAN0 sur l'ordinateur hôte est mal configuré.
    3. Le câblage physique est anormal.
    4. Le périphérique n'est pas entré en mode CanBoot.
Loading...

Information importante
  • État d'attente de flashage : Lorsque la carte outil est en mode CanBoot, Application: CanBoot s'affiche et le voyant du firmware clignote. Le flashage du firmware est alors possible.
  • Gestion de l'occupation de l'ID : Si le périphérique exécute déjà le firmware Klipper et que son ID a été renseigné dans le fichier de configuration, l'ID ne s'affichera pas (occupé par Klipper). Pour le réafficher, il faut masquer cet ID dans la configuration et redémarrer complètement après une coupure d'alimentation.
Dépannage

Si vous ne parvenez pas à trouver l'UUID, 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 trouvé.
  2. Remarque : Un espace est requis après le paramètre -u.
Informations sur la version
  • Pour FlyOS-FAST version 1.3.8 et ultérieure ou les systèmes ayant mis à jour Klipper après le 9 avril 2026, utilisez la nouvelle commande :

    python3 ~/klipper/lib/katapult/flashtool.py -u 241696050c56
  • Pour les anciennes versions du système (FAST antérieur à 1.3.8 ou Klipper non mis à jour avant le 9 avril 2026), utilisez l'ancienne commande :

    python3 ~/klipper/lib/canboot/flash_can.py -u 241696050c56

Confirmation de la réussite du flashage

L'apparition du message CAN Flash Success indique que le flashage a réussi :

Loading...

Mise à jour du firmware

Méthode de mise à jour

Lorsque vous devez mettre à jour le firmware, il suffit de :

  1. Recompiler le firmware.
  2. S'assurer que l'ID CAN du périphérique est visible (ou que Klipper est connecté au périphérique).
  3. Exécuter la même commande de flashage.
Informations sur la version
  • Pour FlyOS-FAST version 1.3.8 et ultérieure ou les systèmes ayant mis à jour Klipper après le 9 avril 2026 :

    python3 ~/klipper/lib/katapult/flashtool.py -u <ID DU MCU>
  • Pour les anciennes versions du système (FAST antérieur à 1.3.8 ou Klipper non mis à jour avant le 9 avril 2026) :

    python3 ~/klipper/lib/canboot/flash_can.py -u <ID DU MCU>

Exemple de mise à jour réussie

Loading...

Vérification du démarrage du firmware

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