Skip to content

Releases: jblanked/Picoware

Picoware - v1.7.3

19 Mar 19:56
5af2896

Choose a tag to compare

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

14 Mar 01:16
23b94b8

Choose a tag to compare

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:

  • INMP441 app (record audio to SD card)
  • copy, move, file_copy, and file_move methods to the Storage class
  • C++ game engine with MicroPython C modules
  • C++ guards to several MicroPython C modules
  • list_directory method in the sd_mp module that only returns file names instead of dicts
  • Scaling attributes to the lcd_mp C module
  • Task ID to logging in the ThreadManager class
  • fetch method to the Time class that connects via socket and syncs the NTP time on a separate thread
  • DatePicker GUI class
  • log_mp C module and Log class
  • log method to the ViewManager (and updated several system apps to use it)
  • textbox_mp C module: load and scroll text within milliseconds
  • Three new screensavers: Aurora Borealis, Color Tunnel, and Lissajous
  • LatheCalc app (by @Slasher006): machinist calculator and shop reference multi-tool

Updated:

  • Egg Timer, Unit Converter, and bohrgesch app optimizations (by @Slasher006)
  • UART class defaults to GP0, GP1, and UART0
  • System class with simplified BOARD_ID tracking
  • file_write, file_open, and file_seek within the Storage class with try/catch and correct return values
  • freq method of the ViewManager class with a frequency parameter that allows devs to change the frequency to a custom value instead of the presets
  • sd_read_block method in the sdcard driver to retry up to 3 times to handle transient SPI/card-busy failures
  • fat32 driver to advance the next-free hint and find the actual last/free cluster
  • sd_mp read methods to use the heap
  • vfs_unmount method of the Storage class with the correct function call
  • read_directory method of the Storage class with an additional field for is_directory
  • size method of the Storage class to return 0 if the path is a directory
  • FileBrowser GUI class with a two-pane window with new copying and moving features (by @Slasher006 and Gemini AI, with many optimizations by @jblanked)
  • HTTP class to check if the request should close and close the socket if so
  • Menu and List classes with updated styling
  • Choice class with a two-column list
  • Settings app: users can manually set the time, choose their theme color, enable/disable debug, and all settings from before
  • Desktop app to use NTP time and saved GMT offset
  • Textbox GUI class to use the new textbox_mp C module
  • JB-News app to parse back button presses in View mode and use the system's selected color
  • Big Buck Bunny app with an info screen explaining how to compile the movie so the app can run it
  • SSH Terminal app to track history, colorize the terminal, and simplify input

Picoware - v1.7.1

02 Mar 01:22
02ead42

Choose a tag to compare

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, and Egg Timer apps (by @Slasher006)
  • JB-News app (news API application that requires a free API key)
  • Header for the vector_mp C module
  • z coordinate to the vector_mp C module and Python class
  • engine C module (lightweight replica of the previous MicroPython implementation)
  • Header for the auto_complete C module
  • lcd_psram method to the lcd C module (and psram method to the Draw class) that reads from a PSRAM address and writes to the LCD (this is essentially what our PSRAM framebuffer does behind the scenes)
  • current_cluster_index property to the fat32 driver for optimizing consecutive reads (from O(n) to O(1))
  • Scaling to the lcd C module and a set_scaling method to the Draw class
  • Header for the picoware_psram C module
  • sd_mp C module as one module for all supported devices (and removed the picoware_sd and waveshare_sd modules)

