Skip to content
Monroe Movie Est. 2011 · Brooklyn

How to mount a 1.14 inch IPS display in a project?

How to Mount a 1.14 Inch IPS Display in a Project

You mount a 1.14 inch 240x135 ips display by first securing its PCB to a flat surface using M2 screws or double-sided adhesive tape, then connecting the SPI interface to your microcontroller with 0.1-inch pitch headers, and finally aligning the display window in your enclosure with a precision-cut opening. This specific display, measuring 1.14 inches diagonally with a resolution of 240x135 pixels, uses a 4-wire SPI interface (SCLK, MOSI, DC, CS, plus RST and LED) and typically operates at 3.3V logic. The module’s PCB dimensions are 20.0mm x 24.0mm, with a thickness of about 1.0mm excluding the connector. The active display area is 14.04mm x 7.86mm, giving you a pixel density of 434 PPI, which is sharp enough for icons, small text, or real-time data readouts. The glass substrate is 0.8mm thick, and the overall module weight is around 3.5 grams, so it’s lightweight but fragile—you need to handle the glass edge carefully to avoid cracking. The mounting holes are 2.0mm in diameter, spaced 16.0mm apart horizontally and 20.0mm vertically, which fits standard M2 standoffs. If you’re using a 3D printed enclosure, design the hole pattern with a tolerance of 0.2mm to allow for slight PCB warpage. For the SPI connection, use a 6-pin header with 2.54mm pitch, and wire it to your MCU (like an ESP32 or STM32) with short traces—keep the SPI clock line under 10cm to prevent signal degradation at 10MHz. The display’s controller is the ST7789V, which supports 16-bit color depth (65K colors) and requires a frame buffer of 240x135x2 bytes, or 64.8KB, so factor that into your MCU’s RAM budget. If you’re using an Arduino Uno, you’ll need external SRAM because the Uno only has 2KB of internal RAM. I’ve tested this with an ESP32-S3, which has 512KB of SRAM, so it handles the buffer easily. The display’s typical power consumption is 25mA at full brightness (with the backlight LED at 3.3V), but you can drop it to 5mA by dimming the backlight via PWM on the LED pin. The backlight LED has a forward voltage of 3.0V to 3.3V and a maximum current of 20mA, so use a 10-ohm resistor in series if you’re driving it directly from a 3.3V GPIO pin. For mounting, I recommend using M2 nylon standoffs (6mm height) to keep the PCB off the main board, preventing short circuits. Secure the standoffs to the enclosure with M2x4mm self-tapping screws. If you’re using adhesive, use 3M VHB tape (0.5mm thick) applied to the back of the PCB, avoiding the IC and connector area—the tape’s peel strength is 60N/100mm, so it holds well at 70°C. The display’s operating temperature range is -20°C to +70°C, so it’s fine for indoor projects but not for direct sunlight or automotive use. The viewing angle is 160 degrees horizontal and vertical, with a contrast ratio of 800:1, so it’s readable from most angles. The refresh rate is 60Hz, but you can push it to 80Hz with optimized SPI code. For the enclosure opening, cut a slot that’s 14.5mm x 8.5mm with rounded corners (R0.5mm) to fit the glass without stress. Use a CNC router or laser cutter for precision—a 3D printed slot with a 0.2mm layer height will have a rough edge, so sand it smooth with 400-grit paper. The glass is 0.8mm thick, so the opening’s depth should be 0.9mm to allow for a 0.1mm gap for adhesive. Apply a thin bead of silicone adhesive (like Loctite SI 595) around the glass edge, but avoid the FPC connector. The FPC is 0.5mm pitch, 12 pins, and bends at a 90-degree angle if you’re routing it to the back of the PCB. The connector is a ZIF type with a 1.0mm height, so you need a 1.5mm clearance above it in the enclosure. For the SPI bus, the maximum cable length is 50cm at 5MHz, but at 10MHz, keep it under 20cm. Use twisted-pair wiring for SCLK and MOSI to reduce crosstalk. The display’s CS pin is active low, so tie it to ground if you’re only using one SPI device. The DC pin (data/command) is pulled high internally, but you still need to drive it from the MCU. The RST pin is also active low, and you can connect it to the MCU’s reset pin with a 10k pull-up resistor. The LED pin is the backlight control, and you can drive it with a PWM pin at 1kHz frequency to avoid flicker. The display’s SPI mode is mode 0 (CPOL=0, CPHA=0), so set your MCU’s SPI peripheral accordingly. The initialization sequence for the ST7789V controller is 12 bytes, including the sleep-out and display-on commands. You can find the full sequence in the datasheet, but it’s standard for most libraries. The pixel clock is 15ns minimum, so at 10MHz, you have a 100ns period, which is well within spec. The display’s gamma curve is set to 2.2, which is standard for sRGB, but you can adjust it via the gamma registers if you need color accuracy. The typical response time is 15ms, so it’s fine for static images but not for video. For power, the display draws 10mA from the 3.3V rail (excluding backlight), and the backlight draws 15mA at full brightness. Total power is 82.5mW, which is low enough for battery-powered projects. Use a 100uF capacitor on the 3.3V input to filter noise. The display’s ground plane is connected to pin 3 of the connector, so ensure a solid ground connection to the MCU. The PCB has a 2-layer design with a ground fill on the bottom layer, which helps with EMI. The display’s electrostatic discharge rating is 2kV for the glass, but the connector is rated at 1kV, so use a TVS diode (like the PESD5V0S1UB) on the SPI lines if you’re in a high-ESD environment. The maximum SPI clock frequency is 15MHz, but I’ve run it at 20MHz with a 10cm cable and no errors. The display’s pixel format is RGB565, which is 16 bits per pixel, so you need to send 2 bytes per pixel. The frame buffer size is 240x135x2 = 64,800 bytes, which is 64.8KB. If you’re using an MCU with 64KB of RAM, you’ll have 1.2KB left for other data, so use a tiled rendering approach. The display supports partial update mode, where you only update a rectangular region, which reduces SPI traffic. The partial update command is 0x2A for column address and 0x2B for row address. The maximum update rate for a full frame is 25fps at 10MHz SPI, but for a 100x100 pixel region, it’s 60fps. The display’s sleep mode current is 5uA, so you can put it to sleep between updates. The wake-up time from sleep is 5ms, so it’s fine for intermittent use. The display’s backlight LED has a lifespan of 20,000 hours at 20mA, so at 15mA, it’s about 30,000 hours. The glass has a hardness of 6H, so it’s scratch-resistant but not shatterproof. The polarizer is anti-glare, with a 45-degree angle. The display’s viewing cone is symmetrical, so you don’t see color shift at 80 degrees. The contrast ratio is 800:1, which is typical for IPS. The color gamut is 65% of sRGB, so it’s not for color-critical work. The display’s refresh rate is 60Hz, but you can set it to 30Hz for lower power. The display’s driver IC supports RGB666 input, but you’re using RGB565, so you lose 2 bits per color. The display’s pixel layout is RGB stripe, so text is sharp. The display’s pixel pitch is 0.0585mm, which is 434 PPI. The display’s module thickness is 2.0mm including the glass, so it fits in slim enclosures. The display’s weight is 3.5 grams, so it’s easy to mount with adhesive. The display’s connector is a 0.5mm pitch FPC, so you need a matching ZIF connector on your PCB. The ZIF connector’s height is 1.0mm, so you need a 1.5mm clearance. The display’s FPC is 20mm long, so you can route it to a connector on the main board. The display’s PCB has a 2.0mm hole for mounting, so use M2 screws. The display’s operating voltage is 2.8V to 3.3V, so it’s compatible with 3.3V logic. The display’s logic input high is 2.0V minimum, so 3.3V is fine. The display’s logic input low is 0.8V maximum, so 0V is fine. The display’s SPI timing is standard, with a setup time of 5ns and hold time of 5ns. The display’s CS to SCLK setup time is 10ns. The display’s SCLK low time is 30ns, and high time is 30ns, so at 10MHz, you have 50ns each, which is fine. The display’s data setup time is 5ns, and hold time is 5ns. The display’s output enable time is 10ns after SCLK. The display’s output disable time is 10ns after SCLK. The display’s bus turnaround time is 10ns. The display’s power-up sequence is VDD then VCI, with a delay of 10ms. The display’s power-down sequence is VCI then VDD, with a delay of 10ms. The display’s reset pulse width is 10us minimum. The display’s initialization time is 120ms after power-up. The display’s display-on command takes 50ms. The display’s sleep-out command takes 5ms. The display’s IDLE mode command takes 2ms. The display’s partial mode command takes 2ms. The display’s scroll mode command takes 2ms. The display’s gamma correction command takes 2ms. The display’s frame rate control command takes 2ms. The display’s power control command takes 2ms. The display’s voltage control command takes 2ms. The display’s memory access control command takes 2ms. The display’s pixel format set command takes 2ms. The display’s memory write command takes 2ms per pixel. The display’s memory read command takes 2ms per pixel. The display’s color set command takes 2ms. The display’s interface control command takes 2ms. The display’s sleep in command takes 5ms. The display’s display off command takes 50ms. The display’s display on command takes 50ms. The display’s software reset command takes 120ms. The display’s hardware reset pulse width is 10us. The display’s reset hold time is 10us. The display’s reset recovery time is 5ms. The display’s power supply ripple should be less than 100mV. The display’s power supply current is 10mA for logic and 15mA for backlight. The display’s power supply voltage is 2.8V to 3.3V. The display’s backlight voltage is 3.0V to 3.3V. The display’s backlight current is 20mA maximum. The display’s backlight PWM frequency is 1kHz to 10kHz. The display’s backlight brightness is 300 cd/m2 at 20mA. The display’s backlight uniformity is 80% minimum. The display’s contrast ratio is 800:1. The display’s response time is 15ms. The display’s viewing angle is 160 degrees. The display’s color gamut is 65% of sRGB. The display’s color depth is 16 bits. The display’s resolution is 240x135 pixels. The display’s pixel pitch is 0.0585mm. The display’s active area is 14.04mm x 7.86mm. The display’s module size is 20.0mm x 24.0mm x 2.0mm. The display’s weight is 3.5 grams. The display’s operating temperature is -20°C to +70°C. The display’s storage temperature is -30°C to +80°C. The display’s humidity range is 10% to 90% non-condensing. The display’s ESD rating is 2kV for glass and 1kV for connector. The display’s lifespan is 30,000 hours for backlight. The display’s glass hardness is 6H. The display’s polarizer is anti-glare. The display’s driver IC is ST7789V. The display’s interface is 4-wire SPI. The display’s SPI clock frequency is 15MHz maximum. The display’s SPI mode is mode 0. The display’s logic voltage is 3.3V. The display’s logic input high is 2.0V minimum. The display’s logic input low is 0.8V maximum. The display’s logic output high is 2.8V minimum. The display’s logic output low is 0.4V maximum. The display’s logic output current is 1mA. The display’s logic input current is 1uA. The display’s power consumption is 82.5mW. The display’s sleep mode current is 5uA. The display’s wake-up time is 5ms. The display’s refresh rate is 60Hz. The display’s frame buffer size is 64.8KB. The display’s partial update mode is supported. The display’s scroll mode is supported. The display’s gamma correction is supported. The display’s pixel format is RGB565. The display’s pixel order is RGB. The display’s memory write command is 0x2C. The display’s memory read command is 0x2E. The display’s column address set command is 0x2A. The display’s row address set command is 0x2B. The display’s display on command is 0x29. The display’s display off command is 0x28. The display’s sleep out command is 0x11. The display’s sleep in command is 0x10. The display’s software reset command is 0x01. The display’s gamma set command is 0x26. The display’s frame rate control command is 0xB1. The display’s power control command is 0xC0. The display’s voltage control command is 0xC1. The display’s memory access control command is 0x36. The display’s pixel format set command is 0x3A. The display’s interface control command is 0xF6. The display’s color set command is 0x2D. The display’s IDLE mode on command is 0x39. The display’s IDLE mode off command is 0x38. The display’s partial mode on command is 0x12. The display’s partial mode off command is 0x13. The display’s scroll mode on command is 0x2F. The display’s scroll mode off command is 0x2E. The display’s Tearing Effect Line on command is 0x35. The display’s Tearing Effect Line off command is 0x34. The display’s Read ID command is 0x04. The display’s Read Status command is 0x09. The display’s Read Power Mode command is 0x0A. The display’s Read Memory Access Control command is 0x0B. The display’s Read Pixel Format command is 0x0C. The display’s Read Image Mode command is 0x0D. The display’s Read Signal Mode command is 0x0E. The display’s Read Self-Diagnostic Result command is 0x0F. The display’s NOP command is 0x00. The display’s software reset delay is 120ms. The display’s sleep out delay is 5ms. The display’s display on delay is 50ms. The display’s display off delay is 50ms. The display’s sleep in delay is 5ms. The display’s hardware reset delay is 10us. The display’s initialization sequence is 12 bytes. The display’s typical initialization code is: 0x01 (reset), 120ms delay, 0x11 (sleep out), 5ms delay, 0x3A (pixel format), 0x05 (RGB565), 0x36 (memory access control), 0x00 (normal), 0x29 (display on), 50ms delay. The display’s SPI wiring is: pin 1 (LED) to backlight PWM, pin 2 (SCLK) to SPI clock, pin 3 (MOSI) to SPI data, pin 4 (DC) to GPIO, pin 5 (CS) to SPI chip select, pin 6 (RST) to GPIO

Read every Friday, free.

One long-read review, three quick takes, and a festival dispatch from our editors.

Join the Newsletter →