调试时容易把两件事混在一起:整包升级,和改一段会变的逻辑。
整包 OTA 适合换底层,比如连网协议栈、引脚表、分区。它要编译、传完整固件、再重启。串口会断,传失败还有变砖的风险,不适合拿来改一个判断。
日常可以拆开:
1. 固件只烧一次。里面做连网、引脚和外设初始化,再在局域网留一个很小的 HTTP,能读当前脚本,也能写入新脚本。这块稳定之后,别跟着业务一起走整包 OTA。
2. 会变的判断写成板上的 Lua。阈值、简单状态机、继电器条件放这里。电脑上的 Agent 改完这段脚本,用 HTTP 发下去,几秒热换,不用按住 BOOT。
3. 发完用同一个接口把板上的脚本读回来,和刚下发的文本对一下。对上了,才算设备上的逻辑已经换掉,而不是只改了编辑器。
别省的地方:这个 HTTP 只开在局域网,不要裸到公网;脚本里不要放密钥;请求加短超时;脚本写坏或拉不下来时,固件回到默认逻辑,板子还能动。分区方案要和 Flash 容量一致,选错会起不来。
想让 Agent 按这个方式改板子上的逻辑,搜 OnlyClaws。
整包 OTA 适合换底层,比如连网协议栈、引脚表、分区。它要编译、传完整固件、再重启。串口会断,传失败还有变砖的风险,不适合拿来改一个判断。
日常可以拆开:
1. 固件只烧一次。里面做连网、引脚和外设初始化,再在局域网留一个很小的 HTTP,能读当前脚本,也能写入新脚本。这块稳定之后,别跟着业务一起走整包 OTA。
2. 会变的判断写成板上的 Lua。阈值、简单状态机、继电器条件放这里。电脑上的 Agent 改完这段脚本,用 HTTP 发下去,几秒热换,不用按住 BOOT。
3. 发完用同一个接口把板上的脚本读回来,和刚下发的文本对一下。对上了,才算设备上的逻辑已经换掉,而不是只改了编辑器。
别省的地方:这个 HTTP 只开在局域网,不要裸到公网;脚本里不要放密钥;请求加短超时;脚本写坏或拉不下来时,固件回到默认逻辑,板子还能动。分区方案要和 Flash 容量一致,选错会起不来。
想让 Agent 按这个方式改板子上的逻辑,搜 OnlyClaws。
