芯查查logo
  • 数据服务
    1. 新产品
    2. 物料选型
    3. 查替代
    4. 丝印反查
    5. 查品牌
    6. PCN/PDN
    7. 查方案
    8. 查代理
    9. 数据合作
  • SaaS/方案
      SaaS产品
    1. 供应链波动监控
    2. 半导体产业链地图
    3. BOM管理
    4. 解决方案
    5. 汽车电子
    6. 政府机构
    7. 数据API
  • 商城
  • 行业资讯
    1. 资讯
    2. 直播
  • 论坛社区
    1. 论坛
    2. 学习
    3. 测评中心
    4. 活动中心
    5. 积分商城
  • 查一下
  • 开通会员
野火电子-尹桢
项目12——使用鲁班猫运行klipper固件的3D打印机

【鲁班猫参赛作品赏析】

 

五一假期,没有出去人挤人,而是在家倒腾3D打印机,将原来的树莓派主控换成鲁班猫0.无线版,这是怎样一个操作?下面,我们一起来看看吧!

 

 

 

前言

五一假期的第一天,无所事事,还是折腾一下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及其他软件

 

因为想要让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 。看到下面的页面,说明我们安装成功,我们就可以通过这个界面来配置打印机相关参数了。

 

图片

 

 

生成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线。

 

 

 

根据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

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

mcu

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

图片

Fluidd设置

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

图片

printer

设置打印机的基本参数

图片

步进电机配置

这里根据实际的情况进行配置[stepper_x] 标志这是x轴步进电机的配置项

 

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

 

图片

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

[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打开以下几个配置文件

图片

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

variable_max_bed 热床尺寸

variable_z_endstop Z限位开关的坐标

variable_docklocation Klicky 探针停靠位置的坐标

Variable_dockmove Klicky探针停靠后脱离动作移动的坐标

  • Variable_attachmove Klicky探针挂载重做移动的坐标
图片

 

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

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

图片

先不急着开始打印,先来完成一些额外的准备工作。在settings中设置语言为中文

图片


 

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

图片

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

图片

 

基础调试

 

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

回原点

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

4Z调平

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

网床补偿

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

图片

 

 

小试牛刀

 

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

图片

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

图片

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

图片

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

图片

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

图片

 

 

总结

 

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

图片

 

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

视频来源:

https://www.bilibili.com/video/BV1zg4y1V7LA

 

原文来源:

https://bbs.elecfans.com/jishu_2356117_1_1.html

 

 

 

 

 

 

开源社区
版块: 野火
2023/09/18 17:24
  • 举报
😁😂😃😄😅😆😉😊😋😌😍😏😒😓😔😖😘😚😜😝😞😠😡😢😣😤😥😨😩😪😫😭😰😱😲😳😵😷😸😹😺😻😼😽😾😿🙀🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏✂✅✈✉✊✋✌✏✒✔✖✨✳✴❄❇❌❎❓❔❕❗❤➕➖➗➡➰🚀🚃🚄🚅🚇🚉🚌🚏🚑🚒🚓🚕🚗🚙🚚🚢🚤🚥🚧🚨🚩🚪🚫🚬🚭🚲🚶🚹🚺🚻🚼🚽🚾🛀Ⓜ🅰🅱🅾🅿🆎🆑🆒🆓🆔🆕
@好友

全部评论

加载中
游客登录通知
已选择 0 人
自定义圈子
移动
发布帖子
发布动态
发布问答
最新帖子
芯片丝印反查求助树莓派pico 2测评 - 串口萤火工场GD32VW553-IOT测评+蓝牙串口透传树莓派pico 2测评 - 初体验【工程师经验】+ 飞线
热门版块
查看更多
维修技术
电子元器件
问型号
问技术
问行情
电子DIY
汽车电子工程师论坛
工业电子专区
新手入门指南
单片机/MCU论坛

3

收藏

分享

微信扫码
分享给好友

评论