目 录CONTENT

文章目录

创想三维3D打印机Ender-3S升级Klipper固件

成培培
2026-01-06 / 0 评论 / 0 点赞 / 5 阅读 / 0 字

最近折腾3D打印机,考虑将我的Ender-3S做一个升级,目前主要是考虑软件部分,准备升级Klipper固件

Klipper介绍

Klipper 是一套面向 3D 打印机的开源固件系统,其核心特点是将传统固件中“计算密集型”的运动规划与控制逻辑,从打印机主控板转移到性能更强的主机(如树莓派、x86 小主机、NAS、工控机等)上执行,从而显著提升打印精度、速度与可扩展性。
所以Klipper固件的安装就涉及了两个部分:上位机软件和下位机软件,我家里刚好有个闲置的树莓派3B+刚好可以作为上位机,下位机软件需要根据自己的打印机对应的处理器自行编译。
官网地址:https://www.klipper3d.org/zh/
Klipper源码:https://github.com/Klipper3d/klipper/

Klipper 配置文件

通常可以通过在 Klipper源码 config 目录 中查找以“printer-”前缀开头且与目标打印机相对应的文件来找到适当的配置文件,这个文件是在安装好klipper上位机程序后,需要上传到上位机上的,printer.cfgKlipper 系统中最核心、最权威的配置文件,可以把它理解为:Klipper 对你这台打印机的“完整工程定义文件”
如果能从源码中找到你的打印机对应的.cfg文件当然最好,如果找不到打印机的配置文件,但可以找到打印机控制板的类型,则可以查找以“generic-”前缀开头的适当配置文件。这些示例打印机模板文件应该足以成功完成初始安装,但需要进行一些自定义才能获得完整的打印机功能。

Klipper安装

上位机安装

这里可以通过 KIAUH 安装,KIAUH全称Klipper Installation And Update Helper,是 Klipper 相关组件的一站式安装、管理与维护工具,本质就是一个 基于 Bash 的交互式脚本,可以运行在上位机Linux 主机上(树莓派、x86、小主机等)通过菜单方式完成安装与维护。
这里就不细说树莓派系统的安装了,事先安装好树莓派Raspberry Pi OS系统,保证可以ssh登录上去即可。

# 安装git
sudo apt-get update && sudo apt-get install git -y
# 下载kiauh的源码
cd ~ && git clone https://github.com/dw-0/kiauh.git
# 运行kiauh脚本
./kiauh/kiauh.sh

运行脚本后可以看到菜单页面:
https://www.chengpei.top/upload/kiach1.png
依次选择1 Install,将Klipper、Moonraker、Fluidd都安装上即可。

  • Klipper:负责打印机运动控制与执行的核心固件,计算运动轨迹并指挥主板驱动电机和加热器。

  • Moonraker:Klipper 的后台服务与 API 层,负责对外提供接口、文件管理和与前端通信。

  • Fluidd:基于 Web 的可视化操作界面,用浏览器即可监控和控制 Klipper 打印机。

安装好后,浏览器访问http://{树莓派IP},即可打开Fluidd的Web管理界面。
以上操作安装上位机程序实测通过,还算比较顺利,遇到的问题基本都是网络问题,全局科学上网可以解决,不行就多试几次,把要安装的依赖单独拿出来手动安装:

sudo apt-get install -y binutils-avr libncurses-dev \
libnewlib-arm-none-eabi binutils-arm-none-eabi avr-libc \
libusb-1.0 python3-virtualenv gcc-avr dfu-util virtualenv \
avrdude stm32flash gcc-arm-none-eabi libffi-dev libusb-dev

下位机安装

下位机我们需要进入Klipper源码中自行编译,因为刚才安装Klipper,所以源码已经下载到了/home/{你的用户名}/klipper/中了,进入该目录执行make menuconfig,可以看到一个配置菜单页面,这里跟编译OpenWRT固件有点类似,选择对应的处理器型号、通信接口等信息,这里不同型号打印机配置不同。
配置好后执行make编译,编译好后到out文件夹下会生成固件文件,将文件拖入TF卡,关闭打印机电源,插入卡再打开电源,开始刷机(我的打印机不支持卡刷)。

比较坑的是我的Ender-3S版本比较老,看了一下处理器是ATMEGA1284P,主板版本v1.1.3,是一个8位单片机性能十分有限,不管是打印速度还是将来的功能扩展型都十分受限,更悲剧的是v1.1.3版本的主板官网已经没有维护原厂固件版本了,万一刷到klipper调不好用不惯,想回来就只能自己下载Marlin源码编译固件回刷了,还不一样能调得怎么样呢…-_-
不过来都来了,生命在于折腾,还是尽力折腾下吧。
我这里Klipper编译下位机程序,配置如下:

[*] Enable extra low-level configuration options 
Micro-controller Architecture (Atmega AVR) ---> 
Processor model (atmega1284p) ---> 
Processor speed (16Mhz) ---> 
Communication interface (UART0) ---> 
[] Compile for simulavr software emulation 
(250000) Baud rate for serial port 
() GPIO pins to set at micro-controller startup

我的打印机并不能像STM32处理器那样卡刷,只能按照如下操作线刷:

  1. 树莓派连接打印机 USB
  2. 确认串口:
    ls /dev/serial/by-id/
    你会看到类似:
    usb-1a86_USB_Serial-if00-port0
  3. 执行刷写:
    make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0

注意步骤3有可能会失败的,如果失败就停掉上位机服务sudo service klipper stop,如果还是失败替换以下命令进行刷入:

avrdude -c arduino -p atmega1284p \
        -P /dev/ttyUSB0 -b 57600 \
        -D \
        -U flash:w:~/klipper/out/klipper.elf.hex:i

以上是学习笔记,上位机安装部分已在树莓派上验证,下位机的具体刷机过程还未开始尝试,等我实操后再来更新。。。

0

评论区