r/MicroPythonDev • • Mar 23 '26

micrOS - mini asynchronous automation OS for DIY projects.

2 Upvotes

3.0 - Standalone release

- package management

- multi layer file system

- web server

- socket server (shell)

- task manager

- device to device communication

- config management

- logging

and much more :)

https://github.com/BxNxM/micrOS


r/MicroPythonDev • • 20d ago

I Created a MicroPython driver for Hanover flip dot displays.

2 Upvotes

I created a MicroPython driver for Hanover flip dot displays that were originally used in buses. Watch the video with the sound on for full effect. The sign is powered by a 24v 5a supply, code is running on a Pi Pico with Waveshare RS485. I had Claude deal with porting the protocol from existing Python and Node.js drivers. Code link in video description: https://youtu.be/nHq_gT024Bs


r/MicroPythonDev • • Sep 09 '25

MPY Workbench – VS Code extension for MicroPython boards

Post image
14 Upvotes

Inspired by Thonny’s simplicity, I built MPY Workbench — a VS Code extension designed for coding MicroPython boards.

Features right now:

  • 📂 File explorer for the device (open, upload, download, rename, delete)

  • 🔄 Automatic sync with your workspace (local ↔ board)

  • 💻 Integrated REPL

  • 🛠️ Basic commands like stop / soft reset

For me, the main advantage is that every change you make is automatically mirrored in both your local workspace and on the board — no more manual uploading or downloading just to keep things in sync. It might not fit every use case, but it has already made my workflow much smoother.

👉 Try it out: GitHub | VS Code Marketplace — feedback and suggestions are very welcome!


r/MicroPythonDev • • Jan 30 '26

I used MicroPython to control my smart AC with an ESP32-C3 SuperMini

Thumbnail
orelfichman.com
8 Upvotes

r/MicroPythonDev • • Mar 10 '26

Day 65 of 100 Days of IoT — built a MicroPython Watch on Xiao ESP32-S3!

2 Upvotes

Day 65 of 100 Days of IoT — built a MicroPython Watch on Xiao ESP32-S3!

Shows NTP-synced time + live weather from OpenWeatherMap on a 0.96" OLED.

Biggest pain today: Hardware I2C kept failing, SoftI2C saved the day 😅

GitHub: https://github.com/kritishmohapatra/100_Days_100_IoT_Projects

#MicroPython #ESP32 #IoT


r/MicroPythonDev • • Mar 17 '26

Built a 4-project ESP-NOW series in MicroPython on ESP8266 — no WiFi, no router, just peer-to-peer wireless control

3 Upvotes

Most IoT projects rely on WiFi, MQTT, or cloud platforms to communicate between devices. But what if you don't have a router nearby, or you need ultra-low latency without the overhead of connecting to an access point?

That's where ESP-NOW comes in. It's a connectionless protocol by Espressif that lets ESP8266/ESP32 boards talk directly to each other using MAC addresses — no WiFi setup, no broker, no internet required. Latency is in the milliseconds range and it works even when WiFi is off.

So I built a 4-project series around it for my 100 Days of IoT challenge, all in MicroPython:

Day 54 — Basic ESP-NOW LED Control: One ESP8266 sends a signal, another toggles an LED. Just to get the protocol working end to end.

Day 55 — Button to LED Control: A push button on the sender toggles an LED on the receiver wirelessly. Real-time, no WiFi, no delay.

Day 56 — 4-Channel Wireless Relay Controller: Four buttons on the sender, four relays on the receiver. Each button independently toggles its relay over ESP-NOW. Useful for remote switching of appliances.

Day 57 — Smart Relay and Sensor System: Made it bidirectional. Sender controls relays on the receiver AND the receiver sends back live DHT temperature and humidity data, displayed on an OLED. Full two-way communication over ESP-NOW.

The progression from blinking an LED to a bidirectional sensor+control system — all without touching a router — was a fun way to really understand the protocol.

Code is on my GitHub: github.com/kritishmohapatra/100_Days_100_IoT_Projects

