sainsmart 3.2 ssd1289 tft lcd datasheet free sample

SainSmart 3.2" TFT LCD Display is a LCD touch screen module. It has 40pins interface and SD card and Flash reader design. It is a powerful and mutilfunctional module for your project.The Screen include a controller SSD1289, it"s a support 8/16bit data interface , easy to drive by many MCU like STM32 ,AVR and 8051. It is designed with a touch controller in it . The touch IC is ADS7843 , and touch interface is included in the 40 pins breakout. It is the version of product only with touch screen and touch controller.

SainSmart 3.2" TFT LCD Displayis a LCD touch screen module. It has 40pins interface and SD card and Flash reader design. It is a powerful and mutilfunctional module for your project.The Screen include a controller SSD1289, it"s a support 8/16bit data interface , easy to drive by many MCU like STM32 ,AVR and 8051. It is designed with a touch controller in it . The touch IC is ADS7843 , and touch interface is included in the 40 pins breakout. It is the version of product only with touch screen and touch controller.

SainSmart 3.2" TFT LCD Display is a LCD touch screen module. It is a powerful and multifunctional module for your project. The Screen include a controller SSD1289, it"s a support 8/16bit data interface, easy to drive by many MCU like STM32, AVR and 8051. It is designed with a touch controller in it. The touch IC is ADS7843, and touch interface is included in the 40 pins breakout. It is the version of product only with touch screen and touch controller.
This TFT LCD Screen Module, 40pins interface, not just a LCD screen but include the Touch, SD card and Flash design. So it’s a powerful extension module for your project.
SainSmart TFT LCD adjustable shield is 100% compatible for the Mega2560 to expend more Pins and make the connection between the Mega 2560 and 3.2" LCD display easier.
SainSmart 3.2 TFT LCD module works in 3.3V voltage level and you need to use cables to connect with SainSmart Mega. And this shield can help you out of the bothers to use other cables. You just need to plug the module to Mega through this shield.
This shield supports both 16 bit modes. And Mega board has enough pins for using SD card and touch function at the same time. It also has an adjustable button for contrast of the LCD display.

The 3.2 inch TFT LCD module is a special design for Raspberry Pi for portable application. It features a 3.2” display with 320x240 16bit color pixels and resistive touch screen. The LCD is well mated with Pi board and interface with Pi via the high speed SPI port, and support console, X windows, displaying images or video etc. It also provides 4 press buttons for user defined functions.
RPi LCD needs to use a SPI interface, but in the original image file of Raspberry Pi, the displayer is driven via a HDMI port. So the original image is not applicable for RPi LCD, and you should install the LCD driver to your Pi or use the Ready-to-use image file provided by Sainsmart,click here.
Download the LCD driver and extract it to your Raspbian OS (e.g. copy the driver to your Pi by sftpor using U disk). Then run the following command via putty:
This LCD can be calibrated using a program called xinput_calibrator which is pre-installed on the offer image. However, it was not pre-installed on original Raspbian OS. So in this case, you should get and install the program manually with
After running these commands, there will be a prompt for four-point calibration shown in the LCD screen. Click the points one by one to finish the touch calibration. Then, the new calibration data will be displayed in the terminal, as shows below. Please get these data for future use.

The 3.2 inch TFT LCD module is a special design for Raspberry Pi for portable application. It features a 3.2” display with 320x240 16bit color pixels and resistive touchscreen.
The 3.2 inch TFT LCD module is a special design for Raspberry Pi for portable application. It features a 3.2” display with 320x240 16bit color pixels and resistive touchscreen.

