Updated: 4 June 2017

Engine Management System (aka Engine Information System)
Status: Testing.

Design overview:

The idea behind this project is to create a hardware platform for continuous development and improvement of the Engine Management System through software. So, you might notice that many components in the schematic and PCB are optional and different components might be used depending of the purpose of a sensor.

The hardware designed to monitor 27 different engine parameters, including 16 temperature sensors at very high precision (24 bits), 8 resistive sensors at 10 bits precision, two pulse-based parameters (RPM and Fuel Flow) and one discrete input.

Not all inputs are configured in the software at this stage, but the hardware provides a very flexible platform to meet large variety of requirements for engine monitoring in experimental aviation. The unit can be used for automotive engines as well.


Parameters configured to monitor and display:

  • RPM
  • Engine timer (Tacho timer)
  • Oil Temperature
  • Oil Pressure
  • Fuel level
  • Fuel Pressure
  • Fuel Flow
  • EGT X 6 (Type K sensors)
  • CHT X 6 (Type J sensors)
  • Voltmeter
  • Ampermeter
  • Endurance based on current fuel flow
  • Endurance based on planned fuel flow

The EMS board communicates with LCD display via CAN bus. All the information sent to the display is also recorded by the Flight Data Recorder unit at the rate of 1 record per second.

The EMS built as a fully software driven and very flexible platform. The hardware has a lot of provision for lots of extra features. These will come later.

I plan to use it with 6 cylinder Jabiru 3300 engine. However, practically any 1 –  8 cylinder engines can be monitored by this EMS. Some software modification might be required.

Arduino based EMS board for Jabiru engine

Arduino based EMS board for Jabiru engine

Basically the EMS consists of two  physically separate modules connected together via CAN bus:

  1. Sensor Unit
  2. Display Unit

Sensor Unit

Board size 100mm X 100mm.

Key components:

  • 16 Mhz ATmega328 processor (Arduino Nano),
  • LTC2983 thermocouple management chip from Linear with 24-bit ADC.
  • MCP2515 CAN chip (NeRen CAN breakout board)

LTC2983_Thermocouple_ArduinoThe new version (2.2) of the EMS board has no SMD components. I have created a separate breakout board for the LTC2983 thermocouple chip. It makes the assembly so much easier.

All thermocouples connected via screw terminals. Other sensors connected via 15-pin D-Sub connector.

Arduino_EMS_Sensor_Board_v22CAN controller is a breakout board from eBay based on MCP2515 chip. I had to cut it a bit to save some space on the main board. In the next version of the main board I’m going to mount the CAN board up side down.

Testing of the board is going fine. I’m getting very close to the point when I need an engine to test it on 🙂

Software is not ready to be published yet. I keep changing it. Hopefully will get to some stable release very soon.

Schematics in PDF format: Arduino_EMS_Sensor_Board_v22


Display Unit 

Display Unit is the same as the one I use EFIS 19264 except it has CAN board connected to the main board instead of sensor board. The Display Unit is interchangeable with EFIS Display Unit. In other words they are the same from hardware point of view. They just have different software in them. In the future I plan to combine the software for EMS and EFIS so they could serve as a backup for each-other.


EMS Sensors Input reference table

