1. Klipper从安装到运行

本文记录Klipper固件从安装,配置到运行的详细过程

Klipper是3D打印机固件之一,它通常运行在linux系统(常使用Debian,其它的linux版本也可以)上,因此需要一个能运行Linux系统的硬件,比如电脑,树莓派,瑞芯微/全志等SOC系列的开发板或相应的主板等。

1. 安装klipper

        kiauh是klipper及相关配套软件的一个安装管理脚本,提供一个字符的类图形管理界面,它可以自动下载和安装相关依赖软件,因此,使用kiauh安装klipper比较方便,不易出错。

        1.1 下载git

sudo apt-get update && sudo apt-get install git -y

        kiauh是开源在github上的脚本,因此需要先安装git工具

        1.2 下载kiauh

        kiauh源码地址:https://github.com/dw-0/kiauh,可以手动下载也可以使用下面命令下载,下到家目录下

cd ~ && git clone https://github.com/dw-0/kiauh.git

        1.3 下载完后,执行命令:

./kiauh/kiauh.sh

        就可以打开kiauh安装管理界面:

 

        1.4 安装klipper

        从上图可见,有很多软件都是Not installed的,输入1,进入Install界面,这里可以安装很多软件。

其中:

        Fluidd:  https://github.com/fluidd-core/fluidd

        Mainsail:   https://github.com/mainsail-crew/mainsail

        根据需求,安装上面的若干软件,一般情况下,上面5个都安装。

2.编译下位机

        通常Klipper运行在 一上位机,若干下位机 的模式,运行Klipper主服务的是上位机,主要执行打印文件读取-解析,运动控制序列生成,通信,人机交互等,通常由带系统的主板执行;下位机则执行运动,信号检测,温度测试等,通常由MCU主板执行。

        所以,需要编译klipper固件,并烧录到MCU,通过通信口(uart,USB,can等)和上位机连接,以实现上下位机配合,完成3D打印整个控制。

        编译下位机klipper固件,需要查看下位机MCU的芯片类型,通信方式等,如我使用的下位机是芯片是STM32H723ZET6,通信是uart1,klipper默认uart波特率是250000,因此,需要配置klipper固件:

cd ~/klipper
make menuconfig

        上述命令会打开配置界面,需要根据下位机硬件进行配置,比如我的硬件是STM32H723,晶振是25MHz,使用串口和上位机通信,采用波特率115200(默认是250000),则我的配置如下:

        注意,可能原始的配置上没有电路板上的串口,比如原始没有USART1(PB15,PB14),这时需要自己手动修改kconfig文件,比如STM32的在klipper/src/stm32下,增加电路板上的串口进去:

        同时需要修改驱动文件(klipper/src/stm32/stm32f0_serial.c或者serial.c)相关位置,以适配电路串口。

        

        如此修改后,就可以执行make命令编译了,编译的结果在out/klipper.bin中,将其烧录到主板上,即可。

3.配置文件

        3.1 klipper配置文件默认在printer_data/config下,通常在网页上配置比较方便。

moonraker.conf:与moonraker服务有关,通常不需要去改

mainsail.cfg:与内置网页设备和行为有关,可以根据网页上操作需求进行一些配置,刚开始不用改

crowsnest.conf:USB摄像头配置文件,装USB摄像头时,需要配置它

printer.cfg:打印机配置文件,这是klipper打印机配置的核心文件,需要详细配置

        3.2 通信接口配置

        首先要配置的是上下位机通信接口,修改的是printer.cfg。

        很多采用串口与下位机通信,首先在上位机系统中找到/dev/serial/,看看里面有没有下位机生成的by-id或by-path,通常是有的,我的是/dev/serial/by-path,波特率默认是250000,但是上面我们配置的下位机,波特率是115200,因此,在mcu字段配置如下:

        只要这里的波特率和下位机一致,且serial没错,一般是能连上下位机的, 在网页上配置的话,改好后,点击网页右上角 “保存并重启”,一般是可以看到下位机连上了,可能还会报其它错误。

        3.3 其它配置

        通信问题解决了后,就来看看其它配置, 参考说明:Klipper documentation 

        在官方配置说明中,重点查看:

电机[stepper]

电机驱动(如[stepper 2209])

打印头(含挤出机和喷嘴加热)[extruder]

热床加热[heater_bed]

网床(调平)[bed_mesh]

风扇[fan]

        因为官方文档做的很详细,这里就不重复说明如何去配置了

        配置好后,就可以使用klipper了 

4.异常处理

        KlipperScreen在某些屏上面,console和notification界面有可能是透明底,造成文字显示不正常,需要对panels/console.py进行编辑,将下面脚本放到KlipperScreen目录,然后执行:

sPos="import Gtk"
sTar="import Gdk"
aTar="from gi.repository import Gdk"
sPos2="tv = Gtk.TextView"
sTar2="tv.override_background_color"
aTar2="tv.override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(0, 0.1, 0.2, 1))"
f1=panels/console.py
f2=panels/notifications.py
logy() {
        echo $1 >> $(tty)
};
exchange_py() {
    f=$1
    if [ -e $f ]; then
        if grep "$sTar" $f > /dev/null; then
            logy "Gdk import OK!"
        else
            logy "$f has not imported Gdk, so import it"
            num=$(grep -n "$sPos" $f | cut -d ":" -f1)
            sed -i "${num}a${aTar}" $f
        fi
        if grep "$sTar2" $f > /dev/null; then
            logy "$f already set background"
        else
            logy "$f has not set background, so set it"
            num=$(grep -n "$sPos2" $f | cut -d ":" -f1)
            sed -i "${num}a${aTar2}" $f
            # Python要TAB对齐
            num=$(($num+1))
            sed -i "${num}s/.*/        &/" $f
        fi
    else
        logy "$f not exist."
    fi
}
exchange_py $f1
exchange_py $f2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值