Aller au contenu principal

Compilation du firmware USB

Connexion à l'ordinateur hôte

Limitation de la connexion principale

La carte Fly-D7 ne peut communiquer avec l'ordinateur hôte pour Klipper que via le port USB Type-C.

Loading...

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 (STMicroelectronics STM32) --->
    Processor model (STM32F072) --->
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (USB (on PA11/PA12)) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    () GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    2Micro-controller Architecture 选择 STMicroelectronics STM32
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F072) --->
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (USB (on PA11/PA12)) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    () GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    3Processor model 选择 STM32F072
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F072) --->
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (USB (on PA11/PA12)) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    () GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    4Bootloader offset 选择 8KiB bootloader
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F072) --->
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (USB (on PA11/PA12)) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    () GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    5Clock Reference 选择 8 MHz crystal
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F072) --->
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (USB (on PA11/PA12)) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    () GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    6Communication interface 选择 USB (on PA11/PA12)
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F072) --->
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (USB (on PA11/PA12)) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    () GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    7USB ids 保持默认,无需进入
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F072) --->
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (USB (on PA11/PA12)) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    () GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    8启用 Optimize stepper code for 'step on both edges'
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F072) --->
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (USB (on PA11/PA12)) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    () GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    9GPIO pins to set at micro-controller startup 保持为空
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F072) --->
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (USB (on PA11/PA12)) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    () GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    10GPIO 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 (STMicroelectronics STM32) --->
    Processor model (STM32F072) --->
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (USB (on PA11/PA12)) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    () GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    11Q 键退出配置界面
    (Top)
    Klipper Firmware Configuration
    [*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F072) --->
    Bootloader offset (8KiB bootloader) --->
    Clock Reference (8 MHz crystal) --->
    Communication interface (USB (on PA11/PA12)) --->
    USB ids --->
    [*] Optimize stepper code for 'step on both edges'
    () GPIO pins to set at micro-controller startup
    GPIO state at micro-controller startup (Not set) --->
    12出现 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/stm32/stm32f0_adc.o
    Compiling out/src/stm32/spi.o
    Compiling out/src/stm32/stm32f0_i2c.o
    Compiling out/src/stm32/usbfs.o
    Compiling out/src/stm32/chipid.o
    Compiling out/src/generic/usb_cdc.o
    Compiling out/src/stm32/hard_pwm.o
    Preprocessing out/src/generic/armcm_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 与系统版本变化。

Entrée en mode de flashage

  • Après avoir connecté la carte à l'ordinateur hôte avec un câble USB Type-C, appuyez deux fois sur le bouton RST ; la LED de la carte se mettra à clignoter.
Loading...

Début de la gravure

  • Les hôtes non officiels de Fly doivent installer Katapult
  • Installer Katapult

Obtenir l’ID de la carte mère

Exécutez la commande suivante pour rechercher l’ID de l’appareil. Normalement, un ID similaire à celui ci-dessous devrait s’afficher (Attention : l’ID de chaque carte mère est différent) :

ls /dev/serial/by-id/*

Si l’ID trouvé contient usb-katapult_stm32xxxxxxxx, cela signifie que vous pouvez passer à l’étape suivante

Loading...

Graver le firmware

⚠️ Préparation
  • Assurez-vous que le fichier du firmware est déjà compilé
  • Remplacez <ID_DE_VOTRE_CARTE_MÈRE> dans la commande ci-dessous par l’ID réel obtenu à l’étape précédente
  • Pour un hôte ordinaire, utilisez le code suivant
    ~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -d <ID_DE_VOTRE_CARTE_MÈRE>
  • Pour un hôte FLY, utilisez le code suivant
    python3 ~/katapult/scripts/flashtool.py -d <ID_DE_VOTRE_CARTE_MÈRE>

Référence du processus de gravure :

Loading...

Référence d’une gravure réussie :

Loading...

Mise à jour du firmware

Étapes de mise à jour du firmware USB

  1. Rechercher l’ID de la carte mère
ls /dev/serial/by-id/*
Points clés pour l’identification

/dev/serial/by-id/usb-katapult_rp2040_E662549553642032-if00 dans l’image ci-dessous est l’ID de la carte mère

Loading...
  1. Mettre à jour le firmware
cd ~/klipper/ && make flash FLASH_DEVICE=<ID_DE_VOTRE_CARTE_MÈRE>
Attention
  • Remplacez <ID_DE_VOTRE_CARTE_MÈRE> par l’ID réellement obtenu
Loading...

Solutions en cas de gravure erronée

Méthode 1 : Entrer rapidement en mode de gravure

  1. Coupez l’alimentation de la carte mère
  2. Après avoir remis sous tension, appuyez deux fois rapidement sur le bouton RESET
  3. Réentrez en mode de gravure

Méthode 2 : Re-gravure du firmware Katapult

Cliquez pour voir le guide de gravure du firmware Katapult

Recherche de l'ID USB après le flashage

Une fois le flashage terminé et la carte remise sous tension, veuillez rechercher l'ID USB.

Voir la méthode d'obtention de l'ID USB

Loading...