|
9368| 3
|
[教程] 玩转创想三维K1系列主板之二:编译 MCU 固件,恢复裁剪组件 |

本帖最后由 pATAq 于 2024-5-14 13:32 编辑 前言原创文章,转载引用请务必注明链接,水平有限,如有疏漏,欢迎交流指正。 文章如有更新请访问 DFRobot 社区及 cnblogs 博客园,前者内容较全,后者排版及阅读体验更佳。 本文是摸索创想三维 K1 系列软硬件系统的一些内容分享。最近创想三维的工作人员联系了我,希望接下来能加快网卡直连方案的进度。 我的外挂上位机方案之一是直接让外挂上位机通过 RS232 通讯接口连接 Nozzle_MCU (以下简称 Nmcu) 和 Levelling MCU (以下简称 Lmcu)。一般使用 USB 转 RS232 模块,当然最简便的方案是使用板载支持 RS232 通讯的 Arm 开发板,还真让我找到了(当然还有调整设备树启用此功能的问题,此处按下不表),然而这块开发板的稳定通讯波特率不超过 200k,而 K1 默认使用 230400,所以我们需要重新烧录 Nmcu 和 Lmcu 的固件,通讯波特率调整为标准的 115200,同时由于这两者通讯数据量不大,115200 理论上满足我们的需求。 我们约定,直接控制打印机硬件的部分称为主板,运行 Linux 系统的部分称为上位机。
软硬件测试环境:
本文涉及的内容:
1、Klipper for K1 相关资料创想三维系列的修改版 Klipper(以下简称 CK)做了大量改动,但是由于并不是 fork 原版 Klipper,而是直接新建仓库,导致我们无法直观看到改动记录。好在第三方 commit 可以看到:
2、编译自定义 MCU 固件我们先看一下三块微控制器参数:
在此之前我们看下 CK 相关固件编译说明:
2.1 示例:编译 mcu0 主板固件由于 CrealityOS 和 K1 系列主板为 MIPS 架构的 CPU,不支持 Arm Cortex 处理器的编译工具链,我们只能选择在 外挂上位机(x86_64或arm)上安装 gcc-arm-none-eabi 工具包。所以 CrealityOS 中没有 src 目录,不能安装编译工具链也无法编译 Klipper 固件。 通过之前的 mcu_util 得知 mcu0 软硬件版本号为:
由于社区版默认没有 GD32 的预设(虽然理论上 STM32 也能用)。这里我们选择 CK 代码进行编译。使用预配置文件:K1_mcu0_120_G32_defconfig。
2.2 报错信息及解决:报错 1:lto1: fatal error: bytecode stream in file 'out/src/prtouch_v2.o' generated with GCC compiler older than 10.0原因:需要使用旧版 GCC 编译 解决方法(和修复 Klipper AVR 编译工具链方法相同):
报错 2:make: srec_cat: No such file or directory原因及解决方法:相比原版 Klipper 增加了 CRC 检校功能,需要安装额外的软件包: 3、使用社区版 K1-Klipper 连接 K1我们测试,没有版本检校,klipper官方会提醒升级固件。社区版自带示例并不会编译进
注意:修改通讯波特率,也要修改串口转发设置中的波特率,如 socat 或者 ser2net。 4、Bonus:Creality Klipper 添加裁剪掉的功能组件此处适用使用 CK 而非社区版 K1-Klipper 的场景,因为后者没有进行裁剪。 前面说过,CK 基于 exclude_object: Don't use gcmd.respond_error() (#6407) 这次提交进行修改开发(网址中可以看到长哈希为 ea2f6bc0f544132738c7f052ffcc586fa884a19a,短哈希为 ea2f6bc,后面会用到),为了保证兼容性,可以直接从此次 commit 或者临近的 commit 扒文件拷贝到 CK 中,以舵机支持为例:
注意:如果想要添加新版功能,可以先尝试直接拷贝对应组件,如果报错可能需要结合 commit history 以及源码进行修改才能使用。 |
萌萌哒新人
活跃会员
宣传大使
版主限定
牛X认证
老版主限定
创作达人
小蘑菇
编辑选择奖
ARD DAY
编辑选择奖
摸鱼团员
编辑选择奖
志“童”道合
编辑选择奖
编辑选择奖
编辑选择奖
沪公网安备31011502402448© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed