开源改变世界!!

Grbl hal连接 #142

推推 grbl 2年前 (2023-02-12) 293次浏览
打开
arlimbad222 打开了这个问题 2021 年 5 月 26 日 · 43条评论
打开

Grbl hal连接#142

arlimbad222 打开了这个问题 2021 年 5 月 26 日 · 43条评论

评论

Grbl hal连接 #142

你好@zeevy @terjeio

我正在将 grbl 切换到 grbl hal 是否可以将 grbl hal 与我正在尝试使用蓝牙的这个应用程序连接,但它不起作用但是使用 ugs 我可以通过 grbl hal 连接 arduino。

https://github.com/terjeio/grblHAL

Grbl hal连接 #142
所有者

它应该使用正确的波特率设置。并且 statup 字符串应该是相同的 grbl

Grbl hal连接 #142

你好@zeevy

波特率设置正确,但我应该为启动字符串设置什么,你能解释一下吗?我不明白启动字符串的含义。

感谢您的快速回复。

Grbl hal连接 #142

有关信息,请参阅此维基页面

用于 8 位 Arduino 控制器的 Grbl 在连接时重置处理器的硬件上运行,这会导致 Grbl 自动发送启动消息(或字符串)。许多运行 grblHAL 的控制器不会执行此重置,而且通常也无法检测到连接。对于这些发送者将永远等待一个永远不会到来的响应,除非他们查询控制器以检测它的存在。

然后是启动消息本身,grblHAL 有许多新功能,默认情况下发送与 vanilla Grbl 略有不同的消息,以便发送者可以调整,一些发送者不认识这一点。这可以通过在编译前设置兼容级别来更改。

Grbl hal连接 #142

你好@terjeio @zeevy

所以据我所知,我必须更改此控制器的兼容级别,对吗???

Grbl hal连接 #142

所以据我所知,我必须更改此控制器的兼容级别,对吗???

尝试并没有什么坏处。浏览此发件人的问题似乎可以配置消息以便grblHAL接受,这也可以解决问题。但是编译兼容级别 > 0 的 grblHAL 可能是更安全的选择。

Grbl hal连接 #142

你好@terjeio

好的,我会尝试不同的级别,然后回到这里。

Grbl hal连接 #142

你好@zeevy @terjeio

我几乎尝试了每个兼容级别,但我无法连接蓝牙,但应用程序和 grbl 之间没有通信我接下来应该尝试什么我在此处附上一些照片。

Grbl hal连接 #142

Grbl hal连接 #142

Grbl hal连接 #142

您是否有可用于检查蓝牙连接的计算机或应用程序。通过终端窗口(例如 Windows 的 PuTTY)连接并手动发送命令,$I以获取控制器信息 –?实时状态。如果这些没有响应,则某处有问题。

原因之一可能是控制器中配置了错误的串行端口,或者 RX/TX 引脚未正确接线(未交叉)。您连接的引脚与 USB 编程端口共享,不知道这是否是个问题,也许尝试#define SERIAL_DEVICE 2使用这些引脚?

Grbl hal连接 #142

你好@zeevy @terjeio

我尝试为我的 Android 设备使用兼容级别 2 和 USB 连接,它运行良好,但使用蓝牙时会产生问题,我不知道为什么????

Grbl hal连接 #142

我不知道为什么????

它可以像将 USB 电缆插入编程端口一样简单,因为您将模块连接到 (RX/TX) 的引脚与此共享。也许它可以在拔下 USB 电缆并将外部电源连接到桶形插孔的情况下工作?或者切换到使用这些引脚的串行设备 2:

#define SERIAL_RX PIO_PB21A_RXD2
#define SERIAL_TX PIO_PB20A_TXD2
Grbl hal连接 #142
所有者

你好@zeevy @terjeio

我尝试为我的 Android 设备使用兼容级别 2 和 USB 连接,它运行良好,但使用蓝牙时会产生问题,我不知道为什么????

应用程序正在使用 USB 连接?

Grbl hal连接 #142

你好@zeevy

是的应用程序与 usb otg 完美配合。

Grbl hal连接 #142
所有者

好的,那么作为@terjeio上述问题可能出在蓝牙模块的物理连接或模块的波特率上。

  1. 检查物理连接
  2. 使用 Arduino IDE 或任何其他工具验证模块的波特率。(确保蓝牙波特率和固件波特率都相同)
Grbl hal连接 #142

你好@zeevy @terjeio

我正在尝试为电路板提供外部电源,然后通过蓝牙连接但仍然无法正常工作

我有一个备用的 Arduino mega2560,我用它尝试我的蓝牙模块,它现在工作正常,这不是蓝牙模块问题。

