|
Forum Index : Microcontroller and PC projects : PicoMite Firmware Release Version 6.01.00
| Author | Message | ||||
| Geoffg Guru Joined: 06/06/2011 Location: AustraliaPosts: 3320 |
Peter has released the final version of the PicoMite firmware V6.01.00 along with the updated user manual. This can be downloaded from https://geoffg.net/picomite.html (scroll to the bottom of the page). WARNING: Loading this firmware will erase all data stored in the flash memory. This release has a huge list of new functionality and enhancements. For the full list see the file RELEASE NOTES.txt in the firmware download, however this is a summary: New Commands/Functions ====================== ON ERROR RESTART TRIM$ PLAY ARRAY MM.SUPPLY DEVICE(MOUSE) LINPUT() LMID() FLASH LOAD IMAGE BLIT FLASH FILL YMODEM TURTLE GRAPHICS Enhanced Functionality ===================== KEYPAD enhancements High speed buffered display drivers Additional HDMI/VGA modes USB mouse sensitivity control EDITOR enahncements REDIM new option: PRESERVE DEVICE() now works for USB mice PIO programming enhancements AUTOSAVE enhancement Keyboard enhancements New LOAD JPG options DRAW3D enhancements Bug Fixes ========= Fixes bug in PULSE command on GP pins > 31 Fixes bugs in DEVICE SERIAL TX and DEVICE SERIAL RX including support for all pins on the RP2350B Correctly validates maximum file lengths in numerous places in the firmware Fixes bug in MAP command for some HDMI resolutions Fixes bug in changing HDMI mode causing occasional crashes Fixes memory leak when a framebuffer is created in HMDI 1280x720 mode 1 Fixes lockup in FRAMEBUFFER SYNC if a previous MERGE has not been executed. Fixes bug in STATIC variables Fixes bug in PIO PROGRAM LINE Fixes bug in MM.INFO(EXISTS FILE fname$) Fixes bug in XMODEM for RP2040 Fixes bug in reading zero length files - all versions Fixes a couple of typos in the PIO assembler Fixes a typo in reading escape sequences Fixes a bug in ADC START Geoff Graham - http://geoffg.net |
||||
| toml_12953 Guru Joined: 13/02/2015 Location: United StatesPosts: 504 |
In the manual on page 101 it says the max CPUSPEED is 378000 KHz. MMBasic allows 396000 KHz to be entered and it's running on my system at the higher speed with no issues. |
||||
| Geoffg Guru Joined: 06/06/2011 Location: AustraliaPosts: 3320 |
Thanks. To avoid cluttering this topic I will start a new one for manual updates/corrections. Geoff Geoff Graham - http://geoffg.net |
||||
| twofingers Guru Joined: 02/06/2014 Location: GermanyPosts: 1704 |
deleted Edited 2025-12-17 19:09 by twofingers causality ≠ correlation ≠ coincidence |
||||
| ville56 Guru Joined: 08/06/2022 Location: AustriaPosts: 340 |
what is the idea behind leaving the touch subsystem in HDMI/VGA versions? Are HDMI/VA panels available that also have touch implemented? 73 de OE1HGA, Gerald |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10718 |
In 6.01.00 there is one new command which wasn't mentioned before BEZIER - see the manual for details but here is my test program Option DEFAULT INTEGER Option EXPLICIT MODE 3 CLS Sub ShowCurve(x(), y(), n, colour, title$) CLS Text 10, 10, title$, , , 1 Bezier x(), y(), n, colour Pause 3000 End Sub ' One petal, closed Dim fx%(3) = (320, 380, 450, 320) Dim fy%(3) = (240, 100, 100, 240) Math SCALE fx%(),MM.HRES/640,fx%() Math SCALE fy%(),MM.VRES/480,fy%() '------------------------------------------------------- ' 2. SPIRAL (multi-point Bzier path) ' (approximation using many control points) '------------------------------------------------------- Dim sx(10) = (320, 380, 420, 450, 430, 360, 260, 200, 180, 230, 320) Dim sy(10) = (240, 230, 200, 140, 90, 70, 100, 180, 260, 300, 320) Math SCALE sx(),MM.HRES/640,sx() Math SCALE sy(),MM.VRES/480,sy() '------------------------------------------------------- ' 3. WAVY RIBBON (smooth horizontal wave) '------------------------------------------------------- Dim wx(6) = (20, 120, 220, 320, 420, 520, 620) Dim wy(6) = (240, 120, 360, 120, 360, 120, 240) Math SCALE wx(),MM.HRES/640,wx() Math SCALE wy(),MM.VRES/480,wy() '------------------------------------------------------- ' 4. SIGNATURE-STYLE CURVE (fancy stroke) '------------------------------------------------------- Dim sigx(7) = (40, 120, 200, 320, 420, 500, 600, 580) Dim sigy(7) = (300, 260, 320, 200, 260, 180, 260, 300) Math SCALE sigx(),MM.HRES/640,sigx() Math SCALE sigy(),MM.VRES/480,sigy() '------------------------------------------------------- ' 5. Previous demo shapes (S-curve, loops, etc.) '------------------------------------------------------- Dim x1(3) = (50, 200, 440, 590) Dim y1(3) = (400, 50, 430, 80) Math SCALE x1(),MM.HRES/640,x1() Math SCALE y1(),MM.VRES/480,y1() Dim x2(5) = (100, 300, 300, 200, 440, 540) Dim y2(5) = (240, 480, 0, 400, 80, 240) Math SCALE x2(),MM.HRES/640,x2() Math SCALE y2(),MM.VRES/480,y2() Dim x3(12) = (320,390,441,460,441,390,320,250,199,180,199,250,320) Dim y3(12) = (240,309,309,240,171,171,240,309,309,240,171,171,240) Math SCALE x3(),MM.HRES/640,x3() Math SCALE y3(),MM.VRES/480,y3() Dim x4(5) = (320, 600, 40, 560, 100, 320) Dim y4(5) = (450, 380, 140, 200, 60, 30) Math SCALE x4(),MM.HRES/640,x4() Math SCALE y4(),MM.VRES/480,y4() Dim hx1(3) = (320, 190, 190, 320) Dim hy1(3) = (350, 200, 100, 160) Math SCALE hx1(),MM.HRES/640,hx1() Math SCALE hy1(),MM.VRES/480,hy1() Dim hx2(3) = (320, 450, 450, 320) Dim hy2(3) = (160, 100, 200, 350) Math SCALE hx2(),MM.HRES/640,hx2() Math SCALE hy2(),MM.VRES/480,hy2() Dim x6(4) = (50, 300, 200, 580, 400) Dim y6(4) = (420,350, 50, 120, 300) Math SCALE x6(),MM.HRES/640,x6() Math SCALE y6(),MM.VRES/480,y6() '------------------------------------------------------- ' MAIN LOOP '------------------------------------------------------- Do DrawFlower() ShowCurve sx(), sy(), 11, RGB(YELLOW), "Spiral Sweep (11 points)" ShowCurve wx(), wy(), 7, RGB(CYAN), "Wavy Ribbon Pattern" ShowCurve sigx(), sigy(), 8, RGB(WHITE),"Signature-Style Stroke" ShowCurve x1(), y1(), 4, RGB(YELLOW), "Smooth S-Curve Ribbon" ShowCurve x2(), y2(), 6, RGB(CYAN), "Loop-de-Loop" ShowCurve x3(), y3(), 13, RGB(RED), "Figure-Eight" ShowCurve x4(), y4(), 6, RGB(GREEN), "Spiral-Sweep Path" CLS Text 10,10,"Heart Shape",,,1 Bezier hx1(), hy1(), 4, RGB(RED) Bezier hx2(), hy2(), 4, RGB(RED) Fill MM.HRES\2,MM.VRES\2,RGB(red) Pause 3000 ShowCurve x6(), y6(), 5, RGB(WHITE), "Abstract Dragon Stroke" Loop Sub DrawFlower() Local i, p Local float angle, r Local dx, dy, x, y Local rx!(3), ry!(3) ' FLOATING ARRAYS Local xi%(3), yi%(3) CLS Text 10,10,"Flower (12 petals)",,,1 For i = 0 To 11 angle = i * 30 r = angle * Pi / 180 For p = 0 To 3 dx = fx%(p) - MM.HRES\2 dy = fy%(p) - MM.VRES\2 rx!(p) = MM.HRES\2 + dx * Cos(r) - dy * Sin(r) ry!(p) = MM.VRES\2 + dx * Sin(r) + dy * Cos(r) Next p ' Convert float For p = 0 To 3 xi%(p) = Cint(rx!(p)) yi%(p) = Cint(ry!(p)) Next p Bezier xi%(), yi%(), 4, RGB(MAGENTA) x=0 y=0 For p= 0 To 3 Inc x,xi%(p) Inc y,yi%(p) Next Fill x\4,y\4,RGB(yellow) Next i Pause 3000 End Sub |
||||
| Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 5542 |
Geoff, Peter, Congratulations with this "final" release for PicoMite. I see benefit in this last addition (Bezier function) for representing waveform graphs (i.e. oscilloscope picture) when there are only few datapoints. Linear interpolation gives a mediocre representation. Tested in mode 1 on RP2040 VGA Thank you both for this release. I already updated 50% of my platforms, and these all appear to start up fine and run their intended programs. Volhout PicomiteVGA PETSCII ROBOTS |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10718 |
You should have said you wanted some curve fitting before I finished the release. I've just implemented a sin(x)/x (sinc function) including sinc interpolation red = original points yellow = 1:1 smoothing green = interpolated output ![]() ' Demo: unified SINC smoothing vs interpolation OPTION EXPLICIT mode 2 CLS CONST N = 40 ' input points CONST M = 120 ' resampled output points (m != n triggers interpolation) CONST WIN = 17 ' window size (odd) CONST FREQ = 0.12 ' normalized cutoff (0<freq<=0.5) DIM x_in(N), y_in(N) DIM x_s(N), y_s(N) ' smoothed outputs (m omitted => smoothing) DIM x_out(M), y_out(M) ' resampled outputs (m provided => interpolation) DIM i%, xi%, yi% ' Build a test waveform that fits the screen FOR i% = 0 TO N - 1 x_in(i%+1) = (MM.HRES - 1) * i% / (N - 1) y_in(i%+1) = (MM.VRES\2) + (MM.VRES\3) * SIN(2 * PI * i% / 12) + 0.15 * MM.VRES * SIN(2 * PI * i% / 5) IF y_in(i%+1) < 0 THEN y_in(i%+1) = 0 IF y_in(i%+1) > MM.VRES - 1 THEN y_in(i%+1) = MM.VRES - 1 NEXT ' Smoothing (m omitted => m=n internally) MATH SINC x_in(), y_in(), N, WIN, FREQ, x_s(), y_s() ' Interpolation/resampling (m provided) MATH SINC x_in(), y_in(), N, M, WIN, FREQ, x_out(), y_out() ' Clear and draw axes CLS LINE 0, MM.VRES\2, MM.HRES-1, MM.VRES\2, 1, RGB(GREY) LINE 0, 0, 0, MM.VRES-1, 1, RGB(GREY) ' Plot original points in red FOR i% = 1 TO N xi% = INT(x_in(i%)) yi% = INT(y_in(i%)) IF xi% >= 0 AND xi% < MM.HRES AND yi% >= 0 AND yi% < MM.VRES THEN PIXEL xi%, yi%, RGB(RED) NEXT ' Plot smoothed points in yellow FOR i% = 1 TO N xi% = INT(x_s(i%)) yi% = INT(y_s(i%)) IF xi% >= 0 AND xi% < MM.HRES AND yi% >= 0 AND yi% < MM.VRES THEN PIXEL xi%, yi%, RGB(YELLOW) NEXT ' Plot resampled points in green, slightly offset upward for visibility FOR i% = 1 TO M xi% = INT(x_out(i%)) yi% = INT(y_out(i%)) - 2 ' small offset for visibility IF yi% < 0 THEN yi% = 0 IF yi% >= MM.VRES THEN yi% = MM.VRES - 1 IF xi% >= 0 AND xi% < MM.HRES THEN PIXEL xi%, yi%, RGB(GREEN) NEXT Edited 2025-12-18 23:31 by matherp |
||||
| Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 5542 |
Hi Peter, Nice, but I am not working on such now, but it is always on the back of my mind. Volhout PicomiteVGA PETSCII ROBOTS |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10718 |
RP2350 versions of V6.01.00 implements a celestial navigation system that calculates the altitude and azimuth of celestial objects (stars, Moon, and planets) from an observer's location on Earth. Attached is a document explaining the functionality for those interested. GPS_Astro_Reference.pdf |
||||
| toml_12953 Guru Joined: 13/02/2015 Location: United StatesPosts: 504 |
When I put in location data, the astro command gives me this: >location "18/12/2025 11:03:00",44.8488,-74.2937 >astro "Vega",a,az,ra,dec Error : Argument count > Edited 2025-12-19 02:11 by toml_12953 |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10718 |
Two faults, one in the pdf and one in the code. PDF attached and I'll ask Geoff to update the download. GPS_Astro_Reference.pdf |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10718 |
Geoff has kindly updated the download. 6.01.00 as downloaded now fixes the TAB bug and fixes the ASTRO/STAR bug. The manual has also been updated with various minor changes identified. make sure you clear you cache to get a clean download of the updated zip Edited 2025-12-19 08:46 by matherp |
||||
| toml_12953 Guru Joined: 13/02/2015 Location: United StatesPosts: 504 |
The TAB function works great. Thanks! I still can't enter location "18/12/2025 11:03:00",44.8488,-74.2937 astro "Vega",a,az,ra,dec Error : Argument count though. What am I doing wrong? Edited 2025-12-19 15:30 by toml_12953 |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10718 |
The manual for astro is still wrong use the syntax for star Updated manual attached GPS_Astro_Reference.pdf Edited 2025-12-19 18:16 by matherp |
||||
| Amnesie Guru Joined: 30/06/2020 Location: GermanyPosts: 732 |
Hi Peter, just a quick question: I've recently ordered some Pico2 and saw that there is a new "a4 stepping" of the chip available. Does the MMBASIC firmware work with the new chips (they have corrected the ADC issues etc.)? Greetings Daniel Edited 2025-12-19 22:14 by Amnesie |
||||
| Volhout Guru Joined: 05/03/2018 Location: NetherlandsPosts: 5542 |
Thanks for "sneaking" MATH SINC in in all versions (also RP2040). Really appreciated. Merry Christmas... Volhout PicomiteVGA PETSCII ROBOTS |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10718 |
The firmware is compiled with sdk v2.2.0 which supports the A4 stepping chips so I assume it works. I just bought a couple of Pico2's but they still came with A2 chips fitted so I can't test to confirm. |
||||
| ville56 Guru Joined: 08/06/2022 Location: AustriaPosts: 340 |
It definitely works, I've already tried it. 73 de OE1HGA, Gerald |
||||
| The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |