{"id":339,"date":"2021-07-08T10:28:14","date_gmt":"2021-07-08T09:28:14","guid":{"rendered":"https:\/\/avionicsduino.com\/?page_id=339"},"modified":"2026-03-25T00:46:06","modified_gmt":"2026-03-24T23:46:06","slug":"lcd-display-screens","status":"publish","type":"page","link":"https:\/\/avionicsduino.com\/index.php\/en\/lcd-display-screens\/","title":{"rendered":"TFT-LCD display for DIY avionics"},"content":{"rendered":"\n<p style=\"font-size:10px\">(TFT-LCD display for DIY avionics: <em>last updated by Benjamin on March 25, 2026)<\/em><\/p>\n\n\n\n<p>The selection of a TFT-LCD display for DIY avionics projects depends on many factors. Type of display, connection interface, library availability and quality, and brightness must be considered. The size and resolution will depend on the software application and the space available on the instrument panel. For an EFIS or EMS, to ensure excellent readability in all circumstances on the instrument panel, a size of 4.3 to 5 inches, a resolution of 480 \u00d7 272 pixels, and a brightness of 500 cd\/m\u00b2 are the minimum requirements. IPS technology offers valuable, wide viewing angles.<\/p>\n\n\n\n<p>Touch screen or not? It is a matter of personal choice: during turbulence, selecting a small screen area or menu option may be difficult on a 5-inch (or smaller) display. Other control systems must be considered, such as push buttons, rotary encoders, or joysticks, which are often more precise than a capacitive touch screen. The latter also has the disadvantage of being glossy, whereas a non-touch, anti-glare, matte display is much more readable under direct sunlight.<\/p>\n\n\n\n<p>Once the microcontroller\/microprocessor (MCU\/MPU) of the project has been selected, the interface between the MCU\/MPU and the display is the primary technical specification to consider. Of course, it depends on the display type and the MCU\/MPU type. There are several display interfaces, including HDMI, Serial, and RGB-parallel, to name the most commonly used. Once a display type and an interface are selected, all the above criteria must be considered.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How do display systems work?<\/h2>\n\n\n\n<p>We do not intend to explain the technology of LCD or TFT panels here, but rather how they interface with our MCUs. In the simple embedded systems we are interested in, there are four components: the TFT-LCD panel, the display graphic controller, the memory frame buffer, and the MCU\/MPU.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The TFT-LCD panel <\/h3>\n\n\n\n<p>It is sometimes called display glass. Its role is to display images. In very simple terms, this panel consists of pixels. It receives electrical signals that, after proper processing, can individually turn the pixels on or off and determine their color and brightness. Figure 1 shows a typical TFT panel.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"744\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/TFT_Panel.png\" alt=\"TFT-LCD display for DIY avionics\" class=\"wp-image-5235\" style=\"width:450px\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/TFT_Panel.png 800w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/TFT_Panel-300x279.png 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/TFT_Panel-768x714.png 768w\" sizes=\"auto, (max-width: 800px) 85vw, 800px\" \/><figcaption class=\"wp-element-caption\">Figure 1: Typical 4.3&Prime; 480 x 272 TFT panel with its 40-pin Flat Flexible Cable (FFC) RGB interface.<\/figcaption><\/figure>\n<\/div>\n\n\n<p>There are a limited number of signal lines (typically 40) entering the panel, and tens or hundreds of thousands of pixels need to be driven, depending on the panel&rsquo;s size and resolution. TFT panels thus always include an IC driver chip that receives digital image data from the ribbon FFC cable and delivers analog voltages with exact timing to control each red, green, and blue pixel on the display individually. For example, the ST7277 from Sitronix is intended to drive 800&#215;480 TFT panels; there are many others.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The display graphic controller<\/h3>\n\n\n\n<p>Its function is to read the memory frame buffer in a continuous loop and stream pixel data, along with synchronization and clock signals via the FFC to the display panel driver IC.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The frame buffer<\/h3>\n\n\n\n<p>It is a memory area that stores each pixel&rsquo;s color information in real time. For example, if the panel supports 16-bit color depth (RGB 565, see below), then 2 bytes of frame buffer memory are required per pixel. If the panel resolution is 800 x 480 pixels, the minimum frame buffer memory requirement is 800 x 480 x 2 = 768 kilobytes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The MCU\/MPU<\/h3>\n\n\n\n<p>Its function is to compute the images to be displayed and feed the frame buffer accordingly with the proper data. It does not need to update the entire frame buffer at every frame. It only has to update in the memory what has changed from the previous frame.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Display types<\/h2>\n\n\n\n<p>The four components mentioned above can be organized in different ways. Small displays with low resolution tend to have a built-in frame buffer and controller. For example, the ILITEK ILI9340 Driver unit is a 240&#215;320 RGB 262K color TFT LCD Single Chip Driver that supports 16- or 18-bit color depths. It includes an IC driver, a graphic controller, and a frame buffer. This chip provides an SPI interface. Many small displays use this chip (Fig. 2)<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"340\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/ILI9341ter.png\" alt=\"TFT-LCD display for DIY avionics\" class=\"wp-image-5245\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/ILI9341ter.png 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/ILI9341ter-300x100.png 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/ILI9341ter-768x255.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 2: Commonly found cheap 2.2&Prime; 320&#215;240 ILI9340 display<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Larger displays like the one in Figure 1 can be handled either by a basic microcontroller via a SPI interface and a specialized board including a frame buffer and a graphic controller (a good example is the RA8875, see below), or by a more powerful microcontroller including a frame buffer and a graphic controller (see below the ESP32 displays).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">HDMI interface<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Single-board computers (SBC)<\/h3>\n\n\n\n<p>Microcontroller boards never embed a real HDMI-type display connector. But SBCs, such as the Raspberry Pi under Linux or the LattePanda under Windows, have such an interface.<\/p>\n\n\n\n<p>But computers, particularly their operating systems, are hardly compatible with power loss; they must be powered off cleanly. Embedded systems need to be designed so that any unexpected power loss (such as switching off the master switch on an aircraft) will not cause corruption in the operating system or data loss from the application software running on the device.<\/p>\n\n\n\n<p>To be operated safely in an embedded application, a single-board computer requires measures to secure its power supply (such as <a href=\"https:\/\/hackaday.io\/project\/9461-lifepo4weredpi\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Uninterruptible Power Supply\">this one<\/a> for Raspberry Pi, for example), which give the operating system enough time to shut down properly. In the context of a DIY project, the system is therefore more complex and more likely to fail. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Microcontrollers<\/h3>\n\n\n\n<p>They are much better suited to embedded tasks; powering off is their standard shutdown procedure. In addition, sunlight-readable HDMI displays are very unusual and exceptionally usable in both portrait and landscape modes. For these reasons, HDMI displays are neither suitable nor easy to use in our avionics applications. The graphics computing power of a single-board computer, when paired with graphics software such as Processing, is undoubtedly much greater than that of a microcontroller \u2026 But we will see that there are good alternatives.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MIPI-DSI<\/h2>\n\n\n\n<p> Like HDMI, it is another industry-grade interface. Some high-end, high-cost microcontroller boards (STM32, Arduino Portenta, etc.) embed a high-performance graphics controller and support it. The scarcity of MIPI-DSI displays, combined with the high complexity of these microcontrollers and the absence of appropriate graphical libraries, makes their usage in a DIY avionics project virtually impossible for an amateur. These boards are instead dedicated to industrial and professional applications; they fall outside the domain of the amateur to whom this site is intended.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Serial interface<\/h2>\n\n\n\n<p>This is the most suitable interface category for microcontrollers. The serial interface can use the I2C or SPI protocol.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">I2C<\/h3>\n\n\n\n<p>I2C can control a device with just two I\/O pins: SDA and SCL. Several devices can coexist on an I2C bus as long as they have different addresses. This bus is relatively slow, ideally suited to sensors but less so to displays. Some alphanumeric monochrome LCDs, such as the one in Figure 3, although having a parallel interface as standard, can be connected to an I2C bus using a parallel-to-I2C interface board soldered on the bottom of the display board. <\/p>\n\n\n\n<p>To display a few lines of text, the I2C bus is more than adequate. A display of this type could have its place on an instrument panel, for example, to display some engine parameters, the position of a trim, the settings of an autopilot, etc.<\/p>\n\n\n\n<p>This well-proven technology, however, has a somewhat austere, old-fashioned look and operates at 5 volts, while recent microcontrollers operate at 3.3 volts.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"532\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/lcd_alphanum_I2C-1024x532.jpg\" alt=\"\" class=\"wp-image-387\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/lcd_alphanum_I2C-1024x532.jpg 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/lcd_alphanum_I2C-300x156.jpg 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/lcd_alphanum_I2C-768x399.jpg 768w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/lcd_alphanum_I2C-1536x798.jpg 1536w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/lcd_alphanum_I2C-1200x623.jpg 1200w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/lcd_alphanum_I2C.jpg 1922w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 3: Alphanumeric LCD (4 lines &#8211; 20 characters) connected to an I2C bus: two wires for the power supply and two for the bus. On the right, we can see the small I2C interface board soldered to the back of the display board.<\/figcaption><\/figure>\n\n\n\n<p>There are also OLED displays using the I2C bus, often small and with low resolution. They can display short texts or very simple graphics. They can be used with a 3.3-volt power supply.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SPI<\/h3>\n\n\n\n<p>Due to the rudimentary, somewhat outdated nature of monochrome alphanumeric LCDs, color graphics displays are generally preferred. TFT technology is by far the most widespread. SPI connection is the most common. TFT displays with a SPI interface use various controllers, including ILI9341, ST7735, HX8357, and RA8875, among others. Their sizes vary from less than 2 inches diagonally up to 7 inches. Their resolutions range from 128 x 160 to 800 x 480 pixels, and some models include a touch interface.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">The SPI interface<\/h5>\n\n\n\n<p>It is significantly faster than the I2C one. Four wires are required: MISO, MOSI, CLK, and CS. SPI suits the needs of these TFT displays and personal avionics systems quite well. However, this interface has some drawbacks compared to parallel RGB interfaces (see below): there is no synchronization between the microcontroller and the display&rsquo;s timing signals. <\/p>\n\n\n\n<p>In addition, the controllers of these displays do not embed multiple frame buffers. This can lead to annoying flickering during fast animations, manifested as dark lines or bands that scroll vertically. The animations are to be used sparingly. The best way to avoid flickering is to update only the areas of the screen that change, and keep these changes as limited as possible. <\/p>\n\n\n\n<h5 class=\"wp-block-heading\">How to prevent flickering?<\/h5>\n\n\n\n<p>These prevention principles are impossible to apply in the example of video 1, where a large circular surface is moving. The circle is successively displayed, then erased by drawing an identical circle with the background color (here, black), and then shown again in green at the following location: flickering guaranteed! You should not ever think of programming a video game with moving sprites using a microcontroller and a TFT SPI display!<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/flickering.mp4\"><\/video><figcaption class=\"wp-element-caption\">Video 1: Flickering characteristic of an animation on a color TFT screen connected via SPI.<\/figcaption><\/figure>\n\n\n\n<p>Avionics displays can do without sprites. However, displaying the artificial horizon of an EFIS can be a real challenge. It is necessary to display many textual and graphic objects (which may vary quickly) on a mobile background representing the sky in blue and the earth in ochre. <\/p>\n\n\n\n<h5 class=\"wp-block-heading\">The RA8875 graphic controller<\/h5>\n\n\n\n<p>To overcome this difficulty, for our Teensy-based EFIS project, we chose to use a display equipped with an RA8875 controller. The latter serves as an interface between the microcontroller, to which it is connected in SPI, and the TFT panel to which it is connected via a parallel RGB interface (Fig. 4). The RA8875 allows two different layers to be managed separately, each with its dedicated memory, which brings it closer to the principle of double frame buffering. <span style=\"box-sizing: border-box; margin: 0px; padding: 0px;\">This controller also benefits from an exceptionally&nbsp;<a href=\"https:\/\/github.com\/PaulStoffregen\/RA8875\/tree\/RA8875_t4\" target=\"_blank\">efficient and fast library<\/a>, forked from Sumotoy&rsquo;s outdated l<\/span>ibrary and optimized for Teensy boards.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"849\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/ecran_buydisplay-1024x849.jpg\" alt=\"\" class=\"wp-image-413\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/ecran_buydisplay-1024x849.jpg 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/ecran_buydisplay-300x249.jpg 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/ecran_buydisplay-768x637.jpg 768w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/ecran_buydisplay-1536x1274.jpg 1536w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/ecran_buydisplay-2048x1698.jpg 2048w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/ecran_buydisplay-1200x995.jpg 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 4: The display used for our early EFIS prototypes is from EastRising \/ BuyDisplay. The panel is matte; the brightness is 1000 cd\/m\u00b2. Power supply: 5 volts, logic: 3.3 volts. On the left, we see the RA8875 controller in the middle of the printed circuit board, glued to the back of the LCD panel. A 40-pin flat flexible cable connects the controller to this panel.<\/figcaption><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">The RA8875 library<\/h5>\n\n\n\n<p>The main drawback of this library, which is the price to pay for its speed, is that it does not correctly handle attempts to display pixels outside the display resolution&rsquo;s coordinate bounds. It is up to the programmer to either manage these overruns at the cost of slowing the calculations or to avoid them. The second solution was chosen for our EFIS, which led to a small concession in the usual appearance of an artificial horizon: the pitch graduations rotate with the horizon but do not move vertically with it; see video 2.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/07\/DemoEFIS.mp4\"><\/video><figcaption class=\"wp-element-caption\">Video 2: Bench view of a debugging version of the EFIS using the display mentioned in the legend of Figure 4, and a Teensy 4.1 board. The AHRS module, connected to a serial port, is moved manually. There is no flickering associated with the movements of the horizon. The ball is transparent to avoid a \u201csprite\u201d effect.<\/figcaption><\/figure>\n\n\n\n<h5 class=\"wp-block-heading\">Which RA8875 controller to use?<\/h5>\n\n\n\n<p>The EastRising \/ BuyDisplay displays have a few additional features that are not useful for our projects: a microSD slot, SPI Flash memory, and keyboard slots. In addition, they tend to malfunction, for example, when the SPI connection exceeds a few centimeters or when a solderless breadboard is used for testing. Incomprehensible black screens are not uncommon. <\/p>\n\n\n\n<p>For these reasons, we prefer to use the far more reliable Adafruit RA8875 controller and a separate panel, like <a href=\"https:\/\/riverdi.com\/product\/high-brightness-ips-display-rvt50hqtfwn00-5-inch-rgb-frame\" target=\"_blank\" rel=\"noopener\" title=\"Riverdi 5&quot; 800 x 400 TFT panel\">this one<\/a>, which has the significant advantage of IPS technology (Wide Viewing Angles). This allows greater flexibility in arranging elements installed on the instrument panel. Indeed, the RA8875 controller board can be integrated onto the same PCB as the Teensy board, ensuring the most reliable and shortest possible SPI connection. Unlike the SPI connection, the parallel RGB connection (40-conductor FFC cable) between the RA8875 controller and the TFT panel can be extended without inconvenience, thanks to a 20 cm extension (Fig. 5). See <a href=\"https:\/\/avionicsduino.com\/index.php\/fr\/efis\/\" title=\"EFIS page\">EFIS page<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"992\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/11\/RA8875_Adafruit-1024x992.jpg\" alt=\"LCD display screen\" class=\"wp-image-982\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/11\/RA8875_Adafruit-1024x992.jpg 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/11\/RA8875_Adafruit-300x291.jpg 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/11\/RA8875_Adafruit-768x744.jpg 768w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/11\/RA8875_Adafruit-1200x1162.jpg 1200w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2021\/11\/RA8875_Adafruit.jpg 1500w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 5: Adafruit RA8875 controller and Riverdi IPS matte panel, with a 20 cm FFC extension cable for the RGB parallel connection to the TFT panel.<\/figcaption><\/figure>\n\n\n\n<p>High-brightness 5&Prime; LCD panels require more backlight power current than 4.3&Prime; panels. For this reason, it is necessary to solder the two pads labeled \u201c+100mA\u201d on the back of the RA8875 controller (fig. 6).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"621\" height=\"447\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2022\/12\/RA8875_back.jpg\" alt=\"\" class=\"wp-image-2653\" style=\"width:621px;height:447px\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2022\/12\/RA8875_back.jpg 621w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2022\/12\/RA8875_back-300x216.jpg 300w\" sizes=\"auto, (max-width: 621px) 85vw, 621px\" \/><figcaption class=\"wp-element-caption\">Figure 6: Solder pads to increase RA8875 backlight current.<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Parallel interface<\/h2>\n\n\n\n<p>With parallel interfaces (or RGB-parallel), each bit of each color (Red, Green, Blue) is transmitted on a separate line. So 24 lines are required if each color is coded on 8 bits; this is called RGB888 mode. \u00ab\u00a0Only\u00a0\u00bb 16 lines are needed for the RGB565 mode, where Red and Blue are coded on 5 bits and Green on 6 bits. Several other lines are required for vertical and horizontal synchronization, clock signal, etc. And one line implies one pin. So, many microcontroller boards just lack enough pins. And of course, a high computational power and a lot of memory are required to manage all these pins and signals.<\/p>\n\n\n\n<p>The advantage of such a parallel RGB graphic interface, combined with double buffering (one block of data is currently displayed while another is being updated), is its high refresh rate. But this requires a lot of resources, especially memory. In return, it allows fast animations without the slightest flicker.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Is a parallel RGB interface compatible with microcontrollers?<\/h5>\n\n\n\n<p>Until recently, this type of interface failed to meet the essential principles outlined on the home page: simplicity and cost-effectiveness. The recent advent of low-cost ESP32 displays, combined with the emergence of two dedicated awesome graphical libraries (<a href=\"https:\/\/github.com\/Bodmer\/TFT_eSPI\" target=\"_blank\" rel=\"noopener\" title=\"TFT_eSPI library\">TFT_eSPI<\/a> and <a href=\"https:\/\/github.com\/lovyan03\/LovyanGFX\" target=\"_blank\" rel=\"noopener\" title=\"LovyanGFX library\">LovyanGFX<\/a>), has radically changed the&nbsp;situation. Figure 7 shows one of these ESP32 displays.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"297\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/ESP32_8048S043C_Display-1024x297.png\" alt=\"\" class=\"wp-image-5211\" style=\"object-fit:cover\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/ESP32_8048S043C_Display-1024x297.png 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/ESP32_8048S043C_Display-300x87.png 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/ESP32_8048S043C_Display-768x222.png 768w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/ESP32_8048S043C_Display-1536x445.png 1536w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/ESP32_8048S043C_Display-1200x348.png 1200w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/ESP32_8048S043C_Display.png 1716w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 7: Sunton ESP32-8048S043C display. It is a 4.3&Prime; display, 800 x 480 with a capacitive touch screen. The ESP32-S3-WROOM 1 module directly controls the TFT panel&rsquo;s driver without any other controller via a flexible 40-pin FFC flat ribbon cable. In RGB565 mode, 21 GPIOs of the ESP32 module are used for the display.<\/figcaption><\/figure>\n<\/div>\n\n\n<p>The graphical capabilities of these displays, coupled with the LovyanGFX library (the one we prefer), are outstanding. The extensive use of sprites enables professional-quality, flicker-free animations. A very realistic artificial horizon becomes feasible. Figure 8 shows the new AvionicsDuino <a href=\"https:\/\/avionicsduino.com\/index.php\/en\/esp32-efis-ems\/\" title=\"ESP32 EFIS-EMS\">ESP32 EFIS-EMS<\/a>, which has been developed with a 7&Prime; display.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"600\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/EFIS-EMS-ESP32_prototype_Display.png\" alt=\"\" class=\"wp-image-5223\" style=\"width:700px\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/EFIS-EMS-ESP32_prototype_Display.png 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/EFIS-EMS-ESP32_prototype_Display-300x176.png 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/EFIS-EMS-ESP32_prototype_Display-768x450.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 8: An EFIS and an EMS on the same 7&Prime; ESP32-S3 display.<\/figcaption><\/figure>\n<\/div>\n\n\n<p>The brightness of all commercially available ESP32 displays is far too low. Furthermore, their glossy touchscreens are highly reflective and difficult to use in turbulent conditions. For these reasons, and specifically for the EFIS-EMS project, a custom ESP32-S3 controller board was developed. It is paired with a 1000 cd\/m\u00b2 non-touch matte TFT panel. This display system is controlled by six push buttons on the front panel. See the \u00ab\u00a0ESP32 EFIS EMS\u00a0\u00bb page. This system uses another ESP32-S3 microcontroller for its Remote Data Acquisition Module (RDAM).<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>(TFT-LCD display for DIY avionics: last updated by Benjamin on March 25, 2026) The selection of a TFT-LCD display for DIY avionics projects depends on many factors. Type of display, connection interface, library availability and quality, and brightness must be considered. The size and resolution will depend on the software application and the space available &hellip; <a href=\"https:\/\/avionicsduino.com\/index.php\/en\/lcd-display-screens\/\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;TFT-LCD display for DIY avionics&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-339","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/avionicsduino.com\/index.php\/wp-json\/wp\/v2\/pages\/339","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/avionicsduino.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/avionicsduino.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/avionicsduino.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/avionicsduino.com\/index.php\/wp-json\/wp\/v2\/comments?post=339"}],"version-history":[{"count":94,"href":"https:\/\/avionicsduino.com\/index.php\/wp-json\/wp\/v2\/pages\/339\/revisions"}],"predecessor-version":[{"id":5512,"href":"https:\/\/avionicsduino.com\/index.php\/wp-json\/wp\/v2\/pages\/339\/revisions\/5512"}],"wp:attachment":[{"href":"https:\/\/avionicsduino.com\/index.php\/wp-json\/wp\/v2\/media?parent=339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}