当前位置: 首页 > news >正文

我用香橙派做了一个Klipper 3D打印控制器

一个好用的Klipper 3D打印机,一定离不开一个可以稳定进行无线通信,而且性能足够,最重要是价格亲民的上位机。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所谓Klipper,简单来说就是一套可以通过联动上、下位机来有效提升3D打印精度的固件。它拥有高精度的步进电机控制,并且配置简单,不依赖于3D打印机主板、和上位机的性能,这也为载体开发板的选择提供了很大的空间。

其实早在三、四年前,功能相仿、性能相近、价格美丽的香橙派Zero系列就已经成为替代树莓派做上位机的不二之选,搭载全志H616/H618的百元开发板,可以很好的满足做为Klipper宿主的所有需求,甚至有点性能过剩。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Klipper有诸多独特的功能需要使用到gpio针脚,但香橙派Zero系列的硬件设计使得每次都需要用排母端子去连接,非常的不方便,所以为香橙派Zero3设计一款3D打印扩展板,就显得尤为重要了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

硬件设计简介

香橙派Zero3是一款基于全志H618设计的开发板,板载千兆网口以及WiFi&BT通信模块,并在有限的板型内预留了13Pin和26Pin的功能接口。

本次给香橙派Zero3设计的适用于3D打印机的扩展板,参考了B站@大石头Jerry的香橙派Zero0的设计,与树莓派B板型的大小和螺丝孔位相同,该项目已经实际验证,可以打印50小时以上。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PCB上有支持最大电流3A的24V~12V转5V的DC-DC,两个USB,一个3010风扇,一个24V/5V可选电源输出。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • KF128-5.08-2P的电源输入接口
  • TPS54308 DC-DC降压电路,最大电流3A
  • 3010风扇位和XH2.54接口(PC9引脚控制)
  • 24V/5V可选输出XH2.54接口
  • 两个USB扩展接口带TVS管
  • 香橙派Zero3板型座子

扩展板默认留出13Pin和20Pin的引脚接口,通过13Pin接口可以扩展耳机、TVout、USB2.0、IR 接收等功能,扩展板上还预留了20Pin扩展功能接口以满足其它功能接口的需求。

由于板型原因,香橙派针脚接头需要使用加高的7.5mm排母针脚,或者购买长排母配合打印件焊接,才可以保证排母稳定连接到开发板上。

上下位机Klipper固件配置

通常,专用于控制3D打印机的MCU只有有限且预配置的引脚数量,用于管理主要打印功能(热敏电阻、挤出机、步进电机……)。给香橙派安装上Klipper,就可以直接在Klipper内部使用香橙派的GPIO和总线接口(TWI、SPI),而无需使用插件或外部程序就能够控制打印机。

安装rc脚本

如果想将香橙派用作辅助 MCU来控制3D打印机,则klipper_mcu进程必须在klippy进程之前运行,安装Klipper后,安装脚本。运行:

cd ~/klipper/
sudo cp ./scripts/klipper-mcu.service /etc/systemd/system/
sudo systemctl enable klipper-mcu.service

启用SPI、TWI

通过在“接口选项”菜单下运行并启用TWI,确保已启用驱动程序。如果计划将TWI用于MPU加速度计,还需要通过以下方式将波特率设置为 400000。

通过在“接口选项”菜单下运行并启用 SPI,确保 Linux SPI 驱动程序已启用 。

sudo orangepi-config

识别正确的GPIO

在使用不同香橙派型号或者在使用端口扩展版的情况下,使用命令访问Linux GPIO 字符设备以验证配置,gpiochip/gpio其中n是命令看到的芯片编号gpiodetect,o是命令看到的行号gpioinfo。

要检查可用的 gpiochip 运行:

gpiodetect

要检查引脚编号和引脚可用性,请执行以下操作:

gpioinfo

PWM接口配置

由于香橙派内核原因,PWM2和PWM3从系统加电启动到Klipper正式运行前,默认为高电平,即为打开状态,待klipper正式运行后恢复设置状态,PWM配置可根据需求修改,此处仅展示PWM1的默认配置:

[fan_generic PWM1_Fan]
pin: opi:gpio10
max_power: 1
shutdown_speed: 0
cycle_time: 0.01
#hardware_pwm:
kick_start_time: 0.5
off_below: 0.1
#enable_pin:
#   See the "fan" section for a description of the above parameters.

以上就完成了香橙派上位机端的配置,想要klipper固件可以控制3D打印机,那么与之匹配的,3D打印机主板也要刷写klipper固件下位机端。首先我们要确认自己3D打印机使用的主板型号,根据主板型号不同,固件编译的配置和刷写方法也略有不同。官方支持的3D打印机主板列表可以在klipper固件github的config这个文件夹中找到。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

\

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • QuanTA: 一种新的高秩高效微调范式
  • 码蹄集部分题目(2024OJ赛18期;并查集+ST表+贪心)
  • GMT shp转gmt数据
  • 618大促有哪些好物是必买的?这些好物你绝对不能错过!
  • HTML静态网页成品作业(HTML+CSS)—— 兰蔻化妆品网页(1个页面)
  • 目前比较好用的LabVIEW架构及其选择
  • 【Neo4j】Windows11使用Neo4j导入CSV数据可视化知识图谱
  • 人工智能和机器学习这两个概念有什么区别?
  • 肾合的秘密:长期出汗,身体在告诉你什么?
  • 镜舟科技携手中通快运,入选 2024 爱分析·数据库应用实践报告
  • 【Linux】匿名管道的应用场景 --- 进程池
  • Python从0到100(三十二):lxml模块的学习与应用
  • 基于小波的多元信号降噪-基于马氏距离和EDF统计(MATLAB R2018a)
  • arcgis如何给没有连通的路打交点
  • css 剪切属性clip-path
  • 「面试题」如何实现一个圣杯布局?
  • CentOS7简单部署NFS
  • chrome扩展demo1-小时钟
  • iOS 颜色设置看我就够了
  • Laravel Mix运行时关于es2015报错解决方案
  • Map集合、散列表、红黑树介绍
  • Mysql优化
  • PHP CLI应用的调试原理
  • Python打包系统简单入门
  • Python学习之路13-记分
  • TypeScript实现数据结构(一)栈,队列,链表
  • VuePress 静态网站生成
  • 翻译--Thinking in React
  • 高程读书笔记 第六章 面向对象程序设计
  • 搞机器学习要哪些技能
  • 扑朔迷离的属性和特性【彻底弄清】
  • 入门到放弃node系列之Hello Word篇
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​如何在iOS手机上查看应用日志
  • #ifdef 的技巧用法
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (1)无线电失控保护(二)
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (C#)一个最简单的链表类
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (一)springboot2.7.6集成activit5.23.0之集成引擎
  • (已解决)什么是vue导航守卫
  • ... 是什么 ?... 有什么用处?
  • .cn根服务器被攻击之后
  • .NET 8.0 发布到 IIS
  • .net 调用php,php 调用.net com组件 --
  • .NET 中的轻量级线程安全
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET设计模式(2):单件模式(Singleton Pattern)