全程参考官网:Fly Klipper Docs
参考文件:为qq群:786561979中的pdf教程
文件提供时间:2022.5.1
本文中的相关软件与镜像,以及编译好的klipper固件,方便一次性下载
百度网盘:https://pan.baidu.com/s/1V6gni_IzDXY6-8wLxWOtpg?pwd=fb6b 提取码:fb6b
阿里网盘:「GeminiV2_CAN」https://www.aliyundrive.com/s/FY1KDXQxaiS 提取码: 8y0b
1.物品准备
硬件类:
Gemini v2
utoc
sht42
线材类:
18awg x 5m 黑色,
18awg x 5m 红色
叉型冷压端子(如图)若干
(长度按需求)
线材主要用于:
a.UTOC的CAN头供电2根线(24V/GND)
b.SHT42与UTOC 的CAN通讯的4根线(CAN L / CAN H / 24V / GND)
工具类:
4.2mm 5557 端子 压线钳
ot 冷压端子 压线钳
2.电气接线部分
接线方式有很多种,这里仅仅展示一种情况,其他都可以根据CAN的功能进行类比。
2.1 制作can的4线通讯线(以utoc和sht42 为例)
2x2p的5557 端子,在购买的sht板已经附带了如图:
5557 一定要压好,不要让vcc虚连
VCC 和 GND,CAN H 和 CAN L 分别对应好位置
接线端子的实际效果:
连线的实际效果:
线序一定不要接错
2.2 CAN的VCC取电
连接can工具头需要有vcc接入,这里以utoc 取电为例
2.3 UTOC 与Gemini 连接
接线部分至此完成
3.固件刷写
对于购买sd卡套餐的朋友,请直接看3.2
3.1 linux镜像的刷入
一定要根据官网提供的最新固件如图:
镜像下载链接:Fly Klipper Docs
下载后的镜像文件:
通过工具balenaEtcher给sd卡刷入镜像:
下载链接: balenaEtcher - Flash OS images to SD cards & USB drives
等待5分钟后拔下,并直接插入linux的sd卡接口。
windows 提示的格式化不要管,直接拔出就行。
至此linux带有klipper 的系统镜像已经全部搞定
3.2 通电测试
插入内存卡
上电测试:注意这里采用的是usb( ch340 )连接的方式。
如果使用12~24V 的vcc 取电方式,usb 连接一定要断开。
有些朋友不从事嵌入式开发,可能需要:windows下的ch340驱动,要单独下载,在文章开头的软件包中提供。
终端连接gemini:
下载MobaXterm:MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Download
通过MobaXterm 的session里面的serial连接,首先确保没有接入vcc
具体步骤:
Windows 设备管理器:记住com号 COM3
打开MobaXterm 添加新的session,选择serial
配置波特率115200,连接端口号为刚在设备管理器记住的端口
这个效果就ok了。
配置wifi
输入
nmtui
激活一个连接
输入密码连接,带星号表示连接成功,退出
配置好WiFi后建议通过ssh ip连接获得更好的体验
MobaXterm 可以更简单的设置好字体,如图:
ps:由于MobaXterm的特殊性,需要单独为每一个session设置字体和配置相关的设置
如果想使用ohmyzsh的外观状态务必和我这个设置成一样。
ohmyzsh的美观参考-以gemini为例:给mobaXterm通过ssh的linux 开发板美化ohmyzsh_KeyBordkiller的博客-CSDN博客
3.3 下位机和CAN头的配置
3.3.1下位机固件制作+刷写
MobaXterm为例,如果使用putty 还需要winscp,所以这里推荐MobaXterm
连接ssh,以Mobaxterm为例:
新建一个session,ip在路由器查看,用户名fly 密码mellow (都是小写)
连接
下面开始编译klipper的固件
在linux 命令行中输入(复制后在终端中右键即可粘贴)
依次执行下面的3条命令,
cd ~/klipper/
回车
make clean
回车
make menuconfig
出现klipper 的编译界面下面直接按照我途中所示进行设置:
总共有5个选项通过上下左右键 和回车键进行选择,最后的配置页面和图中所示完全一致。
输入
Q
输入
Y
输入
make -j4
开始编译
首先看到hex file 通过左边的sftp 后进入相应目录
右键klipper.bin 文件 download 到电脑上,建议对这个固件所在文件夹命名为Gemini_stm32f405,用于区分和can头不一样的固件。
准备好一个内存卡,将其格式化为FAT32
推荐使用DiskGenius的格式化功能(windows下不能直接格式化为FAT32)
将文件拖入到内存卡中,并且重命名为firmware.bin
将内存卡从电脑拔下,将gemini断电,插入内存卡,
通电等待1min后,断电拔下内存卡插入到电脑中
这样Gemini板载的STM32F405 的klipper固件也烧录成功了
最后重要的一步:拨码 3.4
断电插入内存卡,重新通电后 登录fluidd 也就是ssh的ip
在没有接入任何一种热敏电阻的情况下,这就是正常状态,继续配置 can头固件
3.3.2 CAN头固件制作+刷写
和配置板载下位机固件的方式一样进入klipper 编译界面
输入
cd ~/klipper/
make clean
make menuconfig
更改配置为图中圈出的状态
输入
Q
输入
Y
输入
make -j4
下载klipper.bin 到文件夹中
下载软件 STM32CubeProgrammer
下载地址:STM32CubeProg - 用于STM32产品编程的STM32CubeProgrammer软件 - STMicroelectronics
准备1个跳线帽
确保插入后 typec 连接电脑
打开软件
usb刷写方式,打开刚刚在Gemini上编译好的用于can工具头的固件
这样才是成功了。
注意klipper.bin 的目录中不能有中文,防止刷写失败
务必务必务必将跳线帽拔下,并且将上面的两个条线帽安上
务必务必务必将跳线帽拔下,并且将上面的两个条线帽安上
务必务必务必将跳线帽拔下,并且将上面的两个条线帽安上
如图:
接下来进行接线,一定要断电操作。确保每个端子和螺丝都是牢靠的,没有虚连的状态
如图:
至此硬件电气接线和固件都已经弄好了
4. klipper的can部分的软件的设置
进入fluidd 如果有如图报错,可以这样解决
打开ssh输入
cd ~/moonraker/scripts
./set-policykit-rules.sh
sudo service moonraker restart
进入你ssh ip中的9999端口,如图:
分别查看串口的id 以及can的id
复制到 print.cfg文件中如图所示:
MCU部分
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f405xx_320029000450314335393220-if00
[mcu sht42]
canbus_uuid: d43795f92c3e
can部分的配置本文以sht42 为例
示例具体可以参考官网:Fly Klipper Docs
手动屏蔽掉没有温度传感器的错误
[extruder]
step_pin: sht42:PB4
dir_pin: sht42:PB3
enable_pin: !sht42:PA15
microsteps: 256
rotation_distance: 33.5
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: sht42:PA8
sensor_pin: sht42:PB0
sensor_type: ATC Semitec 104GT-2
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: -273 ###手动屏蔽温度ADC错误
max_temp: 350
[heater_bed]
heater_pin: BED_OUT
sensor_pin: BED_TEMP
sensor_type: ATC Semitec 104GT-2
control: watermark
min_temp: -273 ##手动屏蔽温度ADC错误
max_temp: 200
fluidd的全部状态都可以显示
配置klipper限位的时候建议大家拔掉wifi,通过usb 进行配置,如果配置有误wifi容易烧掉