野火科技
直播中

小姜同学

1年用户 3经验值
擅长:嵌入式技术
私信 关注

【鲁班猫创意氛围赛】项目提交:使用鲁班猫运行klipper固件的3D打印机

使用鲁班猫0无线版替换树莓派作为3D打印机上位机

0x00 说说要做啥

五一假期的第一天,无所事事,还是折腾一下3D打印机吧,为我的Voron2.4换上鲁班猫做大脑。年前换配色拆了重装了一次,线基本已经走好了,不过现在只是能动起来的程度,还没好好调机。
6791fe0d1736bdd721559e9e583c041.jpg

先来看一下原来的布局和走线5ef51c5aa4f36e07cec0c919c00aa62.jpg

现在我们的目标是把树莓派换成鲁班猫0,开干吧!!!(没有打标签的机器,手打标签,很难看有没有,还好我不是强迫症)
e1bf647dacd491bc23bab17544e8b09.jpg

0x01 控制流程概述

整个3D打印机就是一个简单的自动控制系统。

鲁班猫运行Linux系统,作为上位机,在系统中运行一些与3D打印控制相关的服务,如解算模型Gcode代码,振动补偿,压力补偿、温度调节等计算,同时提供web service接口,可以相关接口来对3D打印机的参数和状态进行设置和监控。还提供显示接口,通过接入的屏幕来直接设置打印参数。

在上位机中,我们首先要安装Moonraker 作为Klipper 的 API Web 服务器,然后还需要安装WEB客户端程序提供控制界面,如Mainsail、Fluidd、OctoPrint等,KlipperScree是一个触屏控制客户端,下面是他们的项目地址:

Moonraker : https://github.com/Arksine/moonraker

Mainsail: https://github.com/meteyou/mainsail

Fluiddl: https://github.com/cadriel/fluidd

KlipperScree: https://github.com/jordanruthe/KlipperScreen

OctoPrint: https://github.com/OctoPrint/OctoPrint

下位机是一块使用STM32作为主控的3D打印机主板,提供24V电源输入输出,8个步进电机接口,可更换驱动芯片,一个热床控制接口,两个热端控制接口,以及数个风扇、LED接口,数个温度、调平、限位传感器接口,我们可以在主板上根据自己的需求去连接。下位机刷入Klipper固件,通过usb、串口或CAN与上位机通信,解析上位机指令。

Klipper是一个开源3D打印机固件,使用Python编写,不止支持众多的FDM3D打印机架构,还拥有很多高级特性,支持多个微控制器,支持热床高度补偿等功能。Klipper目前支持的微控制器包括STM32、Atmel sam、rp2040、n32g45x、hc32f460等,在DIY FDM 3D打印机中被广泛使用,也有部分厂商基于Klipper进行修改。

klipper的项目地址是: https://github.com/Klipper3d/klipper

0x02 鲁班猫镜像烧录并连接网络

鲁班猫只能通过SD卡来运行系统,我们根据教程将镜像烧录到SD卡: https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/quick_start/flash_img/flash_img.html#sd

烧录的镜像是Ubuntu20.04的镜像,考虑到后面可能会加MIPI屏幕,所以刷了xfce桌面版。这里要注意,由于打印机基本上是24小时运行的,所以SD卡要用大品牌质量较好的,速度在C10及以上,容量8GB以上就可以。

注意保存资料,提醒了会蓝屏,真的会蓝屏!!!!!! 上一节直接没保存,脑壳痛
image-20230429131557613.png

烧录完成把SD卡插入鲁班猫0就可以启动了。

突然发现家里没有usb转串口模块,鲁班猫0也不能插网线,这里我们直接将鲁班猫0的电源接口通过usb线连接电脑,由于鲁班猫有USB模拟以太网的功能,我们根据教程将电脑的网络共享到鲁班猫。

电脑USB共享网络-Windows : https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/quick_start/network/network2.html#usb-windows

image-20230429210851669.png

有了网络以后就可以通过ssh连接鲁班猫了,我们通过hostname去连接鲁班猫。

image-20230429211145175.png

