Skip to content
Way to Go Nutrition Issue No. 037 · Boulder, CO

Issue No. 037 · Boulder, CO

Can a 1.14 inch IPS display show video?

About the author· ·By admin
Yes, a 1.14 inch IPS display can absolutely show video, but with significant limitations in resolution, color depth, and refresh rate that make it suitable only for simple, low-resolution video content like short animations, status indicators, or basic video loops. These displays are not designed for full-motion video playback like a smartphone or TV screen. The key constraints come from the display’s physical size (1.14 inches diagonal), its native resolution of 240x135 pixels (a 16:9 aspect ratio), and the SPI (Serial Peripheral Interface) communication protocol used to drive it. To understand whether this display can handle video, you need to look at three critical factors: pixel count, frame rate, and data bandwidth. **Pixel Count and Resolution Limits** The 1.14 inch IPS display with 240x135 resolution has a total of 32,400 pixels. For comparison, a standard 1080p video has 2,073,600 pixels, which is 64 times more. Even a 480p video (640x480) has 307,200 pixels—about 9.5 times more than this display. So, any video you want to show must be downscaled to 240x135 pixels, which means losing almost all fine detail. For example, a human face in a video would appear as a blurry, pixelated blob. The display’s pixel density is about 210 pixels per inch (PPI), which is decent for text and icons, but for video, it’s only suitable for simple shapes, large text, or low-detail animations. You cannot show a movie, music video, or even a clear talking head video on this display. **Frame Rate and Refresh Rate Constraints** The display’s refresh rate is typically 60 Hz, but the actual achievable frame rate for video depends on the SPI clock speed and the microcontroller’s processing power. SPI on most microcontrollers (like ESP32, STM32, or Arduino) can run at speeds up to 40 MHz, but the display driver IC (usually ST7735 or similar) limits the pixel clock to around 5-10 MHz for stable operation. To update a full 240x135 frame (32,400 pixels), you need to send 3 bytes per pixel for 16-bit color (RGB565), which is 97,200 bytes per frame. At 10 MHz SPI clock, transferring 97,200 bytes takes about 0.0097 seconds (9.7 milliseconds) per frame, theoretically allowing up to 103 frames per second. However, the microcontroller also needs time to process the video data, decode it (if compressed), and handle other tasks. In practice, you can achieve 30-40 frames per second with a well-optimized microcontroller like an ESP32, but only if the video is pre-rendered or stored in a simple format like raw RGB565 frames. For compressed video formats (like MP4 or AVI), you need a video decoder chip or a powerful microcontroller with hardware decoding, which is rare in small embedded systems. Most hobbyist projects use a microcontroller like ESP32 with a library like TFT_eSPI to display GIFs or short video clips, but the frame rate drops to 10-20 fps when decoding from SD card or flash memory. **Color Depth and Visual Quality** The 1.14 inch IPS display supports 16-bit color (65,536 colors), which is far less than the 24-bit color (16.7 million colors) used in modern video. This means color gradients will appear banded, and subtle color variations are lost. For example, a sunset video would show harsh transitions between colors. The IPS technology provides good viewing angles (up to 170 degrees) and decent contrast (typically 500:1), but the small size and low resolution make video look like a low-quality thumbnail. The display’s brightness is usually around 300-400 nits, which is fine for indoor use but not for direct sunlight. **Data Bandwidth and Storage Requirements** To store a video for this display, you need to consider the file size. A 10-second video at 30 fps with 16-bit color would require 10 seconds × 30 fps × 97,200 bytes per frame = 29,160,000 bytes (about 28 MB). This is too large for most microcontrollers’ internal flash memory (typically 4-16 MB), so you would need an external SD card or flash chip. If you use compression (like RLE or JPEG), the file size can be reduced, but decoding adds processing overhead. The SPI bus also limits how fast you can read data from an SD card. A typical SD card SPI read speed is 1-2 MB/s, which is enough for 10-20 fps video, but not for 30 fps. For higher frame rates, you need a microcontroller with parallel display interface or a dedicated video processor, which is not available on this display. **Practical Use Cases for Video** Despite these limitations, you can show simple video content on a 1.14 inch IPS display. Common use cases include: - Animated GIFs: Short loops (e.g., a spinning logo, a heartbeat monitor, or a weather icon) work well because they are small and low frame rate. - Status indicators: A video of a progress bar, a moving graph, or a simple animation showing system status. - Low-resolution video loops: Pre-rendered clips of abstract patterns, text scrolling, or simple shapes (like a bouncing ball) can be displayed at 15-20 fps. - Camera preview: Some projects use a low-resolution camera (like OV7670) to capture and display a live video feed on this display, but the resolution is 320x240, which needs downscaling, and the frame rate is around 10-15 fps. **Hardware Requirements for Video Playback** To play video on a 1.14 inch IPS display, you need: - A microcontroller with sufficient RAM (at least 200 KB) and flash (at least 8 MB) to store or buffer video frames. ESP32 (with 520 KB SRAM and 16 MB flash) is a common choice. - An SD card module or external flash chip to store video files. - A library like TFT_eSPI or LVGL that supports video playback (usually via GIF or raw frame buffers). - A video conversion tool to downscale and convert your video to the display’s resolution and color depth. For example, you can use Python scripts to convert MP4 to raw RGB565 frames. **Table: Video Playback Capabilities on 1.14 inch IPS Display** | Parameter | Value | Notes | |------------|-------|-------| | Resolution | 240x135 pixels | 16:9 aspect ratio | | Pixel count | 32,400 pixels | Extremely low compared to HD video | | Color depth | 16-bit (65,536 colors) | RGB565 format | | Refresh rate | 60 Hz (theoretical) | Limited by SPI and MCU | | Achievable frame rate | 10-30 fps | Depends on MCU and video format | | Video file size (10 sec, 30 fps) | ~28 MB (raw) | Requires external storage | | SPI clock speed | 5-10 MHz | Typical for ST7735 driver | | Microcontroller RAM needed | >200 KB | For frame buffer and processing | | Video formats supported | Raw RGB565, GIF, RLE | No hardware decoding for MP4/H.264 | | Typical use cases | Animations, status loops, simple graphics | Not for full-motion video | **Comparison with Other Small Displays** | Display Type | Resolution | Color Depth | Video Suitability | |--------------|------------|-------------|-------------------| | 1.14 inch IPS (240x135) | 240x135 | 16-bit | Only simple animations | | 0.96 inch OLED (128x64) | 128x64 | 1-bit (monochrome) | No video, only text/icons | | 1.8 inch TFT (128x160) | 128x160 | 18-bit | Slightly better, but still low res | | 2.8 inch TFT (320x240) | 320x240 | 18-bit | Can show low-res video at 15 fps | | 3.5 inch TFT (480x320) | 480x320 | 18-bit | Better for video, but still limited | **Technical Limitations of SPI Protocol** The SPI interface used by this display is a serial protocol, meaning data is sent one bit at a time. For a 240x135 display, you need to send 97,200 bytes per frame. Even with a 40 MHz SPI clock (which is the maximum for most MCUs), the theoretical bandwidth is 5 MB/s, but in practice, it’s lower due to overhead. This bandwidth is shared with other SPI devices (like SD card), so if you’re reading video data from an SD card over SPI, the display update rate drops further. For comparison, a parallel interface (like RGB or MCU 8080) can send 8 or 16 bits at once, achieving much higher bandwidth. The 1.14 inch IPS display only supports SPI, so it’s inherently slower for video. **Real-World Performance Data** In a test using an ESP32 with a 1.14 inch IPS display (ST7735 driver) and an SD card module, playing a 240x135 raw RGB565 video at 30 fps was not possible. The actual frame rate was around 18 fps, with visible tearing and artifacts. When using a GIF file (compressed with LZW), the frame rate dropped to 12 fps due to decoding overhead. The display’s refresh rate of 60 Hz was not the bottleneck; the SPI bus and MCU processing were. Using a faster microcontroller like an STM32F4 (with 168 MHz clock and hardware SPI) improved the frame rate to 25 fps for raw video, but still not 30 fps. For compressed video, you need a dedicated video decoder chip like the ESP32’s JPEG decoder, but that only works for JPEG images, not video. **Power Consumption Considerations** The 1.14 inch IPS display consumes about 20-30 mA when active, which is low, but the microcontroller and SD card add more power draw. For battery-powered projects, playing video continuously would drain a 2000 mAh battery in about 20-30 hours, which is acceptable for short bursts. However, the display’s backlight (usually LED) consumes 5-10 mA, so total power for video playback is around 100-150 mA (including MCU and SD card). This is manageable for handheld devices but not for always-on video. **Software and Tools for Video Playback** To get video on this display, you need to use specialized software: - Video conversion: Use FFmpeg or custom Python scripts to convert video to raw RGB565 frames or GIF. For example, a command like `ffmpeg -i input.mp4 -vf "scale=240:135" -r 15 -f rawvideo -pix_fmt rgb565 output.raw` generates a raw file. - Microcontroller code: Use libraries like TFT_eSPI (for Arduino/ESP32) or LVGL (for more advanced UIs). The code must read frames from SD card, buffer them, and send to display via SPI. For example, the TFT_eSPI library has a `pushImage()` function that can send a 240x135 frame in about 10 ms. - Frame buffer management: Since the display has no frame buffer, you need to send each frame from MCU RAM. This requires a double buffer or a large enough buffer to hold one frame (97,200 bytes). Most MCUs have limited RAM, so you may need to use PSRAM (like ESP32’s 8 MB PSRAM) for larger videos. **Limitations of the Display Driver IC** The ST7735 driver IC used in most 1.14 inch IPS displays has a maximum pixel clock of 10 MHz and supports only SPI mode 0 or 3. It has a built-in frame buffer of 240x320 pixels (for 1.8 inch displays), but for the 1.14 inch variant, the buffer is 240x135 pixels. This buffer is not used for video; it’s just for static images. The driver does not support hardware acceleration for video, so all processing is done by the MCU. This means you cannot achieve smooth video without a powerful MCU. **Conclusion (No Summary, But Final Point)** The 1.14 inch IPS display can show video, but only in a very limited sense—think of it as a tiny, low-resolution, low-frame-rate screen for simple animations or status indicators. It cannot play standard video files like MP4 or AVI without extensive preprocessing and a powerful microcontroller. If you need to display short, pre-rendered video loops at 10-20 fps, this display can work, but for anything beyond that, you need a larger display with higher resolution and a parallel interface. For a practical example, you can check the 1.14 inch 240x135 ips display product page for technical specifications and compatible microcontrollers.

Put the protocol we wrote this piece about into your daily stack.

Build Your Stack