In this Arduino touch screen tutorial we will learn how to use TFT LCD Touch Screen with Arduino. You can watch the following video or read the written tutorial below.
As an example I am using a 3.2” TFT Touch Screen in a combination with a TFT LCD Arduino Mega Shield. We need a shield because the TFT Touch screen works at 3.3V and the Arduino Mega outputs are 5 V. For the first example I have the HC-SR04 ultrasonic sensor, then for the second example an RGB LED with three resistors and a push button for the game example. Also I had to make a custom made pin header like this, by soldering pin headers and bend on of them so I could insert them in between the Arduino Board and the TFT Shield.
Here’s the circuit schematic. We will use the GND pin, the digital pins from 8 to 13, as well as the pin number 14. As the 5V pins are already used by the TFT Screen I will use the pin number 13 as VCC, by setting it right away high in the setup section of code.
I will use the UTFT and URTouch libraries made by Henning Karlsen. Here I would like to say thanks to him for the incredible work he has done. The libraries enable really easy use of the TFT Screens, and they work with many different TFT screens sizes, shields and controllers. You can download these libraries from his website, RinkyDinkElectronics.com and also find a lot of demo examples and detailed documentation of how to use them.
After we include the libraries we need to create UTFT and URTouch objects. The parameters of these objects depends on the model of the TFT Screen and Shield and these details can be also found in the documentation of the libraries.
So now I will explain how we can make the home screen of the program. With the setBackColor() function we need to set the background color of the text, black one in our case. Then we need to set the color to white, set the big font and using the print() function, we will print the string “Arduino TFT Tutorial” at the center of the screen and 10 pixels down the Y – Axis of the screen. Next we will set the color to red and draw the red line below the text. After that we need to set the color back to white, and print the two other strings, “by HowToMechatronics.com” using the small font and “Select Example” using the big font.

HY-TFT320 is a 3.2 inch TFT LCD Screen module, 320*240 (resolution), 65K color, 34pins interface , not just a LCD breakout, but include the Touch screen, SD card. So it’s a powerful extension module for your project.
This Screen includes a controller SSD1289, it’s 16bit data interface, easy to drive by many MCU like STM32 ,AVR and 8051.HY-TFT320 is designed with a touch controller in it . The touch IC is XPT2046 , and touch interface is included in the 34 pins breakout. Another useful extension in this module is the SD Card socket . It use the SPI mode to operate the SD card, the SPI interface include in the 40pins breakout.
The UTFT library is required to be installed to get this screen model display. This library is especially designed for 3.2” TFT LCD screen using 16 bit mode. The library require the following connections.
Note: The TFT controller model needs to be declared in the initializing statement. ITDB02 myGLCD(38,39,40,41) needs to be modified as myGLCD(38,39,40,41,ITDB32S) when using Arduino Mega2560.ITDB02 myGLCD(19,18,17,16,ITDB32S) needs to be commented when using Aduino UNO. Otherwise it just show a blank screen. In practice, RS, WR, CS, RSET can be connected to any free pin. But the pin number must be in accord with myGLCD(RS,WR,CS,RST).
The LCD has a 3.2" 4-wire resistive touch screen lying over it. The Touch libraryneeds to be installed to get it works. This library is designed for 2.4’’ TFT, 3.2” TFT LCD screen module.
The default setting is accurate for 2.4” TFT module, but you need to calibrate when using 3.2” TFT module. A program to calibrate the touch screen is included in the example. If you touch screen is inaccurate, you need to run touch_calibration. Follow the on-screen instruction to calibrate the touch screen. Better not use your finger to calibrate it, use your accessory touch pen to pressure the frontsight with stength. Then record the calibration parameters and apply them in ITDB02_Touch.cpp in your touch screen library.

