Pages

Tuesday, October 28, 2014

OpenGauge Project



Introduction

The OpenGauge project is an aircraft EGT, CHT display intended for primary use in experimental aircraft.It features a very "sexy" ezLCD-301 display from  EarthLCD. Also, for fun, we have added a few other transducer measurements like oil pressure, oil temperature and fuel flow. We decided to build this gadget using shields for the Arduino to do all the concept testing. The first shield provides power for the for the ICs and the LCD. The second shield is dedicated to the thermocouples and the third shield was designed for all the transducers. They all utilize the DB-9 and DB-25 pin connectors to interface with all the transducers and thermocouples.

ezLCD-301 Display

We were very pleased with the simplicity of the display. It receives serial commands utilizing theEarthSEMPL (simple embedded macro programming language)to draw the information (bar graphs and numbers) and that will save a lot of processing power on the Arduino. We adapted the library used in the arLCD (another LCD product from Earth LCD) and it worked fairly well with the 301 display. Also, it is worth mentioning that this LCD is a touch screen! Earth LCD offers different models, with different sizes and features on their website.

Preliminary Design

Overall, the interface was very simple. It utilizes the analog read function on the Arduino board. A nice feature of this design is that it utilizes multiplexers to save the analog inputs on your board, as a bonous that helps to keep cost down by reducing the requirement of several thermocouple amplifier ICs ($17 bucks each!). Utilizing two AD595 ICs and two 74HC4051 multiplexers we can read 16 type K thermocouples. Since we only require 12 channels (6 Cylinder Head Temperature and 6 Exhaust Gas Temperature) that layout design worked well for us and perhaps an 8 cylinder aircraft can benefit from that too.
Since the AD595 amplifies the signal by a factor of (10mv/ ºC) exhaust gas temperatures nearing the 1500ºF will output signals close to 8 volts. Unfortunately, the Arduino analog read is limited to 5Volts. To solve that challenge we applied a simple voltage divider circuit that uses two 1K resistors. Given that we are only concerned with high temperature readings for the EGT, a voltage divider will do the job well for an output between 5 and 8 Volts.

During preliminary testing we decided to test two probes, one at room temperature and the other at water boiling temperature, to find out if the multiplexer was adding noise to the readings during the array or inducing any errors. From the readings we seen the multiplexer did a great job.It took a lot of experimentation with the oscilloscope and a few capacitors to smooth the thermocouple signals. We read a few papers written by Analog Devices regarding multiplexing on the AD595. (AN-274 and AN-369). The paper suggested using a differential multiplexer but we had trouble reading the signals. Finally we achieved a descent circuit design after lots of testing, trial and error and some luck. We are not 100% satisfied with the design and the noise signal but hopefully someone will be able to improve it or investigate other ways to achieve a solid design.(if such thing exists?). Maybe the cold junction compensation can be explored a little more on the circuit too. The plan right now is to calibrate temperatures on the software side when we calibrate the probes. It is worth mentioning that the circuit we created  for the AD595 ICs deviate from the suggested AD595 diagram, it gave a much cleaner signal and grounding of the thermocouples was not an issue.

Hardware Design

Another part of this project was to experiment with several DIY PCB etching processes. Before getting too "ballsy" and using a PCB manufacturer like OSHPARK.com we decided to NOT gamble and mature the project further with some trial and error. The method used was the press and peel paper. The results were acceptable but it required some retouching on the traces. We have not tried the photo resist method yet, but it seem to be very popular specially with double sided boards.
A messy circuit like this one...

With a few CNCed holes....
Can look pretty good when cleaned up

Hall Sensor RPM

For convenience the RPM is picked up right at the magneto using a latching hall sensor (Melexis US1881). The sensor is hooked as an interrupt in Arduino to make sure that the processor does not 'skip a beat' when measuring the period/frequency . Also it is important to keep in mind that the MAG in a six cylinder engine turns at 1.5 times the crank speed. So a ratio of 1/1.5 must be used when measuring the period from cycles per second to cycles per minute (1/f*40). We have used the proper fitting size for a Bendix Mag and great care must be used to keep clearance from the magnet. The hall sensor was secured with resin with some of the sensor exposed. Don't forget to include a hole to vent the mag. We included a notch in the thread seen in the bottom of the fitting.

Housing 3D Printing

The goal was to utilize the standard 3.125 inch hole in the aircraft panel.The housing would be built in 2 pieces to facilitate assembly and other required maintenance. The final design will be shared here, with a link to the STL files.



Software

The software still under construction and the goal is to keep adding more features to the gauge until we run out of memory!. The software is available under the github link.

Future Goals

  • Increase communication speed (Refresh Rate) 
  • Finish the Transducer PCB
  • Test the Durability of the circuit
  • Adding a Data logger (SD Card)
  • Multiple screen Pages (Rotary Encoder and Buttons or screen touch)
  • Dimming Screen (Touch) - Completed



No comments:

Post a Comment