而且我在 grbl hal 中找不到任何波特率设置任何线索@terjeio如何设置波特率?Grbl hal连接 #142

Grbl hal连接 #142

如何设置波特率?

您必须编辑grbl/serial.c – 第 46 行。

我检查了我的 Due,USB 和 UART 模式可以同时使用(!)引脚 0 和 1 连接到 USB <> RS232 芯片,所以它们并行工作,我不知道。由于 USB 正在通信,那么是否可能是您的 Due 出现了某种故障?我有一个原始的 Arduino Due,你的是一个克隆?如果您有电压表,请检查引脚 0 和 1 上的电压是否为 3.3V。

Grbl hal连接 #142

@arlimbad222我已经检查了其他端口的串行代码,但它们不起作用,我将尽快提交修复程序,允许从my_machine.h中选择端口。

在测试默认端口(引脚 0 和 1)时,我发现它对负载很敏感,即使连接示波器探头有时也会使其停止工作。也许蓝牙模块也会干扰它?测试此方法的一种方法是在连接蓝牙模块时尝试通过 USB 端口进行通信,如果这不起作用,则蓝牙模块正在阻止通信。

另一个可能在起作用的问题是 Due 是一个 3.3V 设备,如果蓝牙模块是 5V(从上图中看起来是这样)那么这可能是它不起作用的原因。如果连接 5V 设备,您还有损坏 Due 的风险!

Grbl hal连接 #142

你好@terjeio

我正在使用 hc-05 蓝牙模块,它是 3.3v 模块,所以电子设备不是问题,我用 Android 应用程序测试了 usb,它工作正常,但不知何故蓝牙产生了问题,我花了几个小时来解决这个问题,但我做不到这可能使用另一个 TX-RX 引脚进行通信。

感谢您的快速回复。

Grbl hal连接 #142

Grbl hal连接 #142

Due 驱动程序现在更新了我上面提到的修复程序。

连接蓝牙模块后,您是否尝试过 USB 通信?如果可以,是否可行?

Grbl hal连接 #142

你好@terjeio

我不明白你在说什么,因为我知道我使用 PC 的 USB 连接,然后连接蓝牙,然后再次检查,我是对的。

您在 TX-RX 引脚的代码中更新了什么以及如何更改通信引脚?

Grbl hal连接 #142

我不明白你在说什么,因为我知道我使用 PC 的 USB 连接,然后连接蓝牙,然后再次检查,我是对的。

是 – 当连接蓝牙模块时 USB 通信应该工作,因为它们并行连接到相同的处理器引脚。如果 USB 通信不再可能,那么蓝牙模块会阻止它,我认为它也无法工作。

您在 TX-RX 引脚的代码中更新了什么以及如何更改通信引脚?

其他端口根本不起作用,因此修复是针对它们的。可以通过编辑my_machine.h来选择其他端口,该文件中有它们使用哪些引脚的信息。

Grbl hal连接 #142

你好@terjeio

好的,我会在早上之前更改该引脚并再次测试并返回这里

感谢您的快速回复

Grbl hal连接 #142

Due 驱动程序现在更新了我上面提到的修复程序。

连接蓝牙模块后,您是否尝试过 USB 通信?如果可以,是否可行?

你好@terjeio

我刚刚下载了这个代码 zip 文件,但是当我提取文件时,grbl 文件夹是空的任何解决方案?

Grbl hal连接 #142

我刚刚下载了这个代码 zip 文件,但是当我提取文件时,grbl 文件夹是空的任何解决方案?

新的 repo 使用子模块,因此请参阅此页面,该页面也链接到驱动程序页面。

Grbl hal连接 #142

你好@zeevy @terjeio

我从我这边尝试了一切可能,结果是我可以通过使用串行蓝牙 Android 应用程序从蓝牙模块 hc-05 读取输出,但是每当我将代码发送到板上时,没有任何解决方案发生。

我在 (115200,1,0) 处使用 hc-05 停止位是 1 是蓝牙配置有什么问题吗?

Android 应用程序 – https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal

Grbl hal连接 #142

Grbl hal连接 #142

Grbl hal连接 #142
所有者

从您分享的图片来看,应用程序似乎无法识别 grbl 固件,似乎没有任何按钮处于活动状态。
连接 bt 后,您可以在选择控制台选项卡的情况下发布图像吗?

Grbl hal连接 #142

Grbl hal连接 #142

你好@zeevy

我现在不在办公室,我会在早上分享。但我可以将应用程序与 USB 连接,并且应用程序可以完美运行,但是当涉及到蓝牙时,它会产生一些问题。

我的想法是,如果它适用于 USB,那么这不是 grbl 问题。

感谢您的快速回复

Grbl hal连接 #142
所有者

