Skip to content

Pico Computer 3 v0.5 (test)

Choose a tag to compare

@UKTailwind UKTailwind released this 13 Jul 16:09

Pico Computer 3 v0.5 (test)

A MicroPython (RP2350B) firmware for the Pico Computer 3 standalone board.

Install

Hold BOOTSEL while powering up, then copy firmware.uf2 to the RPI-RP2
drive that appears. The board reboots into MicroPython; the REPL banner reads
MicroPython v1.29.0-preview on PICO COMPUTER 3 v0.5 with RP2350B.

What's new since v0.4

On-screen colour editing

  • The HDMI console now understands ANSI colour (SGR escapes) — 16-colour
    foreground/background, bold and reverse work on the screen as on a serial
    terminal.
  • The pye editor syntax-colours .py files using MMBasic's scheme —
    keywords cyan, strings magenta, comments yellow, numbers green — plus a
    coloured status bar and selection. pye.Editor.syntax = False turns it off.

Wi-Fi + NTP time

  • wifi("SSID", "password") connects and remembers the credentials;
    ntpsync() sets the clock from an internet time server and updates the
    battery-backed DS3231 (so the time stays right offline). tz(hours) sets
    the timezone offset; auto(True) syncs at every boot.
  • Credentials are stored in plaintext in /settings.json (this board has no
    secure storage) — see the manual's note and the per-session alternative.

Richer 2D drawing primitives

On the Display from hdmi.fb(), beyond framebuf's line/rect/ellipse/poly:

  • d.line(x1,y1,x2,y2,colour,w) — thick lines.
  • d.rbox(x,y,w,h,r,colour,fill=None) — rounded rectangles.
  • d.arc(x,y,r1,r2,a1,a2,colour) — filled arcs / ring segments.
  • d.bezier(points,colour) — Bézier curves.
  • d.flood(x,y,colour,border=None) — flood fill (paint-bucket or
    fill-to-boundary), in C, in every video mode.

Sprite sheets — load_image() / Image

  • load_image(path) decodes a .png/.jpg/.bmp into memory in the
    current pixel format, returning an Image you can blit whole or in pieces —
    the standard way to hold a sprite sheet and blit individual sprites out
    of it. Image.blit() / Image.cell() blit straight from RAM; transparent=
    makes a PNG's alpha a skip colour.
  • Image.sprites(cw, ch) cuts a sheet into sprite-engine Sprites that
    share the one buffer (no per-sprite copy); sprite.frame(n) animates
    a sheet-backed sprite through its frames.
  • tests/demo_asteroids.py shows a 64-frame asteroid sheet animated and
    double-buffered in Python (hdmi.create() + hdmi.vsync()/hdmi.copy()) for
    tear-free motion.

See USER_MANUAL.md (in the board directory) for full documentation.