野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2943|回复: 0

【鲁班猫创意大赛】使用鲁班猫运行klipper固件的3D打印机

[复制链接]
发表于 2023-5-22 21:04:40 | 显示全部楼层 |阅读模式
本帖最后由 小姜同学 于 2023-5-22 21:19 编辑

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


0x00 说说要做啥
[size=12.0000pt]五一假期的第一天,无所事事,还是折腾一下3D打印机吧,为我的Voron2.4换上鲁班猫做大脑。年前换配色拆了重装了一次,线基本已经走好了,不过现在只是能动起来的程度,还没好好调机。
野火论坛202305222053169470..jpg
[size=11.0000pt]               
先来看一下原来的布局和走线

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的其他发行版。
接下来我们进行安装
  1. # 更新软件包列表
  2. sudo apt update
  3. # 安装git
  4. sudo apt install git -y
  5. # 拉取kiauh脚本仓库
  6. cd ~ && git clone https://gitee.com/miroky/kiauh.git
  7. # 运行kiauh脚本
  8. ./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-20230429232118869.png
依旧是检查并安装依赖,拉取源码这一套,提示是否使用推荐的宏命令,选择Y
image-20230429233046178.png
提示Fluidd配置为了80端口,安装完成
image-20230429233119734.png
在浏览器中打开 http://lubancat 默认访问80端口,如果是其他端口可以根据提示添加 :端口号,如 http://lubancat:80 。看到下面的页面,说明我们安装成功,我们就可以通过这个界面来配置打印机相关参数了。
image-20230429233244812.png



