Releases: jblanked/Picoware
Picoware - v1.7.3
Picoware - v1.7.2
This is an update to the MicroPython version that introduces a C++ game engine, a new logging system, and a significantly improved FileBrowser with copy and move support. It also brings a high-performance textbox_mp C module for near-instant text rendering, an expanded Settings app with manual time and theme controls, three new screensavers, and audio recording support via the new INMP441 app.
Changelog
Added:
INMP441app (record audio to SD card)copy,move,file_copy, andfile_movemethods to theStorageclass- C++ game engine with MicroPython C modules
- C++ guards to several MicroPython C modules
list_directorymethod in thesd_mpmodule that only returns file names instead of dicts- Scaling attributes to the
lcd_mpC module - Task ID to logging in the
ThreadManagerclass fetchmethod to theTimeclass that connects via socket and syncs the NTP time on a separate threadDatePickerGUI classlog_mpC module andLogclasslogmethod to theViewManager(and updated several system apps to use it)textbox_mpC module: load and scroll text within milliseconds- Three new screensavers:
Aurora Borealis,Color Tunnel, andLissajous LatheCalcapp (by @Slasher006): machinist calculator and shop reference multi-tool
Updated:
Egg Timer,Unit Converter, andbohrgeschapp optimizations (by @Slasher006)UARTclass defaults toGP0,GP1, andUART0Systemclass with simplifiedBOARD_IDtrackingfile_write,file_open, andfile_seekwithin theStorageclass with try/catch and correct return valuesfreqmethod of theViewManagerclass with afrequencyparameter that allows devs to change the frequency to a custom value instead of the presetssd_read_blockmethod in thesdcarddriver to retry up to 3 times to handle transient SPI/card-busy failuresfat32driver to advance the next-free hint and find the actual last/free clustersd_mpread methods to use the heapvfs_unmountmethod of theStorageclass with the correct function callread_directorymethod of theStorageclass with an additional field foris_directorysizemethod of theStorageclass to return0if the path is a directoryFileBrowserGUI class with a two-pane window with new copying and moving features (by @Slasher006 and Gemini AI, with many optimizations by @jblanked)HTTPclass to check if the request should close and close the socket if soMenuandListclasses with updated stylingChoiceclass with a two-column listSettingsapp: users can manually set the time, choose their theme color, enable/disable debug, and all settings from beforeDesktopapp to use NTP time and saved GMT offsetTextboxGUI class to use the newtextbox_mpC moduleJB-Newsapp to parse back button presses inViewmode and use the system's selected colorBig Buck Bunnyapp with an info screen explaining how to compile the movie so the app can run itSSH Terminalapp to track history, colorize the terminal, and simplify input
Picoware - v1.7.1
This is an update to the MicroPython version that adds scaling support to the Draw class, a lightweight engine C module, unifies SD card modules, brings memory optimizations to the CCTV app, adds four new apps, and more!
Added:
Unit Converter,Drill Speed, andEgg Timerapps (by @Slasher006)JB-Newsapp (news API application that requires a free API key)- Header for the
vector_mpC module zcoordinate to thevector_mpC module and Python classengineC module (lightweight replica of the previous MicroPython implementation)- Header for the
auto_completeC module lcd_psrammethod to thelcdC module (andpsrammethod to theDrawclass) that reads from a PSRAM address and writes to the LCD (this is essentially what our PSRAM framebuffer does behind the scenes)current_cluster_indexproperty to thefat32driver for optimizing consecutive reads (fromO(n)toO(1))- Scaling to the
lcdC module and aset_scalingmethod to theDrawclass - Header for the
picoware_psramC module sd_mpC module as one module for all supported devices (and removed thepicoware_sdandwaveshare_sdmodules)
Updated:
CCTVapp to load the response into PSRAM and then split-decode into the JPEG parser (now less than 100 KB is used)Desktopview order of operationsjpegC module with the correct attribute assignment, 8 new attributes, and memory optimizationsvector_mpC module to only cast to integer when properties are accessed (avoids thecan't convert float to intwarnings), adds new methods from the game engine (rotate_y,translate, andscale) for 3D rendering, and initializes with a finalizerMatrix Rainscreensaver to use English characters only and use thecharmethod correctlyWiFiclass to kill the thread whendisconnectis calledresponseC module with a header and to initialize with a finalizerFlipWorldandFree Roamapps to use the global thread managerPython Editorwith better saving (pressBackonce, then the prompt appears to save changes)picoware_boardsC module as one module for all supported devices
Picoware - v1.7.0
This update to the MicroPython version adds JPEG parsing, a speed boost to the Python Editor, dictionary loading support in the Keyboard class's auto complete, and a new CCTV app to watch live streams on the go!
Full details:
Updated:
AutoCompletelibrary with dictionary loading supportKeyboardclass to load a dictionary into auto complete if available (stored inpicoware/keyboard/dictionary.txtwith each word/phrase separated by a newline)FlipSocialwith corrected text width, admin parsing, and further optimizationsViewManagerto save the current version of Picoware topicoware/version.txtand create apicoware/keyboarddirectory on the SD cardDrawclass to use the newlcdC moduleimage_bytearraymethod of theDrawclass to handle 8-bit and 16-bit imagesFileBrowserto render JPG/BMP files and only show txt, log, cfg, json, py, md, bas, lua, html, css, and js filesPython Editorto use the newvtC module (major speed boost)
Added:
lcdC module with a config header that makes it easy to integrate other devicesjpegdecC library and module with aJPEGPython class interface (decodes and draws JPEGs)image_jpegandimage_jpeg_buffermethods to theDrawclassfrom_filemethod to thePSRAMclass that loads data from a file into PSRAM memory and returns the size of the loaded dataCCTVapp: requires a list of CCTV stream URLs inpicoware/cctv/dictionary.txton the SD cardvtC module that renders text with syntax highlighting
Picoware - v1.6.9
This is a quick patch to v1.6.8 that fixes TextBox scrolling, word overlapping in views that depended on character width, and adds an SSH Terminal app!
Picoware - v1.6.8
This is an update to the MicroPython and CircuitPython versions.
Highlights:
- Added multiple fonts/font sizes (0 for extra small, 1 for small, 2 for medium, 3 for large, and 4 for extra large) with classes
- Updated the
AutoCompleteC module to prevent a double free that caused a freeze in the MicroPython version on deinit - Fixed a Pimoroni 2W freeze in the CircuitPython version
Changelog:
- Updated the
PSRAMC module with classes and to deinitialize QSPI correctly - Removed the
LEDclass and property from theViewManager(unused) - Added missing bytes signature in
HTTPclass - Updated the
Desktopview to correctly show when WiFi is connected/disconnected (for wireless variants) - Added an
sb_deinitmethod to theSouthbridgedriver and implemented it in theInputclass - Added
FontandFontSizeC modules and classes - Changed the
draw_charmethod tocharin theDrawclass - Updated CircuitPython's
Desktopview to skip connecting to WiFi on desktop - Fixed a device freeze in the CircuitPython version by reorganizing initialization
- Corrected the OTA link for the CircuitPython version
- Updated the
AutoCompleteC module to prevent a double free that caused a freeze in the MicroPython version on deinit - Added
get_fontandlenmethods,fontsetter/getter property, and updated the default font in theDrawclass
Picoware - v1.6.7
This update addresses a device freezing issue in the MicroPython and CircuitPython versions caused by keyboard polling.
Picoware - v1.6.6
This is a quick patch to v1.6.5 that fixes time syncing and support for the Pimoroni Pico Plus 2 W.
Picoware - v1.6.5
This is an update to the MicroPython and CircuitPython versions.
Added:
responseC module with a finaliser and attributes, integrated into theResponseclass (MicroPython)- pre-compiled PIO headers (MicroPython)
- WiFi RSSI Monitor: monitors signal strength of nearby WiFi networks in real-time (MicroPython)
- syntax highlighting in the
Python Editorapp Tutorials.mddocument with a list of YouTube reviews and tutorials
Updated:
vectorC module with simplified attributesauto_completeC module with attributes and finaliser- scripts in the
toolsdirectory to usemake -jinstead of onlymaketo run as many jobs in parallel as possible picoware_sdandwaveshare_sdC modules to raise an exception if file creation fails (MicroPython)picoware_psramC module, removing unused methodsSettingsto save LVGL settings as intended (MicroPython)- WiFi utilities to use
jsoninstead ofujsonand use const bytes for path definitions (MicroPython) Storageclass to not check the type offile_pathparameters (allows developers to pass bytes) (MicroPython)- WiFi
Scanapp to allow clicking on a network to save it, followed by adding the password (MicroPython) main.pyto use the alert from theViewManagerinstance and set GC threshold (MicroPython)ResponseandAutoCompleteclasses to inherit from their C modules (MicroPython)__requestmethod of theHTTPclass with the missing parameters (CircuitPython)picoware_lcdC module buffers with 64-byte boundary alignment (MicroPython)
Picoware - v1.6.4 (CircuitPython cleanup)
Added:
- support for Pimoroni Pico Plus 2W (MicroPython/CircuitPython versions)
- circuit python apps
- 6 new apps:
-
Pong (game): Classic Pong game -
Space Invaders (game): Space Invaders style game -
Maze Runner (game): Navigate through a randomly generated maze -
Fire effect (screensaver): Fire effect with rising flames. -
Matrix Rain (screensaver): Matrix-style falling characters -
Plasma Wave (screensaver): Animated plasma wave effect
-
Updated:
WiFi,HTTP, andTimeclasses, andPython Editorin the circuit python version to match micropython's public methods/properties with circuit python librariesTetrisapp with a complete logic rework