<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Micropython]]></title><description><![CDATA[Discuss all things Micropython here. Get help, Recommend Libraries, Report Bugs and Improvements]]></description><link>https://community.m5stack.com/category/15</link><generator>RSS for Node</generator><lastBuildDate>Sun, 14 Jun 2026 00:05:54 GMT</lastBuildDate><atom:link href="https://community.m5stack.com/category/15.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 14 Feb 2026 14:15:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[OSError: [Errno 1] EPERM: ESP_FAIL M5Stack CoreS3 + Unit CamS3 displaying image on m5Stack]]></title><description><![CDATA[Hi! Thanks to both of you for your answers.
I managed to get it working by using a different approach-via Wi-Fi. However, I’m still curious: why couldn't I connect via UART?
I suspect it might be related to the camera's firmware. It seems like the Unit CamS3 5MP Wi-Fi doesn't have default firmware to stream JPEG over UART. Is that correct? I’d love to understand why it works over Wi-Fi but fails over UART. I either managed to connect with camera (pin 17 and 18) but couldn't get any data back.
Any insights would be greatly appreciated!
]]></description><link>https://community.m5stack.com/topic/8083/oserror-errno-1-eperm-esp_fail-m5stack-cores3-unit-cams3-displaying-image-on-m5stack</link><guid isPermaLink="true">https://community.m5stack.com/topic/8083/oserror-errno-1-eperm-esp_fail-m5stack-cores3-unit-cams3-displaying-image-on-m5stack</guid><dc:creator><![CDATA[katastrofiko]]></dc:creator><pubDate>Sat, 14 Feb 2026 14:15:57 GMT</pubDate></item><item><title><![CDATA[learn how to create and build custom firmware for the M5Stack Cardputer (ESP32-S3)]]></title><link>https://community.m5stack.com/topic/8079/learn-how-to-create-and-build-custom-firmware-for-the-m5stack-cardputer-esp32-s3</link><guid isPermaLink="true">https://community.m5stack.com/topic/8079/learn-how-to-create-and-build-custom-firmware-for-the-m5stack-cardputer-esp32-s3</guid><pubDate>Wed, 11 Feb 2026 01:11:16 GMT</pubDate></item><item><title><![CDATA[micropython driver for the Epson RX8130CE Real Time Controller used on the Tab5]]></title><link>https://community.m5stack.com/topic/8046/micropython-driver-for-the-epson-rx8130ce-real-time-controller-used-on-the-tab5</link><guid isPermaLink="true">https://community.m5stack.com/topic/8046/micropython-driver-for-the-epson-rx8130ce-real-time-controller-used-on-the-tab5</guid><pubDate>Fri, 30 Jan 2026 17:40:55 GMT</pubDate></item><item><title><![CDATA[My Tab5 Extended GPIO and Power management library.]]></title><description><![CDATA[@felmue
Thank you! you are quite right! I hadn't really looked at what was happening properly :-(
The pin needs to be toggled high then low with a ~50ms delay for a full power off, just toggling it high does a full reset (after 1 second). I really wish there was a state diagram (or similar) available for the code in the PMS150G power control MCU.
I've extended my code to do the required pulse similar to your modification, and added a reset_device() method too. Plus relevant notes in the README etc, and done a new release.
[testing shows that the poweroff happens immediately after the first pulse, I'm not sure why they attempt to pulse several times but I guess they are just making sure.. ;-)]
]]></description><link>https://community.m5stack.com/topic/7990/my-tab5-extended-gpio-and-power-management-library</link><guid isPermaLink="true">https://community.m5stack.com/topic/7990/my-tab5-extended-gpio-and-power-management-library</guid><dc:creator><![CDATA[easytarget]]></dc:creator><pubDate>Sat, 03 Jan 2026 14:27:05 GMT</pubDate></item><item><title><![CDATA[Scrolling with new m5ui widgets is very slow. (MicroPython, UIFlow 2.3.6, CoreS3)]]></title><link>https://community.m5stack.com/topic/7856/scrolling-with-new-m5ui-widgets-is-very-slow-micropython-uiflow-2-3-6-cores3</link><guid isPermaLink="true">https://community.m5stack.com/topic/7856/scrolling-with-new-m5ui-widgets-is-very-slow-micropython-uiflow-2-3-6-cores3</guid><pubDate>Tue, 14 Oct 2025 08:38:24 GMT</pubDate></item><item><title><![CDATA[uiflow-micropython build for M5PaperS3 experience]]></title><description><![CDATA[@Paulskpt
Hi, thank you for sharing. I'm new to paper s3 and i'm trying to use micropython. Do you know if there's a firmware that supports m5ui or lvgl?
]]></description><link>https://community.m5stack.com/topic/7491/uiflow-micropython-build-for-m5papers3-experience</link><guid isPermaLink="true">https://community.m5stack.com/topic/7491/uiflow-micropython-build-for-m5papers3-experience</guid><dc:creator><![CDATA[Huang]]></dc:creator><pubDate>Sat, 12 Apr 2025 12:48:24 GMT</pubDate></item><item><title><![CDATA[Library for 6-DoF IMU Pro Mini Unit]]></title><description><![CDATA[@007jimmey
A bit late to the party here but.. maybe of help to you or others
The bmp280 temperature/humidity/pressure sensor is well known, there are lots of libraries for this (I2C) eg: https://github.com/robert-hh/BME280

