小学生
最后登录1970-1-1
在线时间 小时
注册时间2023-5-22
|
本帖最后由 小姜同学 于 2023-5-22 21:19 编辑
使用鲁班猫0无线版替换树莓派作为3D打印机上位机
0x00 说说要做啥
[size=12.0000pt]五一假期的第一天,无所事事,还是折腾一下3D打印机吧,为我的Voron2.4换上鲁班猫做大脑。年前换配色拆了重装了一次,线基本已经走好了,不过现在只是能动起来的程度,还没好好调机。
[size=11.0000pt]
先来看一下原来的布局和走线
现在我们的目标是把树莓派换成鲁班猫0,开干吧!!!(没有打标签的机器,手打标签,很难看有没有,还好我不是强迫症)
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以上就可以。
注意保存资料,提醒了会蓝屏,真的会蓝屏!!!!!! 上一节直接没保存,脑壳痛
烧录完成把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共享网络了
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
第一步:安装Klipper
选择1,Klipper
选择Python版本,选择1 Python3
生成的klipper接口数,创建1个即可
下面就进入了正式的安装过程,检查依赖,拉取源码仓库
略过软件包安装过程和Python相关内容的安装过程,创建各种文件后提示是否加入一些用户组,选择Y
至此,klipper的安装就完成了。
第二步:安装Moonraker
选择2 安装Moonraker
提示是否安装Moonraker,选择Y,在拉取源码前检测并安装相关依赖,略过安装过程
拉取源码,继续安装,继续略过安装过程
创建了部分文件并开启部分服务后安装完成
我们访问创建的接口
,在浏览器中打开http://lubancat:7125 看到下面的页面,说明我们安装成功
第三步:安装Fluidd
第三步就是安装web接口客户端,可以根据自己的喜好安装,这里以Fluidd为例,其他的安装方法都类似,同一个上位机也可以安装多个web接口客户端。
选择4,安装Fluidd
依旧是检查并安装依赖,拉取源码这一套,提示是否使用推荐的宏命令,选择Y
提示Fluidd配置为了80端口,安装完成
在浏览器中打开 http://lubancat 默认访问80端口,如果是其他端口可以根据提示添加 :端口号,如 http://lubancat:80 。看到下面的页面,说明我们安装成功,我们就可以通过这个界面来配置打印机相关参数了。
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
其他型号的主板可以找对应的厂商寻找,或根据实际的情况自行设置。
先使能 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线。
0x05 根据3D打印机参数,修改Klipper配置文件
在前一节中,已经用过跳线将鲁班猫和主板的串口引脚进行了连接,但是还没有开启鲁班猫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 0 ; park nozzle at rear
- BED_MESH_CLEAR
复制代码 [size=12.0000pt]这里着重讲一下主要修改的配置,其他配置可以根据配置文件中的注释修改:
mcu
[size=12.0000pt]对主控制器的配置,主要是对通信接口做配置,这里设置/dev/ttyS8作为通信接口,默认波特率为250000
[size=12.0000pt]
Fluidd设置
[size=12.0000pt]为Fluidd提供一些控制端口,virtual_sdcard的path可以设置Gcode存放的位置
[size=12.0000pt]
printer
[size=12.0000pt]设置打印机的基本参数
[size=12.0000pt]
步进电机配置
[size=12.0000pt]这里根据实际的情况进行配置
[size=12.0000pt][stepper_x] 标志这是x轴步进电机的配置项
[size=12.0000pt][tmc2208 stepper_x] 标志这是x轴步进电机驱动器的配置项。驱动器的型号为tmc2208
[size=12.0000pt]
[size=12.0000pt]其他轴的配置类似,根据实际情况设置
[include klicky-probe.cfg]
[size=12.0000pt]Klicky 探针是一个微动开关调平传感器项目,klicky-probe.cfg配套Klicky 探针的配置文件,项目位置是https://github.com/jlas1/Klicky-Probe
[size=12.0000pt]把 [include klicky-probe.cfg] 添加到printer.cfg配置文件以后,还需要拉取对应的配置文件。操作如下:
[size=12.0000pt]通过ssh连接鲁班猫,执行以下命令。
- # 进入配置文件所在目录
- cd ~/printer_data/config
- # 下载klicky-probe.cfg需要的宏命令
- wget https://raw.githubusercontent.co ... /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打开以下几个配置文件
复制代码
[size=12.0000pt]
[size=12.0000pt]打开klicky-variables.cfg文件进行修改,修改的内容如下:
[size=12.0000pt]• [size=12.0000pt]variable_max_bed 热床尺寸
[size=12.0000pt]• [size=12.0000pt]variable_z_endstop Z限位开关的坐标
[size=12.0000pt]• [size=12.0000pt]variable_docklocation Klicky 探针停靠位置的坐标
[size=12.0000pt]• [size=12.0000pt]Variable_dockmove Klicky探针停靠后脱离动作移动的坐标
[size=12.0000pt]• [size=12.0000pt]Variable_attachmove Klicky探针挂载重做移动的坐标
[size=12.0000pt]
[size=12.0000pt]完成以上配置,我们点击 SAVE & RESTART[size=12.0000pt] 选项,重启服务。
[size=12.0000pt]重启完成以后,来到主页,可以看到已经能正常与mcu通信了,可以获取到热端和热床的温度了。
[size=12.0000pt]
[size=12.0000pt]先不急着开始打印,先来完成一些额外的准备工作。
[size=12.0000pt]在settings中设置语言为中文
[size=12.0000pt]
[size=12.0000pt]在配置文件中添加以下内容,实现对mcu和鲁班猫温度的监测
[size=12.0000pt]
[size=12.0000pt]保存并重启以后可以看到mcu的温度34摄氏度,鲁班猫0的温度为39摄氏度。
[size=12.0000pt]
0x06 基础调试
[size=12.0000pt]配置文件修改完成以后就要实际的控制3D打印机了,但是也不要急着打印,要先完成下面的操作
回原点
[size=12.0000pt]回原点的作用是建立坐标系的原点,之后的操作都在此坐标系中进行
4Z调平
[size=12.0000pt]由于Voron2.4采用了4Z抬升xy轴龙门架的机构,无法去调整热床的高度,所以要调节4Z轴,使xy轴所在的平面与热床平面平行。
网床补偿
[size=12.0000pt]由于热床表面并不是绝对的平整,导致在打印过程中热端喷头与热床之间的距离不能稳定在一个定值,导致首层打印质量差。为了解决这一问题,通过对热床多点探测来生成一张热床相对于坐标零点的高度图,在后续的打印过程中,根据高度图对喷头的高度进行补偿,就在一定程度上使热床和喷头的距离固定,提升首层打印效果。
[size=12.0000pt]
0x07 小试牛刀
[size=12.0000pt]现在的鲁班猫还没有一个合适的支架固定到打印机上, 根据网盘中的3D模型,给鲁班猫画一个支架,来当测试模型,这个支架可以直接卡在DIN电气导轨上固定。
[size=12.0000pt]
[size=12.0000pt]画完支架后,将实体导出为网格,然后再导入切片软件
[size=12.0000pt]
[size=12.0000pt]配置参数,完成切片,将生成的Gcode文件上传,然后打印。
[size=12.0000pt]
[size=12.0000pt]在打印时鲁班猫0的温度只有38度,都不用加散热了。
[size=12.0000pt]
[size=12.0000pt]再看一下负载和内存占用,毫无压力
[size=12.0000pt]
[size=12.0000pt]
0x08 总结
[size=12.0000pt]
[size=12.0000pt]经过好几天的折腾,终于顺利的将voron上的树莓派替换成了鲁班猫,这主要得益于鲁班猫完善的资料。
[size=12.0000pt]
[size=12.0000pt]好了,让我们愉快的开始打印吧。
[size=12.0000pt]
|
|