rm-hull / luma.lcd

Python module to drive PCD8544, HT1621, ST7735, ST7567 and UC1701X-based LCDs
https://luma-lcd.readthedocs.io
MIT License
156 stars 56 forks source link

New diff-to-previous framebuffer implementation #129

Closed rm-hull closed 3 years ago

rm-hull commented 3 years ago

Implementation status

🟢 ST7735 🟢 HD44780 🟢 ILI9341

Notes

For reference bounce.py demo on ILI9341 (SPI bus speed @ 32MHz) run at approx 10 FPS on RPI B4 using the current implementation. For the new implementation, bounce.py is reporting the following FPS for the following segment size:

num_segments FPS
100 60
64 70
25 86
16 75
4 24
1 10

Obviously a segment size of 1 - this is equivalent to the current implementation, but for the others WOW! ... I didn't expect such a huge improvement. The best value for num_segments will largely depend on what the application draws on the screen, but for the bounce demo, having 25 segments appeared to be the sweet spot for maximal frame rate.