在ESP32开发板上安装Marlin

ESP32是一块性价比极高的开发芯片,一块板子里面集成了Wifi,蓝牙等无线连接,而且价格才三四十元就有交易了,性价比极高。最近Marlin 2.0.x发布,Marlin宣布开始支持ESP32系列的3D打印机主板,抱着一颗好奇的心,试验一下用ESP32来控制一下我的3D打印机。

开发工具

我推荐使用VS Code + PlatformIO IDE作为开发和编译的工具,虽然Arduino也能进行编译和上传。VS Code更友好的界面和Platform IO的各种构建任务,令我瞬间爱上这款开发工具。以下的开发环境都会根据VS Code + PlatformIO IDE介绍。

(VS Code和PlatformIO的安装我会在另一篇文章介绍,本文专注Marlin编译)

ESP 32驱动程序

要上传代码的话,要先安装ESP32的驱动程序 驱动程序 我用Mac Pro编译,选择Macintosh 检查以下PlatformIO的PIO Home->Devices->Refresh一下就能看到ESP32通过USB连上了。

源代码

由于Marlin的ESP 32支持还算是在开发阶段,因为在最新的Marlin代码中,即使你编译都完了,但是用不了最新但ESP3D Web界面的。因此,Git Clone完Marlin代码时要把代码改成 bugfix-2.0.x分支。

git clone -b bugfix-2.0.x https://github.com/MarlinFirmware/Marlin.git

如果将来bugfix都改好来,相信这些代码会汇入主干。 打开VS Code后,要检查左下角的branch是否已经指向bugfix-2.0.x

修改环境参数来构建ESP32版Marlin

  1. $1

  2. $1

  3. $1

  4. $1

  5. $1

  6. $1

  7. $1

编译和上传

PlatformIO底部提供了快捷的Build和Upload快捷键,如果只是编译代码是问题不大的,但要Upload的话,我建议使用Project Tasks的Upload and Monitor,可以通过点击左侧外星人头像进入,因为上传完通常需要马上检查输出,才直到是否正常连上wifi。

启动ESP32和上传ESP3D的网页界面

编译完成后,如果wifi也正常连上了,可以在路由器找到esp32的IP,在浏览器直接打开。 等网页时提示index.html.gz缺失,需要从ESP3D下载再上传。 下载地址

然后就可以打开ESP3D的界面

ESP3D支持打印机控制,Gcode打印,Wifi相关设置,也支持AP Mode的设置,麻雀虽小,五脏俱全。

ESP32 Pin连线

关于ESP32 Pin的接线,可以在Marlin\src\pins\esp32\pins_ESP32.h文件中找到定义,但发现Pin部分大于100的Pin,应该是不正确的。因为ESP32 pin口只有42个,再看看文件最后修改日期是半年前,那应该不准确了。于是,我参考主板MRR ESPA,进行重新定义,列出来给大家参考。