ITPub博客

首页 > 数据库 > 数据库开发技术 > 基于 Marin 固件构建自定义的3D 打印固件

基于 Marin 固件构建自定义的3D 打印固件

原创 数据库开发技术 作者:Rust嵌入式 时间:2024-05-08 06:00:00 0 删除 编辑


Marlin 的历史

Marlin 是一种用于 3D 打印机的开源固件,最初由 Erik van der Zalm 等人于 2011 年开发。等人。该固件最初是为 RepRap 项目设计的,该项目旨在创建任何人都可以构建和使用的开源 3D 打印机。Marlin 凭借其用户友好的界面、易于使用的配置选项和活跃的开发社区,迅速在 3D 打印社区中广受欢迎。该固件以其可靠性、稳定性以及与多种 3D 打印机型号的兼容性而闻名。多年来,Marlin固件经历了多次更新,最新版本为2.1.x。这些更新为固件带来了新功能、改进的性能和更准确的打印功能。Marlin 背后的开发人员继续积极支持和改进该固件,使其成为 3D 打印机使用最广泛、最可靠的开源固件选项之一。Marlin 拥有一个由用户、开发人员和贡献者组成的大型活跃社区。许多3D打印机制造商也采用Marlin作为他们的默认固件,并且许多流行的3D打印机控制板都支持它,例如RAMPS、SKR等。

编译和配置 Marlin

准备材料

  1. 安装 Vscode
  2. 在 Vscode 中安装 PlatformIO 插件
  3. 准备Jlink 或 Stlink 下载工具
  4. 准备一个开源的 3D 打印主板及原理图
  5. 一个结构完好的 3D 打印机,推荐 经典的Ender3,其他 CoreXY等也可。
  6. 普通的4~8G SD 卡

编译固件

  1. 获取 Marlin 官方源码
git clone https://github.com/hysonglet/probe-rs.git
  1. 使用 VSCode 打开 Marlin 工程
code Marlin&
  1. 修改主板类型,编辑工程配置文件platformio.ini,修改default_envs字段为你的主板名,主板名可以在文件Marlin/ini/XX.ini中查找,如Marlin/ini/stm32f1.ini中可选择env:STM32F103RE_creality,则指定default_envs=STM32F103RE_creality即可。
  2. 编译:pio run(需要提前将 pio 命令添加到环境变量),也可在 PIO 的工具栏直接点击。
  3. 下载:pio run -t upload

配置 Marlin

Marlin 提供了丰富的配置来使得固件能轻松适应不同的机械结构,无论是龙门架、CoreXY、Polargraph、DELTA、SCARA、Polar等,都能轻松支持,多喷头、不同的限位开关、测距传感器、加热方式等都能简单的在配置文件中使能或自定义。所有配置在文件Marlin/Marlin/Configuration.h和Marlin/Marlin/Configuration_adv.h常用配置如下:

  1. 指定主板类型.

你可以打开文件./Marlin/src/core/boards.h选择一款最接近你主板即可。当然也可添加你自己的主板名称和主板号。

  1. 指定串口个数和波特率
  1. 指定步进电机驱动器类型,所有支持的类型可在注释中选择。
  1. 指定挤出机个数和挤出比,通常保持默认即可。
  1. 指定热床温度传感器类型和加热控制的极性,比较重要,需要准确设置,否则可能导致无法加热或热失控。
  1. 设置喷头和热床的极限温度,防止危险。设置加热的 PID 参数,通常保持默认即可。
  2. 设置 3D 打印机的结构,如果是龙门架结构则保持默认即可,否则根据注释开启你所在机型的宏定义即可。
  1. 设置限位开关引脚的上下拉,通常与限位开关的触发状态有关系,设置错误则会导致喷头撞击。如触发状态为 1,则保持下拉使能即可,如果主板已经添加下拉,则无需再开启该宏定义。
  1. 设置步进电机的传动比,该值与驱动器的细分数、齿轮的传动比有关。可利用网页工具和实验测试来设置该值:https://blog.prusa3d.com/calculator_3416/
  1. 配置运动的性能,如最大速度、加速度、挤出速度、Jerk 值等。这些值会影响你打印机的性能、默认的值比较保守,可根据打印效果适当提高。通常龙门架架构加速度可设置 8000 左右。
  1. 配置步进电机驱动信号的极性
  1. 配置 Home 的方向
  1. 配置热床的大小和原点的位置
  1. 设置风扇控制引脚和速度

参考视频

结语

作为一个嵌入式开发者,也许你并不会用到 3D 打印机或者需要自己去定制一个3D 打印机主板,但是学习 Marlin 的编程思路是非常有效提高我们的开发技能。Marlin 实现了高效的运动控制算法、路径规划算法、优雅的代码接口,使得一套代管理非常多的不同型号、不同CPU架构的MCU、完美适配不同的机械结构、对于我们提高嵌入式 C/C++开发技能是个非常不错的练手项目。




原文作者:Rust嵌入式;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2023-11-13

  • 博文量
    64
  • 访问量
    45583