一个好用的Klipper 3D打印机,一定离不开一个可以稳定进行无线通信,而且性能足够,最重要是价格亲民的上位机。
所谓Klipper,简单来说就是一套可以通过联动上、下位机来有效提升3D打印精度的固件。它拥有高精度的步进电机控制,并且配置简单,不依赖于3D打印机主板、和上位机的性能,这也为载体开发板的选择提供了很大的空间。
其实早在三、四年前,功能相仿、性能相近、价格美丽的香橙派Zero系列就已经成为替代树莓派做上位机的不二之选,搭载全志H616/H618的百元开发板,可以很好的满足做为Klipper宿主的所有需求,甚至有点性能过剩。
Klipper有诸多独特的功能需要使用到gpio针脚,但香橙派Zero系列的硬件设计使得每次都需要用排母端子去连接,非常的不方便,所以为香橙派Zero3设计一款3D打印扩展板,就显得尤为重要了。
硬件设计简介
香橙派Zero3是一款基于全志H618设计的开发板,板载千兆网口以及WiFi&BT通信模块,并在有限的板型内预留了13Pin和26Pin的功能接口。
本次给香橙派Zero3设计的适用于3D打印机的扩展板,参考了B站@大石头Jerry的香橙派Zero0的设计,与树莓派B板型的大小和螺丝孔位相同,该项目已经实际验证,可以打印50小时以上。
PCB上有支持最大电流3A的24V~12V转5V的DC-DC,两个USB,一个3010风扇,一个24V/5V可选电源输出。
- KF128-5.08-2P的电源输入接口
- TPS54308 DC-DC降压电路,最大电流3A
- 3010风扇位和XH2.54接口(PC9引脚控制)
- 24V/5V可选输出XH2.54接口
- 两个USB扩展接口带TVS管
- 香橙派Zero3板型座子
扩展板默认留出13Pin和20Pin的引脚接口,通过13Pin接口可以扩展耳机、TVout、USB2.0、IR 接收等功能,扩展板上还预留了20Pin扩展功能接口以满足其它功能接口的需求。
由于板型原因,香橙派针脚接头需要使用加高的7.5mm排母针脚,或者购买长排母配合打印件焊接,才可以保证排母稳定连接到开发板上。
上下位机Klipper固件配置
通常,专用于控制3D打印机的MCU只有有限且预配置的引脚数量,用于管理主要打印功能(热敏电阻、挤出机、步进电机……)。给香橙派安装上Klipper,就可以直接在Klipper内部使用香橙派的GPIO和总线接口(TWI、SPI),而无需使用插件或外部程序就能够控制打印机。
安装rc脚本
如果想将香橙派用作辅助 MCU来控制3D打印机,则klipper_mcu进程必须在klippy进程之前运行,安装Klipper后,安装脚本。运行:
cd ~/klipper/
sudo cp ./scripts/klipper-mcu.service /etc/systemd/system/
sudo systemctl enable klipper-mcu.service
启用SPI、TWI
通过在“接口选项”菜单下运行并启用TWI,确保已启用驱动程序。如果计划将TWI用于MPU加速度计,还需要通过以下方式将波特率设置为 400000。
通过在“接口选项”菜单下运行并启用 SPI,确保 Linux SPI 驱动程序已启用 。
sudo orangepi-config
识别正确的GPIO
在使用不同香橙派型号或者在使用端口扩展版的情况下,使用命令访问Linux GPIO 字符设备以验证配置,gpiochip<n>/gpio<o>其中n是命令看到的芯片编号gpiodetect,o是命令看到的行号gpioinfo。
要检查可用的 gpiochip 运行:
gpiodetect
要检查引脚编号和引脚可用性,请执行以下操作:
gpioinfo
PWM接口配置
由于香橙派内核原因,PWM2和PWM3从系统加电启动到Klipper正式运行前,默认为高电平,即为打开状态,待klipper正式运行后恢复设置状态,PWM配置可根据需求修改,此处仅展示PWM1的默认配置:
[fan_generic PWM1_Fan]
pin: opi:gpio10
max_power: 1
shutdown_speed: 0
cycle_time: 0.01
#hardware_pwm:
kick_start_time: 0.5
off_below: 0.1
#enable_pin:
# See the "fan" section for a description of the above parameters.
以上就完成了香橙派上位机端的配置,想要klipper固件可以控制3D打印机,那么与之匹配的,3D打印机主板也要刷写klipper固件下位机端。首先我们要确认自己3D打印机使用的主板型号,根据主板型号不同,固件编译的配置和刷写方法也略有不同。官方支持的3D打印机主板列表可以在klipper固件github的config这个文件夹中找到。
\