<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      玩轉創想三維 K1 系列主板之二:編譯 MCU 固件,恢復裁剪組件

      前言

      原創文章,轉載引用請務必注明鏈接,水平有限,如有疏漏,歡迎交流指正。

      文章如有更新請訪問 DFRobot 社區cnblogs 博客園,前者內容較全,后者排版及閱讀體驗更佳。

      本文是摸索創想三維 K1 系列軟硬件系統的一些內容分享。最近創想三維的工作人員聯系了我,希望接下來能加快網卡直連方案的進度。

      我的外掛上位機方案之一是直接讓外掛上位機通過 RS232 通訊接口連接 Nozzle_MCU (以下簡稱 Nmcu) 和 Levelling MCU (以下簡稱 Lmcu)。一般使用 USB 轉 RS232 模塊,當然最簡便的方案是使用板載支持 RS232 通訊的 Arm 開發板,還真讓我找到了(當然還有調整設備樹啟用此功能的問題,此處按下不表),然而這塊開發板的穩定通訊波特率不超過 200k,而 K1 默認使用 230400,所以我們需要重新燒錄 Nmcu 和 Lmcu 的固件,通訊波特率調整為標準的 115200,同時由于這兩者通訊數據量不大,115200 理論上滿足我們的需求。

      我們約定,直接控制打印機硬件的部分稱為主板,運行 Linux 系統的部分稱為上位機。

      image-20240514111454676

      軟硬件測試環境:

      1. K1Max Mainboard with CrealityOS
      2. RK3399 Develoboard with Ubuntu 22.04

      本文涉及的內容:

      1. 如何為打印機主板編譯固件
      2. 如何解決編譯過程中遇到的問題
      3. 如何補齊裁剪掉的 Klipper 功能

      1、Klipper for K1 相關資料

      創想三維系列的修改版 Klipper(以下簡稱 CK)做了大量改動,但是由于并不是 fork 原版 Klipper,而是直接新建倉庫,導致我們無法直觀看到改動記錄。好在第三方 commit 可以看到:

      2、編譯自定義 MCU 固件

      我們先看一下三塊微控制器參數:

      1. mcu0:主控制器,控制 XYZ 步進電機、風扇等,GD32F303RET6
      2. Nozzle_mcu:熱端工具板,GD32F303CBT6
      3. Leveling_mcu:熱床下的調平工具板,GD32E230F8P6

      在此之前我們看下 CK 相關固件編譯說明:

      • 預編譯固件:fw/K1
      • 編譯選項及燒錄選項:src/gd32/Makefile
        • 其中提到的通過調用 flash_usb 燒錄不成功,應該是沒有注釋掉此內容
        • 其中有 # at32f40x build rules 字樣,推測 GD32 的編譯選項部分參考了 at32f40x,參考:maphex/klipper
      • 主板編譯預配置編譯選項:src/configs/
        • K1_mcu0_110_G32_defconfig
        • K1_mcu0_110_S40_defconfig | STM32F40x
        • K1_mcu0_120_G32_defconfig
        • K1_noz0_110_S06_defconfig
        • K1_noz0_110_G30_defconfig
        • K1_noz0_120_G30_defconfig
        • K1_bed0_100_G21_defconfig
        • K1_bed0_110_G21_defconfig
        • Kconfig

      2.1 示例:編譯 mcu0 主板固件

      由于 CrealityOS 和 K1 系列主板為 MIPS 架構的 CPU,不支持 Arm Cortex 處理器的編譯工具鏈,我們只能選擇在 外掛上位機(x86_64或arm)上安裝 gcc-arm-none-eabi 工具包。所以 CrealityOS 中沒有 src 目錄,不能安裝編譯工具鏈也無法編譯 Klipper 固件。

      通過之前的 mcu_util 得知 mcu0 軟硬件版本號為:mcu0_120_G32-mcu0_004_000

      image-20240514122254968

      由于社區版默認沒有 GD32 的預設(雖然理論上 STM32 也能用)。這里我們選擇 CK 代碼進行編譯。使用預配置文件:K1_mcu0_120_G32_defconfig。

      image-20240514122131755

      ## 克隆 CK 項目倉庫
      cd && git clone https://github.com/CrealityOfficial~/K1_Series_Klipper && cd ~/K1_Series_Klipper
      
      ## 復制預配置編譯選項文件
      cp src/configs/K1_mcu0_120_G32_defconfig .config
      
      ## 降級 gcc-arm-none-eabi 軟件源到版本 10 以下以正確編譯 prtouch_v2.o (壓力調平),本文使用 Ubuntu 22.04
      sudo tee /etc/apt/sources.list.d/gcc-arm-none-eabi-focal.list << _EOF_
      deb https://mirrors.ustc.edu.cn/ubuntu-ports/ focal main universe #multiverse restricted
      _EOF_
      
      sudo tee /etc/apt/preferences.d/gcc-arm-none-eabi-focal << _EOF_
      Package: gcc-arm-none-eabi binutils-arm-none-eabi libc6 libgcc-s1 libgmp10 libisl22 libmpc3 libmpfr6 libstdc++6 zlib1g
      Pin: release n=focal
      Pin-Priority: 1001
      _EOF_
      
      ## 降級 gcc-arm-none-eabi 和 binutils-arm-none-eabi,并確認 arm-none-eabi-gcc 版本
      sudo apt update
      # apt-cache policy gcc-arm-none-eabi
      # apt-cache show gcc-arm-none-eabi
      sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi # 降級工具鏈 9+2.34
      arm-none-eabi-gcc --version
      
      # 添加額外的軟件包支持固件 crc 檢校
      sudo apt install srecord
      
      # 調整波特率為 115200,編譯 mcu0 固件
      make menuconfig
      make
      
      # 使用 mcu_util 更新固件
      # 修改 printer.cfg 內的 [mcu] buad 為 115200 并保存
      # 測試新版固件正確啟動并生效
      /usr/share/klippy-env/bin/python /usr/share/klipper/klippy/klippy.py /usr/data/printer_data/config/printer.cfg
      
      

      image-20240514122634286

      2.2 報錯信息及解決:

      報錯 1:lto1: fatal error: bytecode stream in file 'out/src/prtouch_v2.o' generated with GCC compiler older than 10.0

      原因:需要使用舊版 GCC 編譯 prtouch_v2

      解決方法(和修復 Klipper AVR 編譯工具鏈方法相同):

      1. https://pkgs.org/ 搜索 gcc-arm-none-eabi
      2. 找到 https://ubuntu.pkgs.org/20.04/ubuntu-universe-amd64/gcc-arm-none-eabi_9-2019-q4-0ubuntu1_amd64.deb.html
      3. 找到 Requires 全部添加到下述 APT Preferences 中

      報錯 2:make: srec_cat: No such file or directory

      原因及解決方法:相比原版 Klipper 增加了 CRC 檢校功能,需要安裝額外的軟件包:srecord

      3、使用社區版 K1-Klipper 連接 K1

      我們測試,沒有版本檢校,klipper官方會提醒升級固件。社區版自帶示例并不會編譯進 prtouch_v2.o ,因為此功能僅 Lmcu 需要,所以不會報錯。

      #####################################################################
      # 外掛上位機 
      #####################################################################
      # 使用社區版 K1-Klipper
      # 不要用 install-ubuntu22.04 腳本,service 路徑不對
      # 也可以使用 kiauh 自定義 repo 方式安裝,方法如下:
      # cp ~/kiauh/klipper_repos.txt.example ~/kiauh/klipper_repos.txt
      # echo "K1-Klipper/klipper,master" >> ~/kiauh/klipper_repos.txt
      
      # 刪除或重命名原版 Klipper
      mv ~/klipper ~/klipper.old
      # rm -rf ~/klipper
      git clone https://github.com/K1-Klipper/klipper ~/klipper
      
      # 重新編譯 c_helper.so,默認的為 MIPS 架構會報錯
      rm ~/klipper/klippy/chelper/c_helper.so
      cd ~/klipper/klippy/chelper/ && make
      
      # 拷貝 K1 原廠 printer.cfg 并修改為本地串口設備號
      

      注意:修改通訊波特率,也要修改串口轉發設置中的波特率,如 socat 或者 ser2net。

      4、Bonus:Creality Klipper 添加裁剪掉的功能組件

      此處適用使用 CK 而非社區版 K1-Klipper 的場景,因為后者沒有進行裁剪。

      前面說過,CK 基于 exclude_object: Don't use gcmd.respond_error() (#6407) 這次提交進行修改開發(網址中可以看到長哈希為 ea2f6bc0f544132738c7f052ffcc586fa884a19a,短哈希為 ea2f6bc,后面會用到),為了保證兼容性,可以直接從此次 commit 或者臨近的 commit 扒文件拷貝到 CK 中,以舵機支持為例:

      # 克隆官方 Klipper 并切換到指定 commit
      git clone https://github.com/Klipper3d/klipper /usr/data/klipper-basement && cd /usr/data/klipper-basement
      git checkout ea2f6bc
      # 確認當前所在版本
      git log
      # 如果是在外掛上位機,也可以使用之前備份的 klipper.old,必要時切換回最新 commit
      
      # 拷貝 klippy/extras/servo.py 到 CK 對應目錄即可
      cp /usr/data/klipper-basement/klippy/extras/servo.py /usr/share/klipper/klippy/extras/servo.py
      

      注意:如果想要添加新版功能,可以先嘗試直接拷貝對應組件,如果報錯可能需要結合 commit history 以及源碼進行修改才能使用。

      posted @ 2024-05-14 13:14  思兼  閱讀(315)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产在线拍揄自揄拍无码| 国产不卡的一区二区三区| 欧美韩中文精品有码视频在线| 精品无码老熟妇magnet| XXXXXHD亚洲日本HD| 无码日韩精品一区二区三区免费| 欧美性潮喷xxxxx免费视频看| 国产综合有码无码中文字幕| 成人免费乱码大片a毛片| 亚洲成av人最新无码不卡短片| 最新日韩精品视频在线| 新巴尔虎右旗| 天天天做夜夜夜做无码| 国产乱人激情H在线观看| 小鲜肉自慰网站| 人人妻人人狠人人爽| 国产精品播放一区二区三区| 久久一日本综合色鬼综合色| 国产精品一区二区日韩精品| 欧美福利电影A在线播放 | 亚洲中文字幕aⅴ天堂| 亚洲在av极品无码天堂| 国产精品播放一区二区三区| 中文字幕亚洲综合久久综合| 国内精品久久人妻无码不卡| 国产精品成人网址在线观看| 亚洲国产在一区二区三区| 亚洲av成人无码天堂| 久久一日本道色综合久久| 成人亚欧欧美激情在线观看 | 日韩成人一区二区三区在线观看| 亚洲中文字幕日产无码成人片| 一级片黄色一区二区三区| 色午夜久久男人操女人| 岛国av无码免费无禁网站| 九九热免费在线播放视频| 日韩一区国产二区欧美三区| 亚洲国产精品无码观看久久 | 国产综合久久久久久鬼色| 国产成人精品无码播放| 洛隆县|