u/Feeling_Pick_2538

▲ 4 r/MicroPythonDev+1 crossposts

I wanted the same asyncio code to run on Linux and ESP32. So I built these libraries.

I got tired of maintaining separate IoT stacks for Linux and ESP32 devices… so I started building libraries that run the same asyncio code on both CPython and MicroPython.

That experiment turned into two open-source projects:

aiomqttc

Async MQTT client for CPython + MicroPython

  • asyncio-first
  • ESP32 compatible
  • reconnect handling
  • lightweight
  • same API across desktop + embedded

https://github.com/Tangerino/aiomqttc

mpModbus

Async Modbus RTU/TCP framework for industrial and telemetry systems

  • RTU + TCP
  • async polling
  • declarative drivers
  • topology-based configuration
  • ESP32/MicroPython support

https://github.com/Tangerino/mpModbus

A lot of this came from real-world frustrations:

  • unstable WiFi
  • reconnect storms
  • memory limits on ESP32
  • duplicated codebases
  • blocking Modbus stacks
  • trying to keep telemetry systems reliable in the field

Still evolving, but already running against real devices/meters.

Would love feedback from people working with:

  • ESP32
  • MicroPython
  • MQTT
  • Modbus
  • industrial automation
  • telemetry systems
  • asyncio

Also very interested in hearing how others are solving:

  • reconnect reliability
  • async polling at scale
  • embedded memory fragmentation
  • unified embedded/server APIs
reddit.com
u/Feeling_Pick_2538 — 11 hours ago