# Changelog All notable changes to this project will be documented in this file. ## [1.4.0] Soft- and Firmware updater ### New Features - **Play/Pause Button:** Control execution flow without stopping. - **Scheduled Running Hours:** Automate table operation. - **Adaptive clear:** Select the appropriate clearing pattenr based on the starting coordinate - **Table Info on Serial Connection:** Real-time metadata and status. - **Table Status API:** Poll current status remotely. - **Firmware Versioning:** Track and fetch firmware details. ### Fixes & Improvements - **Quick Fixes:** Stability and performance improvements. - **Firmware Updater (#34):** Version tracking, remote flashing, and bug fixes. - **UI/UX Enhancements:** Improved "Currently Playing," settings overlay, and styling. - **Software Updates:** Enhanced updater, dependency installation via `DockerFile`. - **Performance:** Better serial locking, retry logic, and pattern execution handling. - **ESP32_TMC2209 Support:** Added firmware flashing. ### Contributors - **Thokoop** ([GitHub](https://github.com/Thokoop)) - **Fabio De Simone** (https://github.com/ProtoxiDe22) ## [1.3.0] Revamped UI Massive thanks to Thokoop for helping us redesigning the UI just within a few days! The new design looks gorgeous on both PC and mobile. ![New UI](./static/UI_1.3.png) ![New UI mobile](./static/IMG_9753.png) ## [1.2.0] - Playlist mode, Spirograph functionality ### Added #### Playlist mode - Added UI selection mode for single pattern run, create a playlist, and run a playlist. The UI is work in progress and will be changed in the near future. - Created playlist will be saved as a JSON file on disk. There are options to: - Run the playlist once or on an indefinite loop - Shuffle the playlist - Add a clear pattern between files that will run immmidiately before each pattern. If you would like to customize the clear pattern, select None here and add clear patterns manually. - Add a pause time (in second) between each pattern. #### Spirograph mode - Added support for Spirograph mode for the arduino with DRV8825 or TMC2209 motor drivers - Can be used if optional hardware (two potentiometers and a button) is connected. ### Changed - Fixed a bug that created conflicting threads, leading to serial errors - Fixed a bug that caused the speed setting functionality to not work - Fixed a bug that caused the ball to move in slightly when a pattern starts at the perimeter and theta != 0 ### Known issues - Patterns with theta does not start with 0 will behave abnormally. To get around this, be sure to select start from center or perimeter when creating your pattern in sandify.org. ## [1.1.0] - Auto connect functionality ### Added - **Auto-connect Serial Connection when app is started** - Automatically selected the first available serial port if none was specified. - **Added Footer with:** - Links to github - Toggle button to show/hide the debug log ### Changed - **Improved UI** - Certain buttons are now only visible when it's applicable for the current state. - Moved Stop button and Speed input to Quick Actions** - **Pattern file prioritization:** - Updated the `/list_theta_rho_files` endpoint to: - Only display files with the `.thr` extension. - Include `custom_patterns/default_pattern.thr` at the top of the list if it exists. - Prioritize files in the `custom_patterns/` folder over other files. ## [1.0.0] - Initial Version - Initial implementation of the Flask application to control the Dune Weaver sand table. - Added core functionality for: - Serial port connection and management. - Parsing `.thr` files (theta-rho format). - Executing patterns via Arduino. - Basic Flask endpoints for listing, uploading, and running `.thr` files.