The 0.96 TFT LCD is a compact, full-color display module commonly used in embedded systems, wearable devices, and DIY electronics. With a typical resolution of 80x160 pixels and driven by the ST7735 controller, this small screen offers vibrant colors and fast refresh rates. It supports both SPI and I2C communication protocols, making it highly versatile for microcontrollers like Arduino, ESP32, and Raspberry Pi Pico. Despite its tiny size, the 0.96 inch TFT LCD provides excellent visibility for text, graphics, and sensor data, serving as a popular alternative to traditional monochrome OLED displays in space-constrained applications.


1、0.96 TFT LCD Specifications
2、0.96 TFT LCD ST7735 Driver
3、0.96 TFT LCD Pinout
4、0.96 TFT LCD SPI Interface
5、0.96 TFT LCD I2C Interface
6、0.96 TFT LCD Arduino Wiring

1、0.96 TFT LCD Specifications

The 0.96 TFT LCD module is a miniature color display with a diagonal size of exactly 0.96 inches. Its active area typically measures 10.8mm by 21.7mm, providing a resolution of 80 RGB pixels in width and 160 pixels in height. Each pixel is composed of red, green, and blue sub-pixels, enabling the display of up to 262,144 colors through 18-bit color depth. The display operates at a voltage range of 2.8V to 3.3V, though many breakout boards include an onboard regulator to accept 5V input. The typical power consumption is around 20mA to 40mA depending on the backlight brightness and the number of illuminated pixels. The viewing angle is rated at 120 degrees horizontally and 120 degrees vertically, which is adequate for most handheld applications. The contrast ratio is generally specified at 500:1, providing good readability under indoor lighting conditions. The response time is approximately 10ms, making it suitable for displaying simple animations and real-time data. The module usually integrates the ST7735R controller IC, which handles all the timing and data formatting required to drive the LCD panel. The backlight is typically a white LED that requires a separate control pin for brightness adjustment via PWM. The module weight is only about 3 grams, making it ideal for weight-sensitive projects like drone telemetry displays or smart watches. The operating temperature range spans from -20 degrees Celsius to +70 degrees Celsius, allowing deployment in moderately harsh environments. Storage temperature extends from -30 degrees Celsius to +80 degrees Celsius. The display supports both portrait and landscape orientation through software configuration, though the native orientation is portrait with 80 columns and 160 rows. The pixel pitch is approximately 0.135mm, which gives a pixel density of about 188 PPI, resulting in sharp and clear text at typical viewing distances. These specifications make the 0.96 TFT LCD a balanced choice between size, resolution, and power efficiency for embedded projects that require color output in a tiny footprint.

2、0.96 TFT LCD ST7735 Driver

The ST7735 driver is the heart of most 0.96 TFT LCD modules. This single-chip controller from Sitronix is specifically designed for small-format TFT displays with resolutions up to 132x162 pixels, which perfectly matches the 80x160 resolution of the 0.96 inch panel. The ST7735 features an integrated display RAM of 132x162x18 bits, allowing it to store a full frame of color data without external memory. The driver communicates with the host microcontroller through either a parallel interface, a serial peripheral interface SPI, or an I2C-like serial interface, though SPI is the most common due to its speed and simplicity. The ST7735 supports multiple color formats including 12-bit, 16-bit, and 18-bit RGB, with 16-bit RGB565 being the most popular for Arduino projects because it balances color quality with memory usage. The driver IC includes hardware acceleration for window address setting, allowing partial screen updates that significantly reduce data transfer requirements. It also provides commands for display inversion, gamma correction, and idle mode power saving. One of the key advantages of the ST7735 is its extensive command set that allows precise control over the display timing, voltage levels, and driving waveforms. The driver operates at a maximum SPI clock frequency of 15 MHz, enabling full-screen refresh rates exceeding 60 frames per second. The ST7735 includes an internal oscillator and charge pump circuit, minimizing the need for external components. It also features a deep sleep mode that reduces current consumption to below 1 microamp, which is critical for battery-powered applications. The driver IC is typically mounted directly on the flexible PCB of the display module using chip-on-glass or chip-on-flex technology, making the overall assembly extremely thin. Programming the ST7735 involves initializing a sequence of configuration registers that set the display orientation, color format, and timing parameters. Many open-source libraries are available for the ST7735, including the popular Adafruit ST7735 library and the TFT_eSPI library, which handle the low-level register manipulation and provide high-level drawing functions for text, shapes, and images. Understanding the ST7735 driver is essential for anyone working with 0.96 TFT LCD modules, as it determines the display performance, power consumption, and compatibility with different microcontrollers.

3、0.96 TFT LCD Pinout