0x04 生成MCUKlipper固件,并刷入3D打印机主板
经过上面的步骤,我们还没有建立上位机与下位机的连接,还不能控制3D打印机,还需要给3D打印机主板生成并刷写固件。
我们来到Klipper源码的目录,通过menuconfig来对要生成的固件做一些配置
  1. # 进入Klipper目录
  2. cd ~/klipper
  3. # 使用menuconfig修改配置文件‘
  4. 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工具下载。

  1. # 查看有没有安装dfu-util
  2. dfu-util --version
  3. # 如果无返回信息,使用apt命令安装,有就跳过
  4. sudo apt install dfu-util
  5. # 查看STM32是否进入DFU模式
  6. lsusb
  7. # DFU下载固件
  8. 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
  1. [include klicky-probe.cfg]

  2. #####################################################################
  3. #      Fluidd设置
  4. #####################################################################
  5. [virtual_sdcard]
  6. path: ~/printer_data/gcodes

  7. [display_status]

  8. [pause_resume]

  9. [gcode_macro CANCEL_PRINT]
  10. description: Cancel the actual running print
  11. rename_existing: CANCEL_PRINT_BASE
  12. gcode:
  13.   TURN_OFF_HEATERS
  14.   CANCEL_PRINT_BASE
  15.   
  16. #####################################################################
  17. #      主板温度显示
  18. #####################################################################

  19. [temperature_sensor MCU]
  20. sensor_type: temperature_mcu
  21. min_temp: 0
  22. max_temp: 100

  23. [temperature_sensor LubanCat]
  24. sensor_type: temperature_host
  25. min_temp: 0
  26. max_temp: 100

  27. #####################################################################
  28. #    基础配置,定义蜘蛛主板并对打印机类型做设置
  29. #       For Fysetc Spider V1.0&V1.1  
  30. #####################################################################
  31. [mcu]
  32. # serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_170037000150563046353420-if00
  33. # serial: /dev/ttyAMA0
  34. serial: /dev/ttyS8

  35. [printer]
  36. # 运动学结构 分为笛卡尔和corexy等等,Voron2.4是corexy
  37. kinematics: corexy
  38. # 最大速度
  39. max_velocity: 300  
  40. # 最大加速度
  41. max_accel: 3000     
  42. # z轴最大速度        
  43. max_z_velocity: 15  
  44. # z轴最大加速度      
  45. max_z_accel: 300  
  46. # 方形拐角速度,小一点可以有效避免平台重带来的惯性         
  47. square_corner_velocity: 5.0

  48. [bed_mesh]                      ## 热床网格校准
  49. speed: 60                       # 校准速度
  50. horizontal_move_z: 13           # Z起始高度
  51. mesh_min: 50,50                 # 最小校准点坐标x,y
  52. mesh_max: 250, 250              # 最大坐标
  53. probe_count: 15,15              # 采样点数
  54. mesh_pps: 2,2                   # 补充采样点数
  55. algorithm: bicubic              # 算法模型
  56. bicubic_tension: 0.2            # 算法插值不要动
  57. relative_reference_index:112    # 第多少个点作为0.00,最好在热床中心,解决网床校准后在空中的问题

  58. #####################################################################
  59. #   步进电机配置
  60. #####################################################################
  61. ######################## X轴设置 ########################
  62. [stepper_x]
  63. # X轴电机脉冲引脚设置
  64. step_pin: PE11
  65. # X轴电机方向引脚设置,可以通过添或删除引脚前面的!来改变电机的运转方向
  66. dir_pin: !PE10
  67. # X轴电机使能引脚设置
  68. enable_pin: !PE9
  69. #---Klipper0.9以上版本设置---
  70. # 电机细分设置
  71. microsteps: 16
  72. # 主动带轮周长mm(2GT-20T带轮40,2GT-16T带轮32)
  73. rotation_distance: 40
  74. # 电机单圈所需脉冲数(1.8度电机:200,0.9度电机:400)
  75. full_steps_per_rotation: 200
  76. # X轴最小行程--软件限位
  77. position_min: 0
  78. # X轴最大行程--软件限位(如果是350机型,需更改为350)
  79. position_max: 300
  80. # X轴的机械复位点坐标(如果是350机型,需更改为350)
  81. position_endstop: 300
  82. # 复位速度
  83. homing_speed: 25
  84. # 第一次触发复位开关之后的后退距离
  85. homing_retract_dist: 5
  86. # 复位方向(一般不需要改动)
  87. homing_positive_dir: true
  88. # 限位开关PIN脚设置(X-)
  89. endstop_pin: ^PB14

  90. [tmc2208 stepper_x]
  91. #通讯端口Pin脚定义
  92. uart_pin: PE7
  93. #是否开启256微步插值
  94. interpolate: True
  95. #电机运行电流值
  96. run_current: 0.9
  97. #电机静态力矩保持电流值
  98. hold_current: 0.6
  99. #驱动采样电阻值(不要修改)
  100. sense_resistor: 0.110
  101. #TMC2209的静音阀值(使用LDO0.9度电机,设置100)
  102. stealthchop_threshold: 200

  103. ######################## y轴设置 ########################
  104. [stepper_y]
  105. #Y轴电机脉冲引脚设置
  106. step_pin: PD8
  107. #Y轴电机方向引脚设置,可以通过添或删除引脚前面的!来改变电机的运转方向
  108. dir_pin: !PB12
  109. #Y轴电机使能引脚设置
  110. enable_pin: !PD9
  111. #---Klipper0.9以上版本设置---
  112. #电机细分
  113. microsteps: 16
  114. #主动带轮周长mm(2GT-20T带轮40,2GT-16T带轮32)
  115. rotation_distance: 40
  116. #电机单圈脉冲数(1.8度电机:200,0.9度电机:400)
  117. full_steps_per_rotation: 200
  118. # Y轴最小行程--软件限位
  119. position_min: 0
  120. # Y轴最大行程--软件限位(如果是350机型,需更改为350)
  121. position_max: 300
  122. # Y轴的机械复位点坐标(如果是350机型,需更改为350)
  123. position_endstop: 300
  124. # 复位速度
  125. homing_speed: 25
  126. # 第一次触发复位开关之后的后退距离
  127. homing_retract_dist: 5
  128. # 复位方向(一般不需要改动)
  129. homing_positive_dir: true
  130. # 限位开关PIN脚设置(Y-)
  131. endstop_pin: ^PB13

  132. [tmc2208 stepper_y]
  133. uart_pin: PE15
  134. #microsteps: 16
  135. interpolate: True
  136. run_current: 0.9
  137. hold_current: 0.7
  138. sense_resistor: 0.110
  139. stealthchop_threshold: 200

  140. ######################## E0挤出机设置 ########################
  141. [extruder]
  142. # 挤出机电机脉冲引脚设置
  143. step_pin: PD12
  144. # 挤出机电机方向引脚设置,可以通过添或删除引脚前面的!来改变电机的运转方向
  145. dir_pin: !PC4
  146. # 挤出机电机使能引脚设置
  147. enable_pin: !PE8
  148. #---Klipper0.9以上版本设置---
  149. # 电机细分
  150. microsteps: 16
  151. # 主动带轮周长mm(BMG)
  152. rotation_distance: 25.12
  153. # 电机单圈脉冲数(1.8度电机:200,0.9度电机:400)
  154. full_steps_per_rotation: 200
  155. # 减速比(BMG齿轮比为50:17,输出轴在前,输入轴在后)
  156. gear_ratio: 50:17
  157. # 耗材直径
  158. filament_diameter: 1.75
  159. # 挤出头加热棒控制Pin脚设置(e0)
  160. heater_pin: PB15
  161. # 加热棒最低温度阀值,热床温度低于此值会出现ADC报错
  162. min_temp: 0
  163. # 加热棒最高温度阀值,热床温度高于此值会出现ADC报错
  164. max_temp: 270
  165. # 挤出头传感器类型及Pin脚(TE0)
  166. sensor_type: NTC 100K MGB18-104F39050L32
  167. sensor_pin: PC0
  168. # 喷嘴直径
  169. nozzle_diameter: 0.400
  170. # 加热棒PWM最大输出功率
  171. max_power: 1.0
  172. # 加热棒最低挤出温度(达到此温度挤出机才能有挤出动作)
  173. min_extrude_temp: 170
  174. # pid控制参数
  175. control = pid
  176. pid_kp = 26.213
  177. pid_ki = 1.304
  178. pid_kd = 131.721
  179. pressure_advance: 0.05
  180. pressure_advance_smooth_time: 0.040

  181. [tmc2208 extruder]
  182. uart_pin: PA15
  183. #microsteps: 16
  184. interpolate: True
  185. run_current: 0.6
  186. hold_current: 0.4
  187. sense_resistor: 0.110
  188. stealthchop_threshold: 200

  189. ######################## Z0轴设置 ########################
  190. [stepper_z]
  191. #Z0电机脉冲引脚设置
  192. step_pin: PE2
  193. #Z0电机方向引脚设置,可以通过添或删除引脚前面的!来改变电机的运转方向
  194. dir_pin: !PE4
  195. #Z0电机使能引脚设置
  196. enable_pin: !PE3
  197. #---Klipper0.9以上版本设置---
  198. #电机细分
  199. microsteps: 16
  200. #主动带轮周长mm(2GT-20T带轮40,2GT-16T带轮32)
  201. rotation_distance: 40
  202. #电机单圈脉冲数(1.8度电机:200,0.9度电机:400)
  203. full_steps_per_rotation: 200
  204. #减速比(Z轴大小带轮比为80:16,输出轴在前,输入轴在后)
  205. gear_ratio: 80:16
  206. # z轴最小行程--软件限位position_max: 300
  207. position_min: -1
  208. # Z轴最大行程--软件限位(如果是350机型,需更改为350)
  209. position_max: 300
  210. # Z轴的机械复位点坐标,Y可以理解为喷嘴的偏移值,值越大,喷嘴离热床越近(负值也一样,eg.-1>-2)
  211. #position_endstop: 3.56
  212. # 复位速度
  213. homing_speed: 16.0
  214. # 第二次精确复位的速度
  215. second_homing_speed: 3.0
  216. # 第一次触发复位开关之后的后退距离
  217. homing_retract_dist: 3.0
  218. # 限位开关PIN脚设置(Z-)
  219. endstop_pin: ^PA0

  220. [tmc2208 stepper_z]
  221. uart_pin: PC15
  222. #microsteps: 16
  223. interpolate: True
  224. run_current: 0.9
  225. hold_current: 0.7
  226. sense_resistor: 0.110
  227. stealthchop_threshold: 200

  228. ######################## Z1轴设置 ########################
  229. [stepper_z1]
  230. #Z1电机脉冲引脚设置
  231. step_pin: PE6
  232. #Z1电机方向引脚设置,可以通过添或删除引脚前面的!来改变电机的运转方向
  233. dir_pin: PC13
  234. #Z1电机使能引脚设置
  235. enable_pin: !PE5
  236. #---Klipper0.9以上版本设置---
  237. #电机细分
  238. microsteps: 16
  239. #主动带轮周长mm(2GT-20T带轮40,2GT-16T带轮32)
  240. rotation_distance: 40
  241. #电机单圈脉冲数(1.8度电机:200,0.9度电机:400)
  242. full_steps_per_rotation: 200
  243. #减速比(Z轴带轮比为80:16,输出轴在前,输入轴在后)
  244. gear_ratio: 80:16

  245. [tmc2208 stepper_z1]
  246. uart_pin: PC14
  247. #microsteps: 16
  248. interpolate: True
  249. run_current: 0.9
  250. hold_current: 0.7
  251. sense_resistor: 0.110
  252. stealthchop_threshold: 200

  253. ######################## Z2轴设置 ########################
  254. [stepper_z2]
  255. #Z2电机脉冲引脚设置
  256. step_pin: PD5
  257. #Z2电机方向引脚设置,可以通过添或删除引脚前面的!来改变电机的运转方向
  258. dir_pin: !PD6
  259. #Z2电机使能引脚设置
  260. enable_pin: !PD4
  261. #---Klipper0.9以上版本设置---
  262. #电机细分
  263. microsteps: 16
  264. #主动带轮周长mm(2GT-20T带轮40,2GT-16T带轮32)
  265. rotation_distance: 40
  266. #电机单圈脉冲数(1.8度电机:200,0.9度电机:400)
  267. full_steps_per_rotation: 200
  268. #减速比(Z轴带轮比为80:16,输出轴在前,输入轴在后)
  269. gear_ratio: 80:16

  270. [tmc2208 stepper_z2]
  271. uart_pin: PD7
  272. #microsteps: 16
  273. interpolate: True
  274. run_current: 0.9
  275. hold_current: 0.7
  276. sense_resistor: 0.110
  277. stealthchop_threshold: 200

  278. ######################## Z3轴设置 ########################
  279. [stepper_z3]
  280. #Z3电机脉冲引脚设置
  281. step_pin: PD14
  282. #Z3电机方向引脚设置,可以通过添或删除引脚前面的!来改变电机的运转方向
  283. dir_pin: PD13
  284. #Z3电机使能引脚设置
  285. enable_pin: !PD15
  286. #---Klipper0.9以上版本设置---
  287. #电机细分
  288. microsteps: 16
  289. #主动带轮周长mm(2GT-20T带轮40,2GT-16T带轮32)
  290. rotation_distance: 40
  291. #电机单圈脉冲数(1.8度电机:200,0.9度电机:400)
  292. full_steps_per_rotation: 200
  293. #减速比(Z轴带轮比为80:16,输出轴在前,输入轴在后)
  294. gear_ratio: 80:16

  295. [tmc2208 stepper_z3]
  296. uart_pin: PD10
  297. #microsteps: 16
  298. interpolate: True
  299. run_current: 0.9
  300. hold_current: 0.7
  301. sense_resistor: 0.110
  302. stealthchop_threshold: 200

  303. #####################################################################
  304. #   Heater Bed 热床设置
  305. #####################################################################
  306. [heater_bed]
  307. #热床加热器控制Pin脚 (BED OUT)
  308. heater_pin: PB4
  309. #热床温度传感器规格及Pin脚(TE3)
  310. sensor_type: NTC 100K MGB18-104F39050L32
  311. sensor_pin: PC3
  312. # 热床PWM最大输出功率
  313. max_power: 1.0
  314. #热床最低温度阀值,热床温度低于此值会出现ADC报错
  315. min_temp: 0
  316. #热床最高温度阀值,热床温度高于此值会出现ADC报错
  317. max_temp: 125
  318. # pid控制参数
  319. #control: pid
  320. #pid_kp: 58.437
  321. #pid_ki: 2.347
  322. #pid_kd: 363.769

  323. #####################################################################
  324. #   Fan 风扇设置
  325. #####################################################################
  326. ######################### 喉管散热风扇(FAN0) ########################
  327. [heater_fan hotend_fan]
  328. #喉管散热风扇引脚设置(FAN0)
  329. pin: PB0
  330. #喉管散热风扇最大输出功率(默认:1.0)
  331. max_power: 1.0
  332. kick_start_time: 0.5
  333. heater: extruder
  334. #喉管散热风扇启动阀值
  335. heater_temp: 50.0
  336. ##  If you are experiencing back flow, you can reduce fan_speed
  337. fan_speed: 1.0
  338. shutdown_speed: 1.0
  339. ######################## 打印冷却风扇(FAN1) ########################
  340. [fan]
  341. #模型冷却风扇引脚设置(FAN1)
  342. pin: PB2
  343. kick_start_time: 0.75
  344. #模型散热风扇最大输出功率(默认:1.0)
  345. max_power: 1.0

  346. ######################## 电路仓散热风扇(可以并联在喉管风扇接口上)
  347. ########################
  348. #[temperature_fan controller_fan]
  349. #pin: PB6
  350. #max_power: 0.7
  351. #shutdown_speed: 0.0
  352. #kick_start_time: 0.500
  353. #sensor_type: NTC 100K MGB18-104F39050L32
  354. #sensor_pin: z:P0.25
  355. #min_temp: 0
  356. #max_temp: 50
  357. #target_temp: 24
  358. #gcode_id: T1
  359. #control: watermark

  360. ######################## 打印仓内排气扇(FAN2) ########################
  361. #[temperature_fan exhaust_fan]
  362. #pin: PB2
  363. #max_power: 0.7
  364. #shutdown_speed: 0.0
  365. #kick_start_time: 5.0
  366. #sensor_type: NTC 100K MGB18-104F39050L32
  367. #sensor_pin: PC1
  368. #min_temp: 0
  369. #max_temp: 60
  370. #target_temp: 40
  371. #gcode_id: C
  372. #control: watermark
  373. # 中断超时时间
  374. [idle_timeout]
  375. timeout: 3600

  376. #####################################################################
  377. #   Probe  4z调平传感器
  378. #####################################################################
  379. ######################## Z调平传感器单点探测宏(Z+) ########################
  380. [probe]
  381. #调平传感器引脚设置(X+)
  382. pin: ^PA2
  383. #传感器对应喷嘴的偏移数值
  384. x_offset: 0
  385. y_offset: 25.0
  386. z_offset: 0
  387. #调平时的速度
  388. speed: 5.0
  389. #采样次数
  390. samples: 3
  391. samples_result: median
  392. sample_retract_dist: 3.0
  393. #采样公差
  394. samples_tolerance: 0.02
  395. #超公差重试次数
  396. samples_tolerance_retries: 3

  397. #####################################################################
  398. #   Homing and Gantry Adjustment Routines归位与机架调整
  399. #####################################################################
  400. # ######################## XYZ复位 ########################
  401. # [homing_override]
  402. # axes: z
  403. # set_position_z: 0
  404. # gcode:
  405. #    G90
  406. #    G0 Z10 F600
  407. #    G28 X Y
  408. #    ##   XY Location of the Z Endstop Switch
  409. #    ##   Update X0 and Y0 to your values (such as X157, Y305) after going through
  410. #    ##   Z Endstop Pin Location Definition step.
  411. #    #以下一行XY坐标根据自己的Z限位传感器位置修改保存
  412. #    G0 X232 Y338 F3600
  413. #    #以下XYZ坐标机器完成复位后,喷头停留的位置,根据自己的需求可以调整
  414. #    G28 Z
  415. #    G0 Z10 F1800
  416. #    G0 X150 Y150 Z20.05 F3600

  417. ######################## Voron2 4Z调平 ########################
  418. [quad_gantry_level]
  419. gantry_corners:
  420.     -60,-10
  421.     360,370
  422. #4Z调平采集点坐标设置(300机型)
  423. points:
  424.     25,25
  425.     25,250
  426.     275,250
  427.     275,25
  428. # 4Z调平的速度
  429. speed: 200
  430. #4Z调平时,Z的起始高度
  431. horizontal_move_z: 25
  432. #采样失败重试次数
  433. retries: 3
  434. #采样公差
  435. retry_tolerance: 0.02
  436. #采样时Z的最大行程
  437. max_adjust: 10

  438. #####################################################################
  439. #   Macros Gcode宏
  440. #####################################################################
  441. [gcode_macro G32]
  442. gcode:
  443.     BED_MESH_CLEAR
  444.     G28
  445.     QUAD_GANTRY_LEVEL
  446.     G28
  447.     G0 X150 Y150 Z20 F6000

  448. [gcode_macro PRINT_START]
  449. #   Use PRINT_START for the slicer starting script - please customise for your slicer of choice
  450. gcode:
  451.     G32                            ; home all axes
  452.     G1 Z20 F3000                   ; move nozzle away from bed

  453. [gcode_macro PRINT_END]
  454. #   Use PRINT_END for the slicer ending script - please customise for your slicer of choice
  455. gcode:
  456.     M400                           ; wait for buffer to clear
  457.     G92 E0                         ; zero the extruder
  458.     G1 E-10.0 F3600                ; retract filament
  459.     G91          0            ; park nozzle at rear
  460.     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连接鲁班猫,执行以下命令。
  1. # 进入配置文件所在目录
  2. cd ~/printer_data/config
  3. # 下载klicky-probe.cfg需要的宏命令
  4. wget https://raw.githubusercontent.co ... /Klipper_macros.zip
  5. # 解压
  6. unzip Klipper_macros.zip
