重要提示:首次使用 Grbl_Esp32 对 ESP32 进行编程时,请确保它未连接到控制器屏蔽。任何先前的固件都可能使引脚处于在通电时损坏 ESP32 的状态。请先对其进行未连接的编程,然后通过 USB 验证固件。切勿在通电时插入 ESP32 或任何其他物品。
从 Arduino IDE 中的主板管理器安装 ESP32 库。选择版本 1.0.3。1.0.4 及更高版本中的最新更改存在错误,导致无法在 Grbl_ESP32 中正常使用。
注意:如果您使用包含自定义文件夹中文件的机器定义,则必须使用PlatformIO进行编译。
您必须在工具…分区方案…菜单下选择最小 SPIFFS(1.9MB APP 带有 OTA/190KB SPIFFS)分区方案,否则固件将不适合。
使用这些设置
将主分支下载为 zip 文件或使用 Git(首选)。请勿更改文件夹结构。文件必须位于正确的文件夹中。
必须将一些库添加到 Arduino IDE。将Libraries文件夹中的文件夹复制到计算机上 Arduino 文件夹中的库文件夹中。通常是一些文件夹,如“…\Documents\Arduino\libraries”(Windows 计算机)。
注意:即使您正在编译分支,最好也从主分支复制库。主分支会经常更新以跟踪最新 Espressif Arduino Core 中的变化。
TMCStepper 库:将TMCStepper库添加到 Arduino IDE。通过以下菜单点击执行此操作:草图…包括库…管理库。然后搜索 TMCStepper 并添加库。即使您不使用 Trinamic 步进驱动器,也需要它。
固件必须经过自定义编译才能与您的系统匹配。每个屏蔽都有特定的 ESP32 引脚与屏蔽上的功能连接 – 步进插座、主轴控制、限位引脚等。此外,机器可以使用屏蔽的方式与屏蔽上的标签不匹配。自定义是通过“机器定义文件”完成的。Machines/ 子目录中有预配置的机器定义文件。如果它适合您的机器,您可以按原样使用其中一个,或者您可以制作一个新的以匹配您的设置。选择或制作合适的文件后,您可以通过编辑文件“Grbl_Esp32/src/Machine.h”以“#include”您的文件来选择它。
历史记录:Grbl_ESP32 的旧版本使用单个“cpu_map.h”文件在一个文件中定义所有可能的配置,并使用 #ifdef 行来选择特定配置。“config.h”中的一行定义了一个机器名称,该名称决定了 cpu_map.h 中代码的包含和排除。这变得难以处理,因此 cpu_map.h 文件被拆分为单独的文件,每个基本配置一个文件。
默认设置是测试驱动模式,通过Machine.h 中的#include “Machines/test_drive.h”行进行选择。它会创建一个虚拟的 3 轴机器,您可以单独在 ESP32 开发模块上或连接到任何硬件上安全地使用它。它实际上不会改变任何引脚的状态,因此可以安全使用,而不必担心输入引脚浮动或输出引脚短路。
要与实际硬件一起使用,您必须使用 Machines/ 子目录中现有的机器定义文件之一,或者创建自己的文件。例如,Grbl_ESP32 开发板使用文件Machines/3axis_v4.h。如果您的硬件与预定义机器之一不匹配,您可以创建自己的文件,也许可以使用预定义文件之一作为起点。请参阅此 wiki 页面。在 Machine.h 中,#include 您的文件而不是 Machines/test_drive.h。
重要提示:某些屏蔽具有使用不同引脚的修订级别。不同修订版本有单独的机器定义文件。请确保使用正确的文件。
通过 USB 线将 ESP32 连接到计算机。Arduino 的工具 > 端口菜单中应出现串行端口选项
选择与您的 ESP32 对应的串行端口。如果显示多个串行端口,您可以通过断开 ESP32 的连接,然后重新打开“工具”下拉菜单来查看哪个端口不再在列表中,从而确定适用的串行端口。然后重新连接并选择重新出现的端口。
单击上传按钮开始编译/上传过程。
状态栏应该显示“正在编译草图…”,一段时间后,上传过程将开始。状态栏下方的窗口显示编译结果和上传进度。您可以滚动该窗口以在顶部查看编译状态,如下所示
滚动到底部查看最终上传结果,如下所示
如果上传不成功,像这样
串行端口不再通过 USB 电缆连接,或者串行端口已在使用中,可能已连接到其他终端仿真程序或 GCode 发送程序。确保它已物理连接,断开可能正在使用它的任何其他程序,然后重试 Arduino 上传。
有关其他可能的上传问题的解决方案,请参阅下面的其他固件上传错误。
编译期间你可能会看到几个警告。它们大多数来自库,应该被忽略。
- 警告:库 TMCStepper 声称可以在 avr 架构上运行
- 找到“SD.h”的多个库
- 找到“WiFi.h”的多个库
- ..还有一些其他的
上传固件后,使用 Arduino 串行监视器以 115200 波特率连接到串行端口(如果您愿意,可以使用任何终端仿真器或 GCode Sender 程序)。按下 ESP32 重置按钮,然后您应该会看到如下启动消息
如突出显示所示,该消息包含一些有用的信息,包括所选的引脚图、Web 用户界面的当前 WiFi 设置以及 Grbl 登录消息。如果固件崩溃,串行输出将显示可能有助于调试的信息。
如果固件首次运行时串行监视器处于打开状态,您可能会看到错误 7以及其他错误。这是正常的 – Grbl_Esp32 正在尝试加载已保存的设置,这些设置尚不存在,因此它会加载默认值。您不应该再看到该错误。
您可以通过串行接口控制 Grbl_Esp32 固件 – 与使用 Grbl 运行 AVR Arduino 相同 – 或者直接通过 WebUI 通过 WiFi 连接控制。
在串行情况下,您可以使用 Arduino 串行监视器(或任何终端仿真程序)发送您直接键入的 Grbl 和 GCode 命令。当您想保持简单时,这对于初始检查、Grbl 配置和探索非常有用。例如,您可以在 Arduino 串行监视器窗口顶部的命令输入行中键入“$$”,然后单击“发送”按钮,Grbl 将显示其配置设置列表。“?”将使 Grbl 显示状态报告。您可以发送简单的 GCode 命令(如“G0 X10”)以移动到特定坐标,以进行基本的电机测试。
串行接口还可以与任何“GCode Sender”程序一起使用,例如此处列出的程序。在这种情况下,Grbl_Esp32 的行为就像在 AVR 上运行的 Grbl 一样,只是您可能需要手动重置
您无需使用串行接口和 GCode 发送程序,而是可以使用同一网络上任何计算机上的 Web 浏览器通过 WiFi 直接控制 Grbl_Esp32。这项功能非常强大,可以降低整体系统成本、提高性能并消除串行 GCode 发送器的许多常见缺点。要开始使用此WebUI功能,请参阅Grbl_ESP32 的 ESP3D Web UI
某些开发板上经常会出现无法连接并显示“正在连接…… ……”之类的消息的情况。Arduino IDE 在将 ESP32 置于引导加载程序模式时遇到问题。尝试按住启动按钮,直到它经过“正在连接……”阶段。注意不要触摸按钮附近的任何引脚。这可能会在上传过程中干扰闪存。在 ESP32 RST 到地面之间添加 2.2uF 到 10uF 电容可以消除此问题(这里不保证或支持)。
关于引导加载程序还有很多 I/O 限制。请参阅此参考。
您还可能会看到闪存错误。有些开发板在连接到屏蔽时无法进行编程。尝试在编程时将开发板从屏蔽上移除。
使用 Grbl_ESP32 对电路板进行一次编程后,就可以通过 WiFi 上传新固件。此功能称为 OTA(无线编程)。WebUI…ESP3D 选项卡有一个固件上传按钮(黄色云)。如果您通过文件…首选项菜单将 Arduino IDE 编译器置于详细模式,它将显示编译 (.bin) 文件所在的目录,因此您可以选择该文件进行 OTA 上传。