🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    [Solved]Trouble burning MicroPython firmware

    Micropython
    4
    8
    16.9k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      andrewm
      last edited by m5-docs

      Hi,

      I'm having trouble getting up and running with MicroPython and would appreciate some help, please.

      I have a M5Stack Fire (with psram) and I'm using a Windows 10 computer.

      I'm trying M5Stack_MicroPython and have been successful at burning a couple of different MicroPython.bin files from various firmware builds (such as https://github.com/m5stack/M5Stack_MicroPython/blob/master/MicroPython_BUILD/firmware/esp32_psram_all_bt/MicroPython.bin)

      >>esptool --chip esp32 --port COM5 erase_flash
      

      Then:

      >>esptool --chip esp32 --port COM5 --baud 460800 write_flash -z 0x1000 MicroPython.bin
      esptool.py v2.6
      Serial port COM5
      Connecting....
      Chip is ESP32D0WDQ6 (revision 1)
      Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
      MAC: 84:0d:nn:nn:nn:nn
      Uploading stub...
      Running stub...
      Stub running...
      Changing baud rate to 460800
      Changed.
      Configuring flash size...
      Auto-detected Flash size: 16MB
      Flash params set to 0x0240
      Compressed 2317264 bytes to 1477673...
      Wrote 2317264 bytes (1477673 compressed) at 0x00001000 in 35.6 seconds (effective 521.0 kbit/s)...
      Hash of data verified.
      
      Leaving...
      Hard resetting via RTS pin...
      

      Then I try to connect with rshell or ampy and nothing happens. Connecting with putty, I see the following (over and over again):

      rst:0x10 (RTCWDT_RTC_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
      configsip: 0, SPIWP:0xee
      clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
      mode:DIO, clock div:2
      load:0x3f400020,len:462120
      ets Jun  8 2016 00:22:57
      

      Can anyone tell me what I'm doing wrong, please?

      Thanks,
      Andrew

      ajb2k3A 1 Reply Last reply Reply Quote 0
      • ajb2k3A
        ajb2k3 @andrewm
        last edited by

        @andrewm said in Trouble burning MicroPython firmware:

        Hi,

        I'm having trouble getting up and running with MicroPython and would appreciate some help, please.

        I have a M5Stack Fire (with psram) and I'm using a Windows 10 computer.

        I'm trying M5Stack_MicroPython and have been successful at burning a couple of different MicroPython.bin files from various firmware builds (such as https://github.com/m5stack/M5Stack_MicroPython/blob/master/MicroPython_BUILD/firmware/esp32_psram_all_bt/MicroPython.bin)

        >>esptool --chip esp32 --port COM5 erase_flash
        

        Then:

        >>esptool --chip esp32 --port COM5 --baud 460800 write_flash -z 0x1000 MicroPython.bin
        esptool.py v2.6
        Serial port COM5
        Connecting....
        Chip is ESP32D0WDQ6 (revision 1)
        Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
        MAC: 84:0d:nn:nn:nn:nn
        Uploading stub...
        Running stub...
        Stub running...
        Changing baud rate to 460800
        Changed.
        Configuring flash size...
        Auto-detected Flash size: 16MB
        Flash params set to 0x0240
        Compressed 2317264 bytes to 1477673...
        Wrote 2317264 bytes (1477673 compressed) at 0x00001000 in 35.6 seconds (effective 521.0 kbit/s)...
        Hash of data verified.
        
        Leaving...
        Hard resetting via RTS pin...
        

        Then I try to connect with rshell or ampy and nothing happens. Connecting with putty, I see the following (over and over again):

        rst:0x10 (RTCWDT_RTC_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
        configsip: 0, SPIWP:0xee
        clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
        mode:DIO, clock div:2
        load:0x3f400020,len:462120
        ets Jun  8 2016 00:22:57
        

        Can anyone tell me what I'm doing wrong, please?

        Thanks,
        Andrew

        Please try this official windows installer. https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/software/M5Burner.zip

        UIFlow, so easy an adult can learn it!
        If I don't know it, be patient!
        I've ether not learned it or am too drunk to remember it!
        Author of the WIP UIFlow Handbook!
        M5Black, Go, Stick, Core2, and so much more it cant be fit in here!

        1 Reply Last reply Reply Quote 0
        • lukasmaximusL
          lukasmaximus
          last edited by

          Usually the firmwares require a few files to burn successfully, it's not enough just to flash the micropython.bin file, you also need to flash bootloader.bin, a spiffs.img file and a partitions_mpy.bin as @ajb2k3 mentioned please try to use the official flashing tools or make sure you write those other files to the correct memory addresses using esptool

          1 Reply Last reply Reply Quote 0
          • A
            andrewm
            last edited by

            Thank you both.

            I have to say, however, that the advice to simply 'use M5Burner' is quite an unsatisfying answer as:
            a) M5Burner is magic (aren't we supposed to be learning things here?), and
            b) M5Burner isn't the magic I need yet, in that it has a very limited set of firmwares supported (and I wanted a particular flavour of MicroPython, not UIFlow).

            Your answers did help me, however, to get to the answer I wanted thank you, because I was able to go to the directories inside M5Burner and find the correct commands/addresses for firmware components in the firmware/fw.json file.

            To help anyone else reading this, I was able to burn this firmware:
            https://github.com/m5stack/M5Stack_MicroPython/tree/master/MicroPython_BUILD/firmware/esp32_psram_all_bt

            With this command:

            >> esptool --chip esp32 --port COM5 --before default_reset --after no_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0x1000 bootloader/bootloader.bin 0xf000 phy_init_data.bin 0x10000 MicroPython.bin 0x8000 partitions_mpy.bin
            

            Then using Putty or rshell, I could connect and confirm that it was working.

            Then I pushed the python app I want with rshell - https://github.com/dhylands/rshell - and the rsync command within rshell.

            So thanks for your help, I couldn't have understood the magic without being pointed to it.

            ajb2k3A 1 Reply Last reply Reply Quote 0
            • ajb2k3A
              ajb2k3 @andrewm
              last edited by ajb2k3

              @andrewm Sorry but micropython is still black magic to me and I'm still learning it myself.

              Current 1.2.3 version uses a modified version of the Loboris firmware and M5Stack is working to create their own specific port due to some issues.
              I do know that REPL is available in the firmware and a Micropython IDE is available through the UIFlow IDE (UIFlow firmware is built on micropython) also adafruits AMPY is useful for exploring and copying files to and from the M5Stack.
              If you are interested in learning more then
              https://forum.micropython.org
              Is a great place to also hang out.

              I take it that you noticed that M5Burner also show the full command line needed to burn the firmware?

              UIFlow, so easy an adult can learn it!
              If I don't know it, be patient!
              I've ether not learned it or am too drunk to remember it!
              Author of the WIP UIFlow Handbook!
              M5Black, Go, Stick, Core2, and so much more it cant be fit in here!

              A 1 Reply Last reply Reply Quote 0
              • A
                andrewm @ajb2k3
                last edited by

                @ajb2k3 No worries, your reply (and support of the forum, thank you) helped me take another step in the right direction so I appreciate it.

                The thing that bothered my about the UIFlow IDE when I tried it was that I had to push code from the web every time I booted the M5Stack (is there a way to store the code for the next time it boots?). MicroPython proper allows you to upload boot.py and main.py to permanently define the behaviour of the device.

                So far I have used rshell (in place of ampy, etc.) and allows me to do everything else I want (the command 'rsync . /flash' is powerful - it syncs the M5Stack's flash folder with whatever files and directories are in your local directory).

                I've run M5Burner previously, to install UIFlow. I didn't run it this time - I copied what I needed from the firmware/fw.json file.

                ajb2k3A 1 Reply Last reply Reply Quote 0
                • ajb2k3A
                  ajb2k3 @andrewm
                  last edited by

                  @andrewm said in Trouble burning MicroPython firmware:

                  @ajb2k3 No worries, your reply (and support of the forum, thank you) helped me take another step in the right direction so I appreciate it.

                  The thing that bothered my about the UIFlow IDE when I tried it was that I had to push code from the web every time I booted the M5Stack (is there a way to store the code for the next time it boots?). MicroPython proper allows you to upload boot.py and main.py to permanently define the behaviour of the device.

                  So far I have used rshell (in place of ampy, etc.) and allows me to do everything else I want (the command 'rsync . /flash' is powerful - it syncs the M5Stack's flash folder with whatever files and directories are in your local directory).

                  I've run M5Burner previously, to install UIFlow. I didn't run it this time - I copied what I needed from the firmware/fw.json file.

                  You can save and load a copy of the file onto a computer and download the program onto the M5Stack by clicking the menu icon (3 horizontal lines)>download but you can't load from the M5Stacks at present.
                  When you restart/reset the M5Stack the program will autoload after a few seconds (this gives time to load the program menu or connect to UIFlow).

                  UIFlow, so easy an adult can learn it!
                  If I don't know it, be patient!
                  I've ether not learned it or am too drunk to remember it!
                  Author of the WIP UIFlow Handbook!
                  M5Black, Go, Stick, Core2, and so much more it cant be fit in here!

                  1 Reply Last reply Reply Quote 0
                  • J
                    jpilarski
                    last edited by jpilarski

                    If you install uiflow firmware you have also installed micropython. You can connect to a repl shell, load libraries, and modify main.py. You can use any micropython ide and you aren't required to use uiflow. It is a good option though. I like using upycraft. Even if I am running uiflow I'll still keep a connection to the board open with upycraft to get immediate feedback. With upycraft you have direct access to the filesystem and you can drag and drop files to and from the board. You can also run
                    help('modules')
                    dir(module)
                    where module is one of the listed modules. To learn more of all the built in functions available.

                    1 Reply Last reply Reply Quote 1
                    • First post
                      Last post