• What made you think that you needed a transformation of the characters outside the ASCII set (128..255)?

    For both displays, the graphics object makes the mapping from character into dot matrix in the display buffer in Espruino memory. .flip() then pushes the dots over to the display according to how it is connected and how - in what sequence - the display expects the bits to show up.

    The main difference between these modules is only how the involved software components are created and composed to a whole. They all have the Graphics object as the core - which operates on a buffer of pixels in Espruino memory - and a .flip() method that pushes this buffer to the display using the communication component.

    For MAX7219 you are the plumber, where for TM1640 the plumbing is all done for you. MAX7219 provides you with more flexibility / extensibility (cascading), but setting up the individual components correctly and 'screw' them together is your responsibility.

    Looking at the []() module code, you see how everything is baked into one an the same code / method .connect(): setting up the communication, creating the Graphics object on a display buffer (8,8,1), and assigning the flip method to the Graphics object, and finally returning the Graphics object.

    Cascading is done differently: where as with MAX7291 - which is serial in and serial out - data is always sent to the first block of 8x8 and pushed to the next block with every now block sent to the display, with TM1640 the data needs to be chopped up and sent to each individual TM1640 directly. Latter allows you to address each 8x8 block separately without having to change the other blocks. For simplicity though, flip is always updating.

  • i am the plumber, but the way it work is different with the same instruction (with the same tool).
    drawString needs encoding accents for one and not for the other, why?

About

Avatar for allObjects @allObjects started