i3型3D打印机制作详解——Marlin固件中文介绍

article/2025/9/12 21:19:35

关注微信公众号:嵌入式基地
后台回复:3d打印机  获取资料

 

硬件框架搭建介绍

https://blog.csdn.net/qq_39020934/article/details/80380250

Marlin固件中文介绍 

https://download.csdn.net/download/qq_39020934/10401251                                   

 

基本配置

使用 Arduino IDE 打开 marlin.ino,切换到 Configuration.h 即可查看并修改该文件。或者使用任何一款文本编辑器(notepad,notpad++等)直接打开 Configuration.h 也可以。Marlin固件的配置主要包含一下几个方面:

1.      通讯波特率

2.      主板类型,所使用的主板类型

3.      温度传感器类型,包括挤出头温度传感器和加热床的温度传感器

4.      温度配置,包括喷头温度和加热床温度

5.      PID 温控参数,包括喷头温度控制和加热床温度控制

6.      限位开关

7.      4 个轴步进电机方向

8.      X/Y/Z 三个坐标轴的初始位置

9.      打印机运动范围

10.  自动调平

11.  运动速度

12.  各轴运动分辨率

13.  脱机控制器

开始介绍

 

电脑和打印机通过串口进行通讯,要定义好端口和波特率,在此定义的是 3D 打印主板的端口和波特率,端口号使用默认的 0 就可以了。Marlin 固件默认的波特率是 250000,也可以修改为其他值,比如 115200,这是标准的 ANSI 波特率值。

#define SERIAL_PORT0

#define BAUDRATE250000

下面定义主板类型,Marlin 固件支持非常多种类的 3D 打印机主板,比如常见的RAMPS1.3/1.4、Melzi、Printrboard、Ultimainboard、Sanguinololu 等控制板。需要注意的是不同主板使用不同的脚口和数量,如果该定义和 Arduino IDE 中使用的主板不一致,肯定会导致编译不通过。笔者使用的是 RAMPS1.4 并且 D8、D9、D10 控制的是一个喷头加热、一个加热床加热和一个风扇输出,因此定义为 33。

#ifndef MOTHERBOARD

#define MOTHERBOARD33

#endif

接下来是定义挤出头的个数及电源类型,笔者使用的是单喷头打印机,因此定义为 1。

 

电源有两种类型可以选择,1 表示开关电源,2 表示 X-Box 360 203 伏电源,一般都使用的是开关电源,因此定义为 1。

#define EXTRUDERS1

#define POWER_SUPPLY1

接下来定义温度传感器类型,包括每个喷头使用的温度传感器(如果是多喷头)和加热床的温度传感器类型,常用的温度传感器有电热偶和热敏电阻两大类,热敏电阻又分为很多种。目前的 3D 打印机主要用的是热敏电阻,具体是哪种热敏电阻需要自己判断或询问卖家,不出意外的话,都是 100k ntc 热敏电阻,即 1。根据注释,1 要求 4.7k 的上拉电阻,而根据 RepRap wiki,几乎所有的 3D 打印机都使用了 4.7K 的热敏电阻上拉电阻。笔者观察了几种电路板的电路图,发现都使用了 4.7K 的上拉电阻,如图 1 所示。

 

// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)

 

笔者的打印机为单喷头,因此第一个喷头的温度传感器配置为 1,其他配置为 0(0 表示没有使用),加热床的温度传感器也配置为 1。

#define TEMP_SENSOR_01

#define TEMP_SENSOR_10

#define TEMP_SENSOR_20

#define TEMP_SENSOR_BED1

 

图  1  4.7K 上拉电阻

 

接下来是温度检测的一些配置,包括双喷头温度差,M109 检测配置,安全温度配置。

 

首先下面这一句配置双喷头温差最大值,如果温度超过这个数值,那么打印机会终止工作,因此对于双喷头打印机玩家来说,这个参数需要注意。

#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10