连接蓝牙后,我们应该会在控制台选项卡中看到一些内容。
如果什么都没有那么我能想到两个可能的原因

  1. 蓝牙模块波特率问题。
  2. BT模块和cnc板之间的连接问题
Grbl hal连接 #142

你好@zeevy

波特率不是问题,因为我有一个带有 grbl mega 5x 的备用 Arduino mega 2560,它可以与您的应用程序一起使用相同的蓝牙模块正常工作,这就是我对问题感到困惑的原因。

我认为@terjeio帮我这个

Grbl hal连接 #142

我尽我所能

那么您是否尝试过所有可用的串口?请注意,如果板图正在使用某些功能,则无法使用。最安全的尝试是将 SERIAL_DEVICE 设置为 2,因为这些引脚未被任何板图 (IIRC) 分配用于其他目的。

我在 (115200,1,0) 处使用 hc-05 停止位是 1 是蓝牙配置有什么问题吗?

不。

我已经用最新的代码测试了所有端口,但是用的是 FTDI 分线模块而不是蓝牙模块,因为我没有,无论如何,它们的行为应该与从控制器看到的一样。

Grbl hal连接 #142
作者
阿林巴德222 评论了 2021 年 5 月 31 日  

你好@zeevy

我尝试通过 Arduino 串行监视器发送代码
并通过 grbl 控制器连接蓝牙,我发现应用程序未连接但它从板和应用程序控制台接收 deta 显示这些代码。所以基本上我可以从板上接收数据但不能发送数据。有什么解决办法吗???Grbl hal连接 #142
Grbl hal连接 #142

你好@terjeio

我也尝试通过 tx rx pin 连接 Arduino uno,结果与 Android 应用程序相同,我 Arduino 可以接收数据但不能发送代码。我附上了一些图片希望你能理解我想做什么。Grbl hal连接 #142Grbl hal连接 #142

Grbl hal连接 #142
所有者
疯狂的 评论了 2021 年 5 月 31 日  

看起来蓝牙 Tx 到 CNC 板 Rx 线断开或不工作。

你的启动字符串是什么?如果您有不同的启动字符串,那么应用程序可能无法运行,它应该是“Grbl 1.1f”

Grbl hal连接 #142

首先,不要将 5V 板(Arduino Uno)连接到 3.3V 板(Due),否则您可能会损坏 Due 引脚甚至整个 MCU!我从经验中知道这是个坏主意……

你有没有通过切换到串行 2 来尝试蓝牙模块?

像这样更改my_machine.h

//#define USB_SERIAL_CDC 1 // 使用本机 USB 端口进行通信。
//#define SPINDLE_HUANYANG 1 // Huanyang VFD 主轴设置为 1 或 2。需要主轴插件。
//#define KEYPAD_ENABLE 1 // I2C 键盘用于慢跑等,需要键盘插件。
//#define EEPROM_ENABLE 1 // I2C EEPROM 支持。24LC16(2K) 设置为 1,较大尺寸设置为 2。需要 eeprom 插件。
//#define EEPROM_IS_FRAM 1 // 当启用 EEPROM 且芯片为 FRAM 时取消注释,以消除写入延迟。
#ifndef USB_SERIAL_CDC #endif #ifdef SPINDLE_HUANYANG #define SERIAL2_DEVICE 1 // 选择用于ModBus输出的串行设备,默认为1,允许值为0、1和2 #endif
#define SERIAL_DEVICE 2// Select serial device for output if not using native USB, default is -1, max value is 2

并将 RX/TX 连接到这些引脚:

// 串行设备
// -1(默认)0 (PA8) = RX,1 (PA9) = TX(与 USB 编程端口相同)
// 0 19 (PA10) = RX,18 (PA11) = TX
// 1 17 (PA12) = RX, 16 (PA13) = TX
// 2 52 (PB21) = RX, A11 (PB21) = TX

未设置兼容级别或为 0时的启动字符串:

GrblHAL 1.1f [‘$’ 或 ‘$HELP’ 寻求帮助]

和 > 0(这与香草 Grbl 完全相同):

Grbl 1.1f [‘$’寻求帮助]

通过蓝牙模块连接时需要注意的一个问题是控制器在连接时不会重置,因此控制器无法知道它应该发送启动字符串。USB 连接使用虚拟 RTS(或 DTR)线来重置处理器,顾名思义,启动字符串作为启动序列的一部分发送。不发送启动字符串与许多其他 ARM 控制器的行为类似,在此处讨论。因此,要在通过蓝牙连接时获取启动消息,必须发出软重置命令,CTRL + X.

这里还有一些关于输入的信息,这可能是相关的,因为你的板子没有连接到机器上。

Grbl hal连接 #142
作者

喜欢 (0)