目前这种网络连接方式只能连接电脑访问网络,要单独使用的话还需要连接无线网络,参考教程,使用nmtui连接无线网络。

无线连接: https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/quick_start/network/network2.html#id6

image-20230429211711782.png

无线网络连接完成以后就可以断开usb共享网络了

0x03 安装Klipper及其他软件

因为想要让Klipper固件运行起来涉及很多开源项目,一个一个的安装很浪费精力,恰好有热心网友将这些项目做了整合,只要运行一个脚本,就可以完成相关内容的安装,处理好他们的依赖。

这个项目的地址是: https://github.com/th33xitus/kiauh

由于原项目是基于github的,对于一些无法魔法上网的同学,国内访问会很慢,这里我们使用国内开发者镜像到gitee的项目: https://gitee.com/miroky/kiauh,感谢同样热爱3D打印的国内开发者。

通过主页的介绍我们可以得知,KIAUH是一个脚本,可以帮助使用者在树莓派os上安装Klipper。虽然这个脚本在Raspberry Pi OS Lite 上测试,但也可用于基于Debian的其他发行版。

接下来我们进行安装

# 更新软件包列表
sudo apt update
# 安装git
sudo apt install git -y
# 拉取kiauh脚本仓库
cd ~ && git clone https://gitee.com/miroky/kiauh.git
# 运行kiauh脚本
./kiauh/kiauh.sh

根据提示,选择1 Install

image-20230429215825579.png

第一步:安装Klipper

选择1,Klipper

image-20230429222701941.png

选择Python版本,选择1 Python3
image-20230429224116164.png

生成的klipper接口数,创建1个即可

image-20230429224152764.png

下面就进入了正式的安装过程,检查依赖,拉取源码仓库

image-20230429224321176.png

略过软件包安装过程和Python相关内容的安装过程,创建各种文件后提示是否加入一些用户组,选择Y

image-20230429230326381.png

至此,klipper的安装就完成了。

第二步:安装Moonraker

选择2 安装Moonraker

image-20230429230627336.png

提示是否安装Moonraker,选择Y,在拉取源码前检测并安装相关依赖,略过安装过程

image-20230429230736603.png

拉取源码,继续安装,继续略过安装过程

image-20230429230924420.png

创建了部分文件并开启部分服务后安装完成

image-20230429231415429.png

我们访问创建的接口,在浏览器中打开http://lubancat:7125 看到下面的页面,说明我们安装成功

image-20230429231718218.png

第三步:安装Fluidd

第三步就是安装web接口客户端,可以根据自己的喜好安装,这里以Fluidd为例,其他的安装方法都类似,同一个上位机也可以安装多个web接口客户端。

选择4,安装Fluidd

image-20230429233010781.png

依旧是检查并安装依赖,拉取源码这一套,提示是否使用推荐的宏命令,选择Y

image-20230429233046178.png

提示Fluidd配置为了80端口,安装完成

image-20230429233119734.png

**在浏览器中打开 **http://lubancat 默认访问80端口,如果是其他端口可以根据提示添加 :端口号,如 http://lubancat:80 。看到下面的页面,说明我们安装成功,我们就可以通过这个界面来配置打印机相关参数了。

image-20230429233244812.png

0x04 生成MCU的Klipper固件,并刷入3D打印机主板

经过上面的步骤,我们还没有建立上位机与下位机的连接,还不能控制3D打印机,还需要给3D打印机主板生成并刷写固件。

我们来到Klipper源码的目录,通过menuconfig来对要生成的固件做一些配置

# 进入Klipper目录
cd ~/klipper
# 使用menuconfig修改配置文件‘
make menuconfig

这里使用的是富源盛蜘蛛v1.1的主板,他的相关配置和烧录过程可以参考文档: https://github.com/FYSETC/FYSETC-SPIDER/blob/main/%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3_%E4%B8%AD%E6%96%87.md

其他型号的主板可以找对应的厂商寻找,或根据实际的情况自行设置。

image-20230502115542045.png

**先使能 **extra low-level configuration options 选项,然后控制器选择STM32,具体型号是STM32F446,参考时钟根据主板上的晶振选择12MHz。

