基于Marlin的3D打印机网络接口设计与实现

2021-10-09 09:44:38朱文琦
自动化仪表 2021年9期

朱文琦

(河南工业职业技术学院自动化工程学院,河南 南阳 473000)

0 引言

当前的3D打印机固件有很多种,其中Sprinter、Marlin有非常多的使用者。Sprinter功能相对简单、基本功能齐全,而Marlin的功能相对复杂、强大。Marlin固件是桌面级3D打印机固件中较流行的一种。因为其开源的特点,很多桌面级或工业级3D打印机都基于该固件。它使用Arduino Mega2560主板,使用者只需进行适当的配置就可以进行基本的打印,而且目前配置的说明文档也比较丰富。由于开源的特点,其已成为很多3D打印企业和科研院校研究3D打印机的首选[1]。

Marlin固件具有驱动控制板、读取与解析G代码、控制挤出头和加热板的温度、检测挤出头和加热板的温度、读取SD卡、支持液晶显示屏(liquid crystal display,LCD)等功能,但不支持网络连接。而Marlin硬件并不包含以太网接口,所以给使用Marlin而有远程网络打印需求的用户带来很多不便[2]。本文基于W5x00网络接口扩展板,对Marlin进行改造,使其具有连接到云打印平台的属性和功能,以满足更多应用场合的需求。

1 当前的网络接口方式

当前大多数基于Marlin的网络打印采用了另接一块ARM板,通过ARM板上的网络接口与外界进行网络连接,同时通过USB串口与Mega2560进行通信。这块ARM板是连接LAN/WAN与Mega2560主板的桥梁。

目前,常用网络连接方式如图1所示。这块ARM板可能是基于ARM的定制板卡,如图1(a)所示;也可能是通用的基于树莓派开发板卡,如图1(b)所示。

图1 常用网络连接方式

通常来说,这块ARM包含一个操作系统,比如嵌入式Linux系统。目前,很多企业和组织采用的是基于图1(b)的连接架构,比如说当前比较流行的OctoPrint开源应用[3]。……

登录APP查看全文