Marlin固件介绍

article/2025/9/13 3:50:06

目录

什么是Marlin?

主要特点

Marlin如何工作

打印东西                                                                                                                       

建模                                                                                                                              

切片                                                                                                                                 

打印                                                                                                                                 


什么是Marlin?

 

Marlin 是RepRap系列复制快速原型机(俗称“3D 打印机”)的开源固件。它源自Sprinter和grbl,并于 2011 年 8 月 12 日随着Github 发布成为一个独立的开源项目。Marlin 在 GPLv3 下获得许可,并且对所有应用程序都是免费的。

从一开始,Marlin 就是由 RepRap 爱好者打造的,并且是为RepRap爱好者打造的,它是一个简单、可靠且适应性强的打印机驱动程序,可以“正常工作”。作为其质量的证明,Marlin 被多家受人尊敬的商业 3D 打印机使用。LulzBot、Průša Research、Creality3D、BIQU、Geeetech和Ultimaker只是提供 Marlin 变体的少数供应商。Marlin 还能够驾驶 CNC 机器和激光雕刻机。

Marlin 流行的一个关键是它运行在廉价的 8 位Atmel AVR 微控制器上——Marlin 2.x 增加了对 32 位板的支持。这些芯片是流行的开源 Arduino/Genuino平台的核心。Marlin 的参考平台是带有 RAMPS 1.4 的 Arduino Mega2560 和带有 Ramps 1.4 的 Re-Arm。

作为一个社区产品,Marlin 旨在适应尽可能多的板和配置。我们希望它对爱好者和供应商来说都是可配置的、可定制的、可扩展的和经济的。Marlin 构建可以非常小,用于只有适度硬件的无头打印机。根据需要启用功能以使 Marlin 适应添加的组件。

主要特点

  • 具有超过 150 个命令的全功能G 代码
  • 完整的 G 代码运动套件,包括直线、圆弧和贝塞尔曲线
  • 具有先行、基于中断的运动、线性加速的智能运动系统
  • 支持 Cartesian、Delta、SCARA 和 Core/H-Bot 运动学
  • 具有自动调节、热保护、安全切断功能的闭环 PID 加热器控制
  • 最多支持 5 个挤出机和一个加热打印床
  • 具有30 多种语言翻译的LCD 控制器 UI
  • 基于主机和 SD 卡打印,自动启动
  • 热床调平补偿——带或不带床探头
  • 用于基于压力的挤出的Linear Advance
  • 支持体积挤压
  • 支持混合和多挤出机(独眼巨人、奇美拉、钻石)
  • 支持灯丝跳动/宽度传感器
  • 打印作业计时器和打印计数器

Marlin如何工作

Marlin 固件在 3D 打印机的主板上运行,管理机器的所有实时活动。它协调加热器、步进器、传感器、灯、LCD 显示屏、按钮以及 3D 打印过程中涉及的所有其他内容。

Marlin 实施了一种称为熔融沉积建模 (FDM) 的增材制造工艺,也称为熔融长丝制造 (FFF)。在这个过程中,电机推动塑料长丝通过热喷嘴,喷嘴在计算机控制下移动时熔化并挤出材料。在铺设薄薄的塑料层几分钟(或几个小时)后,结果就是一个物理对象。

Marlin 的控制语言是G 代码的衍生物。G 代码命令告诉机器做一些简单的事情,例如“将加热器 1 设置为 180°”或“以速度 F 移动到 XY”。要使用 Marlin 打印模型,必须使用称为“切片器”的程序将其转换为 G 代码。由于每台打印机都不同,您不会找到可供下载的 G 代码文件;你需要自己切片。

当 Marlin 收到移动命令时,它会将它们添加到移动队列中,以按照接收到的顺序执行。“步进中断”处理队列,将线性运动转换为精确定时的电子脉冲到步进电机。即使速度适中,Marlin 也需要每秒生成数千个步进脉冲。(例如,每毫米 80 步 * 50 毫米/秒 = 每秒 4000 步!)由于 CPU 速度限制了机器的移动速度,我们一直在寻找优化步进中断的新方法!

加热器和传感器在第二个中断中进行管理,该中断的执行速度要慢得多,而主循环处理命令处理、更新显示和控制器事件。出于安全原因,如果 CPU 过载而无法读取传感器,Marlin 实际上会重新启动。

