Pico Computer 3 v0.10 (test)
Firmware and manual for the Pico Computer 3 (RP2350B).
New in v0.10
- On-device SQLite —
import usqlite— a full SQLite 3.47 database engine is now built into the firmware.usqlite.connect("/data.db")gives you real SQL — tables, indexes, transactions, parameterised queries and cursors — with the database an ordinary file on the flash disk (/) or SD card (/sd) that survives a power-cycle. SQLite runs in the board's 8 MB PSRAM heap, so non-trivial queries are practical. Hardware-tested (create/insert/select,REALround-trip, persistence across reconnect). The PC emulator has it too, soimport usqlitebehaves identically there. See User Manual §17. - USB gamepad —
gamepad()— plug a USB game controller into the host port and read it like MMBasic'sDEVICE(GAMEPAD):gamepad("LX"/"LY"/"RX"/"RY")analog sticks,gamepad("B")button bitmap (test with& gamepad.A,gamepad.START, …),gamepad("H")d-pad/hat, the analog triggers, and the PS4 gyroscope/accelerometer. Xbox, PlayStation 3/4 and a table of common generic HID pads decode out of the box;gamepad.configure()teaches it an unrecognised controller (gamepad.monitor()helps discover one). Hardware-tested with a generic pad and a DualShock 3. - USB serial (CDC host) —
USBSerial— a USB-serial adapter (FTDI, CP2102, CH340, or a native-USB device such as an Arduino) plugged into the host port becomes a UART-like object: exactly theread/readline/readinto/write/flush/anyofmachine.UART, plusconnected()andon_change()for hot-plug. Up to four at once. Hardware-tested round-trip against a second RP2 running MMBasic. hdmi.RGB320_8— 320×240 in 256 colours, pixel-doubled to 640×480. One buffer is only a quarter of the video SRAM, so the display, the overlay layer and the off-screencreate()buffer all fit in fast SRAM at once — the only mode offering an overlay and a fast double buffer together.- Wi-Fi password security — the saved Wi-Fi password is now scrambled and tied to this specific board (not readable at a glance in
settings.json, and useless if copied to another board), andwifi("SSID", "pw", save=False)connects without saving it. - Fixes — a composite keyboard's extra HID interface (e.g. the Raspberry Pi keyboard's media keys) no longer shows up as a phantom gamepad; RGB640_4
vsynctiming; the cosmetichardware/powman.hbuild error on RP2350; and the emulator now builds cleanly from a fresh clone. Built against pico-sdk 2.3.0 with an upstream MicroPython sync. - Manual and development notes updated throughout.
Flashing
USB HUB switch to DISABLE → connect the Prog port to a PC → hold BOOT, click RESET → drag firmware.uf2 onto the drive that appears → switch back to ENABLE. Your files and settings survive.
The PC emulator
New with this release: pc3emu-linux-x64.tar.gz — the Pico Computer 3 as a PC program. The same interpreter, drawing code, keyboard decoding, audio and Python toolkit as the firmware, with the hardware provided by SDL2: it boots to the banner and >>> in a window and runs the book's programs unmodified (the SD card comes pre-seeded with them). Runs on Linux, and on Windows via WSL2 — INSTALL-WINDOWS.md (also inside the tarball) walks a machine that has never seen WSL all the way to the running emulator, no Linux experience or compiler required. The release assets were refreshed on 22 July to add on-device SQLite (import usqlite) to both the firmware and the emulator; an earlier 18 July refresh brought firmware and emulator onto the same tree, pico-sdk 2.3.0 and an upstream MicroPython sync (including a fix for pin interrupts on GPIOs above 30).
Compatibility: the prebuilt emulator binary needs glibc 2.43 or newer — Ubuntu 26.04+ (on older releases it stops with version `GLIBC_2.43' not found). On Windows/WSL, install the right version by name: wsl --install -d Ubuntu-26.04 (details in INSTALL-WINDOWS.md). On an older Linux, build from source instead — it works on any distro and takes a few minutes. Clone with git; GitHub's source ZIP/tarball won't build (it lacks the submodules):
sudo apt install -y git build-essential libsdl2-dev python3
git clone --branch pico-computer-3 https://github.com/UKTailwind/micropython
cd micropython
make -C mpy-cross -j$(nproc)
make -C ports/unix VARIANT=pc3 submodules
make -C ports/unix VARIANT=pc3 -j$(nproc)
chmod +x ports/rp2/boards/PICO_COMPUTER_3/emulator/pc3emu
ports/rp2/boards/PICO_COMPUTER_3/emulator/pc3emu