Updated:

  • CCTV app to load the response into PSRAM and then split-decode into the JPEG parser (now less than 100 KB is used)
  • Desktop view order of operations
  • jpeg C module with the correct attribute assignment, 8 new attributes, and memory optimizations
  • vector_mp C module to only cast to integer when properties are accessed (avoids the can't convert float to int warnings), adds new methods from the game engine (rotate_y, translate, and scale) for 3D rendering, and initializes with a finalizer
  • Matrix Rain screensaver to use English characters only and use the char method correctly
  • WiFi class to kill the thread when disconnect is called
  • response C module with a header and to initialize with a finalizer
  • FlipWorld and Free Roam apps to use the global thread manager
  • Python Editor with better saving (press Back once, then the prompt appears to save changes)
  • picoware_boards C module as one module for all supported devices

Picoware - v1.7.0

23 Feb 04:05
7c85597

Choose a tag to compare

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:

  • AutoComplete library with dictionary loading support
  • Keyboard class to load a dictionary into auto complete if available (stored in picoware/keyboard/dictionary.txt with each word/phrase separated by a newline)
  • FlipSocial with corrected text width, admin parsing, and further optimizations
  • ViewManager to save the current version of Picoware to picoware/version.txt and create a picoware/keyboard directory on the SD card
  • Draw class to use the new lcd C module
  • image_bytearray method of the Draw class to handle 8-bit and 16-bit images
  • FileBrowser to render JPG/BMP files and only show txt, log, cfg, json, py, md, bas, lua, html, css, and js files
  • Python Editor to use the new vt C module (major speed boost)

Added:

  • lcd C module with a config header that makes it easy to integrate other devices
  • jpegdec C library and module with a JPEG Python class interface (decodes and draws JPEGs)
  • image_jpeg and image_jpeg_buffer methods to the Draw class
  • from_file method to the PSRAM class that loads data from a file into PSRAM memory and returns the size of the loaded data
  • CCTV app: requires a list of CCTV stream URLs in picoware/cctv/dictionary.txt on the SD card
  • vt C module that renders text with syntax highlighting

Picoware - v1.6.9

17 Feb 00:52
67d8924

Choose a tag to compare

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

16 Feb 03:35
2525b12

Choose a tag to compare

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 AutoComplete C 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 PSRAM C module with classes and to deinitialize QSPI correctly
  • Removed the LED class and property from the ViewManager (unused)
  • Added missing bytes signature in HTTP class
  • Updated the Desktop view to correctly show when WiFi is connected/disconnected (for wireless variants)
  • Added an sb_deinit method to the Southbridge driver and implemented it in the Input class
  • Added Font and FontSize C modules and classes
  • Changed the draw_char method to char in the Draw class
  • Updated CircuitPython's Desktop view 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 AutoComplete C module to prevent a double free that caused a freeze in the MicroPython version on deinit
  • Added get_font and len methods, font setter/getter property, and updated the default font in the Draw class

Picoware - v1.6.7

10 Feb 13:22
dc4f1d7

Choose a tag to compare

This update addresses a device freezing issue in the MicroPython and CircuitPython versions caused by keyboard polling.

Picoware - v1.6.6

09 Feb 18:36
2097665

Choose a tag to compare

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

07 Feb 14:00
6498c96

Choose a tag to compare

This is an update to the MicroPython and CircuitPython versions.

Added:

  • response C module with a finaliser and attributes, integrated into the Response class (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 Editor app
  • Tutorials.md document with a list of YouTube reviews and tutorials

Updated:

  • vector C module with simplified attributes
  • auto_complete C module with attributes and finaliser
  • scripts in the tools directory to use make -j instead of only make to run as many jobs in parallel as possible
  • picoware_sd and waveshare_sd C modules to raise an exception if file creation fails (MicroPython)
  • picoware_psram C module, removing unused methods
  • Settings to save LVGL settings as intended (MicroPython)
  • WiFi utilities to use json instead of ujson and use const bytes for path definitions (MicroPython)
  • Storage class to not check the type of file_path parameters (allows developers to pass bytes) (MicroPython)
  • WiFi Scan app to allow clicking on a network to save it, followed by adding the password (MicroPython)
  • main.py to use the alert from the ViewManager instance and set GC threshold (MicroPython)
  • Response and AutoComplete classes to inherit from their C modules (MicroPython)
  • __request method of the HTTP class with the missing parameters (CircuitPython)
  • picoware_lcd C module buffers with 64-byte boundary alignment (MicroPython)

Picoware - v1.6.4 (CircuitPython cleanup)

02 Feb 00:11
7a5e387

Choose a tag to compare

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, and Time classes, and Python Editor in the circuit python version to match micropython's public methods/properties with circuit python libraries
  • Tetris app with a complete logic rework