Open ahoenerBE opened 3 years ago
My implementation was also based on an older version. My comments were more about the RA8875 is more optimized for sending over commands to draw such as a rectangle or ellipse, and less optimized for raw data like the LVGL library sends. However, if it sends over just the difference between the buffers to draw (like dirty rectangles), that might work quite well.
Right now the due is using an spi speed of about 20MHz which actually seems to be working (better than the 4MHz the library sets at least), and a decently large single buffer and it repaints pretty well. SPI is still blocking so it stutters at times which is why I'm going for DMA next
I'm currently working on a project that makes use of the RA8875 controller and LVGL on an Arduino DUE (SAM3X8E).
It was mentioned in #39 by @makermelissa that it's possible to use this library for LVGL but it's pretty slow because of pixel drawing. I ended up forking their example and refining it more by adding a new SPI transfer function for writing blocks instead of pixels, since the new LVGL makes it easier to bulk transfer their buffer. That improved performance but still isn't as fast as I'd like.
LVGL also provides an option for 2 screen buffers: the buffer is filled and then sent over SPI by a DMA controller while the other buffer is filled with new updates and the cycle repeats.
Bill Grieman's SdFs library already has a nice implementation of SPI over DMA for the Due and a few other chips and I'm working to adapt it into my fork of this library.
Currently I need to:
Would you be interested in/willing to accept these changes in master or another branch if a pull request is made? I'd like to contribute back to the library, ideally. If so, are there any contribution guidelines or things I should keep in mind while I'm working?
Thanks