Skip to main content

Merge a MicroPython firmware and with source files into a single binary that can be flashed to a device.

Project description

vfs_merge

Merge a MicroPython firmware and with source files into a single binary that can be flashed to a device.

Merge

  • the files in src/**/*
  • with the firmware in firmware/<firmware.bin/uf2>

and write the resulting firmware image to : - build/firmware.bin or build/firmware.uf2:

Esp32

vfsmerge --port esp32 --firmware ./firmware

INFO      | Micropython Port: esp32
INFO      | Source folder path: src
INFO      | Firmware path: firmware\ESP32_GENERIC-20231005-v1.21.0.bin
INFO      | Build path: build
INFO      | Create littlefs image: build\littlefs.img
DEBUG     | Create new filesystem with: 512 blocks of 4096 bytes = 2048Kb
INFO      | Add files from src
DEBUG     | Adding /foo.py
DEBUG     | Adding /main.py
DEBUG     | Adding /lib/bar.py
DEBUG     | write filesystem to build\littlefs.img
INFO      | Merge firmware and littlefs image into build\firmware_lfs.bin
DEBUG     | running: esptool --chip esp32 merge_bin -o build\firmware_lfs.bin --flash_mode dio --flash_size 4MB 0x1000 firmware\ESP32_GENERIC-20231005-v1.21.0.bin 0x00200000 build\littlefs.img
esptool.py v4.6.2
Wrote 0x400000 bytes to file build\firmware_lfs.bin, ready to flash to offset 0x0

RP2 Pico_W

vfsmerge --port rp2-pico_w --firmware .\firmware\rp2-pico-w-20230426-v1.20.0.uf2

INFO      | Micropython Port: rp2-pico_w
INFO      | Source folder path: src
INFO      | Firmware path: firmware\rp2-pico-w-20230426-v1.20.0.uf2
INFO      | Build path: build
INFO      | Create littlefs image: build\littlefs.img
DEBUG     | Create new filesystem with: 212 blocks of 4096 bytes = 848Kb
INFO      | Add files from src
DEBUG     | Adding /foo.py
DEBUG     | Adding /main.py
DEBUG     | Adding /lib/bar.py
DEBUG     | write filesystem to build\littlefs.img
DEBUG     | Running D:\MyPython\vfs_merge\vfs_merge\picotool info -a firmware\rp2-pico-w-20230426-v1.20.0.uf2
DEBUG     | Number of blocks: 2736
Program name: MicroPython
Board: pico_w
Number of families: 1
 - Family RP2040 at 0x1000_0000
Number of ranges: 1
 - Range 0: 0x1000_0000 - 0x100A_B000
LittleFS superblocks: 0
Pico drive info
 - Drive start: 0x1012_C000
 - Drive end: 0x1020_0000

INFO      | Reading littlefs binary image from build\littlefs.img
DEBUG     | Extend uf2 with: 3392 blocks
DEBUG     | LittleFS image size: 3392 blocks
INFO      | Writing 3392 blocks to littlefs.uf2
INFO      |  > Found LittleFS file system header in block 2736 at 0x1012_C000
INFO      |  > Found LittleFS file system header in block 2752 at 0x1012_D000
DEBUG     | Writing 6128 blocks to build\firmware_lfs.uf2
DEBUG     | Number of blocks: 6128
Program name: MicroPython
Board: pico_w
Number of families: 1
 - Family RP2040 at 0x1000_0000
Number of ranges: 2
 - Range 0: 0x1000_0000 - 0x100A_B000
 - Range 1: 0x1012_C000 - 0x1020_0000
LittleFS superblocks: 2
 - LittleFS superblock 0: block 2736 at 0x1012_C000
 - LittleFS superblock 1: block 2752 at 0x1012_D000
Pico drive info
 - Drive start: 0x1012_C000
 - Drive end: 0x1020_0000

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vfs_merge-0.1.1.tar.gz (805.3 kB view hashes)

Uploaded Source

Built Distribution

vfs_merge-0.1.1-py3-none-any.whl (810.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page