it has it's own I2C address and is separate from the bmi270/bmm150

The bmi270 six axis sensor (acceleration and gyro) has a basic, large and slow driver here: https://github.com/micropython/micropython-lib/tree/master/micropython/drivers/imu/bmi270
I have my own pair of drivers for this:
https://codeberg.org/easytarget/bmi270-micropython

bmi270_fast.py is a drop-in replacement for the above driver, but is 5x smaller, and 25x faster loading. (92 ms vs 2.3 seconds..)
bmi270_legacy.py is a work in progress full-feature driver I'm working on for my Tab5. It uses for the 'legacy config' (tablet/mobile phone featureset) and has motion and orientation sensors and interrupts available.

But.. the BMM150 magnetometer is an issue, it is attached to the 'auxillary' bus of the BMI270, not to the main I2C bus. You can only to access it via special features in the BMI270, and none of the MicroPython drivers support it.
]]></description><link>https://community.m5stack.com/topic/7441/library-for-6-dof-imu-pro-mini-unit</link><guid isPermaLink="true">https://community.m5stack.com/topic/7441/library-for-6-dof-imu-pro-mini-unit</guid><dc:creator><![CDATA[easytarget]]></dc:creator><pubDate>Wed, 26 Mar 2025 11:35:51 GMT</pubDate></item><item><title><![CDATA[Certificate based MQTT (AWS IoT) trouble with changed umqtt]]></title><description><![CDATA[@sistar_hh said in Certificate based MQTT (AWS IoT) trouble with changed umqtt:

Hi,
unfortunately the micropython certificate handling for MQTT has been changed last year. good description
Here is the new way to do it:
Create an SSL context
context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.verify_mode = ssl.CERT_REQUIRED

# Load certificates
context.load_verify_locations(cafile='/flash/certificate/ca.der')
context.load_cert_chain('/flash/certificate/cert.der', '/flash/certificate/key.der')
mqtt = MQTTClient(client_id=client, server=endpoint, port=8883, keepalive=1200, ssl=context)
print("Connecting to AWS IoT...")
mqtt.connect()
print("Done")

While the code and certificates work fine on ESP32-S3 Micropython they result in the following error on uiflow2
Traceback (most recent call last):
File "&lt;stdin&gt;", line 74, in &lt;module&gt;
File "&lt;stdin&gt;", line 52, in mqtt_connect
File "/flash/libs/umqttn/simple.py", line 69, in connect
File "ssl.py", line 1, in wrap_socket
ValueError:
The certificate validity has expired
I triple checked the certificate validity..
Next suspect would be an incorrect system time. Therfore I set the time as follows before attempting to initialize a mqtt connection:
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
if sta_if.isconnected():
sta_if.disconnect()
sta_if.connect(wifi_ssid, wifi_password)
while not sta_if.isconnected():
utime.sleep(1)
print("Connecting...")
print("Connected:", sta_if.ifconfig())
print(f"time before NTP settime {time.localtime()}")
ntptime.settime()
print(f"time after NTP settime {time.localtime()}")
import machine
rtc = machine.RTC()
Set manually to a known correct UTC date/time: (year, month, day, weekday, hour, minute, second, microsecond)
rtc.datetime((2025, 3, 14, 1, 14, 0, 0, 0))
print("Manually set time:", machine.RTC().datetime())
Still I get the same error:
Connecting...
Connecting...
Connecting...
Connecting...
Connected: ('192.168.5.0', '255.255.252.0', '192.168.4.1', '192.168.4.1')
time before NTP settime (2025, 3, 14, 12, 8, 44, 5, 72)
time after NTP settime (2025, 3, 14, 12, 8, 45, 5, 72)
Manually set time: (2025, 3, 14, 5, 14, 0, 0, 67)
Connecting to AWS IoT...
MQTT Connection failed:
The certificate validity has expired
Traceback (most recent call last):
File "&lt;stdin&gt;", line 79, in &lt;module&gt;
File "&lt;stdin&gt;", line 57, in mqtt_connect
File "/flash/libs/umqttn/simple.py", line 69, in connect
File "ssl.py", line 1, in wrap_socket
ValueError:
The certificate validity has expired
I used the micropython/umqtt.simple/umqtt/simple.py implementation installed as module umqttn in the /flash/libs folder. It differs from the m5stack implementation (which is currently broken for certificate based MQTT due to the described changes in Micropython).
At this point I wonder why the same code (umqtt.simple, demo-code, exactly the same certificate files) work on an UMFeatherS2 MicroPython v1.24.1 but fail on MicroPython v1.24.0-dirty on 2025-03-06; M5STACK CoreS3 with ESP32S3.
I would happy for any hint on how to solve this.

