{"id":5274,"date":"2025-12-12T22:45:00","date_gmt":"2025-12-12T21:45:00","guid":{"rendered":"https:\/\/avionicsduino.com\/?page_id=5274"},"modified":"2026-04-10T21:21:37","modified_gmt":"2026-04-10T20:21:37","slug":"esp32-efis-ems","status":"publish","type":"page","link":"https:\/\/avionicsduino.com\/index.php\/en\/esp32-efis-ems\/","title":{"rendered":"ESP32 EFIS-EMS"},"content":{"rendered":"\n<p style=\"font-size:10px\">(ESP32 EFIS-EMS: last updated by Benjamin on April 10, 2026)<\/p>\n\n\n\n<p>ESP32 EFIS-EMS is a completely redesigned system that combines an EFIS and an EMS on a single 7-inch display. The previous system featured two screens, one for the EFIS and the other for the EMS, both powered by Teensy 4.1 boards. This new system stands out by introducing ESP32 microcontrollers. These microcontrollers, on the one hand, enable significant improvements to the graphical user interface and, on the other hand, enable wireless communication between specific components.<\/p>\n\n\n\n<p>Readers are encouraged to refer to the \u201c<a href=\"https:\/\/avionicsduino.com\/index.php\/en\/lcd-display-screens\/\" title=\"TFT-LCD Display\">TFT-LCD display for DIY avionics<\/a>\u201d and \u201c<a href=\"https:\/\/avionicsduino.com\/index.php\/en\/arduino-and-teensy-microcontroller-boards\/\" title=\"Microcontroller boards\">Microcontroller boards<\/a>\u201d pages, which have been revised accordingly. One of the main goals of this new system was to completely overhaul the user interface to give it a look more similar to that of professional instruments. Two other objectives were to minimize the overall system size and to improve the quality of connections to the many sensors.<\/p>\n\n\n\n<p>A pre-prototype of this system has first undergone successful flight tests, as shown below. These tests aimed to validate several options and innovations, enabling evolution toward the current final architecture.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ESP32 EFIS-EMS Architecture<\/h2>\n\n\n\n<p>The ESP32 EFIS-EMS incorporates several existing elements that remain unchanged, namely the <a href=\"https:\/\/avionicsduino.com\/index.php\/en\/the-ahrs\/\" title=\"AHRS\">AHRS<\/a>, the <a href=\"https:\/\/avionicsduino.com\/index.php\/en\/teensy-micro-ems\/\" title=\"Micro-EMS\">micro-EMS<\/a>, and the remote magnetometer and external temperature and humidity sensor module, or RCM (<a href=\"https:\/\/avionicsduino.com\/index.php\/en\/digital-compass\/\" title=\"Remote Compass Module\">Remote Compass Module<\/a>). Two new modules are introduced: a display module and a remote data acquisition module, or RDAM. The RDAM should be considered the central data acquisition module. The AHRS, micro-EMS, and RCM are specialized data acquisition modules. All these modules communicate with each other via the <a href=\"https:\/\/avionicsduino.com\/index.php\/en\/can-bus\/\" title=\"CAN bus\">CAN bus<\/a>. Additionally, the RDAM and the display module communicate with each other over Wi-Fi. This architecture is illustrated in Figure 1.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"496\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/Architecture-EFIS-EMS_ESP32_future-1024x496.png\" alt=\"ESP32 EFIS-EMS\" class=\"wp-image-5276\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/Architecture-EFIS-EMS_ESP32_future-1024x496.png 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/Architecture-EFIS-EMS_ESP32_future-300x145.png 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/Architecture-EFIS-EMS_ESP32_future-768x372.png 768w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/Architecture-EFIS-EMS_ESP32_future-1536x745.png 1536w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/Architecture-EFIS-EMS_ESP32_future-1200x582.png 1200w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/Architecture-EFIS-EMS_ESP32_future.png 1869w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 1: Diagram representing the architecture of the EFIS-EMS-ESP32. <\/figcaption><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p>This modular architecture aligns with the overall IMA (Integrated Modular Avionics) philosophy of the AvionicsDuino project. The modules each handle a specific function and communicate with one another via the CAN bus. The advantage of this modular architecture is the ease of maintaining and evolving the entire system.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ESP32 EFIS-EMS provisional prototype <\/h2>\n\n\n\n<p>To validate this new system and continue development, a temporary prototype was first flight-tested, as mentioned above.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The display module prototype<\/h3>\n\n\n\n<p>This prototype included a 7-inch <a href=\"https:\/\/www.elecrow.com\/pub\/wiki\/ESP32_Display-7.0_inch%28Advance_Series%29wiki.html\" target=\"_blank\" rel=\"noopener\" title=\"Elecrow Crow Panel Advance 7.0\">commercial display module<\/a> with IPS-quality performance and an 800 x 480 resolution. The graphics controller for this display is an ESP32-S3 system-on-a-chip (SoC) integrated into a PCB bonded to the back of the TFT panel. The entire graphical interface is therefore programmed on this ESP32.<\/p>\n\n\n\n<p>This display features a capacitive touch layer, which enabled testing of a menu system without buttons or rotary encoders under real-world conditions. It was also desirable to test under direct sunlight a glossy, medium-brightness (400 cd\/m\u00b2) display, which is representative of similar commercially available touchscreen displays. And also to test the ESP32&rsquo;s wireless communication capabilities using <a href=\"https:\/\/www.espressif.com\/en\/solutions\/low-power-solutions\/esp-now\" target=\"_blank\" rel=\"noopener\" title=\"ESP-NOW protocol\">Espressif\u2019s ESP-NOW protocol<\/a>, which operates over Wi-Fi. For these initial tests, the only electrical connection of this display module to the aircraft was its power supply. It was not connected to the CAN bus.<\/p>\n\n\n\n<p>For these initial tests, no changes to the aircraft&rsquo;s electrical circuits or the existing instruments on the panel were required. The display module, mounted in a 3D-printed ABS enclosure, was placed on a temporary support in front of the glove compartment. It was powered via its USB port, connected to a phone charger plugged into the aircraft&rsquo;s cigarette lighter socket.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The temporary pressure sensor module<\/h3>\n\n\n\n<p>Therefore, a small additional module was specifically designed for these tests, also based on an ESP32-S3 chip, and foreshadowing the future RDAM. It was connected to the CAN bus and communicated with the display module via ESP-NOW, serving as an intermediary between the display module and the rest of the avionics. <\/p>\n\n\n\n<p>This module included, in addition to a CAN bus transceiver, a barometric pressure sensor (AMS5915-1500A) connected to the static pressure circuit, and a differential sensor (AMS5915-0050D) connected to the static port and Pitot probe (the same pressure sensors as the current Teensy EFIS). The module received all engine data via the CAN bus from the existing Teensy EMS and micro-EMS, as well as other EFIS data from the AHRS and the remote magnetometer.&nbsp;<\/p>\n\n\n\n<p>No changes to the software of the EFIS, EMS, micro-EMS, AHRS, or remote magnetometer were necessary for these tests, as all data processed by these instruments were already being sent to the CAN bus. This module was placed in a temporary 3D-printed enclosure, secured with Velcro under the instrument panel (Fig. 2).<\/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=\"814\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/EFIS_EMS_ESP32_Proto_Provisoire.png\" alt=\"ESP32 EFIS-EMS\" class=\"wp-image-5278\" style=\"width:600px\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/EFIS_EMS_ESP32_Proto_Provisoire.png 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/EFIS_EMS_ESP32_Proto_Provisoire-300x238.png 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/EFIS_EMS_ESP32_Proto_Provisoire-768x611.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 2: The first ESP32 EFIS-EMS prototype in flight. The temporary module, housed in a green case, is attached to the underside of the instrument panel with Velcro. This module is connected to the aircraft&rsquo;s static pressure port and Pitot probe (blue tubing). The display module is powered via its USB port through an adapter inserted into the cigarette lighter socket.<\/figcaption><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p>For these tests, the system architecture was therefore as shown in Figure 3.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"378\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/07\/Architecture_EFIS-EMS-ESP32-1024x378.png\" alt=\"ESP32 EFIS-EMS\" class=\"wp-image-4929\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/07\/Architecture_EFIS-EMS-ESP32-1024x378.png 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/07\/Architecture_EFIS-EMS-ESP32-300x111.png 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/07\/Architecture_EFIS-EMS-ESP32-768x284.png 768w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/07\/Architecture_EFIS-EMS-ESP32-1200x443.png 1200w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/07\/Architecture_EFIS-EMS-ESP32.png 1475w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 3: Provisional architecture of the EFIS-EMS-ESP32 for the initial flight tests. <\/figcaption><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p>Therefore, this prototype was operating in parallel with the existing Teensy EMS and EFIS systems.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Provisional prototype flight test results<\/h2>\n\n\n\n<p>They validated the essential principles of this new system and identified areas for improvement. The photo in Figure 4 and the video below (Video 1) were taken during the first test flight. In the image, the ESP32 EFIS-EMS is on the right, with its single display, and the Teensy EFIS and EMS on the left. Below and to the right of the instrument panel, you can see the green temporary module.<\/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=\"768\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/07\/EFIS-EMS-ESP32_01.jpg\" alt=\"ESP32 EFIS-EMS\" class=\"wp-image-4950\" style=\"width:600px\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/07\/EFIS-EMS-ESP32_01.jpg 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/07\/EFIS-EMS-ESP32_01-300x225.jpg 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/07\/EFIS-EMS-ESP32_01-768x576.jpg 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 4: The first prototype of the new ESP32 EFIS-EMS in flight, next to the Teensy EFIS and EMS.<\/figcaption><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Data comparison<\/h3>\n\n\n\n<p>The data displayed by both systems were identical, including those from the two sets of pressure sensors in the two EFIS. These EFIS pressure data had undergone extensive validation, partly by comparing them with the reference Dynon D10 EFIS installed on this aircraft (see the <a href=\"https:\/\/avionicsduino.com\/index.php\/en\/efis-2\/\" title=\"EFIS\">EFIS page<\/a>) and partly through an experimental study of the pressure sensors used (see the <a href=\"https:\/\/avionicsduino.com\/index.php\/en\/efis-pressure-sensors\/\" title=\"EFIS pressure sensors\">EFIS pressure sensors page<\/a>).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ESP-NOW and electromagnetic compatibility<\/h3>\n\n\n\n<p>The ESP-NOW communication between modules was faultless. No electromagnetic interference was observed between this prototype, housed in temporary non-shielded enclosures, and the aircraft radioelectric system. Despite the suboptimal PCB design of the temporary pressure sensor module.<\/p>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/07\/EFIS_EMS_ESP32_01.mp4\"><\/video><figcaption class=\"wp-element-caption\">Video 1: The first prototype of the new ESP32 EFIS-EMS in flight, next to the Teensy EFIS and EMS.&nbsp;<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Display quality and touchscreen ergonomics<\/h3>\n\n\n\n<p>This first flight was conducted under ideal conditions at sunset. The photo and video were taken with a low-angle, low-intensity light from the front. Of course, no reflections were noted on the matte displays of the Teensy EFIS and EMS. Very mild reflections on the glossy ESP32 EFIS-EMS display were tolerable.&nbsp;<\/p>\n\n\n\n<p>However, during subsequent daytime flights, with the sun much higher in the sky and directly on the display, 400 cd\/m\u00b2 proved seriously insufficient. Additionally, this glossy touchscreen is prone to strong reflections, glare, and mirroring, unlike the matte non-touch displays.&nbsp;<\/p>\n\n\n\n<p>Moreover, while it seemed satisfactory on the bench, using the touchscreen menu proved ergonomically poor and quite tedious in even mild turbulence, despite the precaution of programming large tactile buttons, as seen in Video 2.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/07\/Menu_tactile.mp4\"><\/video><figcaption class=\"wp-element-caption\">Video 2: Initial version of the menu system with touchscreen<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">New version of the display module<\/h2>\n\n\n\n<p>Regarding reflections on touchscreen displays, anti-reflective filters could have been considered, but they reduce brightness and sharpness. Therefore, they are not an ideal solution, especially on screens that are already insufficiently bright.<\/p>\n\n\n\n<p>Since no 7-inch, matte, IPS, sunlight-readable ESP32 non-touch screen was available on the market, it was necessary to make one. It is based on a custom printed circuit board using an <a href=\"https:\/\/documentation.espressif.com\/esp32-s3-wroom-1_wroom-1u_datasheet_en.pdf\" target=\"_blank\" rel=\"noopener\" title=\"ESP32-S3-WROOM 1\">ESP32-S3-WROOM 1<\/a> N16R8 SoC and a Newhaven <a href=\"https:\/\/newhavendisplay.com\/7-inch-ips-tft-lcd-without-touchscreen\/\" target=\"_blank\" rel=\"noopener\" title=\"Newhaven NHD-7.0-800480AF-ASXP\">NHD-7.0-800480AF-ASXP TFT<\/a> panel. This panel is matte, IPS, non-touch, and has a brightness of 1000 cd\/m\u00b2.<\/p>\n\n\n\n<p>For interaction with menus and the graphical user interface, the touchscreen was definitively abandoned in favor of a row of six push buttons located below the screen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Results<\/h3>\n\n\n\n<p>The overall appearance is shown in Figure 5, which depicts the display module in its 3D-printed ABS enclosure.<\/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=\"708\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/09\/EFIS-EMS-ESP32_02.png\" alt=\"ESP32 EFIS-EMS\" class=\"wp-image-4993\" style=\"width:600px\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/09\/EFIS-EMS-ESP32_02.png 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/09\/EFIS-EMS-ESP32_02-300x207.png 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/09\/EFIS-EMS-ESP32_02-768x531.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 5: The final display module on the bench, with its 6-key mini-keyboard for user interaction. <\/figcaption><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p>Bench tests were very satisfactory. The matte 1000 cd\/m\u00b2 screen remains perfectly readable under direct sunlight, with no reflections or mirroring, and the keyboard works flawlessly (video 3).<\/p>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/EFIS-EMS-ESP32_Buttons.mp4\"><\/video><figcaption class=\"wp-element-caption\">Video 3: Final version of the menu system with a 6-key mini-keyboard.<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>The design of this display module is now stable; no further changes are planned. Without making any changes, it can use either an ESP32-S3-WROOM 1 or an ESP32-S3-WROOM 1u module; the latter has a U.FL connector for a remote Wi-Fi antenna rather than an antenna embedded on the SoC\u2019s PCB. This could be useful to improve the quality of ESP-NOW communication with the RDAM. For example, if the two modules are placed on opposite sides of an aluminium instrument panel, that could act as an RF screen. The display module is also equipped with a CAN transceiver, in case the CAN bus is preferred to ESP-NOW. With some software adaptation, users can therefore make their own choice.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Display Module download section<\/h3>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/ESP32_EFIS-EMS_Display_Controller_V1.pdf\" title=\"AvionicsDuino ESP32 EFIS-EMS Display Controller V1 Schematics\">Schematics<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/ESP32_EFIS-EMS_Display_Controller_V1_KiCAD_V8_files.zip\" title=\"AvionicsDuino_ESP32_EFIS-EMS_Display_Controller_V1_KicadV8_Files\">KiCAD V8 files<\/a>&nbsp;(Note: This file is OK; the minor silkscreen error from the previous version has been fixed.)<\/p>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/ESP32_EFIS-EMS_Display_Controller_GerberAndDrillFiles.zip\" title=\"AvionicsDuino ESP32 EFIS-EMS Display Controller V1 Gerber and drill&nbsp;files\">Gerber and drill&nbsp;files<\/a> (Same note as above)<\/p>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/ESP32-EFIS-EMS-Display-Controller-V1_BOM.zip\" title=\"AvionicsDuino ESP32 EFIS-EMS Display Controller V1 BOM\">BOM<\/a>&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2025\/12\/AvionicsDuino_ESP32_EFIS_EMS_DisplayModule_STL_files.zip\" title=\"STEP files\">Enclosure STEP files<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/bfrmd\/ESP32-EFIS-EMS-Avionicsduino\" target=\"_blank\" rel=\"noopener\" title=\"ESP32 EFIS-EMS source code\">AvionicsDuino ESP32 EFIS-EMS: Download source code on GitHub<\/a><\/p>\n\n\n\n<p>For the display module, in the Arduino IDE, select the ESP32S3 Dev Module board. Then Flash Size: \u00ab\u00a016MB (128 Mb\u00a0\u00bb, Partition Sheme: \u00ab\u00a0Huge APP (3MB No OTA\/1MB SPIFFS)\u00a0\u00bb, PSRAM: \u00ab\u00a0OPI PSRAM\u00a0\u00bb.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Remote Data Acquisition Module<\/h2>\n\n\n\n<p>There were several choices to be made: should separate PCBs be used for the EFIS and EMS, as in the current Teensy AvionicsDuino system, or should they be combined on a single PCB? And on the other hand, which microcontroller to use: Teensy 4.x or ESP32?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The PCB<\/h3>\n\n\n\n<p>To maximize space utilization, a single 4-layer PCB was selected to increase component density and further improve compatibility and immunity against electromagnetic interference.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The microcontroller<\/h3>\n\n\n\n<p>Regarding the microcontroller choice, the ESP32-S3 was selected to leverage Wi-Fi ESP-NOW connectivity with the display module. The Seeed Studio XIAO ESP32-S3 board is ideal for its compact form factor. However, as a consequence of this choice, the well-known issue with the ESP32&rsquo;s poor analog-to-digital converter (ADC) has arisen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ESP32 ADC issues<\/h3>\n\n\n\n<p>Like many users, we observed nonlinearity in the only available ADC (the second is reserved for the system). By following Espressif&rsquo;s calibration procedure, the linearity could be improved. But there is a second issue with this ADC: it is noisy (especially compared to the ADCs on Teensy 4.x boards), especially when Wi-Fi is active.<\/p>\n\n\n\n<p>Therefore, it was decided to use two external I2C ADCs (<a href=\"https:\/\/www.ti.com\/lit\/ds\/symlink\/ads7828.pdf\" target=\"_blank\" rel=\"noopener\" title=\"ADS7828\">ADS7828<\/a>), one for ratiometric sensors and the other for non-ratiometric sensors.<\/p>\n\n\n\n<p>A first prototype and then the definitive RDAM have been assembled and tested. Numerous preliminary bench tests on small sub-assemblies gave cause for optimism. However, it was necessary to demonstrate that a single ESP32-S3 could simultaneously manage Wi-Fi, the CAN bus, and six slave devices on the I2C bus (two external ADC and four pressure sensors) while maintaining a sufficient sampling rate. Knowing the other shortcomings of the ESP32.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Other ESP32 potential issues<\/h3>\n\n\n\n<h5 class=\"wp-block-heading\">The I2C bus<\/h5>\n\n\n\n<p>A concern could specifically have come from the I2C bus. Even when strictly following Espressif\u2019s procedures for I2C bus and slave device initialization, oscilloscope and logic analyzer readings show non-reducible latencies of 50-70 \u00b5s between I2C transactions, decreasing bus bandwidth. This could potentially impair the sampling rate and, consequently, the quality of digital data filtering. Such latencies were not observed with Teensy boards.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">The noise issue<\/h5>\n\n\n\n<p>A second cause for concern was noise. External ADC tests on breadboards, using jumper wires and Dupont connectors, without a ground plane, raised serious concerns about what might come next. In similar experimental conditions, Teensy boards, with their own ADC, proved much less noisy.<\/p>\n\n\n\n<p>The first prototype of the 4-layer PCB, with two ground planes, demonstrated that the design was sound. Despite the aforementioned latencies, the sampling rate of the 6 slave devices on the I2C bus is excellent (300 Hz), while also ensuring the necessary communication over the CAN bus and Wi-Fi for ESP-NOW.<\/p>\n\n\n\n<p>The ground planes and the strict analog-digital separation on the PCB significantly reduced noise compared to the initial breadboard tests. Digital filtering virtually eliminates residual noise.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The definitive RDAM<\/h3>\n\n\n\n<p>Some minor changes to the first prototype were necessary due to design errors (specifically, incorrect footprints for some components and the omission of ground points among the PCB test points). The final RDAM PCB is now ready.<\/p>\n\n\n\n<p>Actually, there are two PCBs sandwiched together (Fig. 6). The top four-layer PCB houses all the components and SUB-D connectors on its top layer, and all the pressure sensors on its bottom layer. The two-layer bottom PCB is the power supply module, providing 5 V from the 14 V aircraft electrical system (Fig. 7). The two PCBs are connected via mezzanine connectors. Due to space constraints, the <a href=\"https:\/\/avionicsduino.com\/index.php\/en\/power-supply\/\" title=\"\">power supply module developed for the Teensy EFIS<\/a> was not reused for the ESP32 EFIS-EMS, in favor of a commercially available power supply module.<\/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=\"649\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_two-PCB.png\" alt=\"\" class=\"wp-image-5379\" style=\"width:600px\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_two-PCB.png 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_two-PCB-300x190.png 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_two-PCB-768x487.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 6: The two PCBs are separated by ABS spacers. Here we see the top side of the main PCB, with all the components and the two D-SUB connectors.<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"750\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_two-PCB_sandwich_open.png\" alt=\"\" class=\"wp-image-5380\" style=\"width:600px\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_two-PCB_sandwich_open.png 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_two-PCB_sandwich_open-300x220.png 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_two-PCB_sandwich_open-768x563.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 7: On the left, the underside of the main PCB, with the pressure sensors (total pressure, static pressure, intake manifold pressure; the differential pressure sensor for the AOA is not mounted on this PCB). The brass fittings for the pressure sensors are visible in the upper left corner. On the right is the power supply PCB. It uses a 15W Mean Well module. The mezzanine connectors are visible on both PCBs.<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"283\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/mezzanineConnectors.png\" alt=\"\" class=\"wp-image-5449\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/mezzanineConnectors.png 600w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/mezzanineConnectors-300x142.png 300w\" sizes=\"auto, (max-width: 600px) 85vw, 600px\" \/><figcaption class=\"wp-element-caption\">Figure 8: The mezzanine connectors on the power PCB.<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"254\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAMfittingsDetail.png\" alt=\"\" class=\"wp-image-5450\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAMfittingsDetail.png 500w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAMfittingsDetail-300x152.png 300w\" sizes=\"auto, (max-width: 500px) 85vw, 500px\" \/><figcaption class=\"wp-element-caption\">Figure 9: Pneumatic hose fitting<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"837\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_ABS_enclosure.png\" alt=\"\" class=\"wp-image-5381\" style=\"width:600px\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_ABS_enclosure.png 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_ABS_enclosure-300x245.png 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_ABS_enclosure-768x628.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 10: The 3D-printed ABS enclosure of the RDAM. The additional space to the left of the PCB square footprint is intended to accommodate the pneumatic fittings.<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"883\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAMfittings.png\" alt=\"\" class=\"wp-image-5447\" style=\"width:500px\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAMfittings.png 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAMfittings-300x259.png 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAMfittings-768x662.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 11: The underside of the RDAM enclosure cover plate with the pneumatic fittings. Note the anti-rotation pads.<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"936\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_duringMounting.png\" alt=\"\" class=\"wp-image-5382\" style=\"width:600px\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_duringMounting.png 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_duringMounting-300x274.png 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_duringMounting-768x702.png 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 12: Photo taken during the installation of the RDAM on the front side of the instrument panel. The mounting plate of the display module can be seen through the 57mm holes left by previous analog instruments. The RDAM&rsquo;s AOA function is not yet implemented in this installation.<\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">The Modular Nature of the RDAM<\/h3>\n\n\n\n<p>This is an important characteristic of the RDAM. The components for each function are grouped together. Thus, if not all functions are needed in a particular installation, the relevant components simply need not be soldered onto the PCB.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">The available inputs of the AvionicsDuino RDAM<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>2 for cylinder head temperature<\/li>\n\n\n\n<li>4 for exhaust gas temperature<\/li>\n\n\n\n<li>1 for oil temperature<\/li>\n\n\n\n<li>1 for coolant temperature<\/li>\n\n\n\n<li>2 for oil pressure (1 resistive, 1 Keller)<\/li>\n\n\n\n<li>2 for shunt-based current measurement (1 unidirectional, 1 bidirectional)<\/li>\n\n\n\n<li>1 for an O2 sensor controller (air-to-fuel ratio measurement, AFR)<\/li>\n\n\n\n<li>4 pressure sensors (Static, Pitot, AOA, Intake Manifold Pressure)<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">The inputs used in the above flight tested RDAM<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>2 cylinder head temperature, CHT2 and CHT3<\/li>\n\n\n\n<li>2 exhaust gas temperature, EGT3 and EGT4<\/li>\n\n\n\n<li>1 oil temperature<\/li>\n\n\n\n<li>1 VDO resistive oil pressure sensor<\/li>\n\n\n\n<li>2 shunt-based current measurement<\/li>\n\n\n\n<li>1 AFR<\/li>\n\n\n\n<li>3 pressure sensors (Static, Pitot, Intake Manifold Pressure)<\/li>\n<\/ul>\n\n\n\n<p>The engine is a carbureted 80 CV Rotax 912 UL equipped with a variable-pitch propeller and a homemade back-suction-type mixture control system.<\/p>\n\n\n\n<p>Therefore, many component pads remain free, as shown in Figure 6. A simple way to keep unused pads free of solder for possible future use is to mask the stencil with adhesive aluminum tape before applying the solder paste (Fig. 13).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"661\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/stencil.png\" alt=\"\" class=\"wp-image-5460\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/stencil.png 600w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/stencil-272x300.png 272w\" sizes=\"auto, (max-width: 600px) 85vw, 600px\" \/><figcaption class=\"wp-element-caption\">Figure 13: Masked stencil of the RDAM<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Readers who would like more technical information on the RDAM are invited to read the document \u00ab\u00a0The RDAM PCB: Why and How?\u00a0\u00bb, available for download below.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Remote Data  Acquisition Module download section<\/h3>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/ESP32_EFIS-EMS_RDAM_V1.pdf\" title=\"RDAM main PCB schematics\">Main PCB schematics<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/ESP32_EFIS-EMS_RDAM_V1_KiCAD_V8_files.zip\" title=\"RDAM main PCB Kicad files\">Main PCB KiCAD V8 files<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/ESP32_EFIS-EMS_RDAM_V1_GerberAndDrillFiles.zip\" title=\"RDAM main PCB Gerber and drill files\">Main PCB Gerber and drill&nbsp;files<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/ESP32_EFIS-EMS_RDAM_V1_BOM.zip\" title=\"RDAM main PCB BOM\">Main PCB BOM<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/ESP32_EFIS-EMS_PowerPCB_V1_schematics.pdf\" title=\"RDAM power PCB schematics\">Power PCB schematics<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/ESP32_EFIS-EMS_PowerPCB_V1_KiCAD_V8_files.zip\" title=\"RDAM power PCB KiCAD files\">Power PCB KiCAD V8 files<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/ESP32_EFIS-EMS_PowerPCB_V1_GerberAndDrillFiles.zip\" title=\"RDAM power PCB Gerber and drill files\">Power PCB Gerber and drill&nbsp;files<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/ESP32_EFIS-EMS_PowerPCB_V1_BOM.zip\" title=\"RDAM power PCB BOM\">Power PCB BOM<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/bfrmd\/ESP32-EFIS-EMS-Avionicsduino\" target=\"_blank\" rel=\"noopener\" title=\"ESP32 EFIS-EMS source code\">AvionicsDuino ESP32 EFIS-EMS: Download source code on GitHub<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/The-RDAM-PCB-Why-and-How.pdf\" title=\"The RDAM PCB: How and Why?\">The RDAM PCB: Why and How?<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/RDAM_Enclosure_STEP_files.zip\" title=\"RDAM enclosure STEP files\">RDAM enclosure STEP files<\/a><\/p>\n\n\n\n<p>The STEP files for the RDAM enclosure are provided here primarily for illustrative purposes. The installation in the aircraft used for testing the ESP32 EFIS-EMS is specifically adapted to that aircraft, particularly regarding the RDAM mounting plate on the instrument panel. This plate is fixed to the front side of the panel, using the screw holes left by previous analog instruments, while the display module is fixed to the rear, facing the pilot, using other existing screw holes. The arrangement of these components could be very different in another aircraft.<\/p>\n\n\n\n<p>For the RDAM, in the Arduino IDE, select the XIAO_ESP32S3 board. Then Flash Size: \u00ab\u00a08MB (64 Mb\u00a0\u00bb, Partition Sheme: \u00ab\u00a0Maximum APP (7.9MB APP No OTA\/No FS)\u00a0\u00bb, PSRAM: \u00ab\u00a0OPI PSRAM\u00a0\u00bb.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Flight tests<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/VeryFirstFlightTest.jpg\" alt=\"\" class=\"wp-image-5391\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/VeryFirstFlightTest.jpg 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/VeryFirstFlightTest-300x225.jpg 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/03\/VeryFirstFlightTest-768x576.jpg 768w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\"><em>Figure 10: The very first flight of the final version of the AvionicsDuino 7\u2033 ESP32 EFIS-EMS!<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<p>The first test flights, as expected, revealed a few bugs and software imperfections (insufficient filtering of certain values, errors in calculating currents and G-gorces, QNH setting error, magnetic heading display bug, and circular dial needle display issues on the EMS). <\/p>\n\n\n\n<p>However, the hardware worked immediately as expected. The ESP-NOW communication between the display module and the RDAM functions perfectly. No electromagnetic interference with the aircraft\u2019s electric and radio installation was observed. <\/p>\n\n\n\n<p>The various graphical or textual displayed items are perfectly readable and smooth despite the modest screen refresh rate (between 11 and 12 Hz). The brightness and colors are exceptional, far better than those of the Dynon EFIS D10A, as seen in the videos below (videos 4 and 5). The screen remains readable even in direct sunlight, without glare. The 6-key mini-keyboard makes navigating menus very easy, even in turbulent conditions.<\/p>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/04\/ESP32_EFIS-EMS_01.mp4\"><\/video><figcaption class=\"wp-element-caption\">Video 4: Test flight with the ESP32 EFIS-EMS.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/04\/ESP32_EFIS-EMS_02.mp4\"><\/video><figcaption class=\"wp-element-caption\">Video 5: Test flight with the ESP32 EFIS-EMS.<\/figcaption><\/figure>\n\n\n\n<p>All bugs and display issues were easily fixed. The latest versions of the RDAM and display module programs are available on GitHub.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" style=\"font-size:26px\">User guide<\/h2>\n\n\n\n<p>Figure 11 presents all the elements displayed on the screen.<\/p>\n\n\n<div class=\"wp-block-image is-style-zoooom\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1561\" height=\"1013\" src=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/04\/EFIS-EMS_Display_Legend.png\" alt=\"\" class=\"wp-image-5553\" srcset=\"https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/04\/EFIS-EMS_Display_Legend.png 1561w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/04\/EFIS-EMS_Display_Legend-300x195.png 300w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/04\/EFIS-EMS_Display_Legend-1024x665.png 1024w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/04\/EFIS-EMS_Display_Legend-768x498.png 768w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/04\/EFIS-EMS_Display_Legend-1536x997.png 1536w, https:\/\/avionicsduino.com\/wp-content\/uploads\/2026\/04\/EFIS-EMS_Display_Legend-1200x779.png 1200w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">Figure 11: Presentation of all the elements available on the screen of the ESP32 EFIS-EMS (hover the mouse over the image to zoom).<\/figcaption><\/figure>\n<\/div>\n\n\n<p>The displayed magnetic heading is not corrected for local declination. However, this must be entered under one of the options in the <strong><em>SETUP<\/em><\/strong> menu; it is used to calculate wind direction and speed.<\/p>\n\n\n\n<p>Pressing any key opens the menu at the bottom of the screen, below the artificial horizon. Most of the options are very straightforward and do not require detailed explanations.<\/p>\n\n\n\n<p>The <strong><em>PRESS. CORR<\/em><\/strong>. option in the <strong><em>SETUP<\/em><\/strong> menu should be used on the ground, at an airfield with the lowest possible AMSL altitude. It allows correction of any indicated altitude error due to a slight offset (zero error) in the barometric sensor. You should start by setting the altimeter to the local QNH with the menu\u00a0<strong><em>FLIGHT\u00a0->\u00a0QNH<\/em><\/strong>. If the indicated altitude matches that of the airfield, no correction is needed. If not, adjust <strong><em>PRESS. CORR<\/em><\/strong>. until the indicated altitude is correct. The unit of <strong><em>PRESS. CORR<\/em><\/strong>. is the tenth of a Pascal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Short-term planned developments<\/h2>\n\n\n\n<p>A new menu option will be added to allow correction of a possible altitude error proportional to altitude (span error).<\/p>\n\n\n\n<p>This will be useful on the above-tested EFIS-EMS. On the ground, at the same QNH, the three aircraft altimeters indicate the same altitude. But during climb, a small offset, proportional to altitude, gradually increases linearly. At 5,000 ft, the ESP32 EFIS-EMS indicates an altitude approximately 40 to 60 feet higher than the Dynon and Falcon altimeters, which have been previously verified.<\/p>\n\n\n\n<p>The potential error is specific to each sensor used and can vary from one sensor to another. The Teensy EFIS software (which uses the same pressure sensors) includes such a correction in its code; it is not adjustable in the menus.<\/p>\n\n\n\n<p>A new calibration procedure for the remote magnetometer is currently being studied, based on mag data recorded during flight. At present, the magnetic heading is not always sufficiently accurate because the magnetometer was calibrated before being mounted inside a winglet, which is suboptimal.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(ESP32 EFIS-EMS: last updated by Benjamin on April 10, 2026) ESP32 EFIS-EMS is a completely redesigned system that combines an EFIS and an EMS on a single 7-inch display. The previous system featured two screens, one for the EFIS and the other for the EMS, both powered by Teensy 4.1 boards. This new system stands &hellip; <a href=\"https:\/\/avionicsduino.com\/index.php\/en\/esp32-efis-ems\/\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;ESP32 EFIS-EMS&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-5274","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/avionicsduino.com\/index.php\/wp-json\/wp\/v2\/pages\/5274","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=5274"}],"version-history":[{"count":87,"href":"https:\/\/avionicsduino.com\/index.php\/wp-json\/wp\/v2\/pages\/5274\/revisions"}],"predecessor-version":[{"id":5570,"href":"https:\/\/avionicsduino.com\/index.php\/wp-json\/wp\/v2\/pages\/5274\/revisions\/5570"}],"wp:attachment":[{"href":"https:\/\/avionicsduino.com\/index.php\/wp-json\/wp\/v2\/media?parent=5274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}