FW 0.12.9
Release Notes - Spectoda Firmware v0.12.9
🚀 Major Features & Enhancements
Section titled “🚀 Major Features & Enhancements”Controller-to-Controller Firmware Updates
Section titled “Controller-to-Controller Firmware Updates”- P2P Network OTA: Controllers can now update each other’s firmware directly over the network
- Smart datarate selection: Variable ESP-NOW transmission rates based on RSSI for optimal performance
- Snappier synchronization: Reduced latency in peer-to-peer firmware distribution
DALI Lighting Protocol Enhancements
Section titled “DALI Lighting Protocol Enhancements”- DT8 Support: Implemented basic DALI DT8_RGBWAF and DT8_TC variants for advanced color control
- DALI IO reset functionality: Added reset capabilities for DALI interfaces
- Improved dimming: Fixed DALI getting stuck at 1% when dimmed
Berry Scripting Improvements
Section titled “Berry Scripting Improvements”- Overridable render function: IPort now supports custom Berry render functions
- Enhanced API: Added
spectoda.reboot(),spectoda.sleep() - Better integration: Moved Berry callbacks and API calls to appropriate system components
Timeline & Synchronization
Section titled “Timeline & Synchronization”- RTC Timeline sync: Controllers can now synchronize Timeline from Real-Time Clock
- Improved accuracy: Enhanced RTC accuracy levels implementation
- Network Timeline: Better handling of timeline synchronization across controller networks
🔧 Performance & Optimizations
Section titled “🔧 Performance & Optimizations”Memory & Storage
Section titled “Memory & Storage”- RAM footprint reduction: Significantly reduced firmware synchronization memory usage
- Flash optimization: BytecodeReader improvements for reduced flash usage
- Memory leak fixes: Resolved state storage and other memory leaks
- Smarter caching: Optimized EventStore and state management
Communication Efficiency
Section titled “Communication Efficiency”- BLE enhancements: Non-blocking communication mechanisms with better error handling
- Network flooding improvements: Tweaked behavior for better data exchange headroom
- Broadcast optimization: Allow bigger headroom for priority broadcasts
Power Management
Section titled “Power Management”- Reduced logging: Minimized debug output for better performance in production
- Optimized synchronization: Faster exchange on networks of all sizes
- Smart scheduling: Better timing for various background operations
🐛 Bug Fixes
Section titled “🐛 Bug Fixes”Critical Stability Fixes
Section titled “Critical Stability Fixes”- BLE connection timeouts: Properly handle transfer errors preventing disconnections
- Berry crash prevention: Fixed crash on TNGL load due to improper Berry destruction
- Filesystem safety: Ensure proper unmounting when stopping firmware
- EventStore corruption: Fixed synchronization and merging issues
Functional Corrections
Section titled “Functional Corrections”- TNGL loading: Multiple fixes for default TNGL and TNGL banks saving, loading and reloading
- MAP value blocks: Support for all Value types including Null
- Color output: Fixed hexstring formatting with proper # prefix
System Reliability
Section titled “System Reliability”- Semaphore management: Improved BLE transfer semaphore handling
- Storage integrity: Fixed various storage-related bugs and corruption issues
- Network stability: Prevented peer disconnection issues on large networks
🏗️ Architecture & Refactoring
Section titled “🏗️ Architecture & Refactoring”Major Component Reorganization
Section titled “Major Component Reorganization”- Runtime/Controller split: Moved functionality from Scripting to appropriate components
- Interface consolidation: Merged Interface into Spectoda for cleaner architecture
- EventStore rewrite: Complete synchronization mechanism overhaul
- Storage refactoring: Improved TNGL Banks and Timeline storage handling
Code Quality Improvements
Section titled “Code Quality Improvements”- Error handling: Better error codes and exception management
- Logging cleanup: Organized debug output with appropriate levels
- Memory safety: Removed unsafe patterns and improved resource management
🛠️ Build & Configuration
Section titled “🛠️ Build & Configuration”Updated Dependencies
Section titled “Updated Dependencies”- Updated esp_littlefs submodule
- Updated Berry submodule
- Updated various other submodules
Build Optimizations
Section titled “Build Optimizations”- Tweaked Ethernet buffer sizes for Art-Net and sACN compatibility
- Enabled the option for logging in production builds
- Enabled Ethernet and DMX support
- Flash mode configuration improvements
⚠️ Breaking Changes
Section titled “⚠️ Breaking Changes”- PWMPort: Removed “fade” parameter, replaced with “fadetime”
🎯 Quality Assurance
Section titled “🎯 Quality Assurance”This release includes extensive refactoring and architectural improvements that enhance:
- Stability: Better error handling and resource management
- Performance: Reduced memory usage and improved communication efficiency
- Maintainability: Cleaner code organization and better separation of concerns
- Reliability: Fixed numerous edge cases and potential failure points