富源盛官方配置了32KiB bootloader 偏移,是因为他们在出厂前烧录了bootloader,用于SD卡升级固件等功能,这里我根据自己的需求选择了No bootloader

然后是通信接口的配置,可选配置为USB、串口、CAN等方式。

我最先想到的就是配置为USB,由于鲁班猫0的供电接口同时也是一个USB-OTG接口,直接连接到主板,在供电的同时也可以进行USB通信,还可以通过USB口来烧录固件。但在研究一番后发现,主板的USB口不带电源输出,这样的话就需要单独的供电给到鲁班猫,要分别插电源线和USB线两条线。

还有就是选择串口方式通信,主板本身就有一个UART+5V电源的树莓派接口,只需使用一条主板附带的排线就可以。经过对比,主板的EXP3接口和鲁班猫是可以兼容的,可以将通信模式配置为UART,引脚为USART1 PA10/PA9,波特率默认。

image-20230502115141355.png

确认并配置完成后,按ESC键退出,选择Y,保存配置文件。然后使用make 命令来构建固件。

image-20230502115951319.png

等待编译完成,编译后的镜像保存在~/klipper/out/klipper.bin

完成这一步后我们给鲁班猫关机,将鲁班猫0与主板相连,除了连接电源线和串口线外,还需要连接USB接口,使用USB对主板上的STM32进行烧录

这里使用dfu-util镜像烧录,将系统的5V电源通过跳线帽接到DC5V,然后短接BT0和3.3V,给3D打印机上电,进入 DFU 模式

image-20230502121817515.png

再次登录鲁班猫,使用dfu-util工具下载。

# 查看有没有安装dfu-util
dfu-util --version
# 如果无返回信息,使用apt命令安装,有就跳过
sudo apt install dfu-util
# 查看STM32是否进入DFU模式
lsusb 
# DFU下载固件
sudo dfu-util -R -a 0 -s 0x08000000:leave -D ~/klipper/out/klipper.bin

**如果在make menuconfig 的时候如果选择了 **No bootloader, 需要把 -s 的地址指定为0x08000000,如果选择了 32kiB bootloader,需要把 -s 的地址指定为0x08008000,如果选择了 64KiB bootloader, 需要把 -s 的地址指定为0x08010000

image-20230502122417462.png

烧录完成后拔下BT0和3.3V的跳线帽,然后移除主板和鲁班猫之间的USB线。

0x05 根据3D打印机参数,修改Klipper配置文件

在前一节中,已经用过跳线将鲁班猫和主板的串口引脚进行了连接,但是还没有开启鲁班猫0的串口,通过fire-config工具来启用UART8_M0,设置完成后重启,对应的接口是/dev/ttyS8

image-20230502123639152.png

完成了这些设置以后,就可以根据3D打印机参数,修改Klipper配置文件了。

**网页登录 **http://lubancat

image-20230502124312110.png

打开printer.cfg,将之前树莓派中的配置文件复制过来,由于我自己的Voron2.4修改一些步进电机驱动器的定义,无法通用,仅供参考。

如果有需要可以参考富源盛提供的配置文件: https://github.com/FYSETC/FYSETC-SPIDER/blob/main/firmware/Klipper/printer.cfg

[include klicky-probe.cfg]
​
#####################################################################
#      Fluidd设置
#####################################################################
[virtual_sdcard]
path: ~/printer_data/gcodes
​
[display_status]
​
[pause_resume]
​
[gcode_macro CANCEL_PRINT]
description: Cancel the actual running print
rename_existing: CANCEL_PRINT_BASE
gcode:
  TURN_OFF_HEATERS
  CANCEL_PRINT_BASE
  
