ChuMicro
Python libraries for microcontrollers that keep your main loop running, and the host tools that get them onto a board. Unplug your router and your status LED keeps blinking while wifi reconnects on its own.
CircuitPython
MicroPython
CPython
Projects
Everything published under this organization.
Wifi, MQTT, HTTP client and server, WebSockets, network time, timers, settings, and storage that survives a reboot, plus the host tools that deploy them and watch a board. One codebase runs on CircuitPython, MicroPython, and CPython.
Documentation
Guides
Source
Libraries
Run on the board. Install one on its own or take the bundle.
- chumicro-timing Wraparound-safe millisecond tick helpers plus wait value objects (deadlines, rates, signals) for CircuitPython, MicroPython, and CPython.
- chumicro-runner Tick-based task runner for CircuitPython, MicroPython, and CPython: non-blocking check/handle scheduling without async.
- chumicro-wifi Unified wifi supervisor across CircuitPython, MicroPython, and CPython: sole-supervisor model with reconnect, state machine, and per-runtime adapters.
- chumicro-requests Non-blocking HTTP/1.1 client for CircuitPython, MicroPython, and CPython.
- chumicro-http_server Non-blocking HTTP/1.1 server for CircuitPython, MicroPython, and CPython.
- chumicro-mqtt Non-blocking MQTT 3.1.1 client (QoS 0+1) for CircuitPython, MicroPython, and CPython.
- chumicro-websockets Non-blocking WebSocket (RFC 6455) client and server for CircuitPython, MicroPython, and CPython.
- chumicro-sockets Cross-runtime TCP, TLS, and UDP sockets for CircuitPython, MicroPython, and CPython
- chumicro-ntp Runner-shaped SNTP client over an injected UDP socket: pure Python, cross-runtime.
- chumicro-config Standardized runtime-config helpers for ChuMicro libraries: section loader plus on-device runtime-config reader.
- chumicro-kvstore Tiny mutable key-value store for persisted runtime state (counters, timestamps, tokens) across CircuitPython, MicroPython, and CPython.
- chumicro-msgpack Compact MessagePack serialization for CircuitPython, MicroPython, and CPython: delegates to the native C module when available.
- chumicro-compat Cross-runtime compatibility polyfills for CircuitPython, MicroPython, and CPython: functools.partial and more.
- chumicro-buttons Debounced buttons, switches, and key matrices for CircuitPython, MicroPython, and CPython: presses land even when your loop is busy.
- chumicro-knobs Rotary encoders and analog knobs, read as a position that holds still
Host tools
Run on your computer: deploy code, watch a board, flash firmware.
- chumicro-workspace Host-side runtime for ChuMicro project workspaces: config merge, secrets resolution, deploy orchestration, command dispatch.
- chumicro-deploy Host-side device transports and deploy tooling for CircuitPython and MicroPython boards.
- chumicro-repl Host-side serial REPL for CircuitPython and MicroPython boards with traceback highlighting.
Come and build something
There are several ways to be part of this, and writing code is only one of them. Using a library and saying what happened helps, especially on a board nobody here has tried yet. So does telling us when an error message made no sense, or asking a question the guides should have answered.
If you want to start your own thing, the workbench template is a whole project to copy: it deploys your code to a board, keeps track of your devices, installs firmware, and runs your tests. Press "Use this template" and it is yours.
If you want to change the libraries themselves, the contributing guide walks the whole path, and one command runs every check that CI runs.