-
Notifications
You must be signed in to change notification settings - Fork 14
Library Architecture
This page details the architecture of the, MicroPython, WalterModem Library.
Caution
MicroPython v1.25.0 (2025-04-15) lacks full MRO support, so the library handles mixin initialisation manually.
If future MicroPython releases add full MRO support, this manual initialisation might cause conflicts.
In that case, be sure to remove the manual logic.
walter_modem/
├── core.py
├── enums.py
├── __init__.py
├── mixins
│ ├── coap.py
│ ├── _default_pdp.py
│ ├── _default_sim_network.py
│ ├── _default_sleep.py
│ ├── gnss.py
│ ├── http.py
│ ├── mqtt.py
│ ├── socket.py
│ └── tls_certs.py
├── modem.py
├── queue.py
├── structs.py
└── utils.pyThe library's structure is geared towards separation of concerns, using mixins for functionalities which aren't strictly required for the library to function. Some mixins/functionalities are often used such as PDP, SIM and network & sleep methods, these are prefixed with _default.
Note
The Mixins directory intentionally has no __init__.py, this is so that mixins are only imported when needed.
Mixins are separate modules that provide functionality to the modem, by "mixing" them in the modem on initialisation.
Note
It is important that are independent of one another, this means that they do not import from or rely on other mixins.