#####################################################################
#      主板温度显示
#####################################################################
​
[temperature_sensor MCU]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100
​
[temperature_sensor LubanCat]
sensor_type: temperature_host
min_temp: 0
max_temp: 100#####################################################################
#    基础配置,定义蜘蛛主板并对打印机类型做设置
#       For Fysetc Spider V1.0&V1.1  
#####################################################################
[mcu]
# serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_170037000150563046353420-if00
# serial: /dev/ttyAMA0
serial: /dev/ttyS8
​
[printer]
# 运动学结构 分为笛卡尔和corexy等等,Voron2.4是corexy
kinematics: corexy
# 最大速度
max_velocity: 300  
# 最大加速度
max_accel: 3000     
# z轴最大速度        
max_z_velocity: 15  
# z轴最大加速度       
max_z_accel: 300  
# 方形拐角速度,小一点可以有效避免平台重带来的惯性          
square_corner_velocity: 5.0 
​
[bed_mesh]                      ## 热床网格校准
speed: 60                       # 校准速度
horizontal_move_z: 13           # Z起始高度
mesh_min: 50,50                 # 最小校准点坐标x,y
mesh_max: 250, 250              # 最大坐标
probe_count: 15,15              # 采样点数
mesh_pps: 2,2                   # 补充采样点数
algorithm: bicubic              # 算法模型
bicubic_tension: 0.2            # 算法插值不要动
relative_reference_index:112    # 第多少个点作为0.00,最好在热床中心,解决网床校准后在空中的问题#####################################################################
#   步进电机配置
#####################################################################
######################## X轴设置 ########################
[stepper_x]
# X轴电机脉冲引脚设置
step_pin: PE11
# X轴电机方向引脚设置,可以通过添或删除引脚前面的!来改变电机的运转方向
dir_pin: !PE10
# X轴电机使能引脚设置
enable_pin: !PE9
#---Klipper0.9以上版本设置---
# 电机细分设置
microsteps: 16
# 主动带轮周长mm(2GT-20T带轮40,2GT-16T带轮32)
rotation_distance: 40
# 电机单圈所需脉冲数(1.8度电机:200,0.9度电机:400)
full_steps_per_rotation: 200
# X轴最小行程--软件限位
position_min: 0
# X轴最大行程--软件限位(如果是350机型,需更改为350)
position_max: 300
# X轴的机械复位点坐标(如果是350机型,需更改为350)
position_endstop: 300
# 复位速度
homing_speed: 25 
# 第一次触发复位开关之后的后退距离 
homing_retract_dist: 5
# 复位方向(一般不需要改动)
homing_positive_dir: true
# 限位开关PIN脚设置(X-)
endstop_pin: ^PB14
​
[tmc2208 stepper_x]
#通讯端口Pin脚定义
uart_pin: PE7
#是否开启256微步插值
interpolate: True
#电机运行电流值
run_current: 0.9
#电机静态力矩保持电流值
hold_current: 0.6
#驱动采样电阻值(不要修改)
sense_resistor: 0.110
#TMC2209的静音阀值(使用LDO0.9度电机,设置100)
stealthchop_threshold: 200######################## y轴设置 ########################
[stepper_y]
#Y轴电机脉冲引脚设置
step_pin: PD8
#Y轴电机方向引脚设置,可以通过添或删除引脚前面的!来改变电机的运转方向
dir_pin: !PB12
#Y轴电机使能引脚设置
enable_pin: !PD9
#---Klipper0.9以上版本设置---
#电机细分
microsteps: 16
#主动带轮周长mm(2GT-20T带轮40,2GT-16T带轮32)
rotation_distance: 40
#电机单圈脉冲数(1.8度电机:200,0.9度电机:400)
full_steps_per_rotation: 200
# Y轴最小行程--软件限位
position_min: 0
# Y轴最大行程--软件限位(如果是350机型,需更改为350)
position_max: 300
# Y轴的机械复位点坐标(如果是350机型,需更改为350)
position_endstop: 300
# 复位速度
homing_speed: 25 
# 第一次触发复位开关之后的后退距离 
homing_retract_dist: 5
# 复位方向(一般不需要改动)
homing_positive_dir: true
# 限位开关PIN脚设置(Y-)
endstop_pin: ^PB13
​
[tmc2208 stepper_y]
uart_pin: PE15
#microsteps: 16
interpolate: True
run_current: 0.9
hold_current: 0.7
sense_resistor: 0.110
stealthchop_threshold: 200######################## E0挤出机设置 ########################
[extruder]
# 挤出机电机脉冲引脚设置
step_pin: PD12
# 挤出机电机方向引脚设置,可以通过添或删除引脚前面的!来改变电机的运转方向
dir_pin: !PC4
# 挤出机电机使能引脚设置
enable_pin: !PE8
#---Klipper0.9以上版本设置---
# 电机细分
microsteps: 16
# 主动带轮周长mm(BMG)
rotation_distance: 25.12
# 电机单圈脉冲数(1.8度电机:200,0.9度电机:400)
full_steps_per_rotation: 200
# 减速比(BMG齿轮比为50:17,输出轴在前,输入轴在后)
gear_ratio: 50:17
# 耗材直径
filament_diameter: 1.75
# 挤出头加热棒控制Pin脚设置(e0)
heater_pin: PB15
# 加热棒最低温度阀值,热床温度低于此值会出现ADC报错
min_temp: 0
# 加热棒最高温度阀值,热床温度高于此值会出现ADC报错
max_temp: 270
# 挤出头传感器类型及Pin脚(TE0)
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: PC0
# 喷嘴直径
nozzle_diameter: 0.400
# 加热棒PWM最大输出功率
max_power: 1.0
# 加热棒最低挤出温度(达到此温度挤出机才能有挤出动作)
min_extrude_temp: 170
# pid控制参数
control = pid
pid_kp = 26.213
pid_ki = 1.304
pid_kd = 131.721
pressure_advance: 0.05
pressure_advance_smooth_time: 0.040
​
[tmc2208 extruder]
uart_pin: PA15
#microsteps: 16
interpolate: True
run_current: 0.6
hold_current: 0.4
sense_resistor: 0.110
stealthchop_threshold: 200######################## Z0轴设置 ########################
[stepper_z]
#Z0电机脉冲引脚设置
step_pin: PE2
#Z0电机方向引脚设置,可以通过添或删除引脚前面的!来改变电机的运转方向
dir_pin: !PE4
#Z0电机使能引脚设置
enable_pin: !PE3
#---Klipper0.9以上版本设置---
#电机细分
microsteps: 16
#主动带轮周长mm(2GT-20T带轮40,2GT-16T带轮32)
rotation_distance: 40
#电机单圈脉冲数(1.8度电机:200,0.9度电机:400)
full_steps_per_rotation: 200
#减速比(Z轴大小带轮比为80:16,输出轴在前,输入轴在后)
gear_ratio: 80:16
# z轴最小行程--软件限位position_max: 300
position_min: -1
# Z轴最大行程--软件限位(如果是350机型,需更改为350)
position_max: 300
# Z轴的机械复位点坐标,Y可以理解为喷嘴的偏移值,值越大,喷嘴离热床越近(负值也一样,eg.-1>-2)
#position_endstop: 3.56
# 复位速度
homing_speed: 16.0
# 第二次精确复位的速度
second_homing_speed: 3.0
# 第一次触发复位开关之后的后退距离 
homing_retract_dist: 3.0
# 限位开关PIN脚设置(Z-)
endstop_pin: ^PA0
​
[tmc2208 stepper_z]
uart_pin: PC15
#microsteps: 16
interpolate: True
run_current: 0.9
hold_current: 0.7
sense_resistor: 0.110
stealthchop_threshold: 200######################## Z1轴设置 ########################
[stepper_z1]
#Z1电机脉冲引脚设置
step_pin: PE6
#Z1电机方向引脚设置,可以通过添或删除引脚前面的!来改变电机的运转方向
dir_pin: PC13
#Z1电机使能引脚设置
enable_pin: !PE5
#---Klipper0.9以上版本设置---
#电机细分
microsteps: 16
#主动带轮周长mm(2GT-20T带轮40,2GT-16T带轮32)
rotation_distance: 40
#电机单圈脉冲数(1.8度电机:200,0.9度电机:400)
full_steps_per_rotation: 200
#减速比(Z轴带轮比为80:16,输出轴在前,输入轴在后)
gear_ratio: 80:16
​
[tmc2208 stepper_z1]
uart_pin: PC14
#microsteps: 16
interpolate: True
run_current: 0.9
hold_current: 0.7
sense_resistor: 0.110
stealthchop_threshold: 200######################## Z2轴设置 ########################
[stepper_z2]
#Z2电机脉冲引脚设置
step_pin: PD5
#Z2电机方向引脚设置,可以通过添或删除引脚前面的!来改变电机的运转方向
dir_pin: !PD6
#Z2电机使能引脚设置
enable_pin: !PD4
#---Klipper0.9以上版本设置---
#电机细分
microsteps: 16
#主动带轮周长mm(2GT-20T带轮40,2GT-16T带轮32)
rotation_distance: 40
#电机单圈脉冲数(1.8度电机:200,0.9度电机:400)
full_steps_per_rotation: 200
#减速比(Z轴带轮比为80:16,输出轴在前,输入轴在后)
gear_ratio: 80:16
​
[tmc2208 stepper_z2]
uart_pin: PD7
#microsteps: 16
interpolate: True
run_current: 0.9
hold_current: 0.7
sense_resistor: 0.110
stealthchop_threshold: 200######################## Z3轴设置 ########################
[stepper_z3]
#Z3电机脉冲引脚设置
step_pin: PD14
#Z3电机方向引脚设置,可以通过添或删除引脚前面的!来改变电机的运转方向
dir_pin: PD13
#Z3电机使能引脚设置
enable_pin: !PD15
#---Klipper0.9以上版本设置---
#电机细分
microsteps: 16
#主动带轮周长mm(2GT-20T带轮40,2GT-16T带轮32)
rotation_distance: 40
#电机单圈脉冲数(1.8度电机:200,0.9度电机:400)
full_steps_per_rotation: 200
#减速比(Z轴带轮比为80:16,输出轴在前,输入轴在后)
gear_ratio: 80:16
​
[tmc2208 stepper_z3]
uart_pin: PD10
#microsteps: 16
interpolate: True
run_current: 0.9
hold_current: 0.7
sense_resistor: 0.110
stealthchop_threshold: 200#####################################################################
#   Heater Bed 热床设置
#####################################################################
[heater_bed]
#热床加热器控制Pin脚 (BED OUT)
heater_pin: PB4
#热床温度传感器规格及Pin脚(TE3)
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: PC3
# 热床PWM最大输出功率
max_power: 1.0
#热床最低温度阀值,热床温度低于此值会出现ADC报错
min_temp: 0
#热床最高温度阀值,热床温度高于此值会出现ADC报错
max_temp: 125
# pid控制参数
#control: pid
#pid_kp: 58.437
#pid_ki: 2.347
#pid_kd: 363.769#####################################################################
#   Fan 风扇设置
#####################################################################
######################### 喉管散热风扇(FAN0) ########################
[heater_fan hotend_fan]
#喉管散热风扇引脚设置(FAN0)
pin: PB0
#喉管散热风扇最大输出功率(默认:1.0)
max_power: 1.0
kick_start_time: 0.5
heater: extruder
#喉管散热风扇启动阀值
heater_temp: 50.0
##  If you are experiencing back flow, you can reduce fan_speed
fan_speed: 1.0
shutdown_speed: 1.0
######################## 打印冷却风扇(FAN1) ########################
[fan]
#模型冷却风扇引脚设置(FAN1) 
pin: PB2
kick_start_time: 0.75
#模型散热风扇最大输出功率(默认:1.0)
max_power: 1.0######################## 威廉希尔官方网站
仓散热风扇(可以并联在喉管风扇接口上) 
########################
#[temperature_fan controller_fan]
#pin: PB6
#max_power: 0.7
#shutdown_speed: 0.0
#kick_start_time: 0.500
#sensor_type: NTC 100K MGB18-104F39050L32
#sensor_pin: z:P0.25
#min_temp: 0
#max_temp: 50
#target_temp: 24
#gcode_id: T1
#control: watermark######################## 打印仓内排气扇(FAN2) ########################
#[temperature_fan exhaust_fan]
#pin: PB2
#max_power: 0.7
#shutdown_speed: 0.0
#kick_start_time: 5.0
#sensor_type: NTC 100K MGB18-104F39050L32
#sensor_pin: PC1
#min_temp: 0
#max_temp: 60
#target_temp: 40
#gcode_id: C
#control: watermark
# 中断超时时间
[idle_timeout]
timeout: 3600#####################################################################
#   Probe  4z调平传感器
#####################################################################
######################## Z调平传感器单点探测宏(Z+) ########################
[probe]
#调平传感器引脚设置(X+)
pin: ^PA2
#传感器对应喷嘴的偏移数值
x_offset: 0
y_offset: 25.0
z_offset: 0
#调平时的速度
speed: 5.0
#采样次数
samples: 3
samples_result: median
sample_retract_dist: 3.0
#采样公差
samples_tolerance: 0.02
#超公差重试次数
samples_tolerance_retries: 3#####################################################################
#   Homing and Gantry Adjustment Routines归位与机架调整
#####################################################################
# ######################## XYZ复位 ########################
# [homing_override]
# axes: z
# set_position_z: 0
# gcode:
#    G90
#    G0 Z10 F600
#    G28 X Y
#    ##   XY Location of the Z Endstop Switch
#    ##   Update X0 and Y0 to your values (such as X157, Y305) after going through
#    ##   Z Endstop Pin Location Definition step.
#    #以下一行XY坐标根据自己的Z限位传感器位置修改保存
#    G0 X232 Y338 F3600 
#    #以下XYZ坐标机器完成复位后,喷头停留的位置,根据自己的需求可以调整
#    G28 Z
#    G0 Z10 F1800
#    G0 X150 Y150 Z20.05 F3600######################## Voron2 4Z调平 ########################
[quad_gantry_level]
gantry_corners:
    -60,-10
    360,370