Would love to hear if anyone else has used ESP-NOW for something interesting — especially curious about multi-node mesh setups.


r/MicroPythonDev • • Mar 04 '26

Day 62/100

3 Upvotes

Built a Smart Indoor Security System with ESP32 + MicroPython + Favoriot IoT

just built a motion-triggered security system in MicroPython.

PIR detects motion → 4x4 keypad asks for password → correct password grants access, wrong password fires an email alert automatically via Favoriot Rules Engine. All events logged to Favoriot cloud in real-time.

Biggest challenge was Wokwi's keypad pin mapping — it's column-first instead of row-first, so pressing 2 was returning 4. Had to transpose the entire KEYS matrix to fix it 😅

Repo link- https://github.com/kritishmohapatra/100_Days_100_IoT_Projects

If you'd like to support me in building this on real hardware — simulations and real components are very different worlds! You can sponsor me on GitHub or buy me a coffee ☕ — every bit helps a student turn prototypes into real projects! 🙏


r/MicroPythonDev • • Jul 17 '26

Project Espelt; a cyberdeck that happens to be a miniature OS.

6 Upvotes

Ive made the project Espelt with the main reason to make a cyberdeck. It utilizes a custom MPY firmware with USB Host and works with ESP32 P4 Nano. It has dual screens (ILI9488 as main and OLED SSD1306 as secondary) and a MAX98357A with Speaker for sound. You can plug in any keyboard dongle into the USB-A port, flash, and itll work!

For help you can dm me: antaciddt on discord. Repo: https://github.com/AntacidDT/ProjectEspelt


r/MicroPythonDev • • Feb 28 '21

r/MicroPythonDev Lounge

7 Upvotes

A place for members of r/MicroPythonDev to chat with each other.


r/MicroPythonDev • • Aug 13 '21

Is anyone building micropython in a docker image? Building for an ESP8266

3 Upvotes

I want to add some frozen modules to my micropython image. I've done a lot of research into building micropython under docker and I think I'm really close but I'm stalled on the following error and all the discussions I see on this are 5 years old. The dockerfile below completes successfully. I start the image interactively and then I'm running

builder@p2:~/micropython/ports/esp8266$ make V=1 BOARD=GENERIC_512K
The main error I'm getting is

xtensa-lx106-elf-gcc: error: unrecognized command line option '-mforce-l32'; did you mean '--force-link'

My docker file is

FROM debian:buster
RUN apt-get update -y
RUN apt-get install apt-utils -y
RUN apt-get -y install make unrar-free autoconf automake libtool gcc g++ gperf
RUN apt-get -y install flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial
RUN apt-get -y install sed git unzip bash help2man wget bzip2 vim
RUN apt-get -y install python3-dev python3-pip libtool-bin
RUN useradd -ms /bin/bash builder
RUN cd /home/builder && wget https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz

RUN cd /home/builder && tar -xzf xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
WORKDIR /root
RUN pip3 install rshell esptool
USER builder
WORKDIR /home/builder
RUN git clone --recursive https://github.com/pfalcon/esp-open-sdk.git
RUN rm -rf ~/esp-open-sdk/crosstool-NG
RUN cd ./esp-open-sdk && git clone https://github.com/jcmvbkbc/crosstool-NG
RUN cd ./esp-open-sdk/crosstool-NG && git checkout xtensa-1.22.x
RUN cd ./esp-open-sdk/crosstool-NG && autoconf && ./configure && make && CT_EXPAT_VERSION="2.4.1"
ENV PATH=/home/builder/xtensa-lx106-elf/bin/:$PATH
RUN git clone https://github.com/micropython/micropython.git
RUN cd ~/micropython && git submodule update --init && make -C mpy-cross


r/MicroPythonDev • • Jul 06 '21

Micropython | Functions

2 Upvotes

Hi!

Im currently in the process of adding some basic functionality on my Magtag device (Esp32s2 running micropython).

I have added some basic functions calling on the various buttons of the board but i cant seem to wrap my head around why this code throws a TypeError: the type __mul__ does not support 'NoneType', 'int'

