Skip to content

Pico Computer 3 v0.12 (test)

Choose a tag to compare

@UKTailwind UKTailwind released this 24 Jul 11:16

Firmware and manual for the Pico Computer 3 (RP2350B).

New in v0.12

  • SQLite hardened against resets and power loss — a full review of the on-device SQLite engine (import usqlite) fixed three classes of defect. A soft reset (Ctrl-D) with a database open no longer corrupts the engine (previously the next session could hard-lock on its first db.close()); connections and cursors are now fully garbage-collector-safe (a use-after-free on close(), and dropped connections leaking their memory for the rest of the session); INTEGER columns are now true 64-bit in both directions — millisecond timestamps stored from Python no longer overflow on write or silently wrap on read. Filesystem trouble (missing directory, full flash, an SD card pulled mid-query — pulling the card is a supported action) now raises a clean Python error and leaves the engine healthy instead of unwinding through SQLite's internals. And power-fail recovery now actually works: a power cut mid-write leaves a "hot journal" that is detected and rolled back on the next open, where previously a torn database could be served as valid — verified on hardware with physical power pulls during committed batch writes (clean rollback each time). The API is unchanged and existing databases are unaffected. On-device test suite included (tests/sqltest_a..e.py).
  • USB mouse: high-resolution mice fixed, and any HID mouse now works — mice reporting 12- or 16-bit movement moved erratically: the firmware left the mouse in USB boot mode (plain 8-bit reports) while decoding the full-resolution format the mouse describes, so the two never matched. The mouse is now switched to report mode at connect (as MMBasic does), and the decoder has been generalised to read each mouse's own HID descriptor — any button count, movement resolution, wheel position or report-ID scheme — instead of recognising three fixed layouts. Combo receivers that share the mouse interface with media keys no longer jitter the cursor when those keys are pressed, and a mouse that refuses the mode switch falls back cleanly to 8-bit decoding.
  • PC emulator — the refreshed pc3emu-linux-x64.tar.gz carries all of the above (banner v0.12). Runs on Linux, and on Windows via WSL2 — see INSTALL-WINDOWS.md inside the tarball. Needs glibc 2.43 / Ubuntu 26.04+ for the prebuilt binary; on older systems build from source (a few minutes, any distro).
  • Manual and development notes updated (the mouse section now documents descriptor-driven support for any standard HID mouse).

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.