#4Z调平采集点坐标设置(300机型)
points:
    25,25
    25,250
    275,250
    275,25
# 4Z调平的速度
speed: 200
#4Z调平时,Z的起始高度
horizontal_move_z: 25
#采样失败重试次数
retries: 3
#采样公差
retry_tolerance: 0.02
#采样时Z的最大行程
max_adjust: 10#####################################################################
#   Macros Gcode宏
#####################################################################
[gcode_macro G32]
gcode:
    BED_MESH_CLEAR
    G28
    QUAD_GANTRY_LEVEL
    G28
    G0 X150 Y150 Z20 F6000
​
[gcode_macro PRINT_START]
#   Use PRINT_START for the slicer starting script - please customise for your slicer of choice
gcode:
    G32                            ; home all axes
    G1 Z20 F3000                   ; move nozzle away from bed
​
[gcode_macro PRINT_END]
#   Use PRINT_END for the slicer ending script - please customise for your slicer of choice
gcode:
    M400                           ; wait for buffer to clear
    G92 E0                         ; zero the extruder
    G1 E-10.0 F3600                ; retract filament
    G91                            ; relative positioning
    G0 Z1.00 X20.0 Y20.0 F20000    ; move nozzle to remove stringing
    TURN_OFF_HEATERS
    M107                           ; turn off fan
    G1 Z2 F3000                    ; move nozzle up 2mm
    G90                            ; absolute positioning
    G0  X125 Y250 F3600            ; park nozzle at rear
    BED_MESH_CLEAR

