In 2012, I experimented with tiny 1.8" TFT LCD display modules from Adafruit and SainSmart as displays for the Raspberry Pi.

After a good bit of Linux kernel hacking on a driver for the ST7735R LCD controller chip, I got them to run as as the Pi's console device.

Update 2013: My early TFT driver work documented here has been mostly superseded by this newer driver: https://github.com/notro/fbtft/wiki



FAQ: Sorry, but I cannot provide prebuilt SD-card images.

Video demos of the whole thing in action:

Photos of standard framebuffer apps running on the display:

fbterm in a couple of font sizes, and mplayer playing a video clip at 24 fps:



The 1.8" TFT LCD SPI-bus display modules available from Adafruit and SainSmart are functionally equivalent, except that the SainSmart unit can be driven at a much faster SPI bus rate than the Adafruit (32 MHz vs. 4 MHz in my testing). Fabien Royer has shown that this is due to a slow level shifter in the Adafruit unit.

The original st7735fb kernel driver was by Matt Porter, and was enhanced by Lady Ada, Neil Greatorex, and myself. I started with Neil's proposed version of Matt's st7735fb driver, which I extracted from Lady Ada's raspberrypi kernel repo. I applied Neil's version to the current raspberrypi 3.2.27+ kernel, then I made multiple enhancements to the st7735fb driver (and fixed a glitch in the bcm2708 SPI driver). I've since collaborated with Neil to develop further enhancements, and ported the driver to the upcoming 3.6.y Raspberry Pi kernel.

The source for my Raspberry Pi st7735fb kernel is available from my raspberrypi-linux repo.

More technical details and instructions are below. Also note this nice st7735fb driver build tutorial by Mark Williams.

Thanks: Matt, Lady Ada, Neil, Fabien, and Mark for publishing your work; Adafruit and the Rasperry Pi Foundation for all the good stuff you do.

Technical Details

Wiring

The wiring connecting the Raspberry Pi to the display module is as follows (or use a carrier board as shown below):

RasPi P1 header Adafruit 1.8" TFT SainSmart 1.8" TFT 5V Power LITE MISO GPIO 11 (SCLK) SCK SCL GPIO 10 (MOSI) MOSI SDA GPIO 8 (CE0) * TFT_CS CS CARD_CS GPIO 24 ** D/C RS/DC GPIO 25 ** RESET RES 5V Power VCC VCC Ground Gnd GND * My version of the st7735fb_map driver allows either CE0 (SPI 0.0) or CE1 (SPI 0.1) to be configured.

** My version allows the configuration of any GPIO pin for D/C and RESET.

*** Since I'm not using the MicroSD card device on the back of the display modules, the remaining pins are left unconnected.

Clone my raspberrypi-linux repo