[新]跟思兼学Klipper(20)Makerbase MKS SKIPR 船长板 简要使用记录
## 【思兼 】Makerbase MKS SKIPR 船长板 简要使用记录## 前言
原创文章,转载引用请务必注明链接,水平有限,如有疏漏,欢迎指正交流。
文章如有更新请访问 (https://mc.dfrobot.com.cn/thread-315332-1-1.html?fromuid=725344) 或者 (https://www.cnblogs.com/sjqlwy/p/mks_skipr.html)。
欢迎对 Klipper 固件感兴趣,以及对改版 CNC 加工的 Voron 三叉戟、v0、v2.4 感兴趣的朋友加群交流(QQ Group:490111638)
近日朋友发给我一块 另一位朋友推荐给我,我又推荐给他使用的二合一主板用于装机,也就是今天的主角:MKS 船长。既往我对 RockChip 的芯片不了解,之前用过 Fly-Gemini、BQ-M4P,而 MKS-SKIPR 没实际接触过,所以借此机会研究研究。
【2023年2月2日 更新】
* CAN2 使用的问题新版 Klipper 已解决
* 取消 TypeC 是因为以防此接口供电不足导致主板不稳定
* USB 无线网可以正常使用,问题出在我家的无线网(天生和螃蟹卡相克吧,具体原因有待探究)
## 一、资料地址
* (https://blog.csdn.net/gjy_skyblue/article/details/126226839)
* [英文说明(更新更快)](https://github.com/makerbase-mks/MKS-SKIPR) | 包括引脚图、原理图
## 二、硬件概览
![](https://kgithub.com/extdomains/user-images.githubusercontent.com/12979070/178107495-4db4d498-1cf7-4b6d-9fc6-dbe52603db1b.png)
【主板接口图】淘宝中文版的是半截图,就直接使用英文版了
### 2.1 硬件接口图分析
1. 6个可调电压风扇接口(3可控+3常开),使用一个挤出加热时,额外多两个 VIN 可控风扇接口,有空余驱动插槽时,通过模块亦可拓展可控风扇接口
2. 支持 3Dtouch 和高压 Probe 调平器
3. 接口丰富:6个限位开关接口、4个测温接口、6个预留IO引脚
4. 保留 EXP1 和 EXP2
5. 提供 MAX 31865 接口
6. 提供驱动外接信号引脚
7. 提供 CAN 通讯接口,板载收发器
### 2.2 具体分析与讨论
**Pros:**
* RK3328 CPU性能强,实测快于 Amlogic S905L,体验好
* STM32F407VET6,168Mhz
* 1GB 内存满足舒服使用 Klipper 全家桶功能的需要
* 支持 Pi-TS35 触摸屏,内置驱动,连接设置方便,KlipperScreen 方案性价比高
* 启动后可以通过 host-usb 连接电脑,实现串口访问控制,注意波特率1500000,hostSERIAL:CH340——UART2——host_DEBUG
**Cons:**
* RK3328 原生仅支持3个USB接口,数量少,【后续是否增加USB-HUb】
* Pi-TS35 默认FPS给的20帧,能用但是能否给到更高的帧率提高使用体验,类似 ili9488 高刷 SPI 屏
```javascript
fb_ili9341 spi0.0: fbtft_property_value: fps = 20
```
* 目前看host和mcu的TypeC 接口都无法给主板供电,导致测试非常麻烦,如果是为了避免5v、vin信号干扰,是否可用增加跳帽切换的方式
* MPU-MCU默认使用UART通讯,原因应该是受限于原生USB数量。是否存在Klippy与Firmware通讯带宽问题,之前一块主板在 VzBot AWD 四驱上出现过高速打印超出传输带宽的情况,这个官方可以参考Klipper文档测试一下,我这里就不进一步探究了
* eMMC转microSD适配器做工有待提高,出现有的读卡器插不进、读不出、卡不住的问题。希望端子座增加防呆设计。
* 安装eMMC模块时,务必注意方向!安装MPU散热片时,先插入eMMC模块并留有一定空间,防止干涉!
* 默认UART连接实现无SD卡线刷升级固件时似乎比较麻烦,对于滚动升级的Klipper,拆机升级固件太麻烦了
!(https://gcore.jsdelivr.net/gh/sjqlwy/blog_imgs@default/images/20230201134632.png)
## 三、软件探析
### 3.1 基本状况:
* eMMC 模块中已经烧录了操作系统
* 默认用户 root/mks 密码:makerbase
* MCU 默认无 Klipper 固件
* Klipper 默认编译选项:`stm32f407 48KiB USART1 PA10/PA9`,同时改名为 `mks_skipr.bin`拷贝到 mSD 卡,插入 MCU-TF 插槽后按 `RESET` 进行更新,更新成功则后缀名会变为 `cur`
* 默认还是使用 `MJPG-Streamer`,有条件升级为 `crowsnest`
### 3.2 杂记:
* 系统基于 Armbian Buster,希望能升级到最新稳定版的 Bullseye( Win7——> Win10)
* 内核采用 5.16.20,是否使用 5.15 LTS 长期维护版
* Klipper 全家桶(Klipper、Moonraker、Fluidd、KlipperScreen)落后一个版本(printer_data打来的一系列问题,以及crowsnest),希望在大版本更新时,官方能跟进。目前发布的系统日期为`20220726`,逾半年之久,不过根据MKS的既往印象,应该以ToB为主,第一版系统、固件的后续更新会比较那啥。而Klipper开发活跃且滚动更新,带来额外技术支持压力。
!(https://gcore.jsdelivr.net/gh/sjqlwy/blog_imgs@default/images/20230201130825.png)
* 官方文档提示:因为MKS PI的系统文件是基于Armbian桌面系统进行移植的,直接更新Armbian桌面系统会存在一些问题,所以暂不建议更新系统。那么:
* 有必要安装 xfce 桌面环境吗?占用空间和系统资源,且多数情况下用不到桌面。
* 目前冻结了 kernel、dtb、u-boot、firmware 等,进行升级后使用没出现无法启动和功能不正常的问题
### 3.3 无线网络问题
这个专门说一下吧
1. 为了实现 ms 下修改配置文件添加网络的方法,卸载了 nm,导致启动后添加、修改网络比较麻烦,也可能有更好的方法我不知道。而且新版KScreen支持nm作为后端。这个添加修改网络的方法希望优化。
2. 套餐中的 USB 无线网卡(RTL8188EU)出现了连接不稳定的情况,无法正常访问!(https://gcore.jsdelivr.net/gh/sjqlwy/blog_imgs@default/images/20230201131620.png)
* 换用我自己的 RT3070 联网稳定、完美
* RTL8188EU 连接我另一个台Linux设备时,启动时直接干 `Kernel panic` 了,硬件故障?
* 编译时使用 lwfinger 最新的稳定版驱动是否可以解决?
```shell
filename: /lib/modules/5.16.20-rockchip64/kernel/drivers/staging/r8188eu/r8188eu.ko.xz
version: v4.1.4_6773.20130222
```
* 因为我家无线网络的问题?但是 3070稳定
3. 希望使用 NetworkManager 等进行网络管理,否则启动后的网络管理不方便
## 四、其他主板连接方式
查看原理图可知,MCU 可用的通讯引脚包括:
| 通讯方式 | 引脚1 | 引脚2 |
| ------------- | ----- | ----- |
| UART(Default) | PA9 | PA10|
| USB | PA11| PA12|
| CAN | PB12| PB13|
!(https://gcore.jsdelivr.net/gh/sjqlwy/blog_imgs@default/images/20230201134903.png)
### 4.1 USB-Serial连接
!(https://gcore.jsdelivr.net/gh/sjqlwy/blog_imgs@default/images/20230201141413.png)
!(https://gcore.jsdelivr.net/gh/sjqlwy/blog_imgs@default/images/20230201135458.png)
可以用于可能的默认 UART 通讯带宽不足时。占用一个USB接口,使用数据线连接到 `mcu-usb` typeC 接口即可
### 4.2 连接 CAN 工具板
SKIPR 使用 MCU CAN2 (PB12/PB13)进行通讯,而CAN2需要同时启用CAN1,既往无法正常使用,具体见讨论:(https://klipper.discourse.group/t/mks-skipr-can-bus/5377)。目前Klipper更新之后可以正常使用:***(https://github.com/Klipper3d/klipper/commit/1a693c18d66f44724a99cb6c4ae02d45041ea9f1)***
#### 4.2.1 CAN 桥接模式
由于 SKIPR 板载 CAN收发器,可以启用 CAN 桥接模式连接 CAN 工具板,节省一个 USB转CAN 模块。接线方法同上,使用 板载CAN接口连接工具板。编译参数如下:!(https://gcore.jsdelivr.net/gh/sjqlwy/blog_imgs@default/images/20230201135558.png)
#### 4.2.2 使用 USB转CAN模块
传统方式,产品如图:
![](https://img.alicdn.com/imgextra/i2/12778391/O1CN01fZvteh2Br8BbQMH6o_!!12778391.jpg)
编译选项如图,此时需要USB接口连接CAN模块,CAN模块再连接板载CAN接口和工具板CAN接口。
!(https://gcore.jsdelivr.net/gh/sjqlwy/blog_imgs@default/images/20230201135718.png)
## 五、番外 (https://github.com/Klipper3d/klipper/blob/790ff4d8d7ac200527c272af3e58f0d9f06468e4/docs/CANBUS.md)
- 部分 MCU 支持 `USB to CAN bus bridge(USB转CAN总线桥接模式)` ,此时此 MCU 既是 USB转CAN 适配器,又是一个 Klipper 节点
- MCU 在 Linux 中会显示为 USB CAN Bus Adapter,同时作为节点可以被 `canbus_query.py` 查询到 uuid,也可以充当普通的 CAN MCU 节点进行控制。当然,也可以被其他位于 CAN 总线上的节点看到。
- 注意:
- 进行桥接的 mcu 实际上并不在 CAN 总线上(虽然可以被看到),因此传入及传出的数据包并不占用总线带宽。此外,此 mcu 无法被总线上的其他 CAN 适配器看到。
- 需要在 Linux 系统中配置 can0 端口。但是 Linux CAN 总线速度和 CAN bus bit-timing 选项会被 Klipper 忽略,目前 CAN 总线频率只有在编译固件指定指定,Linux中指定的总线速度会被忽略(都是如此?)。
- 桥接 mcu 重置时,Linux 会禁用对应的 can0。一般情况下,这需要使用诸如 `ip up` 等命令来重启此接口,因此,Klipper 的 `FIRMWARE_RESTART` 命令或者 `RESTART`命令需要重启 can0 接口
## 六、番外:线刷升级固件功能的可能性
1. canboot
2. 3.3v serial
3. dfu
4. sd_update
默认烧录固件可以使用 3.3v Serial,按住 `boot0` 按钮,短按 `reset` 后,松开 `boot0`,此时即可通过 `/dev/ttyS0` 访问stm32F4。
!(https://gcore.jsdelivr.net/gh/sjqlwy/blog_imgs@default/images/20230202001952.png)
目前测试无法进入DFU模式。
## 七、他山之石
此主板采用 RK3328 处理器,dtb 参考的 ROC-RK3328-CC。我们再找一些其他采用此 CPU 的资料丰富主板进行参考。
* (https://wiki.t-firefly.com/zh_CN/ROC-RK3328-CC/)
* Rock64
* OrangePi R1 Plus
* NanoPi R2S
## 总结
MKS SKIPR 主板目前来看
* 硬件性能(MPU & MCU)好
* 接口非常丰富,满足绝大多数使用场景
* 价格相对较低的同时有足够的保护电路
建议:
* 改善 eMMC 适配器
* 通过 usb-hub 等方式拓展 usb 接口数量
* 增加 USB 供电功能方便测试、调试
* 如有可能提升 SPI 屏幕的帧率
虽然软件系统有待优化,但整体来看是仍然是比较推荐的一款产品,毕竟现在才是第一版。 厉害厉害 赞一个! 厉害厉害 学习了! 怎么说呢,这块板感觉像一块试验板。对新手不太友善。资料较少。前期不建议入手。固件现在已经换成新固件了,据说无线网快一点了。但我刷完固件进不去web。估计是我技术问题。原先老版本都可以的。 不容易,不容易。等了一个小时。才把这个评论给发表了
页:
[1]