打印东西                                                                                                                       

建模                                                                                                                              

虽然 Marlin 仅打印 G 代码,但大多数切片器仅对 STL 文件进行切片。

无论您的CAD工具链使用什么,只要您可以导出实体模型,切片器就可以将其“切片”成 G 代码,而 Marlin 固件将尽最大努力打印最终结果。

在 Marlin 梦想打印之前,您首先需要一个3D 模型。您可以下载模型或使用许多免费 CAD 程序之一制作自己的模型,例如FreeCAD、OpenSCAD、Tinkercad、Autodesk Fusion 360、SketchUp等。

为像霸王龙头骨这样的复杂对象建模需要高度的知识,但其他对象的建模可能非常简单。要获取创意并进行测试,请浏览Thingiverse、YouMagine和Printables等网站,并打印一些有趣的东西。

切片                                                                                                                                 

切片器通过将实体 3D 模型分成薄片(层)来准备它。在此过程中,它会生成G 代码,详细告诉打印机如何复制模型。有许多切片器可供选择,包括:

  • 库拉。
  • 切片3r。
  • PrůšaSlicer(以前称为 Slic3r Průša Edition)基于 Slic3r 的块上的新 Kid。
  • Simplify3D是一种商业产品。

打印                                                                                                                                 

Marlin 可以完全由主机控制,也可以在独立模式下由 SD 卡控制。即使没有 LCD 控制器,独立的 SD 打印仍然可以从主机启动,因此您的计算机可以不受打印机的束缚。

主机软件可用于多种平台,包括桌面系统、Raspberry Pi 和 Android 平板电脑。任何具有 USB 端口和串行终端的设备在技术上都可以充当主机,但使用专为 3D 打印机设计的主机软件,您将获得更好的打印体验。目前的选择包括:

  • Pronterface是 Kliment 的开源主机。
  • Repetier Host是 Repetier Software 的闭源主机。
  • OctoPrint是Gina Häußge的 Raspberry Pi 开源主机。
  • Cura是 Ultimaker 的开源主机。(警告:您不能再手动选择 com 端口和速度,Cura 需要自动检测您的打印机)
  • Simplify3D包括主机和切片器。

许多 3D 打印机附带定制版本的 Repetier 或 Cura。虽然这有助于将打印机品牌与配套软件相关联,但这些版本通常已经过时并且很少进行升级。我们建议您下载首选主机软件的最新通用版本。


http://chatgpt.dhexx.cn/article/misV2fkk.shtml

相关文章

marlin2.0.x 固件相关配置文档说明

主要目的 了解对应参数的作用,以优化3D打印机的打印效果 具体分析 配置文件有两个 Configuration.h 包含硬件核心、语言和控制器的设置,以及最常见的功能和组件的设置,主要配置的地方。 Configuration_adv.h 提供更详细的自定义选项&…

杨辉三角形--2021蓝桥杯Java组

杨辉三角形–2021蓝桥杯Java组 题目描述 下面的图形是著名的杨辉三角形: 如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列:1,1,1,1,2,1,1,3,3,1,1,4,6,4,1,⋯ 给定一个正整数 N,请你输出数列中第一次出现…

JAVA杨辉三角形

杨辉三角形 杨辉三角形(java)首先让我们来实现要求一再来看看要求二对于要求三最后一步给三角形前面加上空格 杨辉三角形(java) 首先让我们来看看杨辉三角形的结构: 要求一:有一个数第二层有两个数要求二:每一层第一个跟最后一个数字都是一**要求三:除了数字一以外其他数字等于…

汉罗塔问题和杨辉三角(java实现)

汉罗塔问题和杨辉三角问题 汉罗塔思路分析:代码: 杨辉三角思路分析代码 汉罗塔 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺…

杨辉三角形 (蓝桥杯) JAVA

目录 题目描述:暴力破解(四成):二分法破解(满分): 题目描述: 下面的图形是著名的杨辉三角形: 如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到…

【leetcode刷题】34.杨辉三角——Java版

