Skip to content

Pico Computer 3 & 2 v0.14 (test)

Latest

Choose a tag to compare

@UKTailwind UKTailwind released this 26 Jul 17:07

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

New in v0.14

  • The same firmware now runs on the Pico Computer 2 — plug it in and it works out for itself which machine it is on, at start-up, before anything else happens. The test is the DS3231's 32 kHz clock, which only the Pico Computer 3 wires to a pin (GP27), and it is the same test MMBasic makes. Nothing changes for a Pico Computer 3.
  • SD card on the Pico Computer 2's own pinout — CS GP29, SCK GP30, MOSI GP31, MISO GP32. Those pins do not line up with either hardware SPI block, so the card is driven by a bit-banged SPI bus ported from MMBasic, at the same clock speeds. Mounting, hot-swap and everything above it behave exactly as on the Pico Computer 3.
  • No Wi-Fi/Bluetooth on the Pico Computer 2 — and it is now safe about it. The wireless chip's pins are used for other things on that board (the LED on GP25 and the SD chip select on GP29), so starting the radio there would have taken over a live SD chip select and corrupted the card. The firmware never brings it up, and network.WLAN(), bluetooth.BLE() and Pin("LED") raise a clear error instead. wifi() says there is no radio rather than hanging.
  • The banner names the board it found — a Pico Computer 2 now greets you with MicroPython v1.29.0-preview on PICO COMPUTER 2 v0.14 with RP2350B, and os.uname().machine agrees. (sys.implementation._machine is fixed at build time and still names the 3.)
  • New board moduleboard.name(), board.id(), board.has_wifi(), board.led_pin(). On a Pico Computer 2 the LED is ready to use as LED (e.g. LED.toggle()); on a Pico Computer 3 it is still Pin("LED", Pin.OUT). If a Pico Computer 3's RTC has stopped it can be mistaken for a 2 — board.override(board.PICO_COMPUTER_3) then Ctrl-D puts it right.
  • The clock and everything else are unchanged on both boards — both have the DS3231, so settime()/gettime()/synctime() work either way; the Pico Computer 2 simply does not route the 32 kHz output. The one exception is the RTC alarm's INT line (ds3231.alarm_pin()), which is GP32 — the SD card's data line on a Pico Computer 2.
  • PC emulator — the refreshed pc3emu-linux-x64.tar.gz is at banner v0.14 and includes the board module. 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).
  • File manager fixes — a program started from fm() can now be stopped with Ctrl-C, exactly as at the command line (it previously inherited fm's own key handling, where Ctrl-C is the quit key rather than an interrupt, and ran unstoppably; editing the file first happened to work around it). Ctrl-C stops the program and returns you to the panels. Separately, fm() no longer shows every file as 0 bytes on filesystems whose directory listing omits the size — it falls back to stat().
  • Manual updated with a "Running on a Pico Computer 2" section (section 2).

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.