Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 03:43 22 Jul 2026 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Next project: Micropython on the Pico Computer 3 - progress reports

     Page 2 of 2    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11636
Posted: 11:21am 15 Jul 2026
Copy link to clipboard 
Print this post

v0.7

firmwarev0.7.zip
Manual

Turtle graphics — a Turtle class (MMBasic TURTLE): movement/pen/heading, arcs, Béziers, circles, filled polygons, a state stack.

Bitmap fonts — the full set of nine MMBasic fonts (8×12 up to 32×50). hdmi.text(s, x, y, fg, bg, scale, font), hdmi.fonts(), and Display.text(..., font=, scale=).

GUI toolkit (pcgui) — the complete MMBasic GUI control set as Python objects: caption, frame, button, switch, checkbox, radio, LED, gauge, bar gauge, slider, text/number box, display box, spinner, list box, format box, and area. Driven by a USB mouse or touch panel, with an on-screen keyboard/keypad for touch text entry and global touch hooks (the GUI INTERRUPT TouchDown/TouchUp equivalent). Flicker-free incremental gauges/sliders.

Tile maps (TileMap) — scrolling tile-map backgrounds with a fast C render loop (hdmi.tilemap), tile attributes and collision, and single-tile drawing (blit_tile). Ships with a Breakout game demo (tests/breakout.py) ported from MMBasic.

File manager — fm() — a dual-panel file manager (MMBasic FM). Two panes side by side: Tab / ←→ switch panes, arrows navigate, Enter opens by type (.py runs, audio plays, images show, text views), and C copy / M move between the panes. Plus edit (pye), delete, rename, mkdir, and audio controls. Incremental redraw keeps it snappy; it restores the video mode after a program changes it.

Plotting — plot() — one-call plotting on the screen for maths/science: a list, several series, or a function over a range; line / scatter / bar, autoscaled with axes and range labels.

Game-loop timing — pcgame.Clock — a drift-free fixed-cadence frame clock (MMBasic SYNC): tick() holds an absolute deadline so animation runs at a steady rate with no drift, returns dt for frame-rate-independent motion, and tracks .fps (or vsync=True to lock to the display refresh).

Maths helpers — pcmath — the MMBasic MATH verbs that ulab doesn't already cover: quaternions, 3-D vectors, DSP (window / sinc / crossings / power spectrum), correlation, chi-square, and a PID controller. (Statistics, linear algebra, FFT and complex are in ulab + cmath.)

autosave("file") — capture what you paste or type at the console straight into a file (MMBasic AUTOSAVE) — the frictionless way to get a program onto the board with no XMODEM or SD-card shuffling. Ctrl-Z saves.
Edited 2026-07-15 21:22 by matherp
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11636
Posted: 03:59pm 16 Jul 2026
Copy link to clipboard 
Print this post

v0.8

firmwarev0.8.zip

Manual

New in v0.8

   cls() — clear the console screen (MMBasic CLS).
   fm multi-select — Space selects several files (shown yellow, counted in the status line); C/M/D copy, move or delete the whole selection. Plus a guard: copying when both panes show the same directory is refused (it would have truncated the source).
   Readable tracebacks from run() — errors now report File "prog.py", line N instead of <string>.
   console("none") — no console output anywhere and no blinking cursor over full-screen graphics; input still works, console() restores.
   DS3231 daily alarm — ds3231.set_alarm(h, m), alarm_fired(), clear_alarm(), alarm_off(), alarm_pin() (INT wired to GP32). Survives resets — it lives in the battery-backed chip.
   pccursor — a visible mouse pointer (MMBasic GUI CURSOR): save-under sprite, ARROW/CROSS shapes; pcgui shows and refreshes it automatically when a mouse is present.
   Manual and development-notes updates throughout (auto-run, import paths, hardware alarm, cursor, plus a fix to the GUI skeleton example).
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11636
Posted: 09:06pm 17 Jul 2026
Copy link to clipboard 
Print this post

v0.9

firmwarev0.9.zip

Manual

Coming tomorrow, fully functional PC emulator for Micropython on the Pico Computer 3

New in v0.9

   3D engine — draw3d — MMBasic's DRAW3D ported as a module: quaternion-rotated polyhedra with backface culling, painter depth-sorting, per-face colours/fills/flags/lighting, and hidden-line rendering (depthmode=2, the z-buffer wireframe mode — the Elite look). Demos: tests/football.py (bouncing truncated icosahedron), tests/elite.py and tests/cobra.py (hidden-line wireframe ships).
   hdmi.RGB640_4 — 640×480 in 16 colours, the fast game mode: the 150 KB framebuffer is half the video SRAM, so hdmi.create()'s off-screen F buffer takes the other half. Double-buffered 3D now runs faster than MMBasic on the same hardware.
   RGB320 fast double-buffering — hdmi.create() called before hdmi.layer() claims the second half of video SRAM for the F buffer (first come, first served; layer() then errors until close("F"); call layer() first and both coexist as before).
   Turtle pattern fills — t.fillpattern(0..31) (fp), MMBasic's 32 8×8 fill patterns, plus a fix for the speckled border artefact on filled shapes; hdmi.polyfill() exposes the scanline pattern fill to everything else.
   pcmath.AHRS — Mahony and Madgwick sensor fusion (MMBasic MATH verbatim) for IMU work: feed gyro/accel (/mag), get quaternion or Euler angles.
   Overclock flash fix — screen(..., 315) / screen(..., 378) no longer hard-hangs: the post-write XIP re-entry now respects the flash's limits at every supported CPU clock (PICO_FLASH_SPI_CLKDIV=4, MMBasic's setting).
   4-bpp modes corrected — all C drawing paths now share framebuf's GS4_HMSB nibble order; RGB1024 text and graphics render with columns the right way round.
   Console robustness — Ctrl-C during a dupterm write no longer kills the screen console; run() always restores drawing (and the console) to the visible display when a program ends, however it ends — no more "dead REPL" after interrupting a double-buffered program.
   Performance — the 3D engine and drawing core use single-precision hardware FPU arithmetic and horizontal-span fills throughout (MMBasic parity).
   pye editor sizing — the editor takes its screen size from the active console, fixing the bottom line in RGB320.
   Manual and development notes updated throughout.
Edited 2026-07-18 07:07 by matherp
 
okwatts
Regular Member

Joined: 27/09/2022
Location: Canada
Posts: 76
Posted: 10:47pm 17 Jul 2026
Copy link to clipboard 
Print this post

Deleted operator error!
Edited 2026-07-18 09:00 by okwatts
 
     Page 2 of 2    
Print this page


To reply to this topic, you need to log in.

The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2026