@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
-
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.
-
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, -
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) -
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".
-
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.
Latest posts made by Paulskpt
-
M5Dial display goes black randomly.
I worked for weeks on an enhancement of an Arduino sketch that shows time data of seven different timezones in the world. At intervals the RTC is updated with a datetime stamp from an SNTP service server.
The past two weeks I was adding the functionality to send some data, like time sync time_t value to a Google Sheets spreadsheet. This all works OK.
The sketch ran a whole night, every 15 minutes sending data to a Google Apps Scripts script that adds the data to the spreadsheet.
In the sketch I have built the possibility to switch the display off (go to sleep) by using the command: "M5.Display.sleep()" and switch the display
on (awake) by using the command: "M5.Display.wakeup()". The switching off or switching on is done by holding an RFID card in front of the display. The sketch also has the possibility to switch the display on or off by touching the display (it is one or the other option. For now I use the RFID tag option). I used the Arduino IDE v2.3.3. for MS Windows 11. The Arduino IDE compile and build reports :Sketch uses 1190657 bytes (90%) of program storage space. Maximum is 1310720 bytes. Global variables use 53384 bytes (16%) of dynamic memory, leaving 274296 bytes for local variables. Maximum is 327680 bytes. esptool.py v4.5.1 Serial port COM6 Connecting... Chip is ESP32-S3 (revision v0.2) Features: WiFi, BLE Crystal is 40MHz [...] Wrote 1191024 bytes (721826 compressed) at 0x00010000 in 8.6 seconds (effective 1113.8 kbit/s)...
During the execution of the sketch calls to ESP.getFreeHeap(), result in values like: 265556 downto 264052.
After the display goes black, the sketch continues to execute fine, sending at the preset intervals its data to the Google Sheets spreadsheet.
Anyone that give me a clue to solve this abnormal behaviour?
-
RE: M5Dial_Timezones_and_beep_cmd_to_M5AtomEcho
I just uploaded a very short video impression to X. Here is the link: Post on X
-
RE: M5NanoC6 Timezones
I just uploaded a very short video impression to X. Here is the link: Post on X
-
RE: M5NanoC6 Timezones
FYI, I added functionality to make WiFi connection to a mobile phone. The WiFi credentials for the mobile phone are in the file secret.h. After reset the sketch will first try to establish WiFi contact with the mobile phone (when it's credentials are present in secret.h). If this fails, the sketch tries to establish WiFi connection with the fixed WiFi Access Point. In case of WiFi connection lost, the sketch will try to re-establish WiFi connection. The user will be informed on the OLED through brief messages.
-
M5NanoC6 Timezones
Hi there, members. Last Saturday I received an ordered M5NanoC6. I ported the sketch that I created earlier for M5Dial and other devices as published in this forum. Amazing what fits in 4Mb or RAM!. The sketch is available on Github: repo.
-
RE: Why is the Serial.print() not working in the M5NanoC6 unit?
@BoM_M5 I had the same problem today. In Arduino IDE v.2.3.3, BOARDS MANAGER, searched for esp32. Found "esp32" from Espressif Systems. It appeared that I had version "3.1.0 RC" installed. On Espressif's site on Github I saw that the latest stable version is: "3.0.5", so I downgraded to 3.0.5. Then I saw that the M5NanoC6 was available via: Tools -> Board -> esp32 -> M5NanoC6. After having selected this board, I saw also that: Tools -> CDC on Boot was "Enabled". I saw that there was here no more option "Disabled".
From this moment all Serial.print and Serial.println command worked as expected. -
M5Dial_Timezones_and_beep_cmd_to_M5AtomEcho
Hi members, yes, I was quite busy the past days creating projects.
This is a combination of the two recent projects: "M5Dial Timezones" and "M5AtomEcho ATOMECHOSPKR class to play simple beeps". In this combination the M5Dial sends a digital impulse (read: beep command), on pin 1 of its Grove Port B. The beep command is sent at the moment of a NTP Time Synchronization. In this moment a "TS" occurs every 15 minutes. The sketch running on the M5Atom Echo device is "listening" on its Grove Port pin 1 for a digital impulse. If such a "beep command" is received, or when the button on top of the M5Atom Echo is pressed, the Atom Echo will produce a double tone beep. At the same time the builtin RGB Led of the Atom Echo will first show Green and after the beeps have finished, the RGB Led will turn RED (again). See: repo. -
M5AtomEcho ATOMECHOSPKR class to play simple beeps
Hi members, FYI I just created a new repo on Github. This repo contains a C++ the ATOMECHOSPKR class that I created and an Arduino sketch to test the new beep functionality. This sketch also contains functionality to use the builtin RGB Led of the Atom Echo.
I did not create the C++ class from scratch. I used the class ATOMSPK that M5Stack published on Github for the AtomSPK device.
See my: repo
-
M5Dial NTP local time
Hi, FYI I created a new repo on Github:
M5Dial NTP local time -
M5Dial Timezones
Hi, FYI I just created a new repo on Github. It is a port of the Atom Matrix Timezones repo.
See: repo