【klipper固件】升级我的Ender3 3D打印机,大幅提高3D打印精度和速度!orangepi!_哔哩哔哩_bilibili
【Klipper固件】OrangePi Zero安装klipper 3D打印固件,代替树莓派_哔哩哔哩_bilibili
【Klipper固件】主板固件编译及3D打印机配置_哔哩哔哩_bilibili
【Klipper固件】BL-touch配置,3D打印机调平及网床校准_哔哩哔哩_bilibili
在前面几期中,我们完成了klipper固件的安装和配置,你的3D打印机应该已经可以正常打印的。但是想要获得较好的打印质量,少不了一些进阶的调较。本期视频我们来讲讲klipper固件两个最主要的调整项目,共振补偿和压力推进补偿。在ender3升级的视频中,我也简单提到了这两个调整手段,这期视频我们将详细的介绍如何调整。
一、共振补偿
首先我们来看共振补偿(Resonance Compensation)

klipper给出了两种测量方式,通过打印测试件手动测量和ADXL345加速度计自动测量。Klipper固件支持(Input Shaping)输入整形技术

一般步进电机振动控制有两种解决方案,基于反馈的振动控制和基于前馈的振动控制。由于我们的3D打印机步进电机是一个开环系统,所以我们只能采用前馈控制,而(Input Shaping)则是最简单有效的方法。

他的原理和降噪耳机类似,当A1信号会造成系统振动,那么我们可以再输入一个相位相反的延迟信号A2,这样A1,A2一叠加,系统振动就被消除了。
1. 共振补偿(Resonance Compensation)
扯的有点远了,我们直接来看怎么操作,首先我们要按照给出的参数切一个测试件

层高0.2,填充和顶层都设置为0,打印速度设置为100,动态加速控制关闭,注意切片的时候不要旋转模型,保持原始面向。

然后我们把打印机参数调整到这里给出的设置,max_accel和max_accel_to_decel设置为7000,SQUARE_corner_velocity设置为5,这些设置都是为了放大共振,方便我们测量。

然后重启klipper
在打印之前还要在console中输入:SET_PRESSURE_ADVANCE ADVANCE=0
把pressure_advance设置为0
另外如果你之前在配置中加入过input_shaper
那么我们要SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0
确保基础值是0 。
再输入TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1250 FACTOR=100 BAND=5
这个命令会使加速度每5mm提升一次,一直从1500mm提升到7000mm。

然后我们打印之前切片好的模型,不用等模型全部打印完成,只要能够观察到明显的波浪纹,就可以取消打印并开始测量。

测量方法的话如官方文档所示,先测量X轴,忽略掉第一个波浪,从第二个往后取几个波浪,并测量距离。

根据公式,frequency=V(打印速度)·N(测量的波浪个数)/D(测量距离)。
计算出频率值,Y轴也是一样。

最后把计算出来的值填到配置文件中,并重启就行了。
2. 测量共振(Measuring Resonances)
Klipper固件也支持使用ADXL345加速度传感器来直接测量。首先我们要将adxl连接树莓派或者OrangePi的SPI引脚
树莓派接线如下

OrangePi接线如下

然后我们将ADXL固定到要测量的轴上,测量轴与ADXL轴向平行,比如我固定在打印头侧面,那么3D打印机的X轴就对应ADXL的Y轴,这里固定的话使用刚性连接,这样才能准确测量出振动频率。

然后我们要安装一些工具,ssh到系统
~/klippy-env/bin/pip install -v numpy 安装numpy
Sudo apt update,更新apt库
sudo apt install python-numpy python-matplotlib,安装这两个库。

然后我们把宿主机设置为linux MCU,
首先cd ~/klipper/到根目录
sudo cp "./scripts/klipper-mcu-start.sh" /etc/init.d/klipper_mcu
sudo update-rc.d klipper_mcu defaults

make menuconfig
选到linux process,保存。

sudo service klipper stop关闭klipper
然后make flash
sudo service klipper start开启klipper
ls /dev/spidev 查看spi号

如果这里显示no found,那么可能是你spi没有打开
Orangepi的话输入armbian-config

到system-hardware里把spidev打开。
然后到bootenv里,最后加一行param_spidev_spi_bus=1

保存并重启,重启后应该就能看到了。

加入配置文件,重启klipper。

测试之前,我们首先输入ACCELEROMETER_QUERY
返回如下结果,说明ADXL345工作正常

输入MEASURE_AXES_NOISE测试传感器噪声一般在100以内是正常的,超过1000的话应该是传感器有问题或者风扇振动太大

打印机放的地方不稳也有可能造成振动。应该在你平时打印机放置的地方进行测量,换了地方共振也会不同。

输入TEST_RESONANCES AXIS=X测量X轴共振,你会看到X轴来回移动,逐渐加快,测量完X轴,我们再把ADXL固定到Y轴,测量Y轴。测量完成,通过这个脚本生成XY轴的频率响应图。同时也会给出测量到的数值,以及推荐的最大加速度设置,我们把它填到配置文件中就行了。

上面这两种测量方法都是可以的,你也可以综合使用。
二、压力推进补偿(pressure advance)
接下来我们来看(Pressure advance)压力推进。压力推进和很多因素都有关系,主要原因是在拐角处,运动减慢或者停止了,但是耗材挤出会有一个延迟,就会造成堆料,也就是边角不锐利。另外,Pressure advance的参数和挤出头以及耗材有都有关系。那我们来看些该怎么调整。


首先还是一样,要打印一个测试件,切片参数也要按照文档来,100的挤出速度,0填充,0.3的层高(如果你是0.4的挤出头的话),关闭动态加速控制。
然后我们在console中输入
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500 。
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020

这里的Factor参数根据你的挤出机类型是不同的,近程挤出是0.005,远程挤出是0.02
然后打印模型,不用等全部打印完,只要看到边角明显往里收了就可以停止打印,打印完成后,可以看到这个测量件边角下部是凸出的,越往上越往内收

我们只需要测量底部到边角相对锐利的位置的高度,根据这边给出的计算公式
pressure_advance = <start> + <measured_height> * <factor>. (For example, 0 + 12.90 * .020 would be .258.)
就可以计算出补偿值。
理论上,经过上面这些调整,你的3D打印质量应该会有较大的提升。