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_RGBWAFandDT8_TCvariants 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:
IPortnow supports custom Berry render functions - Enhanced API: Added
spectoda.reboot()andspectoda.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: Allowed 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_littlefssubmodule - 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
- Improved flash mode configuration
⚠️ Breaking Changes
Section titled “⚠️ Breaking Changes”- PWMPort: Removed the
fadeparameter and replaced it withfadetime
🎯 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