Well, documentation isn"t really that much fun, so I skipped ahead and extended the breadboard circuit to try it with my Sainsmart 3.2" display which has a 16-bit bus.
Just copy the itdb28fb driver, change all occurences of itdb28fb to sainsmart32fb, add initialization sequence and set_addr_win function. Add section to Kconfig and Makefile and finally add the device to fbtft_device.
Earlier I had extended the FBTFT SD-image with a modified ads7846 driver that can add it"s own device. This makes it ideal for testing different setups.
Does the Linux driver: ads7846 has built-in calibration?Yes, I know. I have a section about it here: https://github.com/notro/fbtft/wiki/Tou ... alibration
I have not gotten around to measuring frame rate yet, but what I can say so far is that a CPLD based design using a GuzuntyPi (https://github.com/Guzunty/Pi/wiki) driving the Sainsmart 3.2 LCD module will run with a SPI clock of 32MHz.
I have not gotten around to measuring frame rate yet, but what I can say so far is that a CPLD based design using a GuzuntyPi (https://github.com/Guzunty/Pi/wiki) driving the Sainsmart 3.2 LCD module will run with a SPI clock of 32MHz.That"s cool. I had a quick look through the wiki pages, but I couldn"t find anything on how to program the CPLD. Can it be done from the Pi? And does the CPLD socket fit the holes in a breadboard?
Likewise, keyboards plugged into the Pi directly seem to exhibit the sticky key syndrome more often. Has anyone else seen this? Is this expected?Yes, I haven"t had this problem at all until the last FBTFT release. Looking at the commits, I can"t see anything that should cause this since the last FBTFT image (2013-02-09-wheezy-raspbian-2013-05-24-fbtft).
And does the CPLD socket fit the holes in a breadboard? The CPLD socket does have 2.54mm pin spacing, but the pins are arranged in a matrix so would not be compatible with most breadboards, I"m afraid. I use M-F Dupont cables to take signals from the Guzunty to a breadboard (except in this case, where I used F-F Duponts to connect the Guzunty pins directly to the LCD). It is also worth noting that a CPLD can often *completely eliminate* the need for a breadboard (as indeed happened in this case).
The CPLD uses a 16 bit SPI design (like yours) with separate signalling for DC and Reset signals. My reading of the SSD1289 interface specification led me to believe that data is latched either on the rising edge of "wr" (if "cs" is low) or the rising edge of "cs" (if "wr" is low). I could be wrong, but there seemed to me to be a potential race condition if "cs" and "wr" are allowed to rise together as they are in some sprite-mod derived circuits. Accordingly, the CPLD design raises the "wr" signal on the falling edge of the SPI clock, which is one half SPI clock cycle before "cs" rises with SPI_CS0. I will post the VHDL shortly below.
Specifically, there are 12 pins left over on the Guzunty which I would like to use as inputs. Since the LCD interface is write only, I would like to transfer the value of these across the SPI0.0 bus as data is clocked out to the display.

This is a very short example. How to conenct and use this SSD1289 TFT touch display with Arduino. You need to make the connection and downlaod the library. Then downlaod or copy/paste the example code.
First, you need an SSD1289 TFT display like this one on this link and an Arduino MEGA and the shield. This uses SPI communication to show text, numbers or any other logo with colours. To send data, we will need a library that you will find below. It also have an SD card slot.
First, we need the UTFT.h and URTouch.h library that you could dowload from below. So, for that, go below and downlaod that library. It will be a .zip file. Open Arduino IDE and go to sketch, include library, add .zip library and select the downlaoded file. Now the library is installed. You could downlaod the example code or just copy/paste it from below.

The 3.2 inch TFT LCD module is a special design for Raspberry Pi for portable application. It features a 3.2�display with 320x240 16bit color pixels and resistive touch screen. The LCD is well mated with Pi board and interface with Pi via the high speed SPI port, and support console, X windows, displaying images or video etc. It also provides 4 press buttons for user defined functions.

The LCD panel also supports parallel mode, which is what you would need to use for the highest speed updates, but the Raspberry Pi doesn"t have enough pins for that, so you can probably forget about playing video on there.
The rest is just a matter of writing the software. The Arduino code is probably a good starting place, but you will most likely have to spend some time studying the datasheets too.
EDIT: It appears that although the SSD1289 chip supports 3 and 4 pin serial modes, they are not brought out to the connector. It should be possible to connect it as shown in

I had acquired 2 Novametrix 515C pulse oximeter units that were slightly different versions but both contained a graphic LCD module which has the identification "DMF-50427N" on them and is made by Optrex. The DMF-50427N displays 128 x 64 pixels with each pixel being black and the interface is a parallel type ideal to be connected to a simple CPU or microcontroller although the LCD module only understands a few commands. You can read more about the oximeter at:
The LCD module uses 2 hd61202 column (segment) drivers designed for dot matrix displays and for interfacing with a microcontroller or something similar. For the datasheet please click here:
I used an Arduino Uno to test the LCD and the sketch I wrote you can find for download at the bottom of this page as "Novametrix_515C_LCD_Test.ino". Download it, write the sketch to your Uno and then with the power off connect it to the LCD as follows (LCD pins numbers are included):
I have not used the LED backlight but to use it you will need to connect LED+ (19) to 5V via suitable limiting resistor (datasheet specifies maximum LED current of 60mA and forward voltage of 4.1V @ 30mA) and LED- (20) to GND. What you must do is supply the LCD contrast voltage to LCD VLC pin 3 which can be from approx. -7V to -9V, the voltage of which will adjust the LCD contrast. To generate the negative voltage you can use my power supply circuit from:
When you power the Arduino you should see on the LCD 4 rectangles of different sizes, if not, double check your connections and try adjusting the contrast voltage.
Now looking at the Arduino sketch if you go to the setup function you will see that the I/O is set up for communicating with the LCD; because the LCD is always in write mode (R/W is connected to GND) we never have to change the direction of the data pins (D0 to D7) but it is useful to be able to read information from the LCD such as whether it is busy executing an instruction (because of the use of digitalWrite() and its slowness it is not necessary to check if the LCD is still executing an instruction). After we have set up the I/O and set the default state we call LCD_rst() which simply takes RST low for 1ms and then returns it high, waiting another 1ms before exiting (which isn"t really necessary).
Back to setup() and we call LCD_send_command() twice to turn on both displays as after reset the LCD is in the off state. LCD_send_command() takes as inputs the instruction value to write to the LCD and the Arduino pin number of the LCD chip select I/O pin and then calls LCD_send_data() passing the input values and "false" so that LCD_send_data() knows that an instruction is being sent rather than display data. Function LCD_send_data() first sets LCD D/I to instruction mode (low) then sets D2 to D9 to the instruction value by writing to the Arduino ports directly so that we don"t need to use individual digitalWrite() to set each bit. Lastly, E (enable) goes low, the relevant driver chip is enabled by taking the input low and then both E and the chip select inputs go back high.
Returning to setup() again the next function we call is LCD_clr_disp() which clears the display by writing zeros to the entire display memory but the routine simply calls function LCD_write_all_disp() and passes zero as its input. Function LCD_write_all_disp() sets up a loop from 0 to 7 (LCD_max_X = 8) and at the start of the loop we set the X address for both driver chips. Horizontally we can access each pixel across by setting the Y address (which should really be called "X") and with each write to display memory Y will increase by 1 but vertically the X address (would be better called "Y") must be set which selects from 1 of 8 pages (using values 0 to 7). Each page is 64 x 8 pixels and writing a byte will set 8 pixels vertically. I"ll show it visually as the first page only:
In LCD_write_all_disp() we set the Y address to 0 before setting up another loop which goes from 0 to 63 so we can write to all 64 pixels horizontally for both driver chips (which will cover the 128 pixels across in total) by calling LCD_send_disp_data() which calls LCD_send_data() but tells it we want to write to display data by passing "true" for the second parameter.
Also in setup(), after LCD_clr_disp(), is the commented out call to function LCD_fill_disp() (un-comment to enable) which like LCD_clr_disp() calls LCD_write_all_disp() but gives it the value 0xFF so all pixels are written to. Toward the end of setup() there are 4 calls to LCD_draw_rect() to draw rectangles of different sizes and in turn LCD_draw_rect() calls LCD_draw_horiz_line() and LCD_draw_vert_line() to draw the 4 sides of the rectangle. Not that I"ve included the horizontal length (horiz_len) and vertical length (vert_len) with the starting pixel (top-left point) rather than the length being added on resulting in an extra pixel as I"ve seen with saw drawing routines. In LCD_draw_horiz_line() we first do some basic checks to make sure the X, Y and len values are valid and then we calculate LCD_disp_value so we can effectively move the line vertically into 1 of the 8 "slots". To get the X address it is just a matter of dividing the Y value by 8 and then we can set that for both driver chips regardless of which one will actually be used. Next, we test to see if the line starts on the left side of the display (chip 1) or the right side (chip 2) by comparing the X start value (X) and then remembering the result by updating variable update_LCD_left. With that out of the way we create a loop to count from 0 to length (len) - 1 so that we can write each pixel of the line horizontally. However, before we update the display we must check if we have moved from the left side of the display to the write by checking if the current coordinate X position (X_pos) if 64 or higher and if so then update_LCD_left is updated. Then we can call LCD_send_disp_data() for the appropriate driver chip with the previously calculated display value in LCD_disp_value.
On to function LCD_draw_vert_line() in which we check X, Y and len are valid and then determine whether we need to update the left or right side of the display and set variable update_LCD_left accordingly. We do a simple calculation to set x_count_limit to the number of line segments, that is, the number of X pages to update. Next we go into a loop to update each X page and at the beginning of the loop we calculate the current Y coordinate value (the pixel at the top of the X page) and then set the X page address value to the coordinate Y position/8 for whichever driver chip we are updating. To actually draw the line we set LCD_disp_value to 0xFF which is then shifted left or right to form the start or end of the line or if it"s a middle segment then 0xFF is outputted untouched as the line segment will be a completed 8 bits. The last thing to do is set the Y address as each display write will increase Y by 1 yet we are drawing a vertical line whose X coordinate value will not change, and we also send the display data by calling LCD_send_disp_data().
A big issue with the line and rectangle drawing routines is that they will overwrite any other display data close by and if a rectangle is drawn with horizontal or vertical length of 8 or less then likely it won"t display correctly as one of the lines drawn will be in the same X page. A workaround to fix the problem would either be to modify the circuit so that the LCD"s display memory can be read or to maintain a display buffer on the Arduino, so that new writes to the display can be combined with whatever is already in display memory. The sketch is only test code and it could do we more boundary checking but at least it shows off a little of what the display can do.

Arduino ADK Arduino ADK R3 Front Arduino ADK R3 Back Arduino ADK Front Arduino ADK Back Overview The Arduino ADK is a microcontroller board based on the ATmega2560 (datasheet). It has a USB host interface
2.2" TFT Display Created by Ladyada Last updated on 2014-03-31 12:15:09 PM EDT Guide Contents Guide Contents Overview Connecting the Display Test the Display Graphics Library Bitmaps Alternative Wiring
CMOS OV7660 Camera Module 1/5-Inch 0.3-Megapixel Module Datasheet Rev 1.0, June 2013 Table of Contents 1 Introduction...2 2 Features...3 3 Key Specifications...4 4 Application...4 5 Pin Definition...6
DATASHEET ADAM Arduino Display Adaptor Module Arduino Compatible Shield P/N: 4Display-Shield-FT843 For the 4D Systems 4DLCD-FT843 Display Document Date: 8 th January 2014 Document Revision: 1.0 Uncontrolled
2.3" Monochrome 128x32 OLED Display Module Created by lady ada Last updated on 2016-03-27 06:56:07 AM EDT Guide Contents Guide Contents Overview Pinouts Power Pins Signal Pins Remaining Pins Assembly Changing
5inch HDMI LCD User Manual Features 800 480 high resolution Directly-pluggable into any revision of Raspberry Pi (only except the first generation Pi model B which requires an HDMI cable) Driver is provided
3.2 inch QVGA TFT Color LCD - User s Guide 3.2 inch QVGA TFT Color LCD User s Guide Version 1 & 2 Give graphics and to your application! EA2-USG-0701 v2.1 Rev A 3.2 inch QVGA TFT Color LCD - User s Guide
Instant Graphical User Interface Solutions Why you need a new User Interface Thanks to the iphone & Smart Phones Customer GUI expectations have changed Monochrome character LCDs and button style keypads
dspic / PIC24 Multiprogrammer datasheet EB064-00 00-1 Contents 1. About this document... 2 2. General information... 3 3. Board layout... 4 4. Testing this product... 5 5. Circuit description... 6 Appendix
1.8" TFT Display Breakout and Shield Created by lady ada Last updated on 2015-04-09 03:48:28 PM EDT Guide Contents Guide Contents Overview Breakout Pinouts Breakout Assembly Prepare the header strip: Add
R Arduino Due Arduino Due Front Arduino Due Back Overview The Arduino Due is a microcontroller board based on the Atmel SAM3X8E ARM Cortex-M3 CPU (datasheet). It is the first Arduino board based on a 32-bit
SainSmart UNO R3 Starter Kit //SainSmart UNO R3 The SainSmart UNO R3 is one of several development boards based on the ATmega328-AU. We like it mainly because of its extensive support network and its versatility.
BE635 User Manual Rev. V1.0 2013-2014 Bolymin, Inc. All Rights Reserved. Copyright Copyright 2013-2014 BOLYMIN, INC. All rights reserved. No part of the materials may be reproduced, copied or translated
PRDUCT SPECIFICATON TFT LCD MODULE Model : ELT240320ATP 2.8 inch TFT LCD with Touch Screen This specification is subject to change without notice. 2 Contents Page 1. LCM Specification.....3 2. Functional
2.8"" TFT Touch Shield Introduction 2.8" TFT Touch Shield is an Arduino / Arduino Mega compatible multicolored TFT display with a 4-wire resistive touch screen. It includes an Arduino shield compatible
FTDI Chip VM800P Datasheet Embedded Video Engine Plus Module General Purpose Multi Media Controller The VM800P is a development module for FTDI s FT800, which is used to develop and demonstrate the functionality
SBC8600B Single Board Computer 720MHz TI s Sitara AM3359 ARM Cortex-A8 Microprocessor Onboard 512MByte DDR3 SDRAM and 512MByte NAND Flash UARTs, 2*USB Host and 1*OTG, 2*Ethernet, CAN, RS485, LCD/TSP, Audio,
Fingerprint Time Attendance Hardware User Manual CONTENTS 1. Start Screen 1 2. User Management 1 2.1User Registration 1 2.2DeleteRegistration 2 3. Equipment Setting 2 3.1Basic Setting 2 3.2Advanced Setting
SOLOMON SYSTECH SEMICONDUCTOR TECHNICAL DATA SSD1298 Advance Information 240 RGB x 320 TFT LCD Controller Driver integrated Power Circuit, Gate and Source Driver with built-in RAM This document contains
SBC6245 Single Board Computer 400MHz Atmel AT91SAM9G45 ARM 926EJ-STM Microcontroller On Board 128MB Nand Flash plus 128MB DDR2 SDRAM RS232, RS485, Ethernet, USB Host, LCD, Touch Screen, RTC, Supports for
Data Acquisition Module with I2C interface «I2C-FLEXEL» User s Guide Sensors LCD Real Time Clock/ Calendar DC Motors Buzzer LED dimming Relay control I2C-FLEXEL PS2 Keyboards Servo Motors IR Remote Control
Ms.Josey
Ms.Josey