Aha! When trying the following change:
context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.verify_mode = ssl.CERT_OPTIONAL  # Instead of CERT_REQUIRED
I successfully connected!
]]></description><link>https://community.m5stack.com/topic/7394/certificate-based-mqtt-aws-iot-trouble-with-changed-umqtt</link><guid isPermaLink="true">https://community.m5stack.com/topic/7394/certificate-based-mqtt-aws-iot-trouble-with-changed-umqtt</guid><dc:creator><![CDATA[sistar_hh]]></dc:creator><pubDate>Fri, 14 Mar 2025 13:24:58 GMT</pubDate></item><item><title><![CDATA[CAN I USE EXTERNAL MODULES, LIKE PIR SENSOR, IR SENSOR, ETC WHICH ARE NOT FROM M5STACK FOR PROGRAMMING M2STICKC PLUS 2 in micropython]]></title><description><![CDATA[@DarshanAtwal As long as you know how to program in micropython You can still use programs like Thonny to program directly.
]]></description><link>https://community.m5stack.com/topic/7380/can-i-use-external-modules-like-pir-sensor-ir-sensor-etc-which-are-not-from-m5stack-for-programming-m2stickc-plus-2-in-micropython</link><guid isPermaLink="true">https://community.m5stack.com/topic/7380/can-i-use-external-modules-like-pir-sensor-ir-sensor-etc-which-are-not-from-m5stack-for-programming-m2stickc-plus-2-in-micropython</guid><dc:creator><![CDATA[ajb2k3]]></dc:creator><pubDate>Tue, 11 Mar 2025 14:51:24 GMT</pubDate></item><item><title><![CDATA[CANT FIND COMPATIBLE VERSION FOR M5Stickc Plus 2]]></title><description><![CDATA[@DarshanAtwal Use the latest version of UIFlow2 is its just a graphical front ent to Micropython.
There is a console mode in UIFlow2 to directly access the Micropython or you can use a program to directly access Micropython.
]]></description><link>https://community.m5stack.com/topic/7375/cant-find-compatible-version-for-m5stickc-plus-2</link><guid isPermaLink="true">https://community.m5stack.com/topic/7375/cant-find-compatible-version-for-m5stickc-plus-2</guid><dc:creator><![CDATA[ajb2k3]]></dc:creator><pubDate>Mon, 10 Mar 2025 09:40:37 GMT</pubDate></item><item><title><![CDATA[aioble Bluetooth Low Energy on M5Stack CoreS3]]></title><link>https://community.m5stack.com/topic/7273/aioble-bluetooth-low-energy-on-m5stack-cores3</link><guid isPermaLink="true">https://community.m5stack.com/topic/7273/aioble-bluetooth-low-energy-on-m5stack-cores3</guid><pubDate>Thu, 06 Feb 2025 14:09:19 GMT</pubDate></item><item><title><![CDATA[Working with multiple screens on Core2 and UIFlow 2.x firmware]]></title><link>https://community.m5stack.com/topic/7233/working-with-multiple-screens-on-core2-and-uiflow-2-x-firmware</link><guid isPermaLink="true">https://community.m5stack.com/topic/7233/working-with-multiple-screens-on-core2-and-uiflow-2-x-firmware</guid><pubDate>Thu, 23 Jan 2025 15:04:44 GMT</pubDate></item><item><title><![CDATA[v2.2.1 breaks web terminal download...?]]></title><link>https://community.m5stack.com/topic/7218/v2-2-1-breaks-web-terminal-download</link><guid isPermaLink="true">https://community.m5stack.com/topic/7218/v2-2-1-breaks-web-terminal-download</guid><pubDate>Mon, 20 Jan 2025 03:40:22 GMT</pubDate></item><item><title><![CDATA[M5Stack Dial with Micropython and M5 libraries, without UIFlow 2?]]></title><description><![CDATA[I can be more specific.
When I "Download" from UI Flow 2 to the device, it works:
Press BtnA to switch on.
Press BtnA to switch off, once my program allows, with custom MPY:
hold_pin = Pin(46, Pin.OUT)
hold_pin.value(0)

