Firmware

Official binaries: https://micropython.org/download. Pick the board, then the latest stable .uf2 or .bin. Daily builds exist for people chasing a fix; stable is the default.

By family

FamilyFileTool
Pico / Pico 2UF2BOOTSEL drive
ESP32 / ESP8266.binesptool
pyboard v1.1DFUdfu-util
SAMD / many RP2040 clonesUF2Board bootloader drive
micro:bit.hexCopy to MICROBIT drive

Build it yourself

Clone https://github.com/micropython/micropython, initialise submodules, install the port’s toolchain (ARM GCC, ESP-IDF, …) and run the port’s make or CMake. Board name is usually BOARD=RPI_PICO. Cross-compile scripts with mpy-cross from the same tree so the .mpy version matches the firmware.

git clone {GH}
cd micropython
git submodule update --init
make -C mpy-cross
make -C ports/rp2 BOARD=RPI_PICO

After it boots

mpremote or Thonny to the serial port. Soft reboot with Ctrl-D. If you brick a Pico, BOOTSEL still loads a new UF2. ESP boards can always re-run esptool erase_flash.