The pinout of a standard 0.96 TFT LCD module typically consists of 8 pins arranged in a single row with 2.54mm pitch, compatible with breadboards and prototyping boards. The first pin is usually labeled VCC or VDD, which accepts the power supply voltage typically between 2.8V and 5V depending on the module version. The second pin is GND for ground connection. The third pin is CS or chip select, which enables the display for SPI communication; this pin must be pulled low to activate the display. The fourth pin is RESET or RST, used to reset the display controller; connecting this pin to a microcontroller GPIO allows software reset capability. The fifth pin is DC or data command, which tells the display whether the incoming data is a command or actual pixel data; a low signal indicates a command while a high signal indicates data. The sixth pin is MOSI or SDA, the master out slave in line for SPI data transmission from the microcontroller to the display. The seventh pin is SCK or SCL, the serial clock line that synchronizes data transfer. The eighth pin is LED or BL, the backlight control pin; applying a high signal or PWM signal turns on the backlight while a low signal turns it off. Some modules may have additional pins such as MISO for SPI read operations, though this is rarely used in typical applications. There are also variants that include an extra pin for the touch controller if the display has a touch overlay. For I2C versions of the 0.96 TFT LCD, the pinout changes to include SDA and SCL for the I2C bus, and the DC pin is often replaced by an address selection pin. It is important to verify the specific pinout of your module because different manufacturers may rearrange the pin order. Many breakout boards include pull-up resistors on the CS and RESET lines to simplify wiring. The backlight pin usually requires a current-limiting resistor if driven directly from a microcontroller pin, as the backlight LED can draw up to 20mA. Some modules integrate a transistor switch for the backlight, allowing direct connection to a GPIO pin without additional components. Understanding the pinout is crucial for correctly wiring the display to your microcontroller and avoiding damage from incorrect voltage levels or reversed polarity.

4、0.96 TFT LCD SPI Interface

The SPI interface is the most common communication method for 0.96 TFT LCD modules due to its high speed and simplicity. SPI, or Serial Peripheral Interface, uses a master-slave architecture where the microcontroller acts as the master and the display acts as the slave. The interface requires four primary signals: SCK (serial clock), MOSI (master out slave in), MISO (master in slave out, often unused), and CS (chip select). Additionally, the DC (data/command) line is required to differentiate between command bytes and pixel data bytes. The SPI bus operates at speeds up to 15 MHz for the ST7735 controller, enabling fast screen updates that are essential for animations and real-time data visualization. To send a command, the microcontroller pulls the DC pin low and then clocks the command byte over the MOSI line while generating the clock signal on SCK. To send pixel data, the DC pin is pulled high and the color bytes are transmitted sequentially. The data format for 16-bit RGB565 color requires two bytes per pixel, so a full screen update of 80x160 pixels requires 25600 bytes of data. At 15 MHz, this transfer takes approximately 1.7 milliseconds, allowing refresh rates exceeding 60 frames per second. The SPI interface also supports multiple devices on the same bus by using separate CS pins for each device. One advantage of SPI over I2C is its full-duplex communication capability, though the display rarely sends data back to the microcontroller. The SPI wiring is straightforward: connect the display SCK to the microcontroller SCK pin, MOSI to MOSI, CS to any digital output pin, DC to another digital output pin, and optionally RESET to a third digital output pin. Many Arduino boards have dedicated SPI pins that are hardware-accelerated, providing faster and more efficient communication compared to bit-banging. The SPI interface also allows for DMA (direct memory access) transfers on more advanced microcontrollers, further improving performance. One potential drawback of SPI is that it requires more pins than I2C, typically 4 to 5 pins versus 2 pins for I2C. However, the speed advantage and simpler protocol make SPI the preferred choice for color displays where refresh rate matters. When using the SPI interface, proper initialization of the ST7735 controller is required, including setting the display orientation, color format, and timing parameters through a sequence of commands sent over the SPI bus.

5、0.96 TFT LCD I2C Interface

