EFIS 19264

This page is Archived. Its content might be expired or not relevant.

EFIS prototype board


The idea is to build a backup (or primary?) EFIS for a light experimental aircraft for for a fraction of the cost of functionally similar Dynon, GRT or Garmin unit. It turns out that it is not as hard as it might seem.

The EFIS includes ASI, ALT, VSI, Magnetic compass, Slip indicator (Ball), Attitude indicator (artificial horizon), Flight-time timer, UTC/Local time and G-meter.
QNH and other instrument settings are done via “push-turn” knob (encoder), just like on Dynon or Garmin EFIS.
Version 1.1 includes flight parameters recorder (a sort of black box) on an SD card.

  • CPU Board
    The system built around Arduino Mega 2560 board. At this stage, I’m using a non-genuine 12MHz model. It works just as well as the genuine 16Mhz model but it’s a lot cheaper. I think any other Arduino board would be suitable for the project.
    The board has on-board voltage regulators to supply power for itself and other components, both 5v and 3.3v. The input power could be in the range of 6 and 20v. With a 9v power supply, the system consumes around 125mA.
  • Display
    EFIS screenshot

    EFIS display layout

    When I started I was thinking of using a colour display. As it turns out, good sunlight-readable colour displays are very expensive and require significant processing resources. So, after some research I settled on a 4″ 192×64 pix KS0107/KS0108 based monochrome display from BuyDisplay for $23 USD delivered. The display has a nice white back-light and looks fantastic under direct sunlight. The display has a resolution of 192×64 pixels and is about 4″ diagonal. It is big enough to display all important flight information.

  • Gyro
    For gyro I chose a new BNO-055 sensor from Bosh. It seems to be superior to other popular solid state gyros, mainly because it has internal processor calculating Euler vectors including magnetic heading. It is quite expensive though, and it’s most expensive component of the EFIS (so far).
  • Altimeter
    I tested  BMP-085, BMP-185, BMP-285 and MS5611 sensors and found that MS5611 (aka GY-63) is quite a bit better than the BMP-x85 series. The problem with all these sensors is that they are mounted on the PCB board. There is no nipple to attach a plastic tube to them. I had to build an air-tight enclosure for them so it could be connected to the static port of the airplane. I have built one and it is okayish for testing the system, but I think I’ll have to replace it with some other factory-built sensor that has a nipple. I’m currently testing HSCDANN001BA2A3 on a separate Arduino board.
  • Airspeed sensor
    I used a MPXV5010DP analog differential pressure sensor that should be good for airspeeds up to about 250kn. For slower (below 112kn) aircrafts the MPXV7002DP sensor can be used – it is a bit cheaper.
    I will probably replace the analog sensor with the digital one (I2C), something like Honeywell HSCDDRD001PD2A3 or MS4525DO-DS5AI001DP It might add about $40 to the total cost of the project.
  • Clock
    A board with a DS3231 chip and a rather large replaceable CR2032 battery used as a real-time clock. The battery should last for 2-3 years.


EFIS ver 1.2 Main Components

EFIS Pitot and Static ports

EFIS Pitot and Static ports

Experimental Avionics EFIS up and running

EFIS Display Layout

All the components mentioned above come attached to their PCB boards with all the required circuity. So all that needs to be done to get the device going is to attach these boards together and upload the software.
While testing the design, I used a simple evaluation board. Once the design is stable I’ll make a proper PCB board interconnecting all these tiny sensor boards.

Jamming all of this stuff into the plastic case is the biggest challenge. The display is attached to a large PCB, so the case looks a bit too large for the size of the screen. Anyway, it all fits into the case nicely and it’s ready for testing… at zero ft AGL on top of my car’s dashboard.

Test plan:

  • Airspeed accuracy.
  • Altitude accuracy
  • Magnetic compass.
  • Hot conditions.
  • Effects of vibration.
  • Artificial horizon accuracy (will not try inverted flight in the car 🙂 )

Inside view of the EFIS EFIS pulled apart Arduino Mega and EFIS junction boardexperimental_avionics_efis_9144


