Machine Learning and Digital Signal Processing library for MicroPython, enabling TinyML on microcontrollers without C code.
emlearn-micropython is a machine learning and digital signal processing library for MicroPython that enables developers to run efficient ML models on microcontrollers. It provides Python modules for classification, regression, clustering, and signal processing tasks without requiring C programming. The library is designed for TinyML applications on resource-constrained embedded devices.
MicroPython developers working on microcontroller projects who need machine learning capabilities, particularly those building IoT devices, embedded systems, or edge AI applications with limited resources.
Developers choose emlearn-micropython because it provides a scikit-learn-like experience for embedded systems with minimal overhead, offering installable native modules that don't require firmware rebuilds while maintaining high efficiency with inference times under 100 microseconds.
Machine Learning and Digital Signal Processing for MicroPython
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Delivers inference times as low as 100 microseconds with RAM and FLASH usage under 2 kB, making it ideal for resource-constrained microcontrollers as highlighted in the features.
Offers installable native MicroPython modules (.mpy files) without requiring firmware rebuilds or flashing, simplifying integration for developers.
Includes RandomForest, KNN, CNN, FFT, IIR filters, and linear regression, covering common TinyML tasks and signal processing needs.
Supports on-device learning with KNN and linear regression, enabling adaptive models without cloud dependency, as noted in the features.
Admitted in the philosophy as suited for 'low-complexity' tasks, it lacks support for advanced neural networks or large-scale ML, restricting use cases.
Primarily tested on x64 and xtensawin (ESP32) ports, so support for other MicroPython platforms may be experimental or incomplete, as indicated in the status.
With a 'minimally useful' status, documentation focuses on basics and may lack in-depth tutorials for complex scenarios or edge cases.