五一假期的第一天,无所事事,还是折腾一下3D打印机吧,为我的Voron2.4换上鲁班猫做大脑。年前换配色拆了重装了一次,线基本已经走好了,不过现在只是能动起来的程度,还没好好调机。
先来看一下原来的布局和走线
现在我们的目标是把树莓派换成鲁班猫0,开干吧!!!(没有打标签的机器,手打标签,很难看有没有,还好我不是强迫症)
整个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
鲁班猫只能通过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以上就可以。
注意保存资料,提醒了会蓝屏,真的会蓝屏!!!!!! 上一节直接没保存,脑壳痛
烧录完成把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
有了网络以后就可以通过ssh连接鲁班猫了,我们通过hostname去连接鲁班猫。
目前这种网络连接方式只能连接电脑访问网络,要单独使用的话还需要连接无线网络,参考教程,使用nmtui连接无线网络。
无线连接: https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/quick_start/network/network2.html#id6
无线网络连接完成以后就可以断开usb共享网络了
因为想要让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
选择1,Klipper
选择Python版本,选择1 Python3
生成的klipper接口数,创建1个即可
下面就进入了正式的安装过程,检查依赖,拉取源码仓库
略过软件包安装过程和Python相关内容的安装过程,创建各种文件后提示是否加入一些用户组,选择Y
至此,klipper的安装就完成了。
选择2 安装Moonraker
提示是否安装Moonraker,选择Y,在拉取源码前检测并安装相关依赖,略过安装过程
拉取源码,继续安装,继续略过安装过程
创建了部分文件并开启部分服务后安装完成
我们访问创建的接口,在浏览器中打开http://lubancat:7125 看到下面的页面,说明我们安装成功
第三步就是安装web接口客户端,可以根据自己的喜好安装,这里以Fluidd为例,其他的安装方法都类似,同一个上位机也可以安装多个web接口客户端。
选择4,安装Fluidd
依旧是检查并安装依赖,拉取源码这一套,提示是否使用推荐的宏命令,选择Y
提示Fluidd配置为了80端口,安装完成
**在浏览器中打开 **http://lubancat 默认访问80端口,如果是其他端口可以根据提示添加 :端口号,如 http://lubancat:80 。看到下面的页面,说明我们安装成功,我们就可以通过这个界面来配置打印机相关参数了。
经过上面的步骤,我们还没有建立上位机与下位机的连接,还不能控制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
其他型号的主板可以找对应的厂商寻找,或根据实际的情况自行设置。
**先使能 **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,波特率默认。
确认并配置完成后,按ESC键退出,选择Y,保存配置文件。然后使用make
命令来构建固件。
等待编译完成,编译后的镜像保存在~/klipper/out/klipper.bin
完成这一步后我们给鲁班猫关机,将鲁班猫0与主板相连,除了连接电源线和串口线外,还需要连接USB接口,使用USB对主板上的STM32进行烧录
这里使用dfu-util镜像烧录,将系统的5V电源通过跳线帽接到DC5V,然后短接BT0和3.3V,给3D打印机上电,进入 DFU 模式
再次登录鲁班猫,使用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
烧录完成后拔下BT0和3.3V的跳线帽,然后移除主板和鲁班猫之间的USB线。
在前一节中,已经用过跳线将鲁班猫和主板的串口引脚进行了连接,但是还没有开启鲁班猫0的串口,通过fire-config工具来启用UART8_M0,设置完成后重启,对应的接口是/dev/ttyS8
完成了这些设置以后,就可以根据3D打印机参数,修改Klipper配置文件了。
**网页登录 **http://lubancat
打开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
这里着重讲一下主要修改的配置,其他配置可以根据配置文件中的注释修改:
对主控制器的配置,主要是对通信接口做配置,这里设置/dev/ttyS8作为通信接口,默认波特率为250000
为Fluidd提供一些控制端口,virtual_sdcard的path可以设置Gcode存放的位置
设置打印机的基本参数
这里根据实际的情况进行配置
[stepper_x] 标志这是x轴步进电机的配置项
**[tmc2208 stepper_x] 标志这是x轴步进电机驱动器的配置项。驱动器的型号为tmc2208 **
其他轴的配置类似,根据实际情况设置
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打开以下几个配置文件
打开klicky-variables.cfg文件进行修改,修改的内容如下:
**完成以上配置,我们点击 **SAVE & RESTART 选项,重启服务。
重启完成以后,来到主页,可以看到已经能正常与mcu通信了,可以获取到热端和热床的温度了。
先不急着开始打印,先来完成一些额外的准备工作。
在settings中设置语言为中文
在配置文件中添加以下内容,实现对mcu和鲁班猫温度的监测
保存并重启以后可以看到mcu的温度34摄氏度,鲁班猫0的温度为39摄氏度。
配置文件修改完成以后就要实际的控制3D打印机了,但是也不要急着打印,要先完成下面的操作
回原点的作用是建立坐标系的原点,之后的操作都在此坐标系中进行
由于Voron2.4采用了4Z抬升xy轴龙门架的机构,无法去调整热床的高度,所以要调节4Z轴,使xy轴所在的平面与热床平面平行。
由于热床表面并不是绝对的平整,导致在打印过程中热端喷头与热床之间的距离不能稳定在一个定值,导致首层打印质量差。为了解决这一问题,通过对热床多点探测来生成一张热床相对于坐标零点的高度图,在后续的打印过程中,根据高度图对喷头的高度进行补偿,就在一定程度上使热床和喷头的距离固定,提升首层打印效果。
现在的鲁班猫还没有一个合适的支架固定到打印机上, 根据网盘中的3D模型,给鲁班猫画一个支架,来当测试模型,这个支架可以直接卡在DIN电气导轨上固定。
画完支架后,将实体导出为网格,然后再导入切片软件
配置参数,完成切片,将生成的Gcode文件上传,然后打印。
在打印时鲁班猫0的温度只有38度,都不用加散热了。
再看一下负载和内存占用,毫无压力
经过好几天的折腾,终于顺利的将voron上的树莓派替换成了鲁班猫,这主要得益于鲁班猫完善的资料。
好了,让我们愉快的开始打印吧。 !
视频地址:https://www.bilibili.com/video/BV1zg4y1V7LA
更多回帖