Some 0.96 TFT LCD modules are available with an I2C interface, which offers the advantage of using only two wires for communication: SDA (data line) and SCL (clock line). The I2C interface is particularly useful when pin count is limited on the microcontroller, as it leaves more GPIO pins available for sensors, buttons, or other peripherals. The I2C version of the 0.96 TFT LCD typically uses a dedicated I2C-to-parallel bridge chip, such as the SSD1306 or a similar converter, because the ST7735 driver itself does not natively support I2C. This bridge chip receives I2C commands from the microcontroller and translates them into the parallel or SPI signals required by the ST7735. The I2C address for these modules is usually 0x3C or 0x3D, selectable by a jumper or solder pad on the breakout board. The I2C bus operates at standard speeds of 100 kHz or 400 kHz, which is significantly slower than the SPI interface. This speed limitation means that full-screen updates take considerably longer, typically several hundred milliseconds compared to a few milliseconds with SPI. Therefore, I2C-based 0.96 TFT LCDs are better suited for static displays or applications where update speed is not critical, such as showing sensor readings that change every few seconds. The I2C wiring is extremely simple: connect the display SDA to the microcontroller SDA pin, SCL to SCL, VCC to power, and GND to ground. The backlight and reset pins may still be present as separate connections. One advantage of I2C is that multiple devices can share the same two-wire bus, each with a unique address, allowing you to connect a display, a temperature sensor, and an accelerometer all on the same lines. The I2C protocol includes built-in acknowledgment and error checking, making it more reliable for noisy environments. However, the slower speed and the need for a bridge chip add complexity and cost to the module. Programming an I2C 0.96 TFT LCD requires using the Wire library on Arduino and sending specific commands to the bridge chip, which then forwards them to the ST7735. The initialization sequence is similar to the SPI version but wrapped in I2C write operations. Some libraries, like the Adafruit SSD1306 library, support both I2C and SPI versions of small displays. When choosing between I2C and SPI for a 0.96 TFT LCD, consider the trade-off between pin count and speed: I2C saves pins but sacrifices performance, while SPI offers fast updates at the cost of more connections.

6、0.96 TFT LCD Arduino Wiring

Wiring a 0.96 TFT LCD to an Arduino is a straightforward process that enables even beginners to display colorful graphics and text within minutes. For the standard SPI version, you will need to connect six pins from the display to the Arduino. Start by connecting the display VCC pin to the Arduino 5V or 3.3V output, depending on your module specification; most 0.96 TFT modules are 3.3V tolerant but many include a voltage regulator for 5V operation. Connect the GND pin to Arduino GND. Next, connect the display CS pin to Arduino digital pin 10, though any digital pin can be used with software SPI. Connect the RESET pin to Arduino digital pin 9, the DC pin to digital pin 8, the MOSI pin to Arduino pin 11 (which is the hardware SPI MOSI pin on Uno and Nano boards), and the SCK pin to Arduino pin 13 (the hardware SPI SCK pin). Finally, connect the LED or backlight pin to Arduino digital pin 6 or directly to 3.3V through a 100-ohm resistor to control the backlight brightness. If your module has a MISO pin, you can leave it unconnected for most applications. For Arduino boards like the Mega 2560, the hardware SPI pins are different: MOSI is pin 51, SCK is pin 52, and MISO is pin 50. For the ESP32, the default SPI pins are usually MOSI on GPIO23, SCK on GPIO18, and you can choose any GPIO for CS, DC, and RESET. For the Raspberry Pi Pico, the SPI pins are GP19 for MOSI, GP18 for SCK, and again any GPIO for the control pins. After wiring, you need to install a library such as the Adafruit ST7735 library and the Adafruit GFX library through the Arduino Library Manager. Then, you can run the example sketch to verify the wiring and initialize the display. Common wiring mistakes include swapping MOSI and SCK, forgetting to connect the backlight pin, or using the wrong voltage level. Always double-check the pinout diagram of your specific module, as some Chinese variants have different pin orders. The wiring for I2C versions is even simpler: connect SDA to Arduino SDA pin A4 on Uno or pin 20 on Mega, SCL to Arduino SCL pin A5 on Uno or pin 21 on Mega, VCC to 3.3V or 5V, and GND to GND. Once wired correctly, the 0.96 TFT LCD will display colorful graphics, sensor data, or even simple user interfaces, making it an excellent addition to any Arduino project.


This guide has covered six essential aspects of the 0.96 TFT LCD display, including its detailed specifications, the ST7735 driver architecture, the complete pinout configuration, both SPI and I2C interface options, and practical Arduino wiring instructions. Understanding these topics ensures that you can successfully integrate this tiny but powerful color display into your next embedded project, whether you are building a wearable device, a handheld instrument, or a smart home sensor display. The 0.96 TFT LCD offers an excellent balance of size, color quality, and ease of use, making it a go-to choice for makers and engineers who need a compact visual output solution.


In summary, the 0.96 TFT LCD is a versatile and widely adopted display module that empowers countless embedded applications. From its precise 80x160 pixel resolution and rich color reproduction to the flexible SPI and I2C interface options, this small display delivers impressive performance in a tiny package. By mastering the specifications, driver configuration, pinout, and wiring techniques discussed in this article, you can confidently incorporate the 0.96 TFT LCD into your designs, unlocking the potential for colorful user interfaces, real-time data visualization, and creative electronic projects. Whether you are a hobbyist or a professional developer, this display remains a reliable and cost-effective solution for adding visual feedback to any microcontroller-based system.