这里着重讲一下主要修改的配置,其他配置可以根据配置文件中的注释修改:

mcu

对主控制器的配置,主要是对通信接口做配置,这里设置/dev/ttyS8作为通信接口,默认波特率为250000

image-20230502133002683.png

Fluidd设置

为Fluidd提供一些控制端口,virtual_sdcard的path可以设置Gcode存放的位置

image-20230502134405732.png

printer

设置打印机的基本参数

image-20230502135805403.png

步进电机配置

这里根据实际的情况进行配置

[stepper_x] 标志这是x轴步进电机的配置项

**[tmc2208 stepper_x] 标志这是x轴步进电机驱动器的配置项。驱动器的型号为tmc2208 **

image-20230502135915382.png

其他轴的配置类似,根据实际情况设置

[include klicky-probe.cfg]

Klicky 探针是一个微动开关调平传感器项目,klicky-probe.cfg配套Klicky 探针的配置文件,项目位置是https://github.com/jlas1/Klicky-Probe

把 [include klicky-probe.cfg] 添加到printer.cfg配置文件以后,还需要拉取对应的配置文件。操作如下:

通过ssh连接鲁班猫,执行以下命令。

# 进入配置文件所在目录
cd ~/printer_data/config
# 下载klicky-probe.cfg需要的宏命令
wget https://raw.githubusercontent.com/jlas1/Klicky-Probe/main/Klipper_macros/Klipper_macros.zip
# 解压
unzip Klipper_macros.zip
​
# 解压以后新增的文件
klicky-probe.cfg #选择要开启功能的配置文件
klicky-variables.cfg #存储Klicky使用的变量
klicky-bed-mesh-calibrate.cfg #网床调平脚本
klicky-quad-gantry-level.cfg #4Z调平脚本
klicky-screws-tilt-calculate.cfg #螺丝调平辅助脚本
klicky-z-tilt-adjust.cfg #2Z或3Z热床自动调平脚本
klicky-macros.cfg # Klicky探针停靠用到的宏
klicky-specific.cfg #存放打印机特定的其他配置

