编译固件
重要提示:首次使用 Grbl_Esp32 对 ESP32 进行编程时,请确保它未连接到控制器护罩。任何以前的固件都可能将引脚置于通电时损坏 ESP32 的状态。对其独立编程并首先通过 USB 验证固件。切勿在通电时插入 ESP32 或任何其他物品。
从 Arduino IDE 中的开发板管理器安装 ESP32 库。选择版本 1.0.3。1.0.4 及更高版本中的最新更改存在阻止在 Grbl_ESP32 中正确使用的错误。
注意:如果您使用的机器定义包括Custom文件夹中的文件。您必须使用PlatformIO进行编译。
您必须在 Tools…Partition Scheme… 菜单下选择Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)分区方案,否则固件将放不下。
使用这些设置
获取源文件
将主分支下载为 zip 文件或使用 Git(首选)。根本不要改变文件夹结构。这些文件必须位于正确的文件夹中。
复制库
一些库必须添加到 Arduino IDE。将Libraries文件夹中的文件夹复制到计算机上 Arduino 文件夹中的 libraries 文件夹中。通常是一些文件夹,如“…\Documents\Arduino\libraries”(Windows 计算机)。
注意:即使你正在编译一个分支,最好从主分支复制库。主分支经常更新以跟踪最新 Espressif Arduino Core 的变化。
TMCStepper 库:将TMCStepper库添加到 Arduino IDE。使用以下菜单单击sketch…include libraries…manage libraries 来执行此操作。然后搜索 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。如果您的硬件与其中一台预定义的机器不匹配,您可以创建自己的文件,也许使用其中一台预定义的机器作为起点。请参阅此维基页面。在 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 重置按钮,然后您应该会看到这样的启动消息
如高亮部分所示,该消息包含一些有用的信息,包括所选的 pin 图、Web 用户界面的当前 WiFi 设置以及 Grbl 登录消息。如果固件崩溃,串行输出将显示可能有助于调试的信息。
首次运行错误
如果在固件首次运行时串行监视器处于打开状态,您可能会看到错误7和其他可能的错误。这很正常 – Grbl_Esp32 正在尝试加载尚不存在的已保存设置,因此它会加载默认值。您应该不会再看到该错误。
下一步
您可以从串行接口控制 Grbl_Esp32 固件 – 与运行 AVR Arduino 的 Grbl 相同 – 或者直接通过 WebUI 通过 WiFi 连接。
在串行情况下,您可以使用 Arduino 串行监视器 – 或任何终端仿真器程序 – 发送您直接键入的 Grbl 和 GCode 命令。当您想让事情变得简单时,这对于初始检查、Grbl 配置和探索很有用。例如,您可以在 Arduino 串行监视器窗口顶部的命令输入行中键入“$$”,然后点击“发送”按钮,Grbl 将显示其配置设置列表。“?” 将使 Grbl 显示状态报告。您可以发送简单的 GCode 命令(如“G0 X10”)移动到特定坐标,以进行基本电机测试。
串行接口也可以与任何“GCode Sender”程序一起使用,例如此处列出的程序。在这种情况下,Grbl_Esp32 的行为就像在 AVR 上运行的 Grbl,只是您可能需要手动重置
无需使用串行接口和 GCode 发送程序,您可以直接通过 WiFi 控制 Grbl_Esp32,在同一网络上的任何计算机上使用 Web 浏览器。这是一项强大的功能,可以降低总体系统成本、提高性能并消除串行 GCode 发送器的许多常见缺点。要开始使用此WebUI功能,请参阅Grbl_ESP32 的 ESP3D Web UI
其他固件上传错误
在某些开发板上,连接失败并给出类似“正在连接…………………… ”的消息很常见。Arduino IDE 无法将 ESP32 置于引导加载程序模式。尝试按住启动按钮,直到它通过“正在连接…”阶段。小心不要触摸按钮附近的任何引脚。这可能会在上传过程中干扰闪存。从 ESP32 RST 到地添加一个 2.2uF 到 10uF 的电容可以消除这个问题(这里没有保证或支持)。
引导加载程序也有很多 I/O 限制。请参阅此参考。
您可能还会看到闪存错误。一些开发板在连接到防护罩时难以编程。尝试在编程时将开发板从扩展板中移除。
WiFi固件上传
使用 Grbl_ESP32 对电路板进行一次编程后,可以通过 WiFi 上传新固件。此功能称为 OTA – Over The Air – 编程。WebUI…ESP3D 选项卡有一个固件上传按钮(黄色云)。如果您通过文件…首选项菜单将 Arduino IDE 编译器置于详细模式,它将显示编译 (.bin) 文件所在的目录,因此您可以选择该文件进行 OTA 上传。