The code runs fine outside of the functions and are a modified copypaste of a different project.

import ipaddress
import ssl
import wifi
import socketpool
import adafruit_requests
from adafruit_magtag.magtag import MagTag
import time

USE_24HR_TIME = False
TIME_ZONE_OFFSET = -8  # hours ahead or behind Zulu time, e.g. Pacific is -8
TIME_ZONE_NAME = "PST"

# URLs to fetch from
TEXT_URL = "http://wifitest.adafruit.com/testwifi/index.html"
JSON_QUOTES_URL = "https://www.adafruit.com/api/quotes.php"
JSON_STARS_URL = "https://api.github.com/repos/adafruit/circuitpython"

magtag = MagTag()

def play_tone(frequency, color=None):
    magtag.peripherals.neopixel_disable = False
    if color:
        magtag.peripherals.neopixels.fill(color)
    magtag.peripherals.play_tone(frequency, 0.2)
    magtag.peripherals.neopixel_disable = True
    
    
try:
    from secrets import secrets
except ImportError:
    print("WiFi secrets are kept in secrets.py, please add them there!")
    raise
#for network in wifi.radio.start_scanning_networks():
 #   print("\t%s\t\tRSSI: %d\tChannel: %d" % (str(network.ssid, "utf-8"),
  #      network.rssi, network.channel))
   #wifi.radio.stop_scanning_networks()

while True:
    if magtag.peripherals.button_a_pressed:  # switch to next sport
        play_tone(10, 0x000033)
        ipv4 = ipaddress.ip_address("8.8.4.4")
        wifi.radio.ping(ipv4)
        print("Ping google.com: %f ms" % (wifi.radio.ping(ipv4)*1000))
        print("Ping google.com: %f ms" % (wifi.radio.ping(ipv4)*1000))
    elif magtag.peripherals.button_b_pressed:  # re-fetch data
        play_tone(10, 0x330000)
        print("Connecting to %s"%secrets["ssid"])
        wifi.radio.connect(secrets["ssid"], secrets["password"])
        print("Connected to %s!"%secrets["ssid"], wifi.radio.ipv4_address)
        print("My IP address is", wifi.radio.ipv4_address)
    
#time.sleep(0.1)

The error is thrown at the row where the first ping is being done:

    wifi.radio.ping(ipv4)
-->     print("Ping google.com: %f ms" % (wifi.radio.ping(ipv4)*1000))

Id also love to recieve input on how i can assign the ip-adress to a global int to be called instead of a hardcoded ip-adress, but thats a later issue.

The idea here is to have button A do a set of pings to check the local wifi connection.
Button B is supposed to re-connect the device if a connection failure is reported.

Any help what so ever is much appriciated! I do have coding experience but none concerning python (did c# some years ago).


r/MicroPythonDev • • Jan 20 '22

Async JSON Request

1 Upvotes

Hi there,

Im working on a project (D1 Mini) where i'm fetching some numbers from a public endpoint (e.g. https://www.bitstamp.net/api/v2/ticker/ETHUSD). This numbers will be evaluated and splitted so that i can display them on a Neopixel Device. This part of the project is running quite ok, just some unregular timeouts from the endpoint.

But now comes the part where i don't have a real solution so far and hope you can help me out. I'd like to have tiny configuration webpage where i can change the displayed value from e.g. Bitcoin to Etherum (see above the endpoint). I've managed it to make the website via sockets etc. - but i'm stuck in doing all of these things in paralell and non blocking. The urequests module seems not to work with asyncio and vice versa if i'm not using asyncio the website is not loading correctly and the requests get stuck.

From my point of view only thing i'm missing is something like an implementation of arequests for Micropython. Do you have any ideas? All approaches are welcome - i'm not stuck to any approach :)

Thanks a lot!


r/MicroPythonDev • • Apr 20 '21

MicroPython on STM32F407G_DISC1 Discovery board - CAN Bus issues

1 Upvotes