打开klicky-probe.cfg文件进行修改。Voron2.4打开以下几个配置文件

image-20230502144935499.png

打开klicky-variables.cfg文件进行修改,修改的内容如下:

  • variable_max_bed 热床尺寸
  • variable_z_endstop Z限位开关的坐标
  • variable_docklocation Klicky 探针停靠位置的坐标
  • Variable_dockmove Klicky探针停靠后脱离动作移动的坐标
  • Variable_attachmove Klicky探针挂载重做移动的坐标

image-20230502150422806.png

**完成以上配置,我们点击 **SAVE & RESTART 选项,重启服务。

重启完成以后,来到主页,可以看到已经能正常与mcu通信了,可以获取到热端和热床的温度了。

image-20230502134648850.png

先不急着开始打印,先来完成一些额外的准备工作。

在settings中设置语言为中文

image-20230502134918804.png

在配置文件中添加以下内容,实现对mcu和鲁班猫温度的监测

image-20230502135110557.png

保存并重启以后可以看到mcu的温度34摄氏度,鲁班猫0的温度为39摄氏度。

image-20230502135458429.png

0x06 基础调试

配置文件修改完成以后就要实际的控制3D打印机了,但是也不要急着打印,要先完成下面的操作

回原点

回原点的作用是建立坐标系的原点,之后的操作都在此坐标系中进行