复制代码

  1. # 解压以后新增的文件
  2. klicky-probe.cfg #选择要开启功能的配置文件      
  3. klicky-variables.cfg #存储Klicky使用的变量
  4. klicky-bed-mesh-calibrate.cfg #网床调平脚本
  5. klicky-quad-gantry-level.cfg #4Z调平脚本
  6. klicky-screws-tilt-calculate.cfg #螺丝调平辅助脚本
  7. klicky-z-tilt-adjust.cfg #2Z或3Z热床自动调平脚本
  8. klicky-macros.cfg # Klicky探针停靠用到的宏
  9. klicky-specific.cfg #存放打印机特定的其他配置
  10. 打开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]
image-20230502202450133.png
[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]
image-20230502163729858.png
0x07 小试牛刀
[size=12.0000pt]现在的鲁班猫还没有一个合适的支架固定到打印机上, 根据网盘中的3D模型,给鲁班猫画一个支架,来当测试模型,这个支架可以直接卡在DIN电气导轨上固定。
[size=12.0000pt]
image-20230502192606080.png
[size=12.0000pt]画完支架后,将实体导出为网格,然后再导入切片软件
[size=12.0000pt]
image-20230502193204287.png
[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]
0b7b7ffe9c9c89d3a80bf1752f34054.jpg
[size=12.0000pt]好了,让我们愉快的开始打印吧。
[size=12.0000pt]





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 02:48 , Processed in 0.039818 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表