Problem (Re)Loading UIFLow firmware.



  • I've had my StickC for a few days and have enjoyed playing with it.

    I burned the UIFlow firmware to replace the factory app and then had fun writing a few programs in Blockly and Python.

    Then last night I started play with Arduino IDE which worked great.

    This morning however when I'm trying to reload the UIFlow-v1.4.5 firmware with M5Burner it seems to work, goes through the correct looking loading sequence (see below) and then resets the screen from whatever arduino sketch I had running (I've tried this a few times), but the UIFLow splash screen never shows up after that like I would expect and I can not connect via UIFlow.

    I can then reload an arduino sketch and it works fine, but there is no joy with UIFlow.

    Here is the output from M5Burner. I'm running it at a baudrate 750000 (921600 has never worked) and I also tried it at 115200 which also appeared successful. I also switched out my usb cable. Any help would be appreciated, I really love this platform and am hoping to use it as a gateway drug to get my kids into coding.

    • noise

    Command:
    --chip esp32 --port COM6 --baud 750000 --before default_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0x10000 application_0x10000.bin 0x1000 bootloader_0x1000.bin 0x200000 fatfsImg_0x200000.img 0x8000 partitions_0x8000.bin 0xf000 phy_init_data_0xf000.bin 0x3ff000 wifi_0x3ff000.bin

    esptool.py v2.5.0
    Serial port COM6
    Connecting......
    Chip is ESP32-PICO-D4 (revision 1)
    Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse
    MAC: d8:a0:1d:55:f1:50
    Uploading stub...
    Running stub...
    Stub running...
    Changing baud rate to 750000
    Changed.
    Configuring flash size...
    Auto-detected Flash size: 4MB
    Compressed 1962832 bytes to 1376058...

    Writing at 0x00010000... (1 %)
    Writing at 0x00014000... (2 %)
    Writing at 0x00018000... (3 %)
    Writing at 0x0001c000... (4 %)
    Writing at 0x00020000... (5 %)
    Writing at 0x00024000... (7 %)
    Writing at 0x00028000... (8 %)
    Writing at 0x0002c000... (9 %)
    Writing at 0x00030000... (10 %)
    Writing at 0x00034000... (11 %)
    Writing at 0x00038000... (13 %)
    Writing at 0x0003c000... (14 %)
    Writing at 0x00040000... (15 %)
    Writing at 0x00044000... (16 %)
    Writing at 0x00048000... (17 %)
    Writing at 0x0004c000... (19 %)
    Writing at 0x00050000... (20 %)
    Writing at 0x00054000... (21 %)
    Writing at 0x00058000... (22 %)
    Writing at 0x0005c000... (23 %)
    Writing at 0x00060000... (25 %)
    Writing at 0x00064000... (26 %)
    Writing at 0x00068000... (27 %)
    Writing at 0x0006c000... (28 %)
    Writing at 0x00070000... (29 %)
    Writing at 0x00074000... (30 %)
    Writing at 0x00078000... (32 %)
    Writing at 0x0007c000... (33 %)
    Writing at 0x00080000... (34 %)
    Writing at 0x00084000... (35 %)
    Writing at 0x00088000... (36 %)
    Writing at 0x0008c000... (38 %)
    Writing at 0x00090000... (39 %)
    Writing at 0x00094000... (40 %)
    Writing at 0x00098000... (41 %)
    Writing at 0x0009c000... (42 %)
    Writing at 0x000a0000... (44 %)
    Writing at 0x000a4000... (45 %)
    Writing at 0x000a8000... (46 %)
    Writing at 0x000ac000... (47 %)
    Writing at 0x000b0000... (48 %)
    Writing at 0x000b4000... (50 %)
    Writing at 0x000b8000... (51 %)
    Writing at 0x000bc000... (52 %)
    Writing at 0x000c0000... (53 %)
    Writing at 0x000c4000... (54 %)
    Writing at 0x000c8000... (55 %)
    Writing at 0x000cc000... (57 %)
    Writing at 0x000d0000... (58 %)
    Writing at 0x000d4000... (59 %)
    Writing at 0x000d8000... (60 %)
    Writing at 0x000dc000... (61 %)
    Writing at 0x000e0000... (63 %)
    Writing at 0x000e4000... (64 %)
    Writing at 0x000e8000... (65 %)
    Writing at 0x000ec000... (66 %)
    Writing at 0x000f0000... (67 %)
    Writing at 0x000f4000... (69 %)
    Writing at 0x000f8000... (70 %)
    Writing at 0x000fc000... (71 %)
    Writing at 0x00100000... (72 %)
    Writing at 0x00104000... (73 %)
    Writing at 0x00108000... (75 %)
    Writing at 0x0010c000... (76 %)
    Writing at 0x00110000... (77 %)
    Writing at 0x00114000... (78 %)
    Writing at 0x00118000... (79 %)
    Writing at 0x0011c000... (80 %)
    Writing at 0x00120000... (82 %)
    Writing at 0x00124000... (83 %)
    Writing at 0x00128000... (84 %)
    Writing at 0x0012c000... (85 %)
    Writing at 0x00130000... (86 %)
    Writing at 0x00134000... (88 %)
    Writing at 0x00138000... (89 %)
    Writing at 0x0013c000... (90 %)
    Writing at 0x00140000... (91 %)
    Writing at 0x00144000... (92 %)
    Writing at 0x00148000... (94 %)
    Writing at 0x0014c000... (95 %)
    Writing at 0x00150000... (96 %)
    Writing at 0x00154000... (97 %)
    Writing at 0x00158000... (98 %)
    Writing at 0x0015c000... (100 %)
    Wrote 1962832 bytes (1376058 compressed) at 0x00010000 in 25.9 seconds (effective 606.9 kbit/s)...
    Hash of data verified.
    Compressed 22720 bytes to 14208...

    Writing at 0x00001000... (100 %)
    Wrote 22720 bytes (14208 compressed) at 0x00001000 in 0.2 seconds (effective 757.8 kbit/s)...
    Hash of data verified.
    Compressed 2093056 bytes to 744147...

    Writing at 0x00200000... (2 %)
    Writing at 0x00204000... (4 %)
    Writing at 0x00208000... (6 %)
    Writing at 0x0020c000... (8 %)
    Writing at 0x00210000... (10 %)
    Writing at 0x00214000... (13 %)
    Writing at 0x00218000... (15 %)
    Writing at 0x0021c000... (17 %)
    Writing at 0x00220000... (19 %)
    Writing at 0x00224000... (21 %)
    Writing at 0x00228000... (23 %)
    Writing at 0x0022c000... (26 %)
    Writing at 0x00230000... (28 %)
    Writing at 0x00234000... (30 %)
    Writing at 0x00238000... (32 %)
    Writing at 0x0023c000... (34 %)
    Writing at 0x00240000... (36 %)
    Writing at 0x00244000... (39 %)
    Writing at 0x00248000... (41 %)
    Writing at 0x0024c000... (43 %)
    Writing at 0x00250000... (45 %)
    Writing at 0x00254000... (47 %)
    Writing at 0x00258000... (50 %)
    Writing at 0x0025c000... (52 %)
    Writing at 0x00260000... (54 %)
    Writing at 0x00264000... (56 %)
    Writing at 0x00268000... (58 %)
    Writing at 0x0026c000... (60 %)
    Writing at 0x00270000... (63 %)
    Writing at 0x00274000... (65 %)
    Writing at 0x00278000... (67 %)
    Writing at 0x0027c000... (69 %)
    Writing at 0x00280000... (71 %)
    Writing at 0x00284000... (73 %)
    Writing at 0x00288000... (76 %)
    Writing at 0x0028c000... (78 %)
    Writing at 0x00290000... (80 %)
    Writing at 0x00294000... (82 %)
    Writing at 0x00298000... (84 %)
    Writing at 0x0029c000... (86 %)
    Writing at 0x002a0000... (89 %)
    Writing at 0x002a4000... (91 %)
    Writing at 0x002a8000... (93 %)
    Writing at 0x002ac000... (95 %)
    Writing at 0x002b0000... (97 %)
    Writing at 0x002b4000... (100 %)
    Wrote 2093056 bytes (744147 compressed) at 0x00200000 in 14.8 seconds (effective 1131.3 kbit/s)...
    Hash of data verified.
    Compressed 3072 bytes to 125...

    Writing at 0x00008000... (100 %)
    Wrote 3072 bytes (125 compressed) at 0x00008000 in 0.0 seconds (effective 1536.8 kbit/s)...
    Hash of data verified.
    Compressed 144 bytes to 69...

    Writing at 0x0000f000... (100 %)
    Wrote 144 bytes (69 compressed) at 0x0000f000 in 0.0 seconds (effective 72.0 kbit/s)...
    Hash of data verified.
    Compressed 100 bytes to 24...

    Writing at 0x003ff000... (100 %)
    Wrote 100 bytes (24 compressed) at 0x003ff000 in 0.0 seconds (effective 47.1 kbit/s)...
    Hash of data verified.

    Leaving...
    Hard resetting via RTS pin...



  • Are you erasing the flash before writing the uiflow?



  • If you're referring to the Erase function in M5Burner, then yes I've tried that.

    This is the output from that so it seems successful. Although if there is anything on the screen left over from an arduino sketch it doesn't clear that.

    esptool.py v2.5.0
    Serial port COM6
    Connecting....
    Detecting chip type... ESP32
    Chip is ESP32-PICO-D4 (revision 1)
    Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse
    MAC: d8:a0:1d:55:f1:50
    Uploading stub...
    Running stub...
    Stub running...
    Erasing flash (this may take a while)...
    Chip erase completed successfully in 2.4s
    Hard resetting via RTS pin...
    Finished



  • It's too bad really, because I was ready to pull the trigger on 2-3 more m5stick's, but it seems like a bad idea if I'm just potentially going to end up frustrating new programmers when the device half bricks.



  • @noiseislife switch back to 1.4.2



  • @ajb2k3 1.4.2 is not listed as a download in my M5Burner. The manual download I found (http://firmware-repo-list.m5stack.com/firmware/UIFlow-v1.4.2.zip) caused an exception in M5Burner and stopped M5Burner from working until I deleted that firmware directory.

    I tried both both that download and a download of the 1.4.2 commit on github with the same result.

    I also tried the other versions of the firmware that are available in M5Burner (1.3.2, 1.4.4) with no joy, same results.



  • Scratch that, I figured it out, it was completely my error, I had the wrong "Series" selected in M5Burner. It was set to Stack-EN and once I switch it back to StickC all was well.

    I must have switched that accidentally at some point. So glad I finally spotted that, such a dumb mistake.

    Thank you very much for your help @ajb2k3



  • @noiseislife Glad you got to the bottom of it.
    I keep forgetting that option.