Releases: jblanked/Picoware
Picoware - v1.8.3
This is an update to the MicroPython version that adds an on-device REPL, a new Text Editor system app, and MP3 streaming support.
Brief Changelog:
- On-device REPL
- Audio speed fixes
- MP3 support
Text Editorsystem appCtrl+Up/Downto jump up/down functionality inTextEditorandTextBoxinstances- Added contributing guide (straightforward steps for contribution)
- Several other improvements that make the firmware lighter and faster
Notes:
- MP3 streaming is not supported on the RP2040 (for now it's blocked in
FileBrowser, but you can bypass this with a custom script) - The PicoW's Wi-Fi driver is failing, so you'll need a Pico2W or Pimoroni 2W for networking.
- If exiting the
Ghoulsgame causes the device to freeze, rebooting will resolve the issue and your stats should still be saved. The permanent fix is to delete theassetsfolder frompicoware/apps/games/ghoulsand let the firmware re-download the assets.
Picoware - v1.8.2
This is an update to the MicroPython version that updates the round-based survival game Ghouls to version 0.6. Here's the changelog from the game:
- Added 4 new maps (Maze, Forest, Tron, and Graveyard)
- Added a map pack system (maps can be created externally and loaded into the game via a .ghoulsmap file)
- Added a map selection screen before the game starts
- Updated wall collision to affect the entire area of the wall
- Increased ghoul speed
- Many optimizations to the game engine
Picoware - v1.8.1
This is an update to the MicroPython version that adds support for playing WAV files and updates the Ghouls game to v0.4, which introduces ground/sky rendering, sound effects, an in-game mini map, projectile effects, and many optimizations!
Notes:
- You can use the
File Browserapp to select.wavfiles to play (8, 16, and 24-bit are supported). - Up to 4 WAV files can be played simultaneously (though this is only possible with a custom script).
- Occasionally, exiting
Ghoulscauses the device to freeze. Rebooting will resolve the issue, and your stats should still be saved. - The PicoW's Wi-Fi driver is failing, so you'll need a Pico2W or Pimoroni 2W for networking.
- For audio to work in
Ghouls, you'll need to download the assets folder from here and add it to your SD card inpicoware/apps/games/ghouls/. The quickest way is to download this repository as a .zip file (clicking here will start the download from GitHub) and copy and paste the folder into the directory. This process will be streamlined in future updates.
Picoware - v1.8.0
This is an update to the MicroPython version that adds auto-uf2loader support (download updates over-the-air with auto-flashing), a 3D round-based survival game (Ghouls), and addresses many issues raised since v1.7.7.
Changelog:
- updated the
sdcardmodule with a retry loop and increased thesd_wait_readytimeout for write operations - fixed input handling in many views
- set the stack size for the
WebSocketAsyncclass to 32 KB - updated many C modules to fall through to
locals_dictif an attribute is not found when called - replaced the game engine with Pico Game Engine
- added a
uf2loaderC module and Python class (for flashing UF2s using PSRAM) - updated the
ViewManager'salertmethod to accept (any button except Back/Esc) and deny (returns a boolean) - updated
Desktopauto-updating to allow users to deny updates - added a
jsmnC module (lightweight JSON parsing) - added
httpandwebsocketlibraries for use in C modules - added a
Server Settingsmenu option (sets the username/password for FlipSocial, FlipWorld, Free Roam, Ghouls, and other apps requiring a JBlanked server) - fixed left/right key assignment in the
GameBoy Emulator
Picoware - v1.7.8
This is an update to the micropython version that patches reported issues in v1.7.7
Picoware - v1.7.7
This is an update to the MicroPython version with audio optimizations, screenshot functionality (press F1), correct font spacing, and a new button property in the ViewManager class that caches the last button pressed and resets it after the current view's run method is called.
Notes:
- The GameBoy emulator has the best experience with an RP2350. The RP2040 is not clocked high enough to smoothly handle ROM loading through PSRAM while streaming audio on core 1. It is playable on the RP2040, but you may experience lag.
- Screenshots can take up to 10 seconds and are saved to the root of the SD card as
screenshot.bmp. - The methods in the
Drawclass now accept floats for position and size coordinates and will convert them to integers, so there is no need to cast to integer anymore — which in some cases will greatly speed up your code. - On WiFi-enabled devices that are connected to WiFi, files now save with the correct timestamp.
Picoware - v1.7.6
This is an update to the MicroPython version that fixes audio in the GameBoy Emulator, updates the Desktop view with auto-check for firmware updates, USB functionality via the USBKeyboard and USBMedia classes and three USB applications (Keyboard, Numpad, and Media Keys), and adds a new Wiki Reader app that fetches, views, and stores Wikipedia articles.
Picoware - v1.7.4
This is an update to the MicroPython version that adds audio support to the Game Boy Emulator and with new Audio, AudioNote, and AudioSong classes, optimizes the game engine for faster performance and wireframe outlining, and cleans up LVGL to reduce our total heap by 64KB (now there's 212KB free on RP2040 and 388KB free on RP2350W).
Added:
audioC module withAudio,AudioNote, andAudioSongPython classesGrocery Companionapp by @Slasher006has_audiomacro/property/method to thepicoware_boardsmoduleaudioproperty to theViewManager(which is anAudioclass instance)- Audio support to the
GameBoy Emulator stack_sizeparameter toThreadandThreadTaskclasses to allow developers to set the stack size of Core 1 before their function is run
Updated:
- C++ game engine with new setters/getters, wireframe outlining, and painter's algorithm in 3D mode, and many optimizations (pushing games over 500 FPS)
- Multiple views and apps to use the system theme color
WiFisettings to show the MAC address always and allow empty passwords when connecting (open networks)HTTPclass to use a 32KB stack size and a 10-second timeout for "async" requests
Picoware - v1.7.3
This is an update to the MicroPython version with a Game Boy Emulator that runs at 60 FPS and only uses PSRAM, a Text Editor GUI with cursor support, and many optimizations to several C modules.
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