FW 0.12.9

Release Notes - Spectoda Firmware v0.12.9

🚀 Major Features & Enhancements

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

  • 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

  • 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

  • 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

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

  • 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

  • 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

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

  • 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

  • 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

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

  • 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

Updated Dependencies

  • Updated esp_littlefs submodule

  • Updated Berry submodule

  • Updated various other submodules

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

  • PWMPort: Removed "fade" parameter, replaced with "fadetime"

🎯 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

Last updated

Was this helpful?