⭐欢迎订阅《leetcode》专栏,每日一题,每天进步⭐ 帕斯卡可能是马可波罗的亲戚,马可波罗回到欧洲后,把杨辉三角告诉了帕斯卡,最后帕斯卡漂亮了抄袭了杨辉三角 ——leetcode此题热评 前言 哈喽,大家好&…

使用Java代码实现杨辉三角

什么是杨辉三角 杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合 一般我们见到的图形是这样的 很容易可以看出第三行的2,是上方的…

java 实现打印杨辉三角

package com.shan;import java.util.Scanner;public class YFTriangle {public static void main(String[] args) {printYFTriangle();}/*** 1 要理解下面的实现,首先要明白int数组中元素默认值为 0* 2 然后每一次迭代打印新的一行的元素的时候:* 新的特…

【Java——打印杨辉三角】

文章目录 (一)编程实现(二)讲解知识点1、指定二维数组行数与列数2、指定二维数组行数,不指定列数3、直接使用嵌套大括号“{}”静态初始化二维数组 (三)拓展练习任务1、求二维数组最值及位置任务…

两种方法实现杨辉三角(java实现)

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!欢迎志同道合的朋友一起加油喔🦾🦾🦾 目录 目录 打印杨辉三角形 方法一:顺序表实现 (Arra…

一文搞懂 Base64 , 简单!

Base64是一种用64个字符来表示任意二进制数据的方法。 # Base64 编码表(标准) 相信我们都知道ASCII 编码,从A-Z、a-z、0-9和一些其他的特殊字符,这些字符都有唯一的一个数字来表示。 同理Base64也有这样一套编码。 范围是”A-…

base64原理与实现

1. base64 bse64是一种以64个可见字符集对二进制数据进行编码的编码算法。 1.1 应用范围 base64常用于网络数据传输过程的编解码环节。HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了base64来将一个较长的一个标识符&a…

Base64编码的原理及实现(源码)

Base64编码在邮件中最为常见,呵呵,因为我最近就是在做邮箱报警,SMTP验证就是Base64编码用户名和密码进行验证的,并且附件也是要转换成base64编码的数据,然后再发送的。该编码使用64个明文来编码任意的二进制文件&#…

详述图片base64加密的原理,告诉你什么是“/9j/“

欢迎大家搜索“小猴子的技术笔记”关注我的公众号,有问题可以及时和我交流。 在日常的生活中,我们肯定都经历过类似这样的场景:报名考试上传图片,网站要求的是上传的照片不能大于多少,而且要求是“.jpg”的格式。 于是…

base64编码原理之python应用

base64产生原因? 先看ascii码的图片 scii码的128~255之间的值是不可见字符。而在网络上交换数据时,比如说从A地传到B地,往往要经过多个路由设备,由于不同的设备对字符的处理方式有一些不同,这样那些不可见…

一文搞懂Base64编码原理

Base64是最常见的用于传输8Bit字节码的编码方式之一,它是一种基于64个可打印字符来表示二进制数据的方法。 Base64是什么 Base64编码,是由64个字符组成编码集:26个大写字母AZ,26个小写字母az,10个数字0~9&#xff0c…

Base64编码解码原理

本篇文章主要是从Base64的原理入手,并给出java的Base64实现。方便了解、学习Base64。 base64的简介----摘自于百度百科 一、Base64大致用途 很早之前,电子邮件刚刚问世,那时候消息的传递都是英文,后来中国开通了互联网之后&#…

Java—Base64编码原理

Base64作为java编程中常见的编码方式,经常在各种加密(例如AES、RSA等等)的过程中用来实现加解密中间产物可读性的重要工具,很值得我们去了解一下它的原理。Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Ba…

一文轻松明白 Base64 编码原理

把图片丢进浏览器,打开sources能看到一长串字符串,这是图片的Base64编码。这一长串编码到底是怎么生成的呢? 我们接下来探索一下base64编码的原理 Base64 名称的由来 Base64编码要求把3个8位的字节(3824)转化为4个6…

base64编码原理及代码实现

在ctf里reverse经常会有base64相关的题型,每次写到这类题型只能凭经验猜测考点来解题,特此出一个base64相关的博客,加深对base64的理解,下次再看到伪代码也不会觉得慌了,毕竟纵使实现形式不同,代码的核心逻…