|
Forum Index : Microcontroller and PC projects : Next project: Micropython on the Pico Computer 3 - progress reports
| Author | Message | ||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11636 |
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 KingdomPosts: 11636 |
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 KingdomPosts: 11636 |
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: CanadaPosts: 76 |
Deleted operator error! Edited 2026-07-18 09:00 by okwatts |
||||
| The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2026 |