ILI9163 128x128 LCDs

Posted on
  • They're commonly sold on eBay as 'Replace Nokia 5110 LCD'. They're only pin compatible though, as instead of 84x48x1 they're 128x128x16, with a totally different protocol!

    I just did a driver - it handles palletted mode as well:

    Also just made some changes to SPI.write too so it can keep up around 4Mbps, which makes the whole thing a lot more usable (although still a little slow for my liking). Screen refreshes are around 300ms - so ok, but not really up to animations.

  • Wow, that is perfect.
    Today my 1.44" TFT (128x128) arrived,
    BUT it is based on the ST7735 driver

    @Gordon how do I port or make a driver for this one?
    It is also an existing arduino library

  • There is a typo in Module points to ILI9361, which should be ILI9163

  • @JumJum thanks - just updated it on GitHub, so the next website update will have that fixed.

    @Jorgen, that's a bit unfortunate! What I'd do is:

    • copy the code for the ILI9163 into the Web IDE's right hand side
    • put the line var exports = {}; right at the top of it.
    • Copy the example initialisation code to after it, but replace require("ILI9163") with exports

    So then it's a totally self-contained bit of code that you can send, tweak and debug quite quickly.

    It looks like it behaves in an almost identical way - the bytes that are sent to set the pixels are identical. About the only thing that's different seems to be the bytes you have to send to initialise it...

    So you just need to put this code into here and it should just start working! :)

  • Thanks @Gordon!
    I will try this today - never thought it could be so simple.
    I really love your work and playing with Javascript is so awesome ;)

  • I think the two are the same, or maybe one is the screen, one's the driver... Lots of eBay listings with both part numbers in the title

  • Thanks for being the voice of sanity :) Checking up a bit further the commands do look the same.

    @Jorgen have you tried the display out with the ILI9163 module? It may 'just work'.

  • @DrAzzy thanks for the hint. They look also really similar on the pictures.
    @Gordon not yet - I'll try this tonight on my spare time ;)

  • I create a new thread for the ST7735...
    It did not work out of the box, so I have to modify it.

  • Ok - it's close though.

    Replied on that thread, but it'd be good to find a way to change the existing module such that it can support the different types of display.

  • There's a 128x160 variant with ILI9163, see­inch-TFT-LCD-Screen-Module-with-PCB-ILI9­163-Drive-IC-128-160-SPI/32361332234.htm­l .
    Even comes with an SD card slot. Could be the ideal Pico partner.

    Edit: not pin compatible.

  • I also ordered one (~3.80 USD), but did not arrived yet.

  • I've just got my paws on an Arduino A000096 display, which is 160x128.
    It works, however in ILI9163.js you have to change var LCD_HEIGHT to 160, because the default orientation is portrait, with the active row of pins at the bottom.
    I haven't tried the SD card slot yet, maybe tomorrow, before the pub.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

ILI9163 128x128 LCDs

Posted by Avatar for Gordon @Gordon