You are reading a single comment by @allObjects and its replies. Click here to read the full conversation.
  • @Raik, took a look at the SSD1606 and IL91874 controller doc. Indeed, the controller has data buffers. I could though find not much how they are used. I assume it is for optimization not only for time performance, but also for quality performance, such as managing the ghosting. Reading thru all the possible OTP and runtime settings makes me question the readiness of the technology for easy use. But this does not mean not to be curious why the data transfer is that slow.

    The controller has a busy signal output... and looking at the full cycle of an update from powering on the device, preparing it for data reception, to finally shut down again could explain this: shut down has to wait until the controller has updated the display cells. What I did not like in the module was the byte-wise operation of clear display screenbuffer with desired color (.csb(cb,clr)). Going back and forth between applications JS and Espruino firmware for each byte slows things don for sure. Alternative: sacrifice memory for another buffer, fill it with the desired value, and send that to the controller (I do not know if .csb(cb ,clr) is in the path of your code).

    Various items I cannot understand:

    • In post #1: I would have answered: 'no difference' - different from what @Robin concluded. What I can say for sure is that .fill(fillValue) fills the whole Uint8Array and returns the array. Therefore I say: they are same/there is no difference, except that the latter takes much longer to get the data across (see comment about going back and forth between app JS an Espruino firmware).
    • In post #6: Why only one byte is set. Could it be that the window and x / y address increment settings got messed up?

    Another comment I'd like to make: I read about controller and displays the documentation mentioned that the OTP / LUT data is (usually) factory set for best display (quality) performance - of the particular display on which the controller is mounted. Messing with that I reserve for myself for a later stage (invoking .ini()).

    I have a 1.54" 200x200 tri-color ws display sitting around for a while now, and I noticed the the originally white background 'turned rosy'. May be time has come to fool around with it... to co-bang-head-on-wall ... ;\ or better: |:| (flat forehead).


Avatar for allObjects @allObjects started