Excellent! I like it a lot... quite a while back I built a GPS display - DIY Marine GPS using enhanced GPS Module, u-blox NEO-6M GPS receiver, and ILI9341 Module controlled 2.8" Color TFT LCD after Exploring 2.8" Color TFT Touch LCD by Pac Man Game attempt.
You have to get creative to overcome the speed issues... doing graphics over a serial line is challenging.
For the GPS, I update only stuff that has changed, and in the pac man game I used just two lines to animate the 'eater'.
Since you deal you can also use fixed fonts rather than vector fonts and scale them... it is a bit jagged then, but it is much faster. Drawing and filling is the challenge.
There are also parallel controlled displays out there... they are much faster, but you have to sacrifice GPIOs...
Bangle.js is 8-bit parallell serial...that is the reason it's displaying much faster.
Totally different path is to use segment displays rather than dot displays. Dot displays are always slower... and 'high'-resolution display are worse, because of use of so many dots.
Take a look at Large Display: x by y w/ 24 bpp Graphics buffer visualized with neopixel string in zig-zag layout. There I use neopixel - serially controlled - but use Espruino's Graphics capabilities:
- The application writes to a graphics object using the convenient graphics features
- A background process updates the display by just reading out the buffer of the graphics object and 'shoving it down the throat' neopixel string.
You find all kinds of display projects among my Espruino forum posts...