mpflash


Namempflash JSON
Version 0.7.4 PyPI version JSON
download
home_pagehttps://github.com/Josverl/micropython-stubber/blob/main/src/mpflash/README.md
SummaryFlash and download tool for MicroPython firmwares
upload_time2024-05-02 20:54:25
maintainerNone
docs_urlNone
authorJos Verlinde
requires_python<4.0,>=3.8.1
licenseMIT
keywords micropython firmware flash download uf2 esptool
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # MPFLASH

`mpflash` is a command-line tool for working with MicroPython firmware. It provides features to help you flash and update Micropython on one or more .

This tool was initially created to be used in a CI/CD pipeline to automate the process of downloading and flashing MicroPython firmware to multiple boards, but it has been extend with a TUI to me be used for manual downloadig, flashing and development.

`mpflash` has been tested on Windows x64, Linux X64, but not (yet) macOS.
Tested ports: `rp2`, `samd`, `esp32`, `esp32s3`, `esp32c3`, `esp8266` and `stm32`

## Features
 1. List the connected boards including their firmware details, in a tabular or json format
 2. Download MicroPython firmware for versions, and matching a specified board or matches your current attached board.
 3. Flash one or all connected MicroPython boards with a specific firmware or version.  
 
## Installation
To install mpflash, you can use pip: `pip install mpflash`

## Basic usage
You can use mpflash to perform various operations on your MicroPython boards. Here is an example of basic usage:

| Command | Description |
|---------|-------------|
| `mpflash list` | List the connected board(s) including their firmware details |
| `mpflash download` | Download the MicroPython firmware(s) for the connected board(s) |
| `mpflash flash` | Flash the latest stable firmware to the connected board(s) |


## Linux permissions to access usb devices 
In order to flash the firmware to the board, you need to have the correct permissions to access the USB devices.
On Windows this will not be an issue, but on Linux you can use  udev rules to give non-root users access to the USB devices.
[See the stm32_permissions documentation](./stm32_udev_rules.md) for more information.


## Detailed usage
You can list the connected boards using the following command:
```bash
$ mpflash list
D:\MyPython\micropython-stubber> mpflash list
                                               Connected boards
┏━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━┓
┃ Serial  ┃Family       ┃Port  ┃Board                                      ┃CPU     ┃Version          ┃build ┃
┡━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━┩
│ COM21   │micropython  │rp2   │RPI_PICO                                   │RP2040  │v1.23.0-preview  │  236 │
│         │             │      │Raspberry Pi Pico with RP2040              │        │                 │      │
│ COM23   │micropython  │rp2   │RPI_PICO_W                                 │RP2040  │v1.23.0-preview  │  176 │
│         │             │      │Raspberry Pi Pico W with RP2040            │        │                 │      │
│ COM9    │micropython  │rp2   │ARDUINO_NANO_RP2040_CONNECT                │RP2040  │v1.23.0-preview  │  341 │
│         │             │      │Arduino Nano RP2040 Connect with RP2040    │        │                 │      │
└─────────┴─────────────┴──────┴───────────────────────────────────────────┴────────┴─────────────────┴──────┘
```
## Download the firmware

To download the MicroPython firmware for some boards, use the following command: 
 - `mpflash download` download the latest stable firmware for all connected boards
 - `mpflash download --version preview` download the current preview for all connected boards
 - `mpflash download --board ESP8266_GENERIC --board SEEED_WIO_TERMINAL` download these specific boards
 - `mpflash download --version ? --board ?` prompt to select a specific version and board to download

These will try to download the prebuilt MicroPython firmware for the boards from https://micropython.org/download/ and save it in your downloads folder in the  `firmware` directory.
The stable version (default) is determined based on the most recent published release,
other versions are `--version preview` and `--version x.y.z` to download the latest preview or version x.y.z respectively.

By default the firmware will be downloaded to your OS's preferred `Downloads/firmware` folder, but you can speciy a different directory using the `--dir` option.

The directory structure will be something like this:

``` text
Downloads/firmware
|   firmware.jsonl
+---esp8266
|       ESP8266_GENERIC-FLASH_1M-v1.22.2.bin
|       ESP8266_GENERIC-FLASH_512K-v1.22.2.bin
|       ESP8266_GENERIC-OTA-v1.22.2.bin
|       ESP8266_GENERIC-v1.22.2.bin
\---samd
        SEEED_WIO_TERMINAL-v1.22.2.uf2
```

## Flashing the firmware
After you have downloaded a firmware you can  flash the firmware to a board using the following command: `mpflash flash`
This will (try to) autodetect the connected boards, and determine the correct firmware to flash to each board.

- `mpflash flash` will flash the latest stable firmware to all connected boards.
- `mpflash flash --serial ? --board ?` will prompt to select a specific serial port and board to flash. (the firmware must be dowloaded earlier)


### Flashing all connected boards with the latest stable firmware
```bash
> mpflash flash
22:15:55 | ℹ️  - Using latest stable version: v1.22.2
                                       Connected boards
┏━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━┓
┃ Serial ┃ Family      ┃ Port    ┃ Board              ┃ CPU         ┃ Version        ┃ build ┃
┡━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━┩
│ COM11  │ micropython │ rp2     │ RPI_PICO_W         │ RP2040      │ 1.20.0         │       │
│ COM12  │ micropython │ esp8266 │ ESP8266_GENERIC    │ ESP8266     │ 1.22.2         │       │
│ COM18  │ micropython │ rp2     │ RPI_PICO_W         │ RP2040      │ 1.23.0-preview │ 155   │
│ COM3   │ micropython │ samd    │ SEEED_WIO_TERMINAL │ SAMD51P19A  │ 1.23.0-preview │ 155   │
│ COM5   │ micropython │ stm32   │ PYBV11             │ STM32F405RG │ 1.23.0-preview │ 166   │
│ COM8   │ micropython │ esp32   │ ESP32_GENERIC_S3   │ ESP32S3     │ 1.23.0-preview │ 155   │
└────────┴─────────────┴─────────┴────────────────────┴─────────────┴────────────────┴───────┘
22:15:58 | ℹ️  - Found v1.22.2 firmware rp2\RPI_PICO_W-v1.22.2.uf2 for RPI_PICO_W on COM11.
22:15:58 | ℹ️  - Found v1.22.2 firmware esp8266\ESP8266_GENERIC-v1.22.2.bin for ESP8266_GENERIC on COM12.
22:15:58 | ℹ️  - Found v1.22.2 firmware rp2\RPI_PICO_W-v1.22.2.uf2 for RPI_PICO_W on COM18.
22:15:58 | ℹ️  - Found v1.22.2 firmware samd\SEEED_WIO_TERMINAL-v1.22.2.uf2 for SEEED_WIO_TERMINAL on COM3.
22:15:58 | ⚠️  - Trying to find a firmware for the board PYBV11
22:15:58 | ❌  - No v1.22.2 firmware found for PYBV11 on COM5.
22:15:58 | ⚠️  - Trying to find a firmware for the board ESP32-GENERIC-S3
22:15:58 | ❌  - No v1.22.2 firmware found for ESP32_GENERIC_S3 on COM8.
22:15:58 | ℹ️  - Updating RPI_PICO_W on COM11 to 1.22.2
22:15:58 | ℹ️  - Erasing not yet implemented for UF2 flashing.
22:15:58 | ℹ️  - Entering UF2 bootloader on RPI_PICO_W on COM11
22:15:58 | ℹ️  - Waiting for mcu to mount as a drive : 10 seconds left
22:15:59 | ℹ️  - Waiting for mcu to mount as a drive : 9 seconds left
22:16:00 | ℹ️  - Board is in bootloader mode
22:16:00 | ℹ️  - Copying firmware\rp2\RPI_PICO_W-v1.22.2.uf2 to F:
22:16:13 | ✅  - Done copying, resetting the board and wait for it to restart
22:16:23 | ℹ️  - Updating ESP8266_GENERIC on COM12 to 1.22.2
22:16:23 | ℹ️  - Flashing firmware\esp8266\ESP8266_GENERIC-v1.22.2.bin on ESP8266_GENERIC on COM12
22:16:23 | ℹ️  - Running esptool --chip ESP8266 --port COM12 erase_flash 
esptool.py v4.7.0
Serial port COM12
Connecting....
...
Chip erase completed successfully in 6.5s
Hard resetting via RTS pin...
22:16:31 | ℹ️  - Running esptool --chip ESP8266 --port COM12 -b 460800 write_flash --flash_size=detect 0x0 firmware\esp8266\ESP8266_GENERIC-v1.22.2.bin 
esptool.py v4.7.0
Serial port COM12
Connecting....
...
Leaving...
Hard resetting via RTS pin...
22:16:43 | ℹ️  - Done flashing, resetting the board and wait for it to restart
22:16:49 | ✅  - Flashed 1.22.2 to ESP8266_GENERIC on COM12 done
22:16:49 | ℹ️  - Updating RPI_PICO_W on COM18 to 1.22.2
22:16:49 | ℹ️  - Erasing not yet implemented for UF2 flashing.
22:16:49 | ℹ️  - Entering UF2 bootloader on RPI_PICO_W on COM18
22:16:49 | ℹ️  - Waiting for mcu to mount as a drive : 10 seconds left
22:16:50 | ℹ️  - Waiting for mcu to mount as a drive : 9 seconds left
22:16:51 | ℹ️  - Board is in bootloader mode
22:16:51 | ℹ️  - Copying firmware\rp2\RPI_PICO_W-v1.22.2.uf2 to F:[/bold]
22:17:02 | ✅  - Done copying, resetting the board and wait for it to restart
22:17:12 | ℹ️  - Updating SEEED_WIO_TERMINAL on COM3 to 1.22.2
22:17:12 | ℹ️  - Erasing not yet implemented for UF2 flashing.
22:17:12 | ℹ️  - Entering UF2 bootloader on SEEED_WIO_TERMINAL on COM3
22:17:12 | ℹ️  - Waiting for mcu to mount as a drive : 10 seconds left
22:17:13 | ℹ️  - Waiting for mcu to mount as a drive : 9 seconds left
22:17:14 | ℹ️  - Board is in bootloader mode
22:17:14 | ℹ️  - Copying firmware\samd\SEEED_WIO_TERMINAL-v1.22.2.uf2 to F:[/bold]
22:17:17 | ✅  - Done copying, resetting the board and wait for it to restart
22:17:27 | ℹ️  - Flashed 4 boards
                               Connected boards after flashing
┏━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━┓
┃ Serial ┃ Family      ┃ Port    ┃ Board              ┃ CPU         ┃ Version        ┃ build ┃
┡━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━┩
│ COM11  │ micropython │ rp2     │ RPI_PICO_W         │ RP2040      │ 1.22.2         │       │
│ COM12  │ micropython │ esp8266 │ ESP8266_GENERIC    │ ESP8266     │ 1.22.2         │       │
│ COM18  │ micropython │ rp2     │ RPI_PICO_W         │ RP2040      │ 1.22.2         │       │
│ COM3   │ micropython │ samd    │ SEEED_WIO_TERMINAL │ SAMD51P19A  │ 1.22.2         │       │
│ COM5   │ micropython │ stm32   │ PYBV11             │ STM32F405RG │ 1.23.0-preview │ 166   │
│ COM8   │ micropython │ esp32   │ ESP32_GENERIC_S3   │ ESP32S3     │ 1.23.0-preview │ 155   │
└────────┴─────────────┴─────────┴────────────────────┴─────────────┴────────────────┴───────┘
```
Note that if no matching firmware can be found for a board, it will be skipped.
(For example, the PYBV11 and ESP32_GENERIC_S3 boards in the example above.)