4Z调平

由于Voron2.4采用了4Z抬升xy轴龙门架的机构,无法去调整热床的高度,所以要调节4Z轴,使xy轴所在的平面与热床平面平行。

网床补偿

由于热床表面并不是绝对的平整,导致在打印过程中热端喷头与热床之间的距离不能稳定在一个定值,导致首层打印质量差。为了解决这一问题,通过对热床多点探测来生成一张热床相对于坐标零点的高度图,在后续的打印过程中,根据高度图对喷头的高度进行补偿,就在一定程度上使热床和喷头的距离固定,提升首层打印效果。

image-20230502163729858.png

0x07 小试牛刀

现在的鲁班猫还没有一个合适的支架固定到打印机上, 根据网盘中的3D模型,给鲁班猫画一个支架,来当测试模型,这个支架可以直接卡在DIN电气导轨上固定。

image-20230502192606080.png

画完支架后,将实体导出为网格,然后再导入切片软件
image-20230502193204287.png

配置参数,完成切片,将生成的Gcode文件上传,然后打印。

image-20230502193334780.png

在打印时鲁班猫0的温度只有38度,都不用加散热了。

image-20230502202450133.png

再看一下负载和内存占用,毫无压力

image-20230502202641024.png

0x08 总结

经过好几天的折腾,终于顺利的将voron上的树莓派替换成了鲁班猫,这主要得益于鲁班猫完善的资料。
0b7b7ffe9c9c89d3a80bf1752f34054.jpg

好了,让我们愉快的开始打印吧。 !

视频地址:https://www.bilibili.com/video/BV1zg4y1V7LA

更多回帖

发帖
×
20
完善资料,
赚取积分