Releases: bartei/rotary-controller-python
v1.3.0-rc.21
v1.3.0-rc.21 (2026-04-05)
This release is published under the MIT License.
Bug Fixes
- Wizard button not hidden on startup when show_wizard is off (
cb30470)
Detailed Changes: v1.3.0-rc.20...v1.3.0-rc.21
v1.3.0-rc.20
v1.3.0-rc.20 (2026-04-05)
This release is published under the MIT License.
Features
Detailed Changes: v1.3.0-rc.19...v1.3.0-rc.20
v1.3.0-rc.19
v1.3.0-rc.19 (2026-04-05)
This release is published under the MIT License.
Features
- Index speed control, keypad validation, RST help, pinch zoom, speed units, serial resilience (
b4e1cfe)
Detailed Changes: v1.3.0-rc.18...v1.3.0-rc.19
v1.3.0
RCP v1.3.0 Release Notes
Overview
v1.3.0 is a major update to the Rotary Controller Python (RCP) application, delivering a refactored architecture, improved usability, better performance, and broader platform support. This release includes over 200 files changed across 58 commits since v1.2.8.
Highlights
Axis Combination System
The new axis system decouples the UI from raw encoder inputs. Axes are now defined independently from physical inputs, allowing flexible configurations:
- Identity axes map 1:1 to a single encoder input (standard use case)
- Sum axes combine two encoder inputs into a single displayed value (e.g., compound slide calculations)
- Axis configurations are persisted to individual YAML files and survive reboots
- Migration from the previous CoordBar-based configuration happens automatically on first boot
ELS Mode Enhancements
- Dedicated ELS setup screen for assigning spindle, Z-axis, and X-axis roles
- Spindle axis selection is now persisted and restored correctly across reboots
- Degrees symbol (°) is now used consistently throughout the UI instead of mixed "deg" text
Performance Optimizations
- UI refresh rate improvements — reduced unnecessary Kivy property dispatches by only updating
StringPropertyvalues when the formatted text actually changes, avoiding costly texture regeneration on every tick - BaseDevice sub-instance caching — sub-device instances created during
set_fast_data()are now cached, eliminating ~82 redundant C typedef parse operations per refresh cycle - Profiling panel — new built-in profiling screen under Setup for monitoring frame times and update performance directly on the device
- Configurable mouse pointer — option to hide the mouse cursor for touchscreen-only setups
Communication Reliability
- Throttled reconnection — when the serial device is not responding, the polling interval drops from 30 Hz to 1 Hz, eliminating log spam and reducing CPU usage. Normal refresh rate is restored automatically when communication resumes
- Centralized connection state — connection status is now managed exclusively by the board update loop, preventing conflicting state changes from individual read/write functions
- Single error logging — repeated communication errors are logged only once until the error condition changes
DRO Display
- Auto-sizing text — the new
AutoSizeButtonwidget automatically scales the font size down when the position value would overflow the available width, preventing text wrapping on smaller screens or when displaying long values - Measurement units — position and speed values now display their units (mm, in, M/min, RPM) directly alongside the value
- Mode persistence — the selected DRO mode (IDX/ELS/JOG/DRO) is now correctly reflected in the toolbar button on startup
Setup Pages
- Configurable font size — the font size setting under Formats now applies only to setup page labels and form fields, not the entire application
- Dropdown styling — dropdown option buttons now have a distinct blue color with a dark backdrop for better visibility
- Help system — setup fields now include help buttons linking to detailed documentation pages
Log Viewer
- Log files can now be browsed and viewed directly from the device on any platform, not just Raspberry Pi
- Log viewing uses a dedicated full screen instead of an inline panel, resolving OpenGL rendering issues on the Pi
- The log directory is automatically detected based on the Kivy configuration
System Management
- Reboot button — added to the system page for convenient device restarts
- Partition resizing — ability to expand the root partition to use all available storage (Raspberry Pi only)
- Update screen fix — release list now correctly shows official releases regardless of how many pre-releases exist
Numeric Keypad
- OLD button — new button on the value display row loads the previous value for editing, making it easy to adjust an existing value rather than typing from scratch
- Long-press undo — zero operations now support long-press on the Zero button to undo
Other Improvements
- Font picker for selecting the DRO display font
- Improved project structure with cleaner screen management and component organization
- Better exception handling with specific exception types and proper traceback logging
- Updated dependencies
Breaking Changes
- Axis configuration files have changed format. Migration from the v1.2.x CoordBar format is automatic on first boot. There is no downgrade path back to v1.2.x axis configs.
Upgrading
Update from the device's Setup > Update screen, or manually:
cd /rotary-controller-python
git fetch --all --tags
git checkout tags/v1.3.0
pip install .
sudo rebootv1.3.0-rc.18
v1.3.0-rc.18 (2026-03-21)
This release is published under the MIT License.
Bug Fixes
- Auto-size DRO position text and open logs in dedicated screen (
2370813)
Detailed Changes: v1.3.0-rc.17...v1.3.0-rc.18
v1.3.0-rc.17
v1.3.0-rc.17 (2026-03-21)
This release is published under the MIT License.
Detailed Changes: v1.3.0-rc.16...v1.3.0-rc.17
v1.3.0-rc.16
v1.3.0-rc.16 (2026-03-21)
This release is published under the MIT License.
Detailed Changes: v1.3.0-rc.15...v1.3.0-rc.16
v1.3.0-rc.15
v1.3.0-rc.15 (2026-03-21)
This release is published under the MIT License.
Detailed Changes: v1.3.0-rc.14...v1.3.0-rc.15
v1.2.8
v1.2.8 (2025-11-01)
This release is published under the MIT License.
Detailed Changes: v1.2.7...v1.2.8
v1.2.7
v1.2.7 (2025-10-31)
This release is published under the MIT License.
Detailed Changes: v1.2.6...v1.2.7