What's Changed
Bug Fixes
- Fixed whirl parameter conversion to correctly accept rotation period in milliseconds
- Analyzed ESP32 source code to understand exact implementation
- Whirl now represents full rotation time in milliseconds (was incorrectly documented as already being ms)
- Maximum rotation period: 7650ms (~7.65 seconds)
- Conversion formula:
whirlDevice = 256 - (rotationMs / 15)
- Fixed recursive lock deadlock in effects store Load() method
- Updated acceptance tests for removed tools (setBrightness, setLogo, setRingPattern)
Technical Details
- ESP32 uses tick-based countdown:
whirlTick = 0xFF - whirlSpeed - Display() called every 1ms, decrements counter until LED position advances
- State manager now stores whirl in milliseconds and converts when building queries
Full Changelog
See CHANGELOG.md for complete details.
Full Changelog: 1.0.0...v1.0.1