Schematics and software downloads

Version 1.0

Version 1.2



My display layout to a great degree is based on the Marc Robitaille prototype of the very similar EFIS. Thank you Marc!
I’m very grateful to many people who put up various instructional videos on YouTube (Dejan Nedelkovski,..).
I also would like to say thank you to good people from Adafruit whose libraries I use in my projects. If you are in the US, I encourage you to buy some stuff from them to support their great work.


76 comments on “EFIS 19264
  1. JOHN GENAT says:



  2. Leon says:

    Excellent article. I am in Australia and building my own Corby Kestrel. I was wondering if it were possible to get a copy of the software please?

    Regards Leon

    • Oleg says:

      I’ll package the Arduino sketch with libraries for you and email them to you. Development is still in progress so it is not a final version, but it will give you an idea of what this EFIS is about.

  3. Alfred says:

    Very nice project for a Ultra Light airplanes…

    Good job Oleg

  4. Hi Oleg,

    Great article. Could you contact me as I would like to get your approval to get this published in the RAAus magazine if possible.

    Great work.

    Please give me a call when you have time.

  5. Jon says:

    Hello, Oleg. I just saw your YouTube video and rushed over to this site. You have done what I was just about to start designing. If you do not mind, I would like to use your design to build upon and design my own AFRS system. I believe your EFIS system coupled with an AFRS system will help many pilots. I will use this system in my experimental glider. Thanks so much for your time and effort in designing your EFIS. I hope you have posted your sketches and schematics.

  6. proking says:

    Bingo!!!Great work!@ @
    hello,I saw your video.I want to learn it from you . Do it replace lcd with TFT.
    I hope to get your help about Wiring diagram.:)

    • Oleg says:

      I’ve tried to use colour TFT displays. They are not very good under direct sunlight. The 19264 LCD display is very good under bright light.

  7. Hi Oleg,
    I made the Mini Efis with the Marc Robitaille base project.
    I install this on my microlight for test and i have some problem:
    With the artificial horizon. This one is to sensitive and is indication is not usable for flight.The sensor is a mpu 6050.
    With the Arduino, at home it works fine, but in flight some time it is frozen!
    So , my question is, do you test yours on plane, test with vibration?
    Thank’s for your answer

    • Oleg says:

      Hi Andre

      I’m planning to start flight-testing the EFIS this weekend. I’ll post the results.
      My EFIS uses BNO-055 orientation sensor. It is by far superior to MPU 6050.


      • André Chaillous says:

        Did you made test in plane or micro light?
        What about the result of AH with vibration?

  8. Christian says:

    Great project!
    I particularly like your feature giving specific bank angle and pitch angle. I fly RPT and the pitch target is very precise. It would be valuable to see fractions of Pitch attitude to at least half a degree, tenths would be better still. I understand that this is just VFR, however 1 degree resolution is a little large a step. With the pitch indicating tenths, it would be possible to see different AOA for different weight and balance situations, interesting if nothing else.
    Would you consider using a GPS module for the time input? That way the user never has to adjust the clock or change a battery. I guess it would cost more but I would be willing to pay extra to eliminate maintenance.
    I will be keenly following your projects closely. They are a great contribution to sport aviation. Great stuff!?

    • Oleg says:

      Comparing AOA to pitch with different W&B is very interesting thought.
      It never crossed my mind as in 2 seat aircraft W&B does not change too much.
      Sensor’s angle resolution is 0.3 degrees, so it might not be enough to display the fraction value.
      Anyway, I’ll add the the pitch angle fraction into my “todo” list.

      Using GPS for time tracking can be done reasonably easy. I’ll add it in to todo list as well.

      Thank you for your interest in this project.

      • Joni says:

        If you add GPS you can calculate groundspeed windspeed and direction also True heading.
        But maybe it will be too much information?

        • Oleg says:

          This is the plan for EFIS ver. 2.0
          The new EFIS will be modular with all the components connected via CAN. So it will be matter of adding a GPS and injecting the data into common information stream.
          You are right, the real estate on the display might become a problem 🙂

  9. André Chaillous says:

    Hello Oleg,
    Did you made your test on a plane?
    Is it possible to have your openglcd library with your configuration for the 4” 192×64 display. I have some problem with us.

  10. proking says:

    I want talk about EFIS 1.2 bug 。

    In 1.2, you has been changed MS5611 to pressure sensor HSCDANN001BA2A3。

    //***** Checking and starting Barometer ************************
    GLCD.CursorTo(0, 1);
    GLCD.print(“Altimeter …………… “);
    // add barometer check later

    IsOK_Alt =1;
    GLCD.print(“ok”); 《————–No check,but print ok。

    your fans, proking

  11. proking says:

    Now use pressure sensor HSCDANN001BA2A3,VSI is not accurate 。

    bug about lcd 。 When BNo055 rolls ,The line below the “FLT”will disappear。

    Seek help:On the program of rotary encoder,into the menu page can not be selected。

    • Oleg says:

      Regarding display bug: Yes, confirming the bug. It appears only if you do “inverted flying” 🙂 I’ll look at it. Thanks

      Regarding VSI: Yes, VSI is a bit noisy. It needs different averaging algorithm. I’m using Moving Average at the moment. It is not “smart” enough. I’m working on Savitzky-Golay now. It should be much better.

      Regarding encoder: Make sure you have a 10k pull-up resistor on your encoder. Many encoders from ebay dont have it. They have the pads but no SMD resistor there.

  12. proking says:

    new quetion。

    MY instrument panel with angle, how to calibrate the attitude instrument。

    I made horizontal table with three screws。

    Let bno055 level flatting。

    Maybe I was too stupid to understand the meaning of the program. T_T

  13. interesting…
    did you test it in flight?
    if not I can.
    Sinus C-FYXY
    over 3000 hours on
    Pipistrel Aircraft

  14. Inexfrance says:

    Hello sir, found your site by friends, i have to thank you for your work in favor of ULM drivers, i just ride it up and running is fun.
    But after 3 hours of running the LCD becomes all white more indication ?? Yet bought on Buydisplay I bought 5, three are HS.
    Have you had this problem?
    I think trying to change the screen by oleds SH 1106 but it takes at least 4.
    Thank you for your work and your sharing, a big congratulations.
    Sincere congratulations.

    • Oleg says:

      I havnt had any problems with these LCD displays so far.
      Check voltage on pins 19 and 3 of the LCD. Pin 19 should have about -12v. Pin 3 should have a bit less and it is controlled by the trim pot.
      Check the prim pot. I could be faulty.

  15. Inexfrance says:

    Hello, the LCD problem is solved, not enough power supply below 5 volts !!
    I just finished version 1 and mounted in a CAP 10 aerobatic plane.
    1) HDI bad representation of the cap it must make a 360 to find the right course and again!
    2) sensitive to vibrations the ball only shakes! (Bno055 ATMEL)
    3) in level flight no poblème except VSI which goes up and down! (BMP 180) in a box with cotton.
    4) uphill to pass a looping big problem the screen is blurred and impossible to see the indications, you have to reboot the arduino 2560 or cut the power supply.
    This is a test done on actual flying conditions.

  16. Tom Sheppard says:

    I have ordered the boards. I built a modified marc r system that I have flwn but yours will be more reliable. Thanks, Oleg. Tom, G BZOR(uk).

  17. Amir Daryaei says:

    Could you please share us the “Proteus” File (or any other program) for schematic and wiring?
    or please mail me if possible? I wanna customize the schematic and codes for myself.
    I will announce the results and share!
    thank you

    • Amir Daryaei says:

      Another question! Is there any difference to use Mega2560-16Mhz instead of 12Mhz model?
      my Arduino Mega is 16mhz.

      • Oleg says:

        Not much difference. 12Mhz refers to the crystal on the USB chip installed on some Arduinos. The crystal on Arduino Mega chip is separate and is always 16Mhz

    • Oleg says:

      Sorry, I use DipTrace. The schematics is not too complex, so you can re-create it easily in your software.

  18. amir says:

    Hi Oleg
    How did u draw your schematics? I mean what software?
    I tried to redesign your schematic in Proteus but used components doesn’t exist there!
    where can I find them for Proteus usage?

    • Oleg says:

      Hi, I use DipTrace. It doesn’t have a comprehensive library of components either, so I often just create my own 🙂

  19. Sam Hermans says:

    Is there a specific reason why u are trying to calculate speed and altitude using pitot tubes and not just use GPS ?

    Very interested in this and just started flying. Hope to build my own.

    • Oleg says:

      Hope you enjoy your flying.
      GPS speed is airspeed are not necessarily the same speed. Airplanes are flown by airspeed. Ground speed is only important for navigation.
      I recommend to discuss it with your flying instructor.

  20. Amir says:

    Uhm Oleg, I think you should draw the Voltage Regulator (Mini-360) in the schematic, as you placed it on the sensor board. I’m trying to create a schematic like yours, as I told u the reason on blog page. please update the schematic dear Oleg.

  21. Amir says:

    Hello Oleg
    How’s it going?
    Just telling an idea! How about to moving into color LCDs if possible! or maybe a single Altitude indicator (small with color display)
    Good job dude.

    • Oleg says:

      I tried colour displays. Although it looks cool, it is not very practical with cheap colour displays. It is hard to see what is on display if ambient light is bright.
      Good sunlight readable colour displays are expensive.
      So I’ll stick with monochrome FSTN displays for now. 🙂

  22. Mark Albert says:

    Great project and excellent low cost, experimental solutions. I just may return my Garmin G5.

    San Diego, CA (hoping to move to an Oz airpark)

  23. Gerald Corfield says:

    Hi Oleg.
    Great project.
    Have you looked at this display http://www.newhavendisplay.com/nhd43ctpshieldn-p-9520.html?zenid=int7sut53u9q13npifth60o742.
    I am trying to use one of these with an arduino 101 that has onboard sensors and bluetooth.
    A bit above my expertise at the moment.

    Gerald NZ

    • Oleg says:

      Didn’t try this display. Thank you for finding it.
      I promised myself to stop spending money on testing new displays. It looks like I’m going to break the promise. 🙂

      • Amir says:

        Break your promise Oleg 😀 we need to develop our projects, a verity of choices should be available for every opinion. 😉 good luck.

  24. Roger says:

    Oleg, great project! Do you know if it is possible to export the video to a larger reomte panel display? the current display is just too small for these old eyes. Keep up the hreat work!

  25. Amir Daryaei says:

    Hi Oleg, How’s it going? Whats up?
    just a quick question! I saw Marc EFIS video and there was a Pitch Adjust setting in its menu, Does your program has it too?

  26. Alfred says:

    Good evening Oleg, I tried the EFIS v1.2 this morning aboard an ultralight here are the observations:
    The ball becomes very unstable if I put the case on the dashboard (vibration), so unusable in flight.
    The course is good, the atitude and the vario is good.

    Is there an AHRS that is reliable that can connect with the arduino ?


    • Oleg says:

      Hi Alfred,

      Thank you for your feedback.

      There two solutions for the ball problem
      1. via software – some averaging filter should help, however the ball will be a bit sluggish.
      2. separate the AHRS chip (BNO055) from the unit and place it somewhere behind the pilot, where vibration and electric interference is minimal.

      I’m currently working on the second solution with AHRS and Dilplay unit connected via CAN.

      I believe the AHRS unit from MGL can probably be used with CAN version of my EFIS. I saw a detailed description of their CAN protocol. So it is a simple meter of translating their messages and displaying them. This idea has not been tested though.


  27. Alfred says:

    Thank you Oleg, I will try to place the BNO055 elsewhere and I keep you informed, if you have news of another prototype I am also taker.


  28. Amir Daryaei says:

    Hi Oleg, I’m still looking for HSCDANN001BA2A3 but the factory lead time is 22 weeks, which is very long …
    What is your technical suggest to replace the current pressure sensor with a similar one? I mean same board pin out and codes, How about HSCDRRN400MD2A3? Is it cool and working for this project?
    the new one is Differential and your board sensor is Absolute one, Does it matter?
    please check it for me.


  29. Manfred Malke says:

    Hi, Oleg,
    I tried to buy the Honeywell sonsor. But there is no one in stock.
    You write, that i can take the NPA-700B-015 sensor.
    My problem:This one has 8 Pin`s each Side and 2 tubes. At the board are 4 Pin`s each side.
    Can you tell me,what can I do?
    Regard Manfred

    • Oleg says:

      I did some research on the NPA-700B-015 sensor and I dont think it would be suitable for altimetry. The error band seems to be too high. I have no time to test it unfortunately.
      Maybe someone who tried it will post the results here.

  30. Reinoud Slagter says:

    Hello Oleg

    I finished the soldering of all the components and now I must implement the software version 1.2
    How can I do that? Is there an instuction? I have downloaded the version 1.2
    Thanks for your project. I can’t wait to test it in my plane

  31. Reinoud Slagter says:

    hello Oleg

    Correction on former question: I installed the arduino software and uploaded EA_EFIS 1.2
    Then I got the error:

    ‘airspeedsensorvaluebuffer’ was not declared in this scope
    What went wrong?
    Best regards

  32. Ernest says:

    The project is super!
    Did you use this equipment during the flight, does the interference do not affect the efficiency of the Arduino?
    The best touchscreen for Arduino, this is Nextion (https://www.itead.cc/nextion-nx8048k070.html) , this monitor does not use the resources of arduino, there is a version with built-in clock, it connects on TTL.

    • Oleg says:

      Thank you for your interest in the project.
      I personally didnt test it in flight yet but I know of at least 5 people who did.
      In some cases people observed some compass drift, most likely due to electromagnetic interference. Others didnt experience this problem. So I guess it depend on where the unit is positioned and proximity to other wiring.

  33. Amir Daryaei says:

    Hello Oleg, I think you put yourself into trouble by setting up this fabulous project. 😀 (kidding)
    dear Oleg, I tried the I2C scanner for my “Gyro/Magnetometer ……….” problem! No I2C device found!!!
    and the result on serial monitor while sensor board connected was this: “I2C Sc”
    Big Thanks for your nice job ♥
    I know are too busy, but I’m still waiting. 😉

    • Oleg says:

      Most likely you have a problem with the ribbon cable.
      Check if it is connected right way and there is continuity in each wire in the cable.

  34. Oleg says:

    AHRS – attitude and heading reference system. In other words gyro + magnetometer
    ADS-B – is a fancy transponder
    EFIS – is a computer that displays all the data from various sensors

  35. Tommy says:

    Hi Oleg!
    This is a splendid project and you have done a very nice work!
    I’m working on a project where I a make a gyro to my MGL EFIS.
    Not very hard to do. The CAN protocol is public so everything looks easy, except for the slip ball!
    I can see that you calculate the slip from the x-acc sensor. Does this work for you?
    Do you have any thinking about the slip ball that you can share?


    • Oleg says:

      I think x-acc sensor is the best source of data for the slip ball, however it needs to be filtered.
      I’ve done some testing and it seems very “jumpy”. I think a simple MA filter should fix it.

  36. amir says:

    Hello Oleg,

    I have the traditional EFIS v1.2
    There is something with it that I’m not able to solve. Consider the below pic please, a small number (2 or 3) always appears above the Heading zone, Does it stand for its error? and how to fix it?


    by the way, I have built a temp and pressure display as a supplement for this gadget.
    here it is, I can share its specifications if you want.



    • Oleg says:

      The number 2 or 3 displays BNO055 (magnetometer and gyro) calibration status. BNO055 is self calibrating, so the status changes from time to time.
      3 is the best calibration. 0 is the worst.

Leave a Reply

Your email address will not be published. Required fields are marked *