A first port of the excellent Adafruit ST7735 library Also supports the S6D02A1 controller (Use 1k resistors in series on all logic lines).

Fork of Adafruit_ST7735 by Andrew Lindsay

Modified version of the ST7735 library to support the Samsung S6D02A1 controller. These 1.8" 128x160 displays can be purchased dirt cheap (under $5 on eBay or aliexpress with free shipping).

You must also import the Adafruit_GFX library, as this library is dependent upon it.

I've used up to 20 MHz SPI with no problem. That is hardcoded in the library, and is currently set to 4 MHz (unmodified from the original library).

The library is exactly the same for S6D02A1 and ST7735 except for the initialization routines.

Use 1k resistors in series on all 5 logic lines as 3V3 is required (display is not damaged by 5V logic, but it will not work)

Constructor pin names that match the S6D02A1: Adafruit_ST7735(DIN, NC, CLK, CD, D/C, RST) ;

Source of initialization codes for the S6D02A1: https://github.com/zigwart/Adafruit_QDTech/blob/master/Adafruit_QDTech.cpp

Files at this revision

API Documentation at this revision

Comitter:
SomeRandomBloke
Date:
Thu Aug 15 13:27:10 2013 +0000
Parent:
0:99ee879ef5a9
Child:
2:18ecda534e06
Commit message:
Updates to GFX constructor

Changed in this revision

Adafruit_ST7735.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/Adafruit_ST7735.cpp	Tue Mar 26 23:09:06 2013 +0000
+++ b/Adafruit_ST7735.cpp	Thu Aug 15 13:27:10 2013 +0000
@@ -22,7 +22,7 @@
 
 // Constructor 
 Adafruit_ST7735::Adafruit_ST7735(PinName mosi, PinName miso, PinName sck, PinName cs, PinName rs, PinName rst) 
-        : lcdPort(mosi, miso, sck), _cs(cs), _rs(rs), _rst(rst)
+        : lcdPort(mosi, miso, sck), _cs(cs), _rs(rs), _rst(rst), Adafruit_GFX(ST7735_TFTWIDTH, ST7735_TFTHEIGHT) 
 { }
 
 
@@ -219,7 +219,6 @@
 void Adafruit_ST7735::commonInit(uint8_t *cmdList)
 {
 
-    constructor(ST7735_TFTWIDTH, ST7735_TFTHEIGHT);
     colstart  = rowstart = 0; // May be overridden in init func
 
     _rs = 1;
@@ -227,7 +226,7 @@
 
     // use default SPI format
     lcdPort.format(8,0);
-    lcdPort.frequency(20000000);     // Lets try 8MHz
+    lcdPort.frequency(30000000);     // Lets try 30MHz
 
     // toggle RST low to reset; CS low so it'll listen to us
     _cs = 0;