## Issues and bug reports
mpflash is currently co-located in the [micropython-stubber](https://github.com/Josverl/micropython-stubber) repository.  
Please report any issues or bugs in the [issue tracker](https://github.com/Josverl/micropython-stubber/issues) using the MPflash feedback template.

## License
mpflash is licensed under the MIT license. See the LICENSE file for more details.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Josverl/micropython-stubber/blob/main/src/mpflash/README.md",
    "name": "mpflash",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8.1",
    "maintainer_email": null,
    "keywords": "MicroPython, firmware, flash, download, UF2, esptool",
    "author": "Jos Verlinde",
    "author_email": "jos_verlinde@hotmail.com",
    "download_url": "https://files.pythonhosted.org/packages/d0/71/83104a763a11aec348443f71ba903f2742569453cf658a354ed75c703d2f/mpflash-0.7.4.tar.gz",
    "platform": null,
    "description": "# MPFLASH\n\n`mpflash` is a command-line tool for working with MicroPython firmware. It provides features to help you flash and update Micropython on one or more .\n\nThis tool was initially created to be used in a CI/CD pipeline to automate the process of downloading and flashing MicroPython firmware to multiple boards, but it has been extend with a TUI to me be used for manual downloadig, flashing and development.\n\n`mpflash` has been tested on Windows x64, Linux X64, but not (yet) macOS.\nTested ports: `rp2`, `samd`, `esp32`, `esp32s3`, `esp32c3`, `esp8266` and `stm32`\n\n## Features\n 1. List the connected boards including their firmware details, in a tabular or json format\n 2. Download MicroPython firmware for versions, and matching a specified board or matches your current attached board.\n 3. Flash one or all connected MicroPython boards with a specific firmware or version.  \n \n## Installation\nTo install mpflash, you can use pip: `pip install mpflash`\n\n## Basic usage\nYou can use mpflash to perform various operations on your MicroPython boards. Here is an example of basic usage:\n\n| Command | Description |\n|---------|-------------|\n| `mpflash list` | List the connected board(s) including their firmware details |\n| `mpflash download` | Download the MicroPython firmware(s) for the connected board(s) |\n| `mpflash flash` | Flash the latest stable firmware to the connected board(s) |\n\n\n## Linux permissions to access usb devices \nIn order to flash the firmware to the board, you need to have the correct permissions to access the USB devices.\nOn Windows this will not be an issue, but on Linux you can use  udev rules to give non-root users access to the USB devices.\n[See the stm32_permissions documentation](./stm32_udev_rules.md) for more information.\n\n\n## Detailed usage\nYou can list the connected boards using the following command:\n```bash\n$ mpflash list\nD:\\MyPython\\micropython-stubber> mpflash list\n                                               Connected boards\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 Serial  \u2503Family       \u2503Port  \u2503Board                                      \u2503CPU     \u2503Version          \u2503build \u2503\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n\u2502 COM21   \u2502micropython  \u2502rp2   \u2502RPI_PICO                                   \u2502RP2040  \u2502v1.23.0-preview  \u2502  236 \u2502\n\u2502         \u2502             \u2502      \u2502Raspberry Pi Pico with RP2040              \u2502        \u2502                 \u2502      \u2502\n\u2502 COM23   \u2502micropython  \u2502rp2   \u2502RPI_PICO_W                                 \u2502RP2040  \u2502v1.23.0-preview  \u2502  176 \u2502\n\u2502         \u2502             \u2502      \u2502Raspberry Pi Pico W with RP2040            \u2502        \u2502                 \u2502      \u2502\n\u2502 COM9    \u2502micropython  \u2502rp2   \u2502ARDUINO_NANO_RP2040_CONNECT                \u2502RP2040  \u2502v1.23.0-preview  \u2502  341 \u2502\n\u2502         \u2502             \u2502      \u2502Arduino Nano RP2040 Connect with RP2040    \u2502        \u2502                 \u2502      \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n## Download the firmware\n\nTo download the MicroPython firmware for some boards, use the following command: \n - `mpflash download` download the latest stable firmware for all connected boards\n - `mpflash download --version preview` download the current preview for all connected boards\n - `mpflash download --board ESP8266_GENERIC --board SEEED_WIO_TERMINAL` download these specific boards\n - `mpflash download --version ? --board ?` prompt to select a specific version and board to download\n\nThese will try to download the prebuilt MicroPython firmware for the boards from https://micropython.org/download/ and save it in your downloads folder in the  `firmware` directory.\nThe stable version (default) is determined based on the most recent published release,\nother versions are `--version preview` and `--version x.y.z` to download the latest preview or version x.y.z respectively.\n\nBy default the firmware will be downloaded to your OS's preferred `Downloads/firmware` folder, but you can speciy a different directory using the `--dir` option.\n\nThe directory structure will be something like this:\n\n``` text\nDownloads/firmware\n|   firmware.jsonl\n+---esp8266\n|       ESP8266_GENERIC-FLASH_1M-v1.22.2.bin\n|       ESP8266_GENERIC-FLASH_512K-v1.22.2.bin\n|       ESP8266_GENERIC-OTA-v1.22.2.bin\n|       ESP8266_GENERIC-v1.22.2.bin\n\\---samd\n        SEEED_WIO_TERMINAL-v1.22.2.uf2\n```\n\n## Flashing the firmware\nAfter you have downloaded a firmware you can  flash the firmware to a board using the following command: `mpflash flash`\nThis will (try to) autodetect the connected boards, and determine the correct firmware to flash to each board.\n\n- `mpflash flash` will flash the latest stable firmware to all connected boards.\n- `mpflash flash --serial ? --board ?` will prompt to select a specific serial port and board to flash. (the firmware must be dowloaded earlier)\n\n\n### Flashing all connected boards with the latest stable firmware\n```bash\n> mpflash flash\n22:15:55 | \u2139\ufe0f  - Using latest stable version: v1.22.2\n                                       Connected boards\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 Serial \u2503 Family      \u2503 Port    \u2503 Board              \u2503 CPU         \u2503 Version        \u2503 build \u2503\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n\u2502 COM11  \u2502 micropython \u2502 rp2     \u2502 RPI_PICO_W         \u2502 RP2040      \u2502 1.20.0         \u2502       \u2502\n\u2502 COM12  \u2502 micropython \u2502 esp8266 \u2502 ESP8266_GENERIC    \u2502 ESP8266     \u2502 1.22.2         \u2502       \u2502\n\u2502 COM18  \u2502 micropython \u2502 rp2     \u2502 RPI_PICO_W         \u2502 RP2040      \u2502 1.23.0-preview \u2502 155   \u2502\n\u2502 COM3   \u2502 micropython \u2502 samd    \u2502 SEEED_WIO_TERMINAL \u2502 SAMD51P19A  \u2502 1.23.0-preview \u2502 155   \u2502\n\u2502 COM5   \u2502 micropython \u2502 stm32   \u2502 PYBV11             \u2502 STM32F405RG \u2502 1.23.0-preview \u2502 166   \u2502\n\u2502 COM8   \u2502 micropython \u2502 esp32   \u2502 ESP32_GENERIC_S3   \u2502 ESP32S3     \u2502 1.23.0-preview \u2502 155   \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n22:15:58 | \u2139\ufe0f  - Found v1.22.2 firmware rp2\\RPI_PICO_W-v1.22.2.uf2 for RPI_PICO_W on COM11.\n22:15:58 | \u2139\ufe0f  - Found v1.22.2 firmware esp8266\\ESP8266_GENERIC-v1.22.2.bin for ESP8266_GENERIC on COM12.\n22:15:58 | \u2139\ufe0f  - Found v1.22.2 firmware rp2\\RPI_PICO_W-v1.22.2.uf2 for RPI_PICO_W on COM18.\n22:15:58 | \u2139\ufe0f  - Found v1.22.2 firmware samd\\SEEED_WIO_TERMINAL-v1.22.2.uf2 for SEEED_WIO_TERMINAL on COM3.\n22:15:58 | \u26a0\ufe0f  - Trying to find a firmware for the board PYBV11\n22:15:58 | \u274c  - No v1.22.2 firmware found for PYBV11 on COM5.\n22:15:58 | \u26a0\ufe0f  - Trying to find a firmware for the board ESP32-GENERIC-S3\n22:15:58 | \u274c  - No v1.22.2 firmware found for ESP32_GENERIC_S3 on COM8.\n22:15:58 | \u2139\ufe0f  - Updating RPI_PICO_W on COM11 to 1.22.2\n22:15:58 | \u2139\ufe0f  - Erasing not yet implemented for UF2 flashing.\n22:15:58 | \u2139\ufe0f  - Entering UF2 bootloader on RPI_PICO_W on COM11\n22:15:58 | \u2139\ufe0f  - Waiting for mcu to mount as a drive : 10 seconds left\n22:15:59 | \u2139\ufe0f  - Waiting for mcu to mount as a drive : 9 seconds left\n22:16:00 | \u2139\ufe0f  - Board is in bootloader mode\n22:16:00 | \u2139\ufe0f  - Copying firmware\\rp2\\RPI_PICO_W-v1.22.2.uf2 to F:\n22:16:13 | \u2705  - Done copying, resetting the board and wait for it to restart\n22:16:23 | \u2139\ufe0f  - Updating ESP8266_GENERIC on COM12 to 1.22.2\n22:16:23 | \u2139\ufe0f  - Flashing firmware\\esp8266\\ESP8266_GENERIC-v1.22.2.bin on ESP8266_GENERIC on COM12\n22:16:23 | \u2139\ufe0f  - Running esptool --chip ESP8266 --port COM12 erase_flash \nesptool.py v4.7.0\nSerial port COM12\nConnecting....\n...\nChip erase completed successfully in 6.5s\nHard resetting via RTS pin...\n22:16:31 | \u2139\ufe0f  - Running esptool --chip ESP8266 --port COM12 -b 460800 write_flash --flash_size=detect 0x0 firmware\\esp8266\\ESP8266_GENERIC-v1.22.2.bin \nesptool.py v4.7.0\nSerial port COM12\nConnecting....\n...\nLeaving...\nHard resetting via RTS pin...\n22:16:43 | \u2139\ufe0f  - Done flashing, resetting the board and wait for it to restart\n22:16:49 | \u2705  - Flashed 1.22.2 to ESP8266_GENERIC on COM12 done\n22:16:49 | \u2139\ufe0f  - Updating RPI_PICO_W on COM18 to 1.22.2\n22:16:49 | \u2139\ufe0f  - Erasing not yet implemented for UF2 flashing.\n22:16:49 | \u2139\ufe0f  - Entering UF2 bootloader on RPI_PICO_W on COM18\n22:16:49 | \u2139\ufe0f  - Waiting for mcu to mount as a drive : 10 seconds left\n22:16:50 | \u2139\ufe0f  - Waiting for mcu to mount as a drive : 9 seconds left\n22:16:51 | \u2139\ufe0f  - Board is in bootloader mode\n22:16:51 | \u2139\ufe0f  - Copying firmware\\rp2\\RPI_PICO_W-v1.22.2.uf2 to F:[/bold]\n22:17:02 | \u2705  - Done copying, resetting the board and wait for it to restart\n22:17:12 | \u2139\ufe0f  - Updating SEEED_WIO_TERMINAL on COM3 to 1.22.2\n22:17:12 | \u2139\ufe0f  - Erasing not yet implemented for UF2 flashing.\n22:17:12 | \u2139\ufe0f  - Entering UF2 bootloader on SEEED_WIO_TERMINAL on COM3\n22:17:12 | \u2139\ufe0f  - Waiting for mcu to mount as a drive : 10 seconds left\n22:17:13 | \u2139\ufe0f  - Waiting for mcu to mount as a drive : 9 seconds left\n22:17:14 | \u2139\ufe0f  - Board is in bootloader mode\n22:17:14 | \u2139\ufe0f  - Copying firmware\\samd\\SEEED_WIO_TERMINAL-v1.22.2.uf2 to F:[/bold]\n22:17:17 | \u2705  - Done copying, resetting the board and wait for it to restart\n22:17:27 | \u2139\ufe0f  - Flashed 4 boards\n                               Connected boards after flashing\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 Serial \u2503 Family      \u2503 Port    \u2503 Board              \u2503 CPU         \u2503 Version        \u2503 build \u2503\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n\u2502 COM11  \u2502 micropython \u2502 rp2     \u2502 RPI_PICO_W         \u2502 RP2040      \u2502 1.22.2         \u2502       \u2502\n\u2502 COM12  \u2502 micropython \u2502 esp8266 \u2502 ESP8266_GENERIC    \u2502 ESP8266     \u2502 1.22.2         \u2502       \u2502\n\u2502 COM18  \u2502 micropython \u2502 rp2     \u2502 RPI_PICO_W         \u2502 RP2040      \u2502 1.22.2         \u2502       \u2502\n\u2502 COM3   \u2502 micropython \u2502 samd    \u2502 SEEED_WIO_TERMINAL \u2502 SAMD51P19A  \u2502 1.22.2         \u2502       \u2502\n\u2502 COM5   \u2502 micropython \u2502 stm32   \u2502 PYBV11             \u2502 STM32F405RG \u2502 1.23.0-preview \u2502 166   \u2502\n\u2502 COM8   \u2502 micropython \u2502 esp32   \u2502 ESP32_GENERIC_S3   \u2502 ESP32S3     \u2502 1.23.0-preview \u2502 155   \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\nNote that if no matching firmware can be found for a board, it will be skipped.\n(For example, the PYBV11 and ESP32_GENERIC_S3 boards in the example above.)\n\n## Issues and bug reports\nmpflash is currently co-located in the [micropython-stubber](https://github.com/Josverl/micropython-stubber) repository.  \nPlease report any issues or bugs in the [issue tracker](https://github.com/Josverl/micropython-stubber/issues) using the MPflash feedback template.\n\n## License\nmpflash is licensed under the MIT license. See the LICENSE file for more details.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Flash and download tool for MicroPython firmwares",
    "version": "0.7.4",
    "project_urls": {
        "Homepage": "https://github.com/Josverl/micropython-stubber/blob/main/src/mpflash/README.md",
        "Repository": "https://github.com/Josverl/micropython-stubber"
    },
    "split_keywords": [
        "micropython",
        " firmware",
        " flash",
        " download",
        " uf2",
        " esptool"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3a8febbf98bfcbb377a9803953770ef9bc1532a54ab704a7c4e3495f5aad23ff",
                "md5": "d051871d76b83b9fea29dbc316cc3347",
                "sha256": "5a87591996315725fcd02b15558e4c661be48bb8773cb706c4d20af7d1f5cfdf"
            },
            "downloads": -1,
            "filename": "mpflash-0.7.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d051871d76b83b9fea29dbc316cc3347",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8.1",
            "size": 70444,
            "upload_time": "2024-05-02T20:54:23",
            "upload_time_iso_8601": "2024-05-02T20:54:23.746382Z",
            "url": "https://files.pythonhosted.org/packages/3a/8f/ebbf98bfcbb377a9803953770ef9bc1532a54ab704a7c4e3495f5aad23ff/mpflash-0.7.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d07183104a763a11aec348443f71ba903f2742569453cf658a354ed75c703d2f",
                "md5": "b924fc68d5fad6820b7330872eb3ab26",
                "sha256": "7ee891d558525a16db6d607325766c32de0600e0743f6b5be6ade872983872e3"
            },
            "downloads": -1,
            "filename": "mpflash-0.7.4.tar.gz",
            "has_sig": false,
            "md5_digest": "b924fc68d5fad6820b7330872eb3ab26",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8.1",
            "size": 60144,
            "upload_time": "2024-05-02T20:54:25",
            "upload_time_iso_8601": "2024-05-02T20:54:25.599617Z",
            "url": "https://files.pythonhosted.org/packages/d0/71/83104a763a11aec348443f71ba903f2742569453cf658a354ed75c703d2f/mpflash-0.7.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-02 20:54:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Josverl",
    "github_project": "micropython-stubber",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mpflash"
}
        
Elapsed time: 0.25429s