1.8" TFT LCD 160x128 RGB

Added to your shopping cart

Here's a very cool TFT LCD display with 128 x 160 resolution and 18-bit color depth. The most unique feature of the screen is the ability to read back the display memory across the bi-directional data lines. This solves a big problem with most displays - the need for a lot of memory to create effects like transparency or overlapping windows. This is an ideal component to include in your next custom project to advance your embedded hardware/software skills.

The reason that we're reselling this part rather than using it on a new product is because of a misunderstanding about the interface details. It uses a 3-wire SPI interface with 9-bit transfers. The first bit is used to indicate if the following byte is data or a command. While 9-bit transfers are supported by many modern microcontrollers (like the K66 or STM32 families), making that work with vanilla Arduino is unlikely to happen any time soon. Since SparkFun products need out-of-the-box support for Arduino the interface had to be restricted to bit-banging - just too slow for a display with this resolution!

So we're handing off this cool part to people willing to stretch their comfort level and move beyond basic Arduino functionality. Using a modern microcontroller of your choice and taking advantage of 9-bit SPI transfers - or a full parallel bus - you can unlock the full power of this display. Not only are we giving this to you at the cost you'd expect from a manufacturer but we're passing along some of the work we've done so far: You can find the mating FPC connector here and some SW/HW work in the documents tab.


  • 3.3V supply
  • 3-wire SPI (9 bit transfers) or
  • 8080 parallel interface (8, 9, 16, or 19 bits wide)
  • Bi-directional -- write to and read from display RAM


  • 128 x 160 RGB pixels
  • 12, 16, or 18 bit configurable color depth
  • 2x PWM controllabele LED backlight



Reference Material

Note: these items are not finished and will not be further developed but are provided for convenience.


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Eh? Sure you have the right datasheet listed? The one you list says in four pin mode it accepts eight bit bytes and the ninth bit is delivered on the fourth pin. Plus you could just go with parallel. Yea it burns a lot of pins but if you are expecting to read the display memory in a read / modify / write operation the speed might be worth it.

Customer Reviews

4 out of 5

Based on 2 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

Nice LCD, Tearing Effect output missing

This is a nice little LCD at a good price. I successfully got the 9-bit SPI interface working on a Teensy 3.6.

One caveat: as far as I can tell, the Tearing Effect pin of the driver is not broken out to the connector at all. This means that there isn't a way to synchronize your controller to the frame refresh period, leading to a "tearing" graphical effect where only half of the frame gets updated on a particular refresh. The display datasheet claims that "SDI/SDA" (pin 10) has the Tearing Effect signal, but "SDI/SDA" is clearly connected to "DB0" (pin 12, MISO/MOSI in serial mode) on the flexible circuit.

I'm looking for a way to use the SPI bus to set or read synchronization information, but haven't found it yet.

The display datasheet has at least one other error: pin 36 (the LED-PWM pin) is not connected to anything.

A price you can't refuse

I am running this screen in 9-bit 3-wire serial mode and can push 10 fps to the display with no issue whatsoever. Probably could go faster, especially by using the parallel interface, but I have no need for it.

Color is good, viewing angle is OK (datasheet says 45 degrees). Backlight is bright with no discernible tint.

Thanks to Sparkfun for making available what code they produced, that is always a help.