Release 2.5 Available: View Up to 4 Parks at a time

The main feature is the ability to view 4 parks at a time and sort the ride times, but there are a bunch of individual improvements needed to make that happen, as detailed below.

To upgrade click on the options gear and scroll to the bottom and follow the directions for upgrading.  If you run into any trouble use the contact form.


Performance Optimizations for CircuitPython

  - Parallel park updates: Modified theme_park_service.py to fetch data for multiple parks in parallel using asyncio.gather() instead of sequential updates
  - Reduced retry delays: Changed exponential backoff from 2s, 4s, 6s to 0.5s, 1s, 1.5s in http_client.py
  - Removed redundant operations: Eliminated double gc.collect() calls in app.py

  Fixed "Group by Park" Setting Issue

  - Fixed bug where unchecking "Group rides by park" wasn't working on CircuitPython
  - Added boolean type conversion in settings_manager.py to handle CircuitPython's JSON parser storing booleans as strings
  - Enhanced message_queue.py to immediately clear queue when settings change
  - Added debug logging to trace setting changes
  - Created GROUP_BY_PARK_FIX.md documenting the fix

 

  Fixed OTA Update Error

  - Corrected is_wifi_password_configured() calls to use self.is_wifi_password_configured()
  - This fixed the "name 'is_wifi_password_configured' is not defined" error during OTA updates

  Fixed Developer Options Visibility

  - Removed conditional check for show_dev_options setting
  - Developer Options section (including pre-release checkbox) now always shows on settings page
  - Applied fix to both web_server.py and dev_web_server.py

  Fixed Font Copying Issue

  - Removed --exclude='fonts/' from rsync commands in makefile
  - Fonts directory now properly copies to CircuitPython device

  Fixed .DS_Store File Exclusion

  - Changed --exclude='.DS_STORE' to --exclude='.DS_Store' (correct case)
  - Added --exclude='**/.DS_Store' to exclude .DS_Store files in subdirectories

  Reduced flashing by adding production and dev modes to error logging.

  Code Cleanup

  - Deleted unused optimization files:
    - test_web_server_optimization.py
    - src/network/web_server_optimized.py
    - src/api/theme_park_service_optimized.py
    - src/network/http_client_optimized.py

  Settings

    -  Fixed settings problems with display options
    - Centered wait times on display, especially 3 digit times

Back to blog