当前位置:首页 > 公众号精选 > 嵌入式云IOT技术圈
[导读]击上方“嵌入式云IOT技术圈”,选择“置顶/星标公众号”干货福利,第一时间送达!1、Marlin2.0参数存储M命令Marlin2.0的存储功能主要依靠EEPROM来进行,Marlin也提供了相应的M代码来协助3D打印爱好者进行调试,这些参数配置完毕以后可以存储在单片机的EEPR...

击上方“嵌入式云IOT技术圈”,选择“置顶/星标公众号

干货福利,第一时间送达!

1、Marlin2.0 参数存储M命令

Marlin2.0 的存储功能主要依靠 EEPROM 来进行,Marlin也提供了相应的M代码来协助 3D 打印爱好者 进行调试,这些参数配置完毕以后可以存储在单片机的 EEPROM 中,关于 EEPROM 的操作,主要有如下 指令:

比如我们可以通过串口来更改 PID 值、步进电机运行的加速度和最大速度的设置,设置完毕以后输入以 上对应的存储指令 M500 即可完成参数的保存,如下所示:

以上这些参数都可以通过串口进行修改,有一些支持LCD的机器,也可以通过LCD进行修改,修改参数 后可以调用 M503 获取设置的结果:

但是这个结果是当前生效,当设备断电重启后,设置的参数也就消失了,如果想要断电保存,则需要设 置完参数以后调用 M500 命令进行保存,然后通过 M501 读取保存的结果,如果想恢复成原来的参数,也 可以通过 M502 命令将参数恢复到出厂前。

2、Marlin2.0 参数存储方式代码分析

当我们在串口输入M代码的时候,程序会执行到Gcode.cpp中对应的 case 分支:

case 'M':
switch (parser.codenum)
{
  //....
  case 500: M500(); break;  // M500: 将设置好的参数保存到EEPROM中
  case 501: M501(); break;  // M501: 从EEPROM中读取设置参数
  case 502: M502(); break;  // M502: 恢复参数为出厂前的状态
  #if DISABLED(DISABLE_M503)
  case 503: M503(); break;  // M503: 打印当前设置的参数(不是从EEPROM中读取)
  #endif
  //...
 ...
}
可左右滑动查看
对应的M代码实现位于Marlin/src/gcode/eeprom/M500-M504.cpp中:

//M500:将设置好的参数保存到EEPROM中
void GcodeSuite::M500() {
  (void)settings.save(); //MarlinSettings settings;
}
//M501:从EEPROM中读取设置参数
void GcodeSuite::M501() {
  (void)settings.load(); //MarlinSettings settings;
}
//M502:恢复参数为出厂前的状态
void GcodeSuite::M502() {
  (void)settings.reset(); //MarlinSettings settings;
}
#if DISABLED(DISABLE_M503)
 //M503:打印当前设置的参数(不是从EEPROM中读取)
 void GcodeSuite::M503() {
 (void)settings.report(!parser.boolval('S'true)); //MarlinSettings
settings;
}
#endif // !DISABLE_M503
可左右滑动查看
Marlin的参数存储主要是依靠 MarlinSettings 类来实现,位于Marlin/src/module/Settings.h以 及Marlin/src/module/Settings.cpp中,最终会调用到具体的存储硬件的读写函数。

往期精彩

开源Marlin2.x源代码架构学习笔记

步进电机驱动在3D打印应用的学习笔记(一)

光固化3D打印悬空和支撑讲解

3D打印过程与最近的学习成果

两个最常用的3D打印机切片软件

3D打印机marlin固件框架与GCode命令总结

3D打印机Marlin固件串口功能解析和程序移植

让野火F103开发板支持Marlin2.0固件是什么体验?3D打印主控板成员 1

C语言映射表在嵌入式串口解析、UI设计中的应用(值得收藏并实践的精华帖)

觉得本次分享的文章对您有帮助,随手点[在看]并转发分享,也是对我的支持。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在下述的内容中,小编将会对3D打印的相关消息予以报道,如果3D打印是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 3D打印 ABS

3D打印是一种增加型制造,通过数字建模等方式获取扫描数据,基于数据将打印产品分割成截面,将这些截面逐层堆积成型。FDM工艺生产简单,操作安全,基本无污染,可打印材料种类多,且成型速度较快,精度较好,制造成本较低,因此FD...

关键字: FDM技术 3D打印 打印精度

上海2023年9月13日 /美通社/ -- 在国家会展中心(上海)举行的 TCT ASIA 亚洲3D打印、增材制造展览会上,全球高端装备领域的领导者德国通快集团(TRUMPF)展出了激光选区熔化(Laser Metal...

关键字: 3D打印 PRINT 金属 LASER

上海2023年9月11日 /美通社/ -- 智在有型,自在无形。2023年9月11日,由联泰科技与峻宸智造联合举办的透明3D打印技术交流会圆满落幕!活动现场,各行业专家、业内大咖齐聚一堂,共同探讨增材制造技术在透明件制造...

关键字: 3D打印 泰科 3D打印技术 工业级

北京2023年8月16日 /美通社/ -- 近日,在备受业界关注的OCP China Day 2023(开放计算中国技术峰会)上,面对多元算力平台运维管理方面的重重挑战,浪潮信息正式发布了基于OpenBMC的I...

关键字: 固件 PEN 开源 芯片

近日,ELEGOO爱乐酷带来了Mars 4、Mars 4 Ultra、Neptune 4Pro三款3D打印机,并将发布一款PHECDA激光雕刻机,多款新机型吸引了众多用户目光。

关键字: 3D打印

北京2023年8月7日 /美通社/ -- "多元算力时代下,大规模的异构服务器设备面临多种处理器架构、多种设备协议、不同管理芯片兼容的系统化设计挑战,管理固件也迎来新的变革。开源开放的OpenBMC,以创新的分...

关键字: 开源 PEN 固件 数据中心

3D打印技术(3D modeling)是一种数字化制造技术,通过逐层堆积物料来创建三维物体。近年来,随着技术的不断进步,3D打印技术在各个领域都得到了广泛的应用和发展。本文将探讨3D打印技术在各领域的发展状况和趋势。

关键字: 3D打印 数字化 人工智能

3D打印技术,又称为增材制造技术,是一种利用数字模型文件,通过逐层堆叠材料来构建物体的技术。近年来,3D打印技术在各个领域取得了显著的进展,成为制造业、医疗、航空等行业的热门技术。通过计算机辅助设计(CAD)模型来实现物...

关键字: 3D打印 辅助设计 计算机

3D打印技术是一项革命性的技术,它以其快速、灵活和精确的特点,正在广泛应用于各个领域,其中包括汽车工业。3D打印技术的出现和应用,为汽车领域带来了巨大的发展机遇和创新空间。

关键字: 3D打印 汽车 智能化
关闭
关闭