feat(espnow): Pi bridge client, binary wire, and espnow-sender firmware

Replace serial/Wi-Fi driver transport paths with WebSocket bridge client,
binary espnow_wire delivery, device announce registry, and restructured
espnow-sender (AP + broadcast passthrough). Includes docs and tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-23 22:44:44 +12:00
parent f4ef85c182
commit 4fc3f46866
42 changed files with 4167 additions and 848 deletions

View File

@@ -0,0 +1,28 @@
# aioespnow module for MicroPython on ESP32 and ESP8266
# MIT license; Copyright (c) 2022 Glenn Moloney @glenn20
# Vendored from micropython-lib/micropython/aioespnow
import asyncio
import espnow
class AIOESPNow(espnow.ESPNow):
async def arecv(self):
yield asyncio.core._io_queue.queue_read(self)
return self.recv(0)
async def airecv(self):
yield asyncio.core._io_queue.queue_read(self)
return self.irecv(0)
async def asend(self, mac, msg=None, sync=None):
if msg is None:
msg, mac = mac, None
yield asyncio.core._io_queue.queue_write(self)
return self.send(mac, msg, sync)
def __aiter__(self):
return self
async def __anext__(self):
return await self.airecv()