@ajb2k3 Thank you for your reply. Thank you also for your hint about creating a log on hackster.io. By now I created a v2 of my document. I changed the titel into "My first steps with the M5Stack UIFlow IDE". In the document I refer to it as "my notes". The Intro I changed. I digged a bit into what is 'Blockly'. At the end I wrote a paragraph "About me". I uploaded v2 and I deleted the initial version. OK about pm or email. I'll contact you soon.

Paulskpt
@Paulskpt
See also my profile description and my repos on Github. See also my Github Gists. Currently experimenting with: Rpi Pi Pico, Pimoroni Pico Lipo 16MB, Adafruit Feather's, ESP32, ESP32S2 and ESP32S3. I own various UM's TinyS3, FeatherS3 and ProS3. I own various M5Stack device like: TOUGH, Faces, Core2, Fire, Atom, AtomS3, Atom Matrix. Espressif ESP32-S3-Box.
Best posts made by Paulskpt
-
RE: Does there exist a doc/explanation of all commands/blocks used in UI Flow
-
RE: UIFlow 2.0.0 firmware preview version
Hi,
I just recently stepped into the 'world of M5Stack'. I am learning fast :-). Yesterday I published a small repo for M5Stack on GitHub and posted this fact in this Community forum. Thank you for your efforts to improve the firmware for M5Stack devices. The past ten years I experimented with Arduino, Raspberry Pi's (all models) , ESP32-S2. I prefer to write in Python but also built projects in C, C++. While trying to get aquainted to the M5Stack firmware I used REPL in Thonny to see which modules/functions are present in the several libraries. I discovered that there exist (at least appear in the dir() listings issued in REPL of Thonny).doubling of functions in the various library modules
, for example: in 'vfs' exist: mount, umount, mkdir, chdir etcetera. These same functions also exist in the 'uos' module: mount, umount, mkdir, chdir and more. The module 'os' has the same contents as 'uos'. To me this is: a)confusing
; b) if it are not a kind of 'links' (or say: 'redirection' -- my expression to this phenomenon) of a function in library 'x' to a function in libary 'y', then it will be awaste of memory
too; c) this fact does not help to improve the quality and reliability of programs. I think that a function should be unique: be in one place only. This will also make writing and reading code more easy; helps preventing bugs and so on. But this is just a thinking on my side. I am not familiar with the internals of the current set of modules that make up the micropython firmware for the M5Stack family of devices. I started programming around 1978 with a 'computer' having only 64kB of RAM. Learning all kind of tricks, e.g.: re-use of RAM at runtime. If your intention is to 'optimize' the firmware you could start with a 'cleanup session' by taking out these confusing doublings.Question
: is there a reason to have the same function in more than one library/module? This isjust my first impression
which I wanted to share with you since you asked: '...that you help us develop and test firmware...'
Regards,
Paulus Schulinck (@Paulskpt) -
RE: DS3231 on M5Stack - Need your Help
@morguane I just saw your topic (of almost a year ago). I guess you solved your problems with the external RTC by now. But anyway liked to inform you about the repo I published on GitHub, using a D3231 RTC with a M5Stack Core1 (BASIC). DS3231 on M5Stack_DS3231_uRTC.
Regards, -
Does there exist a doc/explanation of all commands/blocks used in UI Flow
HI, a second post of this newby in UI Flow.
I unsuccessfully searched the internet to find a document that explains all the commands/blocks used in UI Flow. I found some but they are not complete. Or did I miss something?
E.g.: In the UI Flow part UI > Switch, there is the "set swtich(n) toggle". It is not clear to me what this block does:
a) toggles the switch(n) logic state: if the state was: "off", it switches the switch state to "on" and viceversa; or
b) the switch(n) is with this block assigned to be of the type "toggle switch".I ask this because it confuses me . I saw that there are two other blocks for switches in the same section: "set switch(n) on" and "set switch(n) off".
-
FACES /apps/game.py doesn't run properly (solved)
Hi, I just got a FACES set delivered.
When exploring the apps that came with the UIFlow firmware (V1.3.3) I discovered the following:
The script/apps/game.py
did not run properly. It showed only the small icon image above the btnB position and a bigger version of this icon in the upper half of the display. However the latter did not change (which it should).
I discovered that the source of the problem was: filenames of the image files that had more than 8 characters.
In the folder/flash/img
I changed file names of these three image files to:rock.jpg
,paper.jpg
andscissors.jpg
.rps_img = (
'img/rock_128.jpg',
'img/paper_128.jpg',
'img/scissors_128.jpg'
)lcd.clear(lcd.WHITE)
lcd.image(48, 200, 'img/rock_128.jpg', 2)
lcd.image(143, 200, 'img/paper_128.jpg', 2)
lcd.image(238, 200, 'img/scissors_128.jpg', 2)This fact did not crash the script but it worked only partially.
I made the following modifications:
a)rps_img = (
'img/rock.jpg',
'img/paper.jpg',
'img/scissors.jpg'
)b) since there was already defined
rps_img
, I used this in the following commands:lcd.image(48, 200, rps_img[0], 2)
lcd.image(143, 200, rps_img[1], 2)
lcd.image(238, 200, rps_img[2], 2)Another problem occurred after I flashed the device with the latest UIFlow firmware (V1.9.4) using M5Burner.
Now thescript /apps/game.py
crashed because the functionmachine.random()
does not exist anymore.
The command:rand = machine.random(2)
I replaced by:
from random import randint
rand = randint(0,2)
Now the script ran again OK.
-
Cardputer with ENVII unit
Hi there, FYI I just created a repo on Github of a M5Stack Cardputer with a M5Stack ENVII unit.
See repo
PaulskPt @ Github -
RE: Does there exist a doc/explanation of all commands/blocks used in UI Flow
@ajb2k3 The past days I studied and experimented a lot, mainly with a M5Stack Core2 and a M5Stack CardKB. I learned a lot, partly with help from your Handbook. Thank you for publishing it. I have the custom to make notes of my experiments. This is my way of learning. It also helps me, in later moments, to remember myself what I did in that moment of experimenting. I used your handbook as a start. I decided to rework it and add to it things that I discovered. The document is now 37 pages. I saved as a .pdf file. In the final paragraphs I added a description how I managed to download (backup) all files that were on the device. At first I was, for instance, not able to download .IMG, .JPG, .PNG and some other filetypes. Then I used a method that uses the Thonny app to write files to a Raspberry Pi Pico, to download files from the M5Stack device to the host PC using Thonny. I want to share the file with you. I would appreciate to hear from you what you think about it. Unfortunately, this forum interface does not allow to upload .docx or .pdf files. only images, so I copied the .pdf to a Dropbox folder. Here is the link to that folder:
[link https://www.dropbox.com/sh/5cy7v623ksp8mp1/AAADNdYm3x8P5-iSQzkyDFx0a?dl=0].
I'll keep this Dropbox folder available for some time. -
RE: PaperS3 with UIFlow2 v2.2.5 binded in M5Burner but not recognized in UIFlow2 online (SOLVED)
@robski Thank you. I just flashed and registered a M5StickC-Plus2 with UIFlow2. It was recognised in online UIFlow2 session.
Latest posts made by Paulskpt
-
RE: PaperS3 with UIFlow2 v2.2.5 binded in M5Burner but not recognized in UIFlow2 online (SOLVED)
@robski Update: from within an online Uiflow2.0 session I used the M5Burner. I choose to not to burn the v2.2.5 but the v.2.2.4 hotfix. And this went OK. The main page of the Uiflow2 on the M5PaperS3 is now showing MODE "Public" and ACCOUNT my account e-mail address.
See images.Problem solved. I didn't find a place in Github/M5Stack where I eventually could create an issue. However, we are here in UiFlow 2.0.
Thanks for your assistance robski!
Paulskpt -
RE: PaperS3 with UIFlow2 v2.2.5 binded in M5Burner but not recognized in UIFlow2 online (SOLVED)
@robski Thank you. I just flashed and registered a M5StickC-Plus2 with UIFlow2. It was recognised in online UIFlow2 session.
-
RE: PaperS3 with UIFlow2 v2.2.5 binded in M5Burner but not recognized in UIFlow2 online (SOLVED)
@robski thank you for your reply. After binding I flashed the UIFlow2 for the M5PaperS3. Then I opened uitflow2.m6stack.com, however, at that moment I had my PaperS3 connected to my desktop PC (MS Windows 11 Pro) via USB cable. I don't know if it makes a difference if the device is connected via USB or via WiFi. I'll go to make that check.
Additional info:
First, in the online Uiflow2.0 page I deleted the existing registration of the M5PaperS3, so M5Burner would go to ask me to bind this device to my account.
I reflashed UIFlow2 using M5Burner V3 (beta-win64) (I googled for an older version however I didn't find). During the burn process inside M5Burner I was asked to bind the deviced. I did and accepted the default option "Public". After a successful flashing I disconnected the M5PaperS3 from the desktop PC. I rebooted the M5PaperS3. I saw on the display of the M5PaperS3, main window, under "MODE": "Private" and under "ACCOUNT": "None".
I remember from using other M5Stack devices in Uiflow2, that it can take some seconds, after the device has connected to the M5stack server, to update its account information on the Uiflow2.0 webpage and on the device itself.
However, this time with this M5PaperS3 I saw no account info update. On the desktop PC I started a Uiflow2 session within a Chrome browser. When I clicked on the device info, the Uiflow webpage showed MAC-address, a TOKEN value, a device-ID and Permissions: "Public". On the M5PaperS3, main window, I saw that the info did not change. It showed the same data as I wrote above.
I created a short video of the boot process. In this video one can see that on the bottom line, left side, two icons appear. Left: a WiFi-icon. Right next to it, a Server-icon. Initially the Server-icon looks like what I interprete as "connected". A few seconds later this Server-icon changes. From then on the Server-icon has a "x" in it. This I interpreted as "disconnected from Server".
In the Uiflow2.0 webpage, the icon of the M5PaperS3 device is shown with a red dot and a red question mark ("?") inside of it. When I clicked on that logo, there appeared on the right-top of the UIflow2.0 window a pop-up message window saying "Error: the device type is unknown".
I don't think there is a WiFi problem with this M5PaperS3. Why? Because, after I had built and flashed uiflow-micopython firmware to this M5PaperS3, I created a MPY sketch that connected to a WiFi Access Point here in the house and have the device connecting to a NTP-server and ask for an NTP-datetimestamp which was received OK. Conclusion: the WiFi of this M5PaperS3 is working.
Sofar my response. I don't know what I can do more. Maybe create an issue on Github.
FYI here is a link to the video.
Regards,
Paulskpt -
PaperS3 with UIFlow2 v2.2.5 binded in M5Burner but not recognized in UIFlow2 online (SOLVED)
Hi, using M5Burner I flashed my M5PaperS3 (v1.2) with UIFlow2 v2.2.5. I binded this device in M5Burner to my account (being logged-in). However, when using the online version of UIFlow2 the M5PaperS3 is not recognized as if it was not binded. Also on the main page of UIFlow2 on the M5PaperS3 below the word "ACCOUNT" there is no information.
See the images
Anyone has an idea what could be the reason why a device binded to ones account is not recognized as such?In the mean time I have cloned and built uiflow-micropython. I am now using the M5PaperS2 in Thonny.
-
uiflow-micropython dir(hardware) gives no output
For my M5Stack M5PaperS3 I built uiflow-micropython firmware,
MicroPython v1.24.0-dirty on 2025-04-12; M5STACK PaperS3 with ESP32S3
See also my post about this building experience.
While using the Thonny IDE, in the Shell. I issued the commands:
import hardware display(hardware)
Nothing happened. I waited some minutes. Then I broke out with a KeyboardInterrrupt (<ctrl>C).
When I issue the command:
dir(hardware.RTC)
this results in:
['__class__', '__name__', '__bases__', '__dict__', 'datetime', 'init', 'local_datetime', 'memory', 'timezone']
when I enter the command "dir(board.sdcard)" this also results in ouput:
>>> dir(hardware.sdcard) ['__class__', '__name__', 'SDCard', '__dict__', '__file__', 'machine', 'os', 'create_sdcard_closure']
See the: screenshot.
Regards,
PaulskPt -
RE: uiflow-micropython build for M5PaperS3 experience
Afterburner:
I was able to create and run a small display test script.
See the image -
uiflow-micropython build for M5PaperS3 experience
Hi, members!
I would like to share with you my experiences when, today, I tried to build MStack's uiflow-micropython:First a little history of the past days, if you don't mind:
Two days ago I flashed my M5PaperS3 with UIFlow2 firmware, however I encountered various problems. One of them: notwithstanding the fact that I, from within M5Burner, I was logged in; did "bind" the M5PaperS3 successfully to my account, this fact was not recognized by Uiflow online. Also on the "</> CODE information" on the display of the M5PaperS3 under "ACCOUNT" was shown the text: "None". Beside this problem, inside UIFlow2 I find myself "caged". I cannot do what I want. I am missing functionalities.
That is why I "left" the UIFlow2 "road", so to speak.
Next I flashed the M5PaperS3 with the latest, standard version of micropython fw for an ESP32S3. Using this fw I ran into several problems like: trying to make WiFi connection or connecting to the SD-card.Then I searched for a solution. I discovered that M5Stack published a repo called "uiflow-micropython" link.
After reading the README.md instructions, I decided to try to build this fw for the M5PaperS3.
Below the problems I encountered as the changes I made to finally be able to build the fw successfully: As a development platform I used a Raspberry Pi CM5.The first build ended with an error that the module "future" was missing. When I tried to use pip to install this module, the result was:
paulsk@RPiCM5:~/uiflow_workspace/uiflow_micropython/m5stack $ pip3 install future Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already satisfied: future in /home/paulsk/.espressif/python_env/idf5.2_py3.11_env/lib/python3.11/site-packages (1.0.0)
To solve this I made a change to the file: ~/.profile I added these lines:
# Needed to make M5Stack uiflow_micropython for the M5PaperS3 if [ -d "$HOME/home/paulsk/.espressif/python_env/idf5.2_py3.11_env/lib/python3.11/site-packages (1.0.0)" ] ; then path="$HOME/home/paulsk/.espressif/python_env/idf5.2_py3.11_env/lib/python3.11/site-packages (1.0.0):PATH" fi
then I issued the CLI-command:
source ~/.profile
to make the new PATH known.
Other changes I made to have a successful build and flash on the development platform were:
In the file: paulsk@RPiCM5:~/uiflow_workspace/uiflow_micropython/m5stack/Makefile
change the line: "BOARD ?= M5STACK_AtomS3"
into: "BOARD ?= M5STACK_PaperS3"
In the same file, below the line: "Device serial settings.", change the line: "PORT ?= /dev/ttyUSB0"
into: "PORT ?= /dev/ttyACM0".next, executing the CLI-command:
make flash_all
finished OK. See the last lines below:
PAPERS3: m5stack/build-M5STACK_PaperS3/uiflow-cf61f739-esp32s3-spiram-16mb-papers3-v2.2.5-20250412.bin esptool.py --chip esp32s3 --port /dev/ttyACM0 --baud 1500000 write_flash 0x0 build-M5STACK_PaperS3/uiflow-cf61f739.bin esptool.py v4.8.1 Serial port /dev/ttyACM0 Connecting... Chip is ESP32-S3 (QFN56) (revision v0.2) Features: WiFi, BLE, Embedded PSRAM 8MB (AP_3v3) Crystal is 40MHz MAC: a0:85:e3:f0:ad:4c Uploading stub... Running stub... Stub running... Changing baud rate to 1500000 Changed. Configuring flash size... Flash will be erased from 0x00000000 to 0x00ffefff... Compressed 16773120 bytes to 3585048... Writing at 0x00272df4... (49 %) Lost connection, retrying... Waiting for the chip to reconnect Connecting... Uploading stub... Running stub... Stub running... Compressed 16773120 bytes to 3585048... Wrote 16773120 bytes (3585048 compressed) at 0x00000000 in 53.3 seconds (effective 2515.8 kbit/s)... Hash of data verified. Leaving... Hard resetting via RTS pin...
After these successful build and flash steps, I learned that it was not necessary to make changes to the files: CMakeLists.txt and Makefile. The instruction from M5Stack says:
The default board build the M5STACK_AtomS3 one, You can specify a different board by passing BOARD=<board> to the make commands. More BOARD type define is under m5satck/boards path.
As a final check, I connected the M5PaperS3 to a USB port of my desktop PC running MS Windows 11 Pro. Then I started Thonny. In Tools > Interpreter > Port I selected the correct COM port.
After pressing the "Stop" button of Thonny, the M5PaperS3 replied with:
MicroPython v1.24.0-dirty on 2025-04-12; M5STACK PaperS3 with ESP32S3 Type "help()" for more information. >>> MPY: soft reboot _ __ _ _ _(_)/ _| | _____ __ | | | | | |_| |/ _ \ \ /\ / / | |_| | | _| | (_) \ V V / \__,_|_|_| |_|\___/ \_/\_/ V2.2.5
That's all folks!
Have a nice weekend y'all.
Paulskpt -
M5Cardputer and M5Echo I2C text to morse code
Hi there members, I published a new repo on Github, which is an extension to the project in my last post of 9 days ago. repo
The README.md file of the repo explains.
Regards,
Paulskpt -
RE: M5 Stamp C3 -> Which Flash Mode to choose in Arduino IDE
@Knobsi Hi, your question is already two years old. I guess you'll have found the answer, however I just came across it today. I want to share with you an experience I had yesterday:
Suddenly I encountered a problem after upgrading the Arduino IDE from v2.3.4 to v2.3.5.
The board that I use is an M5 Atom Echo which has an ESP32-PICO processor.
After compiling and building a sketch, that compiled, built, and ran OK with v2.3.4,
It crashed after compiling and building and running with v2.3.5.In the crash report I saw "DIO".
In Arduino v2.3.5 I checked the setting: > Tools > Flash Mode.
I saw that the Flash Mode was set for: "QIO".
After I changed the setting Flash Mode it to DIO, re-compiling and building, the sketch ran OK.Regards,
@Paulskpt