1. Klipper从安装到运行
本文记录Klipper固件从安装,配置到运行的详细过程
Klipper是3D打印机固件之一,它通常运行在linux系统(常使用Debian,其它的linux版本也可以)上,因此需要一个能运行Linux系统的硬件,比如电脑,树莓派,瑞芯微/全志等SOC系列的开发板或相应的主板等。
1. 安装klipper
kiauh是klipper及相关配套软件的一个安装管理脚本,提供一个字符的类图形管理界面,它可以自动下载和安装相关依赖软件,因此,使用kiauh安装klipper比较方便,不易出错。
1.1 下载git
sudo apt-get update && sudo apt-get install git -y
kiauh是开源在github上的脚本,因此需要先安装git工具
1.2 下载kiauh
kiauh源码地址:https://github.com/dw-0/kiauh,可以手动下载也可以使用下面命令下载,下到家目录下
cd ~ && git clone https://github.com/dw-0/kiauh.git
1.3 下载完后,执行命令:
./kiauh/kiauh.sh
就可以打开kiauh安装管理界面:
1.4 安装klipper
从上图可见,有很多软件都是Not installed的,输入1,进入Install界面,这里可以安装很多软件。
其中:
- Klipper:klipper主体软件,必须安装,手动下载地址:GitHub - Klipper3d/klipper: Klipper is a 3d-printer firmware
- Moonraker:klipper主服务,为所有网页和人机界面提供控制和信息接口,必须安装,手动下载地址:https://github.com/Arksine/moonraker
- Mainsail或Fluidd(二选一):内置网页接口,安装其中一个,端口为80,需要网页上进行操作的安装,手动下载地址:
Fluidd: https://github.com/fluidd-core/fluidd
Mainsail: https://github.com/mainsail-crew/mainsail
- KlipperScreen:klipper默认显示屏操作界面,需要在显示屏上操作的安装,手动下载地址:https://github.com/KlipperScreen/KlipperScreen
- Crowsnest:摄像头服务(旧版使用MJPG-Streamer:https://github.com/jacksonliam/mjpg-streamer)老版本,需要接USB摄像头的安装,手动下载地址:GitHub - mainsail-crew/crowsnest: Webcam Service for multiple Cams
根据需求,安装上面的若干软件,一般情况下,上面5个都安装。
2.编译下位机
通常Klipper运行在 一上位机,若干下位机 的模式,运行Klipper主服务的是上位机,主要执行打印文件读取-解析,运动控制序列生成,通信,人机交互等,通常由带系统的主板执行;下位机则执行运动,信号检测,温度测试等,通常由MCU主板执行。
所以,需要编译klipper固件,并烧录到MCU,通过通信口(uart,USB,can等)和上位机连接,以实现上下位机配合,完成3D打印整个控制。
编译下位机klipper固件,需要查看下位机MCU的芯片类型,通信方式等,如我使用的下位机是芯片是STM32H723ZET6,通信是uart1,klipper默认uart波特率是250000,因此,需要配置klipper固件:
cd ~/klipper
make menuconfig
上述命令会打开配置界面,需要根据下位机硬件进行配置,比如我的硬件是STM32H723,晶振是25MHz,使用串口和上位机通信,采用波特率115200(默认是250000),则我的配置如下:
注意,可能原始的配置上没有电路板上的串口,比如原始没有USART1(PB15,PB14),这时需要自己手动修改kconfig文件,比如STM32的在klipper/src/stm32下,增加电路板上的串口进去:
同时需要修改驱动文件(klipper/src/stm32/stm32f0_serial.c或者serial.c)相关位置,以适配电路串口。
如此修改后,就可以执行make命令编译了,编译的结果在out/klipper.bin中,将其烧录到主板上,即可。
3.配置文件
3.1 klipper配置文件默认在printer_data/config下,通常在网页上配置比较方便。
moonraker.conf:与moonraker服务有关,通常不需要去改
mainsail.cfg:与内置网页设备和行为有关,可以根据网页上操作需求进行一些配置,刚开始不用改
crowsnest.conf:USB摄像头配置文件,装USB摄像头时,需要配置它
printer.cfg:打印机配置文件,这是klipper打印机配置的核心文件,需要详细配置
3.2 通信接口配置
首先要配置的是上下位机通信接口,修改的是printer.cfg。
很多采用串口与下位机通信,首先在上位机系统中找到/dev/serial/,看看里面有没有下位机生成的by-id或by-path,通常是有的,我的是/dev/serial/by-path,波特率默认是250000,但是上面我们配置的下位机,波特率是115200,因此,在mcu字段配置如下:
只要这里的波特率和下位机一致,且serial没错,一般是能连上下位机的, 在网页上配置的话,改好后,点击网页右上角 “保存并重启”,一般是可以看到下位机连上了,可能还会报其它错误。
3.3 其它配置
通信问题解决了后,就来看看其它配置, 参考说明:Klipper documentation
在官方配置说明中,重点查看:
电机[stepper]
电机驱动(如[stepper 2209])
打印头(含挤出机和喷嘴加热)[extruder]
热床加热[heater_bed]
网床(调平)[bed_mesh]
风扇[fan]
因为官方文档做的很详细,这里就不重复说明如何去配置了
配置好后,就可以使用klipper了
相关文章:

1. Klipper从安装到运行
本文记录Klipper固件从安装,配置到运行的详细过程 Klipper是3D打印机固件之一,它通常运行在linux系统(常使用Debian,其它的linux版本也可以)上,因此需要一个能运行Linux系统的硬件,比如电脑&am…...
docker 卸载与安装
卸载 查询之前安装的docker, 没有查到则不用卸载删除 yum list installed | grep docker 卸载安装包 yum remove docker-* -y 删除镜像、容器、默认挂载卷 rm -rf /var/lib/docker 安装 -ce 安装稳定版本 -y 当安装过程提示选择全部为 "yes" yum install d…...
跨部门文件共享安全:平衡协作与风险的关键策略
在现代企业中,跨部门协作已成为推动业务发展的关键因素。然而,随着信息的自由流动和共享,文件安全风险也随之增加。如何在促进跨部门协作的同时,确保文件共享的安全性,成为了一个亟待解决的问题。 一、明确文件分类与…...

基于单片机的智慧小区人脸识别门禁系统
本设计基于单片机的智慧小区人脸识别门禁系统。由STM32F103C8T6单片机核心板、显示模块、摄像头模块、舵机模块、按键模块和电源模块组成。可以通过摄像头模块对进入人员人脸数据进行采集,识别成功后,舵机模块动作,模拟门禁打开,门…...

【es6】原生js在页面上画矩形及删除的实现方法
画一个矩形,可以选中高亮,删除自己效果的实现,后期会丰富下细节,拖动及拖动调整矩形大小 实现效果 代码实现 class Draw {constructor() {this.x 0this.y 0this.disX 0this.disY 0this.startX 0this.startY 0this.mouseDo…...

【git实践】分享一个适用于敏捷开发的分支管理策略
文章目录 1. 背景2. 分支管理实践2.1. 敏捷开发中分支管理面临的问题2.2. 分支管理策略2.3. 还需要注意的一些问题 3.总结 1. 背景 在实际的开发工作中,我们往往会面临多任务并行研发,多个环境管理的情况,这种情况下,一个合适的分…...

Redis与MySQL如何保证数据一致性
Redis与MySQL如何保证数据一致性 简单来说 该场景主要发生在读写并发进行时,才会发生数据不一致。 主要流程就是要么先操作缓存,要么先操作Redis,操作也分修改和删除。 一般修改要执行一系列业务代码,所以一般直接删除成本较低…...

基于微信小程序的教室预约系统+LW示例参考
1.项目介绍 功能模块:管理员(学生管理、教师管理、申请管理、设备管理、报修管理等)、普通用户/学生(注册登录、申请预约、退订、报修等)技术选型:SSM、JSP、uniapp等测试环境:idea2024&#x…...
Linux 安装 Git 服务器
一、安装 Git 1. 在 CentOS/RHEL 中使用以下命令: sudo yum update -y # 或者 sudo dnf update -y (在较新的系统中) sudo yum install git -y验证安装:git --version 2. 配置 Git 用户 git config --global user.name "Your Name" git co…...
总结:Yarn资源管理
一、介绍 本文梳理下Yarn的资源分配计算逻辑。 二、配置 - 资源限制 1、配置NodeManager可分配的资源池的总量 <property><name>yarn.nodemanager.resource.memory-mb</name><value>4096</value> </property> 作用对象:节点管理器(No…...

Python学习34天
import random class Game: peo0 rob0 # # def __init__(self,peo,rob): # self.peopeo # self.robrob def Play(self): """ 石头剪刀布游戏,0代表石头,1代见到,2代表石头 …...

深入浅出 WebSocket:构建实时数据大屏的高级实践
简介 请参考下方,学习入门操作 基于 Flask 和 Socket.IO 的 WebSocket 实时数据更新实现 在当今数字化时代,实时性是衡量互联网应用的重要指标之一。无论是股票交易、在线游戏,还是实时监控大屏,WebSocket 已成为实现高效、双向…...

三开关VUE组件
一、使用效果 <template><QqThreeSwitch v-model"value" /><!-- <SqThreeSwitch v-model"value" :options"[test1, test2, test3]"><template #left-action><div style"display: flex"><IconMoon…...

SpringCloud+SpringCloudAlibaba学习笔记
SpringCloud 服务注册中心 eureka ap 高可用 分布式容错 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency><groupId…...
牛客小白月赛105(A~E)
文章目录 A lz的吃饭问题思路code B lz的数字问题思路code C lz的蛋挞问题思路code D lz的染色问题思路code E lz的括号问题思路code 总结 牛客小白月赛105 A lz的吃饭问题 思路 签到题,比较大小即可 code void solve(){int a,b,c,d;cin >> a >> b…...
OSPF协议整理
OSPF(Open Shortest Path First)即开放式最短路径优先协议,是一种广泛应用于大型网络中的链路状态路由协议。 OSPF 的基本概念 OSPF 是基于链路状态算法的内部网关协议(IGP),用于在一个自治系统ÿ…...
Java中的多线程
文章目录 Java中的多线程一、引言二、多线程的创建和启动1、继承Thread类2、实现Runnable接口 三、线程的常用方法1、currentThread()和getName()2、sleep()和yield()3、join() 四、线程优先级五、使用示例六、总结 Java中的多线程 一、引言 在Java中,多线程编程是…...

什么是聚簇索引、非聚簇索引、回表查询
其实聚集索引也叫聚簇索引,二级索引也叫非聚簇索引,大家不要认为这是不同的两个知识点。 定义 先看一下数据库的索引介绍。 聚簇索引 1. 如果存在主键(一般都存在),主键索引就是聚簇索引。 2. 如果不存在,…...
探索 Spring 框架核心组件:构建强大 Java 应用的基石
Spring框架作为Java企业级开发的首选框架之一,其强大的功能和灵活的架构深受开发者喜爱。Spring框架的核心组件共同构建了一个高效、可扩展的应用程序开发平台。本文将深入探讨Spring框架的核心组件,揭示它们如何在Spring框架中发挥关键作用。 一、Bean…...

Android 13 Aosp 默认允许应用动态权限
图库 frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java 修改 public void grantDefaultPermissions(int userId) {DelayingPackageManagerCache pm new DelayingPackageManagerCache();grantPermissionsToSysCompon…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...