下面这一段配置 M109 指令完成的指标,我们知道,M109 指令设定喷头温度并等待,那么等待到什么时候呢?下面这三个参数控制这个时间。第一个参数表示温度“接近”目标温度必须持续 10 秒才算加热完成,第二个参数表示和目标温度相差不超过 3°为“接近”,第三个参数表示从温度与目标温度相差不超过 1 度开始计时,从此刻开始,温度和目标温度持续接近 10 秒钟,则完成加热。

#define TEMP_RESIDENCY_TIME 10

#define TEMP_HYSTERESIS 3

#define TEMP_WINDOW 1

下面配置安全温度范围的下限和上限,包括各个喷头和加热床。如果温度超过下限,那么打印机会抛出 MINTEMP 的错误并终止工作,如果超过上限,那么打印机抛出 MAXTEMP 的错误并终止工作。Marlin 用这种方式保护 3D 打印机。下面的配置最小温度都是 5°,喷头的最大温度为 275°,热床的最大温度为 150°。

#define HEATER_0_MINTEMP5

#define HEATER_1_MINTEMP5

#define HEATER_2_MINTEMP5

#define BED_MINTEMP5

#define HEATER_0_MAXTEMP275

#define HEATER_1_MAXTEMP275

#define HEATER_2_MAXTEMP275

#define BED_MAXTEMP150

如果希望 M105 指令在报告温度的时候,也报告喷头和加热床的功率,则可以将下面两句的前面的”//”去掉。具体的功率数值需要用户自己计算得到。

#define EXTRUDER_WATTS(12.0*12.0/6.7)

#define BED_WATTS(12.0*12.0/1.1)


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

相关文章

3D打印机Marlin固件双Z轴设置

3D打印机Marlin固件双Z轴设置 在3D打印机Marlin固件的最新版本2.1.1中,设置双Z轴和老版本有一些改动。记录一下如何在最新版本的Marlin固件中设置双Z轴。 以MKS GEN_L V2.1的主板为例,硬件连接还是和原来一样,第二个Z轴的电动机连接到空闲的…

Marlin 固件配置手动退换料

换料的步骤首先把喷头加热,软化喷嘴里残余的线材,然后反转挤出机,把线材抽出来。最后装入新线材,并挤出余留在喷头里的材料。整个过程用一个命令 M600 就能完成。默认情况下 Marlin 固件并没有开启这个功能,但是可以修…

MKS_SGEN_L V1.0 marlin 固件编译

1.下载 Visual Studio Code 打开Visual Studio Code 安装插件 在应用商店搜索下载安装如下图: 安装完这些还是不行的 还要另外安装python 3.8.8 其他版本python 不行右下角会报错,提示安装python 3.8 python 3.8.8 百度网盘下载链接:https://pan.bai…

3D打印机硬件驱动-马林固件最新版本2.0.X中文注释(1)marlin 2.0.9.2 截至发稿时间2021年12月16日

马林固件最新版本翻译注释 /* Marlin Firmware 马林固件 (c) 2011-2020 MarlinFirmware Portions of Marlin are (c) by their respective authors. 马林部分程序来源于世界各地的开发者 All code complies with GPLv2 and/or GPLv3 所有源码依靠GPLv2 和 GPLv3架构编写…

Marlin固件学习总结(一)

接触过3D打印也有一段时间了,一直没有将学到的知识以文本的形式记录下来。现在也没有太多时间继续玩这个了,因此想慢慢把之前所接触到所学到的知识通过文本的形式记录一下,也分享给那些感兴趣的人。 既然是开篇我们先了解一下marlin固件的结构…

Marlin固件之二:源代码详解与移植

由于需要进行固件定制化,Marlin固件太过于强大和紧凑,我对这个固件进行了裁剪,只剩下主枝干,实现功能的定制和裁剪。以下的代码详解是基于我已经移植在stm32上面的一个程序进行的。

Marlin固件之—:基础入门与测试

一、Marlin的简单介绍 Marlin固件是一个3D打印的开源固件,3D打印固件有许多,Marlin最为健全和强大,当然相对也会复杂一些。使用Gcode控制爱,Gcode是数控机床等工控控制使用范围较广的一种指令协议。在这里介绍一些Marlin的入门经…

Marlin固件介绍

目录 什么是Marlin? 主要特点 Marlin如何工作 打印东西 建模 …

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…