Description Board Input Controller input Voltage divider Pull-Up resistor Low Pass filter (10K/0.1uF)
EGT Type -K Thermocouple EGT1 LTC2983 Ch1 None None No marking
EGT Type -K Thermocouple EGT2 LTC2983 Ch2 None None No marking
EGT Type -K Thermocouple EGT3 LTC2983 Ch3 None None No marking
EGT Type -K Thermocouple EGT4 LTC2983 Ch4 None None No marking
EGT Type -K Thermocouple EGT5 LTC2983 Ch5 None None No marking
EGT Type -K Thermocouple EGT6 LTC2983 Ch6 None None No marking
Additional thermocouple. TC1 LTC2983 Ch7 None None R26/C9
Additional thermocouple. TC2 LTC2983 Ch8 None None R27/C10
CHT Type-J Thermocouple CHT1 LTC2983 Ch14 None None No marking
CHT Type-J Thermocouple CHT2 LTC2983 Ch15 None None No marking
CHT Type-J Thermocouple CHT3 LTC2983 Ch16 None None No marking
CHT Type-J Thermocouple CHT4 LTC2983 Ch17 None None No marking
CHT Type-J Thermocouple CHT5 LTC2983 Ch18 None None No marking
CHT Type-J Thermocouple CHT6 LTC2983 Ch19 None None No marking
Ground DSUB Pin 1
Fuel Level. Single wire. Pulled-up DSUB Pin 2 Arduino A2 None R1 = ???Ohm R19/C3
+5v Output. Reference Voltage. Do not load. DSUB Pin 3
Fuel Pressure. Single wire. Pulled up DSUB Pin 4 Arduino A3 None R2 = ???Ohm R20/C1
Fuel Flow meter. Pulse signal. Conditioned via comparator (2/2). Adjust hysteresis through R11 DSUB Pin 5 Arduino INT1 None None C13 = 100pF. Optional
RPM Hall sensor pulses via comparator (1/2) DSUB Pin 6 Arduino INT0 None None C12 = 100pF. Optional
Analog input via divider/trim pot DSUB Pin 7 Arduino A0 R10 = 100K None R8/C2
Analog input via divider/trim pot DSUB Pin 8 Arduino A1 R9 = 100K None R2/C4
Optional temperature sensor (termistor, diode) or analog input <2.5v DSUB Pin 9 LTC2983 Ch9 None None None
Analog input via divider/trim pot DSUB Pin 10 Arduino A5 R4 = 100K Optional R22/C6
Optional temperature sensor (termistor, diode) or analog input <2.5v DSUB Pin 11 LTC2983 Ch10 None None None
Analog input via divider/trim pot DSUB Pin 12 Arduino A6 R3 = 100K Optional R23/C7
Analog input via divider/trim pot DSUB Pin 13 Arduino A7 R24 = 100K Optional R25/C8
Analog input via divider/trim pot DSUB Pin 14 Arduino A4 R7 = 100K Optional R28/C11
Optional logical input/output control. Internally pulled up pinMode(Pin, INPUT_PULLUP); . Do not apply power. Either leave hanging or grounded. DSUB Pin 15 Arduino D7 None Internal None


Parts list

Coming soon…





