New PicoMite firmware release V5.07.06


Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10169
Posted: 09:04am 07 Jan 2023      

Thanks as always to Geoff for a huge amount of work on updating the manuals. The release notes for 5.07.06 are in the download but are reproduced below. Updating to this new release is highly recommended.

PicoMite V5.07.06 Changes from V5.07.04

Breaking changes PicoMite
PAGE command removed - replaced by GUI PAGE
GUI TEXTBOX ACTIVATE removed
Reduced available RAM and program size from 120KB to 116KB
Removes support for the GDEH029A1 display as this controller is now obsolete

Breaking changes PicoMiteVGA
Reduced available RAM and program size from 108KB to 100KB

General changes - both versions
Various tuning and performance improvements
Updates SDK to V1.4
Updates Compiler to version 11.2.1
Enables operation up to 378MHz
SETPIN for PWM no longer needs to specify the channel and port e.g. "SETPIN 1,PWM" is now accepted
Re-engineering of PORT command to allow simultaneous update
Modifies the port function to read all pins simultaneously
Revised version of CSub header to cater for compiler change
Updated CSUB header file and additional functions exposed
The number of flash slots in both versions is now 5
Changes the priority of the CIN.FIN,PER interrupt to improve accuracy
Resets default fonts when a new program is loaded or the NEW command is executed.
Max editor clipboard size now 16384 characters
Max number of BLIT buffers now 32 (memory dependent)
Support for file system on the Pico's flash. All SD file commands are supported. Flash drive is "A:" SDcard if configured is drive "B:"
By default the system restarts with the active drive as drive "A:" even if the SDcard is configured
On first installation the firmware will automatically create the flash drive. The firmware reads the size of the flash
and uses this to determine the drive size. Flash chips > 2Mb are fully supported
OPTION LIST now shows version number and which firmware
Changes to better support modules with >2Mb Flash chips
PWM duty cycles can now be negative which will invert the output (-100.0 <= duty <=100.0)


New/changed Commands - both versions
DRIVE drive$ - sets the active drive
DRIVE "A:/FORMAT" - re-initialise the flash drive
MATH RANDOMIZE [n] - seeds the  Mersenne Twister algorithm.
TRIANGLE SAVE [#]n, x1,y1,x2,y2,x3,y3 - saves a triangular area of the screen to buffer #n.
TRIANGLE RESTORE [#]n - restores a saved triangular region of the screen and deletes the saved buffer.
MEMORY PACK source%(),Destination%(), number, size - packs the contects of one array into another
MEMORY UNPACK source%(), Destination%(), number, size - unpacks the content of one array from another
BITBANG SERIALTX pinno, baudrate, ostring$ - transmits ostring$ on pinno
BITBANG SERIALRX pinno, baudrate, istring$, timeout_in_ms, status% [,nbr] [,terminators$] - receives istring$ on pinno
ON PS2 interrupt - triggers an interrupt whenever the PicoMite sees a message from the PS2 interface.
OPTION HEARTBEAT ON/OFF
LINE  AA x1, y1, x2, y2 [, LW [, C]] - Draws a line with anti-aliasing.
FRAMEBUFFER - see manuals for details
OPTION SERIAL CONSOLE TXpin, RXpin [,B] - adding the "B" parameter means output will go to "B"oth the serial port and the USB
PIO READ - Allows a single integer variable to be used when nbr=1

New/changed Functions - both versions
MATH(RAND) - returns a random number 0.0 <= n < 1.0 using the "Mersenne Twister: A 623-dimensionally
MM.INFO(drive) - get the current active drive - returns A: or B:
MM.INFO(HEAP) - returns the free space on the MMBasic heap
MM.INFO(STACK) - returns the C program stack pointer
MM.INFO$(SOUND) - returns the status of the audio channel
MM.INFO(PS2) - returns the last raw PS2 message received.
MM.INFO(PINNO n) now accepts a literal, a string variable or an unquoted GPn designation
MATH(CRC8 array()_or_string$, [length,] [polynome,] [startmask,] [endmask,] [reverseIn,] [reverseOut] - calculate an 8 bit CRC
MATH(CRC12 array()_or_string$, [length,] [polynome,] [startmask,] [endmask,] [reverseIn,] [reverseOut] - calculate a 12 bit CRC
MATH(CRC16 array()_or_string$, [length,] [polynome,] [startmask,] [endmask,] [reverseIn,] [reverseOut] - calculate a 16 bit CRC
MATH(CRC32 array()_or_string$, [length,] [polynome,] [startmask,] [endmask,] [reverseIn,] [reverseOut] - calculate a 32 bit CRC
PIO(EXECCTRL jmp_pin ,wrap_target, wrap [,side_pindir] [,side_en]) - JMP PIN must have GP designation, Extra optional parameters

Other new functionality - PicoMite
Enabled BLIT and LOAD JPG for mono displays
BLIT LOAD: now also accept BLIT LOADBMP for compatibility with VGA version
Adds support for the 480x320 IPS ILI9481 display (use code ILI9481IPS)

Other new functionality - PicoMiteVGA
Use EDIT 1 to edit in mode 1, Use EDIT 2 to edit in mode 2, Use EDIT to edit in current mode
Implements DRAW3D command and function
Improved LOAD JPG for MODE 1 (mono).
Implementation of enhanced sprite command and function


Bug Fixes and corrections - both versions
Fixes crashing bug if edit is used after running a program with IR input
Fixes bug in BITBANG LCD CMD and BITBANG LCD DATA
Fixes bug in PIO READ
Fixed bug in sound command overdriving the PWM when > 2 channels are used and the volume isn't explicitly specified
Fixed bug in PWM n,OFF requiring spurious extra parameter
Fixes bug in SDK that caused SPI clock to set to wrong level before first transaction
Fixes bug when using "ON KEY int" command
Fixes bug in passing string function to time$
Fixes bug in MM.INFO(filesize ... and MM.INFO(Modified ...
Changes to PS2 keyboard handler to fix bug where interrupts are dropped
Fixes bug in PLAY TONE n. m. d, interrupt which caused the interrupt not to fire
Fixes bug in ERASE command when erasing arrays
Improved error checking of SETPIN command to avoid crashes
Fix to BITBANG WS2812 timings
Improved error messaging for incorrect pin usage.
Fixed MM.INFO(pinno when OPTION EXPLICIT specified.
Improved error detection on some option commands to avoid lockups through pin conflicts
Fixes bug in setpin fin,per,cin when fast signal is established before the setpin

Bug Fixes and corrections - PicoMite
Fixes bug in GUI DELETE
Fixes bug in OPTION LIST for some displays
SPI for touch reduced in speed to 1MHz to improve reliability
Bug fix to GUI spinbox to erase triangle bounding line properly
Fixed bug in LOAD IMAGE for mono displays
Corrects reporting of MM.HRES and MM.VRES by OPTION LIST when a user driver is loaded

Bug Fixes and corrections - PicoMiteVGA
Fixes issue where connecting a USB CDC cable would cause the VGA version to Hardfault
Change timing of PAGE COPY ,,B to avoid screen artefacts
Fixes issue on some Pico in VGA mode 1 output at 126MHz
Edited 2023-01-07 19:10 by matherp