FW 0.12.10
Spectoda Firmware v0.12.10 Release Notes
Spectoda Firmware v0.12.10 Release Notes
Section titled “Spectoda Firmware v0.12.10 Release Notes”Release Date: August 7, 2025
Version: 0.12.10
🚀 Major Features
Section titled “🚀 Major Features”EventStore Architecture Overhaul
Section titled “EventStore Architecture Overhaul”This release introduces a complete refactoring of the EventStore system to support massive scalability and improved performance.
🔄 EventStore Chaining & Overflow System
Section titled “🔄 EventStore Chaining & Overflow System”- New EventStores Class: Introduced a centralized
EventStores<SIZE>template class that manages multipleEventStoreinstances - Automatic Overflow Handling: Events now automatically cascade to new EventStore instances when capacity is reached
- Support for 2880+ Unique Events: Dramatically increased from the previous single-store limitation of 244 events
- Centralized Logic: All EventStore chaining logic moved from scattered code into dedicated
eventStore.h
🏗️ Architectural Improvements
Section titled “🏗️ Architectural Improvements”- Template-Based Design: EventStore and EventStores now use consistent template parameters
- Memory Management: Proper use of
std::unique_ptrfor automatic resource management - Fingerprint Consistency: Enhanced SHA-256 fingerprint computation across multiple stores
- Merging Capabilities: Robust merge operations between EventStores collections with proper event ordering
Enhanced Testing Framework
Section titled “Enhanced Testing Framework”- Comprehensive Unit Tests: Added extensive test suite for EventStores merging scenarios
- Bug Detection: Tests specifically designed to catch merging bugs with 3+ EventStore indexes
- PlatformIO Integration: Full compatibility with the PlatformIO test framework
- Debug Output: Enhanced logging for troubleshooting EventStore creation and merging
🔧 Technical Improvements
Section titled “🔧 Technical Improvements”Performance Optimizations
Section titled “Performance Optimizations”- Reduced BLE Connections: Changed from 3 to 2 concurrent BLE connections for improved stability
- Device Context Optimization: Decreased
MAXIMUM_DEVICE_CONTEXTSfrom 64 to 32 for better memory usage - Validation Efficiency: Store validation now only occurs during allocation, reducing runtime overhead
Code Quality Enhancements
Section titled “Code Quality Enhancements”- Breaking Refactor: Clean separation of EventStore merging logic from controller code
- Iterator Replacement: Replaced EventStore iterators with manual chain traversal for better control
- Variable Naming: Consistent renaming from
EVENTSTOREtoSTOREthroughout the codebase - Sync Firmware Refactoring: Moved sync firmware logic to dedicated
m_evaluateSyncFirmware()method
🐛 Bug Fixes
Section titled “🐛 Bug Fixes”EventStore System
Section titled “EventStore System”- Invalid Command Handling: Fixed issue with invalid commands causing system instability
- Peer Firmware Update Priority: Fixed firmware update prioritization after a 60-second timeout
General Stability
Section titled “General Stability”- Memory Leaks: Resolved potential memory leaks in EventStore management
- Event Ordering: Fixed event ordering issues during complex merge operations
- Fingerprint Computation: Corrected fingerprint calculation bugs in multi-store scenarios
📊 Testing & Validation
Section titled “📊 Testing & Validation”New Test Coverage
Section titled “New Test Coverage”- Basic Merge Operations: Validates fundamental EventStore merging functionality
- Multiple Index Merging: Tests merging across multiple EventStore indexes
- Historical Event Handling: Covers complex scenarios with overlapping timestamps
- Identifier Collision: Proper handling of events with the same identifiers
- Stress Testing: High-volume operations with multiple EventStore collections
- Edge Cases: Empty stores, non-existent indexes, and rapid merges
- Fingerprint Consistency: Ensures SHA-256 fingerprints remain consistent across operations
🔄 Migration Notes
Section titled “🔄 Migration Notes”Breaking Changes
Section titled “Breaking Changes”- EventStore synchronization: Because EventStore logic changed, App v3 only fully synchronizes EventStores with FW 0.12.10 and newer. Installations using App v3 should therefore update to 0.12.10 for the best user experience. For older FW versions, EventStores are synchronized only once right after connecting.
- EventStore Backward Compatibility: Existing EventStore data are not compatible, so the EventStore stored before 0.12.10 is reset after OTA update.
Compatibility
Section titled “Compatibility”- API Consistency: The new API keeps familiar patterns while providing enhanced functionality
- Performance: Improved performance with no degradation of existing functionality
🚀 Performance Impact
Section titled “🚀 Performance Impact”Memory Usage
Section titled “Memory Usage”- Optimized Allocation: Better memory management with reduced fragmentation
- Scalable Storage: Support for thousands of events without exhausting total memory
- Efficient Merging: Reduced memory overhead during EventStore operations
Processing Speed
Section titled “Processing Speed”- Faster Event Processing: Improved event insertion and retrieval performance
- Efficient Fingerprinting: Optimized SHA-256 computation across multiple stores
- Reduced BLE Overhead: Fewer concurrent connections improve overall system responsiveness
Known Limitations
Section titled “Known Limitations”- Template Size Constraints: EventStore size must be defined at compile time
- Memory Allocation: Large numbers of stores may require careful memory management, for example using smaller TNGL to compensate
🙏 Acknowledgments
Section titled “🙏 Acknowledgments”Special thanks to the development team for their contributions to this major architectural refactoring, particularly in the areas of:
- EventStore chaining logic design
- Comprehensive testing framework
- Performance optimization
- Code quality improvements
For technical support or questions about this release, please refer to the development documentation or contact the development team.