33 comments on “EMS
  1. Barry McFarlane says:

    Hello Oleg
    saw your presentation of the “$100 EFIS” at the last LAA meeting.
    Most impressed, got your web site from Shanes email for next meeting.
    I see you are looking at an low cost EMS as well.
    My interest is for both as I am currently building a Sonex with a VW conversion engine.

    I would appreciate if you could keep me posted on progress as you develop each project.


  2. Stephane ORTIZ says:

    Hi from France

    Great projects, i’m finalising the construction of a Minimax ultra light, and i look for a long time of an econmic solution to have an EFIS and EMS

    I think i have found it !!

    I hope you can quickly finalize your project and i hope to put your instrument in my plane !

  3. Tristan says:

    Hello from Spain,

    I’m almost done with the construction of a Storch HS ultralight, and I also have been looking for an economic solution to have an EFIS and EMS in my plane. It would be cool if both could send information via WIFI to some tablets like IPad. I’ve seen ILEVIL 3 AW but it’s so expensive and I would like to build it my self.

    How is the project going so far? I’m very interested on what you are doing!!!

  4. Enrique says:

    Congratulations for the Project.
    I look forward to finding the information needed (SW y schematics) to build an EMS prototype and even contribute to debugging and provide some help to the best of my ability.
    Kind regards

  5. Michael Ksiezopolski says:

    Are you able to provide video same as you have done on EFIS?
    I would like to try build both of these systems. I am wondering if it is possible to incorporate GPS and Bluetooth in order to connect to Android Tablets for software connections as well.

  6. Jason Ready says:

    I’m interested in an EMS for my 6 cylinder Corvair conversion. I’m looking forward to seeing more on the development of this.

    • Oleg Oleg says:

      I plan to use the EMS on 6-cyl Jabiru. Corvair is not much different, so you can use the EMS almost with no modification. So, stay tuned, the first release of software is almost ready.

  7. Amir Daryaei says:

    Hi there, It’s very interesting, Is it compatible with Rotax 912 ULS?
    waiting for your nice topics, It is possible to add GPS module to Arduino, by that work and installing a push-bottom to change between pages on the display, EFIS, EMS and GPS page.
    Good job.

    • Oleg Oleg says:

      Rotax is 4 cylinder engine, so you’d need to modify the Arduino software a bit.
      Multi-screen configuration is in the pipeline. Arduino Mega has enough memory to hold both EMS and EFIS.

  8. Jose says:

    Hi Oleg, I just stumbled on to your website and I am happy to see what you are doing. In my opinion, the EMS is a much more important contribution to the homebuilt community with regards to aviation safety than any other instrument. Homebuilt aircraft suffer more from engine issues than flight control issues.

    Two comments: 1) please include a way of recording the various engine parameters. This will greatly help with troubleshooting engine cooling modifications and with engine problems after flight tests. 2) please consider that it may be best to mount the sensor module in the engine compartment where heat and vibration will create a harsh environment. This will keep the multiple sensor wires as short as possible. Also, the thermocouple wire terminations will be in a similar temperature, resulting in best temperature accuracy (especially important for. CHTs).

    I will be interested in trying this ems out in my lycoming (4 cylinder) Long Ez. The Long Ez is a pusher aircraft which would especially benefit from the CAN bus between sensor module and display. I will be happy to build and test a version when you are ready.

    • Oleg Oleg says:

      Hi Jose
      Thank you for your feedback.

      Flight and Engine data recorder is one of the most important part of the project and CAN-based architecture makes it very easy to collect all the data in one place for further analysis. Most likely it will be a separate module recording all it can hear in the CAN network into SD memory card every second.

      I have build the first version of the CAN-based EMS. It is all looking pretty good, although some design changes need to be done, mainly around PCB layout and signal conditioning.
      I plan to finalise it all over next two weeks.

  9. Jose says:

    Well, good to hear. I will check in again in a couple of weeks. Pretty much all pilots get proper flight training. However, very, very few pilots receive proper training in engine maintenance and operation. Yet all of us home builders have to perform a fairly complicated engine installation, no two of which are exactly the same, and interpret how the engine is really doing. That engine is our life, as much or more than the integrity of the airframe (pretty much guaranteed by the designer if built per plans) or actual flying skills. A DIY , inexpensive ems will help greatly with engine reliability, monitoring, and safety. It should be in every airplane before considering replacing the steam gauge flight instruments with an Efis. Of course, nice to have both 🙂

  10. Ryan says:

    Hi Oleg,

    I’ve been following your project intensely and waiting for this EMS update.

    I’m working on an Open Source EMS as well with a different hardware set for the computer and display.

    If you’re ok with collaboration, I’d like to work in an interface to your sensor board. Currently I’m using an MGL RDAC to collect sensor data, but the acquisition cost is relatively high for that.

    I’m starting to work more on documentation so that it is easier to understand, but here is a thread I have on a forum (http://www.ransclan.com/forums/showthread.php?4674-DIY-Engine-Monitor). That documents most of the process so far.

    I can send you a link to the code repository as well if you’re interested.

    If you need any help, I’d be more than willing to get involved.

  11. Alex says:

    Congratulation, I looked a both efis and ems project and I’m quite impressed! I was also planning to built an EMS with an arduino for my experimental cozy and your project would be a perfect fit! I will just maybe add a data logger from adafruit, after watching some EAA webinar from Mike Busch on this, it may be a usefull option.

    • Oleg Oleg says:

      Thank you for your interest in the project.
      I have just finished prototyping for the Flight Data Recorder unit (aka data logger) and getting ready to publish the schematics and detailed description. Stay tuned.

  12. Ben Prusinski says:

    Wow Oleg,

    Such amazing stuff! I am a pilot and getting into making projects with Arduino and 3D printing. I look forward to your progress and hope to collaborate on things in the future.


  13. Chipper Block says:

    Waiting patiently Oleg…lol.

    As I have no clue with electronics will this be difficult for me to set up for my O-320 Lycoming? ….also, what about a manifold pressure guage?

    • Oleg Oleg says:

      Hi Chipper,
      The EMS project is in the testing state, so it requires a bit of tinkering with both software and electronics. It is pretty much a DIY platform, that can be easily re-configured for a specific task, whether it is an aircraft, jet boat or a racing car. So you will need to learn some electronics in order to use this EMS in your setup. Basic soldering and computer skills are required.
      Try to put together a “Blinker” on Arduino Uno. If you can get it to work and you had fun while building it, then you will enjoy working with the EMS.

  14. Amir says:

    Oleg, I was thinking which is cool to design a stylish “Enclosure” for this nice project.
    I want to design one by 3D printing, before that I should done the EFIS! … if it comes good I’ll send you the CAD files.

  15. Amir says:

    If we use an external power for our EFIS (No USB & power jack), then what type of connector should we use? what type would be? to connect the I2C+PWR pins. I ask this for cutting box and pattern drawing, back side of the enclosure! because of designing the the enclosure and preparing it for 3D printing.

  16. Pierre-Louis says:


    Congratulations for your project. I follow it with care because I am trying to build up similar instrument panel for our experimental motorglider.
    I have now two questions about the gauges.
    1. What type of sensor and how do your measure the fuel level? I was thinking about using ultrasonic but I am a little bit afraid of putting any kind of electrical tension inside my fuel tank.
    2. For RPM sensor, you use a hall sensor, right? Do you put any small magnet in the propeller base plate to detect the position of the propeller? What about optical sensor? We have a folding propeller, so not much easier to measure.

    Thank you and keep the good work

    • Oleg Oleg says:

      Hi, Sorry for late reply.
      1. For fuel level sensor I use the standard resistive sensor with a float that comes with RV-12 kit. I use it because I already have it 🙂
      I was thinking of using the capacitive sensor. They are very common in aviation. This option would be cool, but it adds complexity and cost.
      I have experimented with ultrasonic and found it a bit hard to make the sensor attached to the fuel tank safely enough. So I use that sensor on the water tank on my backyard 🙂

      2. Yes I use Hall effect sensor for RPM. I dont plan to put any foreign objects on my propeller. Instead I’m going to use a sensor with magnet attached to it and placed very close to the flywheel.
      Alternatively you can place the sensor on high-voltage spark plug wire. It will detect the electromagnetic field generated by your ignition system. (do not connect it to the ignition, just place it on the wire)

  17. Ray Johnson says:

    Hi Oleg.
    Thanks for your site, will wait for your updates.
    Ive been tracking a site in Europe that has an EMS system that is compatible with an android tablet via wifi, (skylab flybox EFIS EIS). Can be seen on U-Tube.
    For those who might be interested in a EMS ready to go, might be worth a look.
    Building a Quickie Q2 with a UL260 engine, needs a DIY EMS.
    Regards Ray.

  18. Gary Ball USA says:

    These are extremely interesting projects for the Ultralight, glider and LSA owners/builders.
    Do you anticipate offering full parts kits for both items. Also status of wifi/bluetooth addition
    to the units – android??

    • Oleg Oleg says:

      Thank you for your interest.
      I would love to make a full kit available, but the cost of bringing components to Australia and sending them to US and Europe is too high.
      However, I’m still working on it.
      Hopefully full kits will become available by Christmas 2017.

  19. Oleg Oleg says:

    As of now, the new version of the EMS sensor board is ready for testing but other things get in the way.
    Give me 2-3 weeks. It is almost ready. 🙂

    • Stephane ORTIZ says:

      Yeah, just in time to mount it in my Minimax ! Your making a great job Oleg…

      Waiting for this super complete/economic EMS…

Leave a Reply

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