You are reading a single comment by @allObjects and its replies. Click here to read the full conversation.
  • eInk displays are intriguing, but they have major challenges: update... event hough you can you can partial update, it is still a challenge. eInk is only for very very static displays.

    There are already modules out there, and modifying and even writing a module is not that hard.

    I was looking into this technology as well, but when noticing that it needs .flip() to be efficient, I kept sticking with the serial TTF / LCD displays. I have a smaller 3-color one myself for quite a while, but have not found / made available the time to hook it up.

    Regarding .flip() method: some displays are difficult to update by the pixel, because they expect always a whole area of pixel... These displays are usually of low resolution and low color depth. This simplifies the display driver: no direct single pixel access. This 'slack' has to be picked up by the application processor which has to have a logical copy (source) of the data of the whole display in memory. When the Espruino graphics project 'draws' something, it draws into this memory and after 'all updates complete, 'all' is 'shipped out'. This happens for displays made with neopixel string(s), where you have to 3 bytes (or source color depth depending) for each pixel in memory. After update of the 'display in memory' - or Graphics buffer - all data is 'shifted' out... serially - (the first 3 bytes travel thru all pixels but the last: the last consumes them; the second 3 bytes travel through all Pixels but the second to last and last one:L the second to last consumes them, the third 3 byes... and finally the last three bytes: they just make it to the first pixel where they are consumed. Other types of displays have it similar: data needs to be sent in full for update or sent multiplexed. Even though eInk displays are NOT THAT serial nor does it require multiplexing, their issue is that keeping them under power for immediate, ongoing update is not their design... and waste of power.
    (This is all a bit simplified, because there are sophistic hybrids... and Espruino has also implementation for that: it knows which part of the display memory is updated and such a .flip() knows about it and takes advantage of it).

    To start with, I suggest to pick a TFT display with touch screen. They are available as 2.2", 2.8" and also 3.2" in size displays, support 240x320 pixels resolution in (max) 262K color, are well supported, serially driven (SPI) but with pixel direct access. With the touch screen you get a fancy input. If you have an issue with the power, go for the display ghat Pixl.js has: monochrome LCD, low re

About

Avatar for allObjects @allObjects started