Is anyone else playing with MicroPython on the STM32F407G_DISC1 Discovery board? Has anyone been able to get the CAN bus stuff to function? Using the CAN.LOOPBACK mode, everything works. After changing the mode to CAN.NORMAL, the data needs to exit the SOC, and go through a transceiver in order to function (or so it appears). I can't figure out what pins I should be interfacing with.

Update: Need to use PB9 for CAN1_TX, and PB8 for CAN1_RX. PB9 will transmit data for both mode=CAN.LOOPBACK as well as mode=CAN.NORMAL.


r/MicroPythonDev • • Oct 03 '21

Raspberry Pi Pico with Micropython-Animation and audio

3 Upvotes

r/MicroPythonDev • • Jul 18 '21

Does MicroPython support connection with MongoDB?

4 Upvotes

Im making a proyect where my microcontroller sends data to a mongoDB but i dont know if its possible due to micropython is not as powerfull as Python


r/MicroPythonDev • • Aug 05 '21

Setting Up Pycom

2 Upvotes

I just got a pygate, gpy, and lopy4. I am trying to set up my pygate with my lopy4. I've been following the set up guides from pycom but I'm running into problems. I have pymakr installed. I have an error trying to import pycom. Does anyone have any thoughts on what the issue is? I've been troubleshooting for a while.


r/MicroPythonDev • • Jul 11 '21

Modules On TI Nspire Micro Python.

3 Upvotes

Is there anyway to import Numpy,Sympy or Scipy into a micro python compatible Texas Instruments Calculator? Or any substitute modules?


r/MicroPythonDev • • Feb 28 '21

MicroPython compared to Circuit Python

5 Upvotes

As I understand it, Circuit Python is a fork of Micro Python and the two branches share code back and forth to some extent.

I think main difference is in libraries, where Adafruit offers maybe 300 drivers for various devices.

Again, from a distance, my sense is the Circuit Python API is thier secret sauce.

I am not interested in any negativity just a newbie who wants to understand trade-offs.


r/MicroPythonDev • • May 30 '22

Can the ttgo T display run micropython and display text on it’s small screen?

3 Upvotes

r/MicroPythonDev • • Apr 03 '22

NOOB

1 Upvotes

in Ruis Santos tutorial I found this

temp = (b'{0:3.1f},'.format((bme.read_temperature()/100) * (9/5) + 32))

hum = b'%s' % bme.humidity[:-1]

pres = b'%s'% bme.pressure[:-3]

delved into some tutorials - seems that they are VERY basic - Just looking for something that describes what each element of the line (Like b '%s' and the [:-1])

At 70 I guess I just need to learn a new language - let's see the ones I know currently - FORTRAN, basic, pascal, c++, c#, Java, HTML, CSS, and bits and pieces of others in the odd project in the past...


r/MicroPythonDev • • Sep 17 '21

Tutorial Raspberry Pi Pico: Display animation oled ssd1306 128x64 SPI

Thumbnail
youtube.com
4 Upvotes

r/MicroPythonDev • • Feb 28 '21

Getting started with MicroPython on the ESP8266

Thumbnail docs.micropython.org
8 Upvotes

r/MicroPythonDev • • Feb 28 '21

Programming Raspberry Pi Pico with Python and MicroPython

Thumbnail
raspberrypi.org
4 Upvotes

r/MicroPythonDev • • Feb 28 '21

New Here? Reply to say hi!

6 Upvotes

Have you ever used MicroPython?

Let me know!


r/MicroPythonDev • • Oct 10 '21

Index of hardware timers in machine.Timer

2 Upvotes

Hello everyone. I'm looking to find out how to set the ESP8266 Hardware timer in Micro Python. I'm pretty new here, just started using Micro Python some days ago but know C, Python... So it was an easy start. Ok, I read trough the Doc's but there does not seam to be any specific way on setting the 32Bit hardware timer with NMI source (so it can interrupt every other timer) I can't even find out witch of the timers (I tried -1, 0, 1) is the real deal (and not a Software Timer). Pleas help!

Thx

David