Skip to content

PicoMultiLoader v1.1.0

Choose a tag to compare

@hexadevti hexadevti released this 19 Oct 20:54
· 9 commits to main since this release

PicoMultiLoader (formerly esp32loader) is an SD-card firmware loader for the ClockworkPi PicoCalc. Copy firmware files to the microSD card, pick one on the LCD, and the loader flashes and starts it. This release adds the Raspberry Pi Pico boards.

What's new

  • Renamed from esp32loader to PicoMultiLoader.
  • Raspberry Pi Pico (RP2040) support. The loader is the whole firmware and replaces uf2loader. It installs .uf2 apps from the SD card. There is no Wi-Fi on this build.
  • Raspberry Pi Pico 2 W (RP2350) support, with the web file manager. It replaces uf2loader and keeps its flash layout: an 8 KB boot stub, then apps from 0x2000 to the end of flash. Apps made for uf2loader work unchanged, including Arduino-Pico apps with a file system at the end of flash. The menu itself is a file on the SD card and runs from RAM.
  • Apps written for uf2loader can still open the menu. The request is the same as uf2loader's: watchdog scratch 0 = 0xe98cc638, scratch 1 = 1, then a watchdog reboot. This works on both Pico boards.
  • ESP32-P4:
    • Wi-Fi autostart: the web file manager can start in the background at switch-on.
    • The README now explains how to build apps that the loader can install.

Files

Board File What it is
ESP32-P4 (Waveshare ESP32-P4-WIFI6) PicoMultiLoader-v1.1.0-esp32p4-full.bin bootloader + partition table + otadata + loader, for a first install. Flash at 0x0.
ESP32-P4 PicoMultiLoader-v1.1.0-esp32p4-app.bin the loader only, to update and keep the installed app. Flash at 0x20000.
Pico / Pico W (RP2040) PicoMultiLoader-v1.1.0-rp2040.uf2 the whole loader, copied through BOOTSEL
Pico 2 W (RP2350) PicoMultiLoader-v1.1.0-rp2350.uf2 the boot stub, copied through BOOTSEL
Pico 2 W (RP2350) pml2350.uf2 the loader menu. Copy it to the root of the SD card and keep this exact name.
all SHA256SUMS.txt checksums

The ESP32-P4 files are built for chip revision v3.x with 32 MB flash. Run esptool --chip esp32p4 chip_id to check your chip. For a v1.x chip, build from source.

Install

ESP32-P4

  1. Connect the board's USB-C port (the CH343 serial port).
  2. Flash the full image:
    esptool --chip esp32p4 -p COMx -b 460800 write_flash 0x0 PicoMultiLoader-v1.1.0-esp32p4-full.bin
    
    If the board doesn't enter download mode by itself, hold BOOT, press RESET, then let go of BOOT.

To update an existing install and keep your app, flash only the loader:

esptool --chip esp32p4 -p COMx -b 460800 write_flash 0x20000 PicoMultiLoader-v1.1.0-esp32p4-app.bin

Raspberry Pi Pico (RP2040)

  1. Hold BOOTSEL, plug the Pico into USB, and copy PicoMultiLoader-v1.1.0-rp2040.uf2 to the RPI-RP2 drive. This replaces uf2loader.
  2. Put the Pico in the PicoCalc and switch it on.

The loader occupies the last 256 KB of flash. Apps can use up to 1788 KB.

Raspberry Pi Pico 2 W (RP2350)

  1. Hold BOOTSEL, plug the Pico 2 W into USB, and copy PicoMultiLoader-v1.1.0-rp2350.uf2 to the RP2350 drive. This replaces uf2loader. An app uf2loader installed stays and still starts.
  2. Copy pml2350.uf2 to the root of the SD card (FAT16 or FAT32).
  3. Put the Pico in the PicoCalc and switch it on.

Apps can use up to 4088 KB. You can also install an app by copying its .uf2 to the BOOTSEL drive; it goes into the app area.

If neither an app nor pml2350.uf2 is found, the Pico 2 W drops into BOOTSEL so you can fix it over USB.

Use it

  • Hold Up, F1 or F5 while switching on to get the menu instead of the installed app. The menu also opens when no app is installed.
  • Up/Down picks a file and Enter shows its details. Press Enter again to flash and start it. Backspace or Left goes to the parent folder.
  • F1 opens Setup and the help. F4 opens the web file manager (ESP32-P4 and Pico 2 W). F5 opens USB drive mode.

The README has the full documentation and build instructions.