开源改变世界

连接到 PI Pico / RP2040 #216

推推 grbl 3年前 (2023-02-07) 464次浏览
关闭
oke24 打开了这个问题 2022 年 4 月 2 日 · 14条评论
关闭

连接到 PI Pico / RP2040#216

oke24 打开了这个问题 2022 年 4 月 2 日 · 14条评论

评论

连接到 PI Pico / RP2040 #216
oke24 评论了 2022 年 4 月 2 日  

我尝试使用带有 RP2040 驱动程序的 grblhal 将 Windows 10 PC 上的 ioSender 连接到 PI Pico。
如 PI Zero 2 W 上的 CNCjs 和 PicoBOB 上的 PIPico 所示的设置有效。

现在我尝试在 Windows PC 上使用 ioSender,因为与 CNCjs 相比具有扩展的功能。
但是我无法将 ioSender 连接到 PiPico 开发板。使用 USB 数据线将 PiPico 连接到 PC 时,没有新的 USB 设备 resp。COM 端口可用于连接(仅在引导模式下我有一个 USB 驱动器设备)。

或者,我可以选择通过 IP / WLAN 将 Windows PC 上的 ioSender 连接到 Pi Zero Board,然后从那里连接到 Pi Pico。

我很乐意得到一些提示如何连接 ioSender,或者如果这是不可能的。

连接到 PI Pico / RP2040 #216

连接到 PI Pico / RP2040 #216

您可以使用 USB 将 Windows 10 PC 直接连接到 Picobob。或者您可以在 linux 中使用 SER2NET 将 Pi Zero 上的 USB 串行端口连接到 wifi,然后将 IOSender 指向该地址和端口。PrintNC discord 的一位成员已经做到了这一点并且效果很好。

连接到 PI Pico / RP2040 #216
作者

@andrewmarles,非常感谢您的提示。我看一下 SER2NET。

与此同时,我尝试了一个 websocket-serial 桥,它在 Github 上的https://github.com/platisd/SocketSerialBridge下找到。
对于我的问题,这将是一个非常轻量级的解决方案,但它不会运行。

网桥正在 PI Zero 上运行,但 ioSender 无法通过端口 8088 上的 Websocket 连接一段时间后超时。
在与网桥(一些标头)进行初始通信后,ioSender 报告“ws://192.168.1.247:8088 上没有 websocket 连接”。

连接到 PI Pico / RP2040 #216

连接到 PI Pico / RP2040 #216
合作者

Web 套接字端口默认为 80。

连接到 PI Pico / RP2040 #216
作者

是的,但正如我在 ioSender 中所理解的那样,我可以指定一个不同的 WS 端口进行通信。在我上面的示例中,我在 Windows 命令行上使用“-port”选项对端口 8088 执行此操作,其中 PI 零上的串行桥应用程序等待连接。

连接到 PI Pico / RP2040 #216
所有者

但是我无法将 ioSender 连接到 PiPico 开发板。使用 USB 数据线将 PiPico 连接到 PC 时,没有新的 USB 设备 resp。COM 端口可用于连接(仅在引导模式下我有一个 USB 驱动器设备)。

Win10 驱动程序应该会自动安装(它是在一台全新的机器上为我安装的)所以如果你在启用 USB_SERIAL_CDC 的情况下构建它会有点奇怪。

最初的 websocket 握手似乎有效,但后来失败了?我正在为 ioSender 使用第 3 方 WebSocket 库,我不知道这是否有任何问题。被调查?

连接到 PI Pico / RP2040 #216
合作者

但是 grblHAL 不需要知道要连接到哪个套接字吗?grblHAL 中的默认值为 80。您是否在 Grbl 设置中更改了它?
连接到 PI Pico / RP2040 #216

连接到 PI Pico / RP2040 #216
作者

Win10 驱动程序应该会自动安装(它是在一台全新的机器上为我安装的)所以如果你在启用 USB_SERIAL_CDC 的情况下构建它会有点奇怪。

是的,在 my_machine.h 中启用了 USB_SERIAL_CDC:

#ifndef USB_SERIAL_CDC
#define USB_SERIAL_CDC       1 // Serial communication via native USB.
#endif

但不幸的是,连接到 Windows 10 PC 时没有新的 COM 端口。

最初的 websocket 握手似乎有效,但后来失败了?我正在为 ioSender 使用第 3 方 WebSocket 库,我不知道这是否有任何问题。被调查?

是的,当通过端口 8088 上的命令行启动 ioSender 时,初始握手始终存在。但随后通信立即停止,估计 80 秒后连接已被 ioSender 关闭。如上面在 Windows PC 上的屏幕截图所示,我收到了错误消息,Pi 上的网桥释放了连接并再次打开端口以进行下一次连接。

连接到 PI Pico / RP2040 #216
作者

但是 grblHAL 不需要知道要连接到哪个套接字吗?grblHAL 中的默认值为 80。您是否在 Grbl 设置中更改了它?

在 ioSender 中,启动应用程序时会询问初始连接,并且没有可用的 App.config 文件:

连接到 PI Pico / RP2040 #216

结果与在命令行上启动 ioSender 时相同
iosender -port ws://192.168.1.247:8088

Websocket 通信在 PC 和 Pi Zero 之间,websocket-serial 桥正在等待连接。桥的另一端连接到 Pi Pico 的串行端口。

连接到 PI Pico / RP2040 #216
作者

@phil-barrett;@terjeio
您好,非常感谢您进一步调查……

端口 80 在我的 Pi Zero 上实际上不可用,因为我在这个端口上有一个侦听器。

高端口是可以的,所以我使用 8088 进行 Websocket 测试,例如 CNCjs 默认运行在端口 8000 上没有问题。
我认为问题不应该取决于选择的端口,或者可能有提示?

此致

连接到 PI Pico / RP2040 #216
所有者

@oke24稍后我会研究这个,因为我正忙于花园里的一个项目,我想在复活节前完成。

连接到 PI Pico / RP2040 #216
作者

@terjeio,很好-非常感谢你的努力,祝你好运!

连接到 PI Pico / RP2040 #216
作者

@andrewmarles, terjeio 会看一下websocket通信问题。
与此同时,正如你提到的,我在 PI Zero 上安装了 SER2NET。非常简单。我能够连接到新建立的 telnet 端口并与 PI Zero 桥接的 PI Pico 通信。所以我有一个通过 telnet 连接 ioSender 和 PicoBOB 的解决方案。

连接到 PI Pico / RP2040 #216
所有者

与此同时,我尝试了一个 websocket-serial bridge

我查看了代码,我似乎是一个普通的套接字服务器,因此用于 telnet 连接。应该删除欢迎消息,并且必须修改代码以进行字节传输,因为它仅支持字符串?
从自述文件:

它将消息作为字符串从 websocket 连接中继到串行,反之亦然。您可以轻松修改它以处理字节。

连接到 PI Pico / RP2040 #216
所有者

仅供参考Pi Pico W现在可以用作 Pi Pico 的直接替代品,并且通过 WiFi 原生支持所有 grblHAL 网络协议和 WebUI v3。