Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. MicroPython
  3. emlearn-micropython

emlearn-micropython

MITC0.11.1

Machine Learning and Digital Signal Processing library for MicroPython, enabling TinyML on microcontrollers without C code.

Visit WebsiteGitHubGitHub
167 stars20 forks0 contributors

What is emlearn-micropython?

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.

Target Audience

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.

Value Proposition

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.

Overview

Machine Learning and Digital Signal Processing for MicroPython

Use Cases

Best For

  • Running classification models on ESP32 microcontrollers
  • Implementing signal processing filters for sensor data
  • Building TinyML applications with MicroPython
  • Adding machine learning to IoT devices without C programming
  • Developing edge AI systems with limited RAM/FLASH
  • Creating human activity recognition systems with accelerometer data

Not Ideal For

  • Projects requiring complex deep learning models with millions of parameters
  • Applications needing real-time inference at kHz frequencies or higher
  • Teams mandated to use C/C++ exclusively for embedded ML due to performance SLAs
  • Systems without MicroPython support or preferring bare-metal programming environments

Pros & Cons

Pros

High Efficiency

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.

Easy Deployment

Offers installable native MicroPython modules (.mpy files) without requiring firmware rebuilds or flashing, simplifying integration for developers.

Broad ML and DSP Support

Includes RandomForest, KNN, CNN, FFT, IIR filters, and linear regression, covering common TinyML tasks and signal processing needs.

On-Device Learning

Supports on-device learning with KNN and linear regression, enabling adaptive models without cloud dependency, as noted in the features.

Cons

Limited Model Complexity

Admitted in the philosophy as suited for 'low-complexity' tasks, it lacks support for advanced neural networks or large-scale ML, restricting use cases.

Platform-Specific Testing

Primarily tested on x64 and xtensawin (ESP32) ports, so support for other MicroPython platforms may be experimental or incomplete, as indicated in the status.

Sparse Advanced Documentation

With a 'minimally useful' status, documentation focuses on basics and may lack in-depth tutorials for complex scenarios or edge cases.

Frequently Asked Questions

Quick Stats

Stars167
Forks20
Contributors0
Open Issues9
Last commit2 months ago
CreatedSince 2023

Tags

#iot#embedded-systems#micropython#signal-processing#dsp#classification#microcontrollers#python#machine-learning#edge-ai

Built With

M
MicroPython
C
C99

Links & Resources

Website

Included in

MicroPython1.8k
Auto-fetched 1 day ago

Related Projects

MicroMLPMicroMLP

A micro neural network multilayer perceptron for MicroPython (used on ESP32 and Pycom modules)

Stars196
Forks29
Last commit5 years ago
upython-chat-gptupython-chat-gpt

ChatGPT for MicroPython

Stars30
Forks3
Last commit3 years ago
mp_esp_dl_modelsmp_esp_dl_models

Micropython binding for the ESP32 DL AI vision models like face detection / recognition, imagenet classifier or pedestrian (human) detection

Stars17
Forks13
Last commit1 year ago
MicroPython-NeuralNetworkMicroPython-NeuralNetwork

Neural Network for MicroPython

Stars0
Forks0
Last commit
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub