UIFlow 2.0.0 firmware preview version

  • @felmue said in UIFlow 2.0.0 firmware preview version:

    Traceback (most recent call last):
      File "<stdin>", line 2, in <module>
    RuntimeError: Wifi Unknown Error 0x0101

    I tried it, there is indeed a bug, devices with psram might work, try it and we'll fix it.



    >>> wifi = network.WLAN(network.STA_IF)
    I (28862) wifi:wifi driver task: 3ffd3600, prio:23, stack:6656, core=0
    I (28862) system_api: Base MAC address is not set
    I (28862) system_api: read default base MAC address from EFUSE
    I (28872) wifi:wifi firmware version: 0d44bbe
    I (28872) wifi:wifi certification version: v7.0
    I (28872) wifi:config NVS flash: enabled
    I (28872) wifi:config nano formating: disabled
    I (28882) wifi:Init data frame dynamic rx buffer num: 32
    I (28882) wifi:Init management frame dynamic rx buffer num: 32
    I (28892) wifi:Init management short buffer num: 32
    I (28892) wifi:Init dynamic tx buffer num: 32
    I (28902) wifi:Init tx cache buffer num: 32
    I (28902) wifi:Init static rx buffer size: 1600
    W (28912) wifi:malloc buffer fail
    I (28912) wifi:Init static rx buffer num: 3
    I (28912) wifi:Init dynamic rx buffer num: 32
    E (28922) wifi:Expected to init 10 rx buffer, actual is 3
    I (28922) wifi:Deinit lldesc rx mblock:0
    I (28932) wifi:Deinit lldesc rx mblock:0
    I (28932) wifi:Deinit lldesc rx mblock:0
    I (28932) wifi:Deinit lldesc rx mblock:0
    I (28952) wifi_init: rx ba win: 6
    I (28952) wifi_init: tcpip mbox: 32
    I (28952) wifi_init: udp mbox: 6
    I (28952) wifi_init: tcp mbox: 6
    I (28952) wifi_init: tcp tx win: 5744
    I (28962) wifi_init: tcp rx win: 5744
    I (28962) wifi_init: tcp mss: 1440
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    RuntimeError: Wifi Unknown Error 0x0101

    Thanks for report this :)

    Have a nice day.

  • @ajb2k3

    @IAMLIUBO I have been recommending a firmware builder for a while because of the issue you had with firmware size.
    Please, please, please me need a stand alone server that can be run on a raspberry pi!

    This is a little lower priority, there are still some important things to deal with, we will release a preview version as soon as possible (online firmware function selection and generation).

    Thanks for your recommend and help us be better.

    Have a nice day.

  • @iamliubo BTW I’m not stating here just moaning, I am actually working on documentation for UIFlow it’s just that the IoT side of things is proving a challange. I’m not sure if the issue with Blynk is Blynk side or UIFLOW side.

  • Hello @IAMLIUBO

    no need to apologize - I hope you had a great holiday.

    Re ESP32c3: thank you for the clarification. I suspected that much. The different architecture requires a different firmware.

    Re WiFi: I can confirm that scanning for WiFi APs works on an M5Core2 (which has PSRAM). So indeed, it seems to be a RAM issue.


  • @ajb2k3

    Thanks for your contribution.

    I’m not sure if the issue with Blynk is Blynk side or UIFLOW side.

    Based on previous discussions here, there are indeed some issues that need to be identified and dealt with, which we will test and investigate as soon as possible.

  • @felmue

    Re WiFi: I can confirm that scanning for WiFi APs works on an M5Core2 (which has PSRAM). So indeed, it seems to be a RAM issue.

    Yes, thanks for you feedback, I always use CORE2 for develop and test,so I didn't notice that, we will release some new FW at this friday with more bug fixed.

  • Hello, please when you launch UiFlow 2.0 check all the existing functions, most of them doesn't work

    i.e. I am trying to use UHF-RFID unit on UIFlow and most of blocks don't do anything or give errors:

    • Set region code ERROR name REGIN_EU isn't defined
    • Multiple polling read NOT WORKING
    • Select mode NOT WORKING
    • Set tx power ALWAYS RETURN 256
    • Enable /disable continuous carrier NOT WORKING

    And so on...

    Will LVGL be included in this UIFLOW version just like current one?

  • 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 a waste 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 is just my first impression which I wanted to share with you since you asked: '...that you help us develop and test firmware...'
    Paulus Schulinck (@Paulskpt)

  • This is my second feedback. This is about documentation. The subject of 'documentation' It is an old story. Programmers were always late with documenting their work. Often they waited with documenting until the last moment. Nowadays there are tools to assist us. I see that M5Stack has quite some documentation. But in my short life of experience in this M5Stack world, and viewing through the mind of a programmer, (until now) I could not find a central place where all the functions are documented. I see that the documentation is more device-orientated. This is good to help a starter; to give him/her adequate documentation for that device to experiment with. Yes, there is a good explanation of UIFlow. However, for the more experienced programmer, that does not want to spend time on building blockly structures, a central place to quickly lookup a documentation of libraries/functions, I missed. Something like 'read-the-docs' system. I googled for: m5stack read the docs. The first 'hit' was: M5Stak | Read the Docs'. It was a quite empty page. I clicked on a link to a that stated: 'Repository' : Link to repo M5Stack read-the-docs' . I arrived at m5-docs. On this page is written: This repository is out of maintenance. Bad luck! Then I went back to the former page; I clicked on a link named master. I was re-directed to a page: m5stack read-the-docs. To my surprise the page is empty! Did I look in the wrong places?
    When I was writing my first micropython script for a M5Stack device, I had a simple question when I wanted to set a text font for the lcd. I found that the m5stack.display.TFT module has an attribute (function) called font. Immediately came up in my mind the question: 'but what does 'font' do? By experimenting I discovered I could set a font like lcd.FONT_Default. Next the question: 'How can I know which font type already has been set with 'font'? Can I use 'font' to perform a 'get'? By experimenting I discovered that issuing a m5stack.display.TFT.font() command resulted in: TypeError: function missing 1 required positional arguments. My conclusion: font() cannot be used to find out which font is active. As you see, I learn to program a M5Stack device the 'hard' way. That is kinda frustrating. Documentation is what I need. Did I miss something while searching for the 'right' and 'useful' documentation? (Afterburner/addition: some hours after writing this post I happened to come across m5-docs/docs/en/api/lcd.md. There are a lot of descriptions of functions that are in that api/lcd library. I saw that, among many other functions, the library contains these functions: fontsLoaded() and unloadFont. But these functions are not in the UIFlow micropython firmware V1.9.4).
    What about an answer to: how to use an icon like m5stack.display.TFT.ICON_USB ? Where is that documented?
    Excuse me if I stepped on someones feet with this kind of critical feedback; being a newbie, ignorant to M5Stack. Yes, I want to learn more about M5Stack. Please show me the way. The needed information appears to be much dispersed. It would be very helpful that the information was more centralized. It appears to me a bit odd to find m5-docs in a place as Github. It should have been in a place like read-the-docs (or in both places).
    Paulus Schulinck (@Paulskpt)

  • Alas that could be my fault as I started documenting back in 2019 but was finding it hard to source documents. What I have on the API's is currently listed in this book https://github.com/Ajb2k3/UIFlowHandbook/blob/master/quickblockref.pdf

  • @paulskpt Hi Thanks for all your feedback, we appreciated it and will take that into account. So thi is the doc address:docs.m5stack.com
    Also, the API doc will be available soon in the coming days.

  • Hello guys

    how's the UiFlow version 2.0.x coming together? Any updates?


    Please check this new topic and discuss。