Temporal Dithering of NeoPixels on an ATtiny412
10 days ago
- #ATtiny412
- #NeoPixels
- #TemporalDithering
- Creation of a physical neurodiversity rainbow infinity symbol using 27 WS2812B addressable RGB LEDs driven by an ATtiny412.
- Implementation of temporal dithering to enhance perceived color resolution due to low color resolution of LEDs at reasonable brightness levels.
- Comparison between ordered dither and error diffusion methods for temporal dithering, with error diffusion chosen for better results.
- Optimization of code for a microcontroller with limited resources, including switching from floating-point to 16-bit unsigned integers for faster calculations.
- Use of gamma correction approximations to save flash space, with the project defaulting to a normalized cube function.
- Efficient handling of button inputs using interrupts instead of digitalRead() for better performance.
- Removal of the Arduino millis() function to save flash space, relying on the consistency of cyclic animations for timing.
- Update on ordered dither implementation, noting its simplicity but inferior visual results compared to error diffusion.