But a problem is if I LONG press (6 secs) BtnA, the device FULLY resets. It goes to the QR code and device Mac screen. That menu crashes almost immediately, meaning I can't rotate the dial to run my Python script. The only way to get it back working is to redownload from UI Flow 2?
Is there a way to turn off that long-press reset function? Or to stop the QR code menu from crashing, so I can at least run my program?
These details about long press BtnA or the reset button on the back don't seem to be covered by the main reference, https://docs.m5stack.com/en/core/M5Dial
]]></description><link>https://community.m5stack.com/topic/7125/m5stack-dial-with-micropython-and-m5-libraries-without-uiflow-2</link><guid isPermaLink="true">https://community.m5stack.com/topic/7125/m5stack-dial-with-micropython-and-m5-libraries-without-uiflow-2</guid><dc:creator><![CDATA[PharkieB]]></dc:creator><pubDate>Fri, 27 Dec 2024 21:57:07 GMT</pubDate></item><item><title><![CDATA[M5 Stack Unit V K210]]></title><description><![CDATA[@JDZAWODNIAK not at present as I haven’t had time to work on a project.
]]></description><link>https://community.m5stack.com/topic/6816/m5-stack-unit-v-k210</link><guid isPermaLink="true">https://community.m5stack.com/topic/6816/m5-stack-unit-v-k210</guid><dc:creator><![CDATA[ajb2k3]]></dc:creator><pubDate>Fri, 20 Sep 2024 01:10:09 GMT</pubDate></item><item><title><![CDATA[Atom S3 board as a mouse with micropython]]></title><link>https://community.m5stack.com/topic/6744/atom-s3-board-as-a-mouse-with-micropython</link><guid isPermaLink="true">https://community.m5stack.com/topic/6744/atom-s3-board-as-a-mouse-with-micropython</guid><pubDate>Fri, 30 Aug 2024 09:46:04 GMT</pubDate></item><item><title><![CDATA[Micropython on M5StickC Plus2]]></title><description><![CDATA[@ajb2k3 I can only find this one for M5Stack products:-
https://micropython.org/download/?vendor=M5 Stack
]]></description><link>https://community.m5stack.com/topic/6705/micropython-on-m5stickc-plus2</link><guid isPermaLink="true">https://community.m5stack.com/topic/6705/micropython-on-m5stickc-plus2</guid><dc:creator><![CDATA[citizenfishy]]></dc:creator><pubDate>Thu, 15 Aug 2024 09:34:01 GMT</pubDate></item><item><title><![CDATA[Trouble Passing Decoded JSON to Variable]]></title><link>https://community.m5stack.com/topic/6665/trouble-passing-decoded-json-to-variable</link><guid isPermaLink="true">https://community.m5stack.com/topic/6665/trouble-passing-decoded-json-to-variable</guid><pubDate>Wed, 31 Jul 2024 03:04:11 GMT</pubDate></item><item><title><![CDATA[Looking for MicroPython library for AXP2102 on M5Core2]]></title><description><![CDATA[Hi @xPalter
Have you tried XPowersLib? I think you can post an issue to the author to update AXP2102
https://github.com/lewisxhe/XPowersLib
]]></description><link>https://community.m5stack.com/topic/6502/looking-for-micropython-library-for-axp2102-on-m5core2</link><guid isPermaLink="true">https://community.m5stack.com/topic/6502/looking-for-micropython-library-for-axp2102-on-m5core2</guid><dc:creator><![CDATA[kuriko]]></dc:creator><pubDate>Fri, 24 May 2024 10:36:37 GMT</pubDate></item><item><title><![CDATA[mpy file upload errors]]></title><description><![CDATA[@madsrassmussen Yes, I noticed this odd behavior starting in 2.0.3 and it seems to be a different odd in 2.0.4, but neither work as expected.
When letting the web terminal do the upload, the named file under 'apps' is zero bytes and the file contents end up in 'main.py'
In 2.0.3 I could download main.py to my PC, rename it, and use web terminal file manager to upload it into the apps folder, and all was well.
In 2.0.4 however, it almost seems like the device 'My Apps' menu/list is unaware of this file, even though it is listed. When selected the device runs the .py file listed after the one I selected instead.
I've also had the variable undefined errors but I think that is a different issue.  Maybe not?
One example is copy/pasting the mpy code to a windows computer into say notepad.
The device requires unix style line endings, not windows line endings.  It also requires no blank lines to exist.
(This is why I would copy the existing 'main.py', as it was already formatted correctly.)
Otherwise, most times the upload just doesn't work at all.  I too have not found a pattern or submitted a bug report due to this lack of info.  I wasn't even sure it wasn't just me :)
Hopefully someone more knowledgeable can chime in
]]></description><link>https://community.m5stack.com/topic/6353/mpy-file-upload-errors</link><guid isPermaLink="true">https://community.m5stack.com/topic/6353/mpy-file-upload-errors</guid><dc:creator><![CDATA[dissy]]></dc:creator><pubDate>Fri, 19 Apr 2024 07:31:32 GMT</pubDate></item><item><title><![CDATA[PR11869 means the NanoC6 works with mainline MicroPython]]></title><link>https://community.m5stack.com/topic/6336/pr11869-means-the-nanoc6-works-with-mainline-micropython</link><guid isPermaLink="true">https://community.m5stack.com/topic/6336/pr11869-means-the-nanoc6-works-with-mainline-micropython</guid><pubDate>Mon, 15 Apr 2024 00:59:52 GMT</pubDate></item><item><title><![CDATA[M5 Flow2 + Web Server]]></title><link>https://community.m5stack.com/topic/6259/m5-flow2-web-server</link><guid isPermaLink="true">https://community.m5stack.com/topic/6259/m5-flow2-web-server</guid><pubDate>Sun, 24 Mar 2024 21:45:52 GMT</pubDate></item><item><title><![CDATA[Semi professional software development]]></title><description><![CDATA[Thank you for checking out my work in progress book on UIFLow1, Uiflow 2's version is on its way but hampered by bugs and issues.
One of the big changes in documents is the listing of API's, its taking me ages to find and log them.
The UIFlow2 API's are just additions built on micropython as with UIFlow.
There are a lot of users using VScode to program M5Stack devices but that beyond me until I can finish the Micropython/UIFlow docs.
I found MU way to simple but I use Thonny for most work outside of UIFlow.
]]></description><link>https://community.m5stack.com/topic/6167/semi-professional-software-development</link><guid isPermaLink="true">https://community.m5stack.com/topic/6167/semi-professional-software-development</guid><dc:creator><![CDATA[ajb2k3]]></dc:creator><pubDate>Thu, 29 Feb 2024 18:30:16 GMT</pubDate></item><item><title><![CDATA[OS X 14 for microPython development]]></title><description><![CDATA[Check out my Youtube channel for updated guides
]]></description><link>https://community.m5stack.com/topic/6158/os-x-14-for-micropython-development</link><guid isPermaLink="true">https://community.m5stack.com/topic/6158/os-x-14-for-micropython-development</guid><dc:creator><![CDATA[ajb2k3]]></dc:creator><pubDate>Mon, 26 Feb 2024 18:42:22 GMT</pubDate></item><item><title><![CDATA[Where is the M5 Python Library Doccumentation?]]></title><description><![CDATA[The documentation is slow going as I have a day job.
Work in progress copies are posted to the Facebook page or my GITHUB repository
What's is your blog
]]></description><link>https://community.m5stack.com/topic/6131/where-is-the-m5-python-library-doccumentation</link><guid isPermaLink="true">https://community.m5stack.com/topic/6131/where-is-the-m5-python-library-doccumentation</guid><dc:creator><![CDATA[ajb2k3]]></dc:creator><pubDate>Wed, 21 Feb 2024 15:41:48 GMT</pubDate></item></channel></rss>