I am sharing implementation notes from S1-ADV, my experimental firmware and bridge project for the M5Stack Cardputer ADV. It combines local tools on the ESP32-S3 with an interface to an OpenClaw agent on a computer or server.
What runs where
Actual frame from my device footage, showing the configured physical device.
The boundary that matters
The MCU keeps its local tools and hardware interaction in firmware. The bridge translates authenticated HTTP/WebSocket traffic into the agent session protocol. Each bridge instance has separate private storage for its device; generated reply audio checks the current topic/session ownership. A restricted chat agent is the starting point. Firmware-building permissions and automation are an additional, deliberately configured path, disabled by default.
Explanatory software architecture map, not an electrical wiring diagram. Diagram prepared with AI assistance.
Setup and current limits
The source uses Arduino/FreeRTOS and PlatformIO. Initial setup needs a USB data cable, Python 3/PlatformIO, 2.4 GHz Wi-Fi and an existing OpenClaw host. Start with a short text round trip before adding speech services. Remote bridge access uses HTTPS/WSS; private tokens and personal provisioned binaries should not be shared.
Public builds have not yet been tested on a freshly provisioned physical device. Other Cardputer models are untested. The film shows the project and configured-device demonstrations; it does not replace independent installation validation.
The firmware began with OmniBot by Naz Louis and contributors. Its origin and notices are retained in CREDITS.md. This is my own project; this post was prepared with AI assistance from the public source documentation and actual project materials.
What runs where
- Cardputer ADV: keyboard, display, microphone recording, audio playback, local apps and applying OTA updates. Notes, calculator, focus tools and games do not require model inference.
- Node bridge: authenticates one device identity with its own token and topic allowlist, and maps an allowed topic to a configured OpenClaw session.
- Host: runs the agent, model connections, speech backends and any firmware builds. The ESP32-S3 does not run an LLM, and gateway credentials stay on the host.
Actual frame from my device footage, showing the configured physical device.
The boundary that matters
The MCU keeps its local tools and hardware interaction in firmware. The bridge translates authenticated HTTP/WebSocket traffic into the agent session protocol. Each bridge instance has separate private storage for its device; generated reply audio checks the current topic/session ownership. A restricted chat agent is the starting point. Firmware-building permissions and automation are an additional, deliberately configured path, disabled by default.
Explanatory software architecture map, not an electrical wiring diagram. Diagram prepared with AI assistance.
Setup and current limits
The source uses Arduino/FreeRTOS and PlatformIO. Initial setup needs a USB data cable, Python 3/PlatformIO, 2.4 GHz Wi-Fi and an existing OpenClaw host. Start with a short text round trip before adding speech services. Remote bridge access uses HTTPS/WSS; private tokens and personal provisioned binaries should not be shared.
Public builds have not yet been tested on a freshly provisioned physical device. Other Cardputer models are untested. The film shows the project and configured-device demonstrations; it does not replace independent installation validation.
The firmware began with OmniBot by Naz Louis and contributors. Its origin and notices are retained in CREDITS.md. This is my own project; this post was prepared with AI assistance from the public source documentation and actual project materials.
Last edited by a moderator: