Skip to content

Picoware - v2.3.0

Latest

Choose a tag to compare

@jblanked jblanked released this 30 Aug 20:17
· 3 commits to main since this release
b73b45d

This release adds on-device C development (run .c files), Infrared support (transmitting/receiving signals), DuckyScript interpreter (execute USB payloads), Video Player (play MJPEG movies), ZipFile support (read/compress/decompress archives), AI Agent upgrades (MCP and Session support), and miscellaneous updates to GUI classes for consistent rendering on all boards.

C Development

Thanks to the creators of the pshell project, you can now run C programs directly on the device. Add your .c files in picoware/c/* on your SD card, then open up the Library, scroll down and click C, then click on a file to run it. Outside of the standard C library, you also have access to lcd methods, so you can create GUIs in C directly. Check out our example: https://github.com/jblanked/Picoware/blob/main/tests/c.py

Infrared Support

Send and receive infrared signals. The Cardputer-ADV and Flipper Zero are the only two supported boards that can transmit signals, and the Flipper Zero is the only supported board that can receive (and save) signals. In the next release, we plan on adding external module support.

Add your .ir files into the infrared folder on your SD card, then open up the Library, scroll down and click Infrared, then either click on Remote, to list and execute files, or Learn to receive and save signals. The parser follows the Flipper Zero format, so your existing libraries are already useable.

DuckyScript

Execute USB payloads using DuckyScript. The only device this (unfortunately) does not support yet is the Flipper Zero, although it mostly follows the extended DuckyScript format from the Flipper Zero community, which has syntax from the USB Rubber Ducky 1.0. Check out our example: https://github.com/jblanked/Picoware/blob/main/tests/ducky.py

Video Player

Play MJPEG videos directly on your device. Add your .mjpeg files to the videos folder on your SD card, then open up the Library, scroll down and click Video Player, then click on a file to play it.

ZipFile

Read, compress, and decompress .zip archives directly on the device. Just open up the File Browser, navigate to a .zip file, and click on it to browse, extract, move, copy, or delete.

AI Agent

The Agent app gets a major upgrade this release. You can now add a JBlanked API key and connect to MCP Servers directly from Settings, giving the agent access to external tools. Conversations are now tracked with a new Session class, and the agent uses your entire conversation history for better context instead of just the last message. We've also added an Agent Thinking toggle in the app's settings, along with new built-in tools (time_get_current_time and storage_info) the agent can call on its own.

Changelog:

  • Added pipe key parsing to the Keyboard class (by @Slasher006)
  • Updated FlipWorld with new maps, full color, bosses, and more (by @H4W9)
  • Added a JBlanked provider to the LLM list
  • Added Local API Key, JBlanked API Key, and MCP Servers to Settings
  • Added Agent Thinking to the Agent app's settings
  • Added a date time property to the Time class (returns date + time formatted)
  • Added time_get_current_time and storage_info Agent tools
  • Updated Agent to use the entire conversation history
  • Added a Session class for tracking agent conversations
  • Updated the sd C module with recursive directory creation
  • Added free_space and total_space properties to the Storage class
  • Updated the List and Menu classes with truncation to ensure all titles and items fit on screen (on all supported devices)
  • Updated the App Store with decorators, global imports, and minor bug fixes
  • Added a stack_size parameter to HTTP.request_async with a default of 8kb (previously hardcoded as 16kb within the method)
  • Updated Settings to alphabetical order
  • Added a pshell/C compiler (write/run C code on-device)
  • Updated the Keyboard class to set title position correctly when reset
  • Updated the Draw class to use the default font in the get_font and len methods (this fixes a lot of issues with centering and rendering on the Cardputer-ADV and all supported devices)
  • Added a DuckyScript interpreter
  • Added a Video Player (plays MJPEG videos)
  • Fixed a UART exception on non-Flipper devices
  • Added a ZipFile reader, compressor, and decompressor (click on a .zip within the File Browser)
  • Added infrared functionality (Flipper Zero and Cardputer-ADV) and an Infrared app (Library -> Infrared) with a Remote option to load and transmit signals, and Learn for saving received signals (Flipper only)
  • Added infrared_rx_required and infrared_tx_required decorators (picoware.system.decorators)
  • Updated the Python REPL app with command history
  • Added a Fuel Log app (by @INSCCOIN)