A lightweight MicroPython GUI library for display drivers based on the FrameBuffer class, supporting OLEDs, TFTs, ePaper, and Sharp displays.
MicroPython nano-gui is a lightweight GUI library for embedded systems that provides widgets and graphics primitives for displaying data on small screens. It solves the problem of creating user interfaces on resource-constrained MicroPython devices by offering a portable, low-RAM solution compatible with various display technologies like OLEDs, TFTs, and ePaper.
Embedded developers and hobbyists working with MicroPython on devices like Pyboard, ESP32, Raspberry Pi Pico, and ESP8266 who need to display sensor data, metrics, or simple interfaces on small screens.
Developers choose nano-gui for its minimal RAM footprint, cross-platform portability, and straightforward widget API tailored for embedded data display. It avoids the overhead of full-featured GUIs while supporting essential widgets and asynchronous operation.
A lightweight MicroPython GUI library for display drivers based on framebuf class
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Optimized for low RAM usage, enabling operation on constrained devices like ESP8266 and Raspberry Pi Pico, with specific guidance for freezing bytecode to save memory.
Works across multiple MicroPython hosts (Pyboard, ESP32, Pico) and display technologies (OLED, TFT, ePaper), with a single config file (color_setup.py) for hardware adaptation.
Supports asyncio for non-blocking applications, and some drivers offer asynchronous refresh methods to mitigate latency from slow display updates.
Includes practical widgets like Meter, Dial, and Scale for dynamic data visualization, with demos showing real-time plotting and sensor data display.
Buffer copying to the display is inherently slow (e.g., 41ms for some setups), making it unsuitable for fast-paced applications like games or rapid animations.
Purely display-focused; adding interactivity requires integrating separate libraries like micro-gui, which increases RAM usage and complexity.
Requires manual editing of configuration files (e.g., color_setup.py) and managing dependencies, which can be error-prone for beginners or quick prototyping.