What's new
Van's Air Force

Don't miss anything! Register now for full access to the definitive RV support community.

GRT EIS4000 serial data decoding

jcaplins

Well Known Member
I wonder if anyone active on this forum has any experience decoding the serial data from the EIS4000? There are lots of software gurus here, so I thought I would ask.

Obviously the people at GRT know it, AFS has done it to allow the engine data to be displayed on the EFIS. There have been other forum discussions and there are some things online but they are all several years old and I have a couple documets from GRT regarding. Any programs out there seem to use DOS or a hyperterminal on a computer that has a actual serial port (not USB).

I have a non-standard engine and my wants differ from how all efis systems display the data.

My problem starts pretty much at step 1.... There is supposed to be a header in the serial data (FE FF FE)... but I do not get this. I do get a repeating string of data but not the header. Is there some manipulation of the data that needs to be done before it's in the right format? or is this a USB comm port problem?

What I should get:

ACtC-3eYSpyXu7Zx32Rrk459xG5i3V3Rzld3d43xqfBh0gvTI5F_mG2WAvXw9egskCUuzgPRu-mTDfU47eqRG1sJ4xhFODC8KaduSqVZdqsWXUvmTcuevgmW78IPBF-w2Hh7Zxfu0Rz3_awCmum9X2hazyni=w798-h40-no


What I am getting (I used the 00 00 00 as an easy way to pull out 1 data set) there is no FE FF FE, and too many FE's.

ACtC-3cOaOPe-VTAzO2rA3yk_DJ5oLSf20f2wKeiPNAV7p6HV_Sdu6kgYOoOfYfTlfXuayQ2feWc5U0uD8PlZXZ6tiSzE-bePbe7wiaROECw81MfKHAX6S-jnXInPq8NQylTGU8aJ4-V5d8_I-kT6AY9A8Jj=w798-h106-no


(hopefully these links work)
 
I have worked with the serial data recently. It looks like you don't have your serial port configured correctly. Do you have it set for 8N1 at 9600 baud? Once you have your com post set right you should get a stream of data and there will be 0xFE, 0xFF, 0xFE at the start of the data. It may not be at the beginning of the stream depending on when your com port connected, the EIS may be in the middle of sending out the data.
 
I have a friend that wrote a nice program that captures the data from Dynon, Grand Rapids and a GPS and merges them all into a single log file. I used it for recording all my data during the phase 1 of my RV-6A back in 2005.

Have a look at Waiter's Flight Data Recorder at http://www.iflyez.com/EFISRecorder.shtml It hasn't been updated in years but still should allow you to get the data you are looking for.

He even made some nice looking RV mouse cursors for your computer. :cool:
 
I have worked with the serial data recently. It looks like you don't have your serial port configured correctly. Do you have it set for 8N1 at 9600 baud? Once you have your com post set right you should get a stream of data and there will be 0xFE, 0xFF, 0xFE at the start of the data. It may not be at the beginning of the stream depending on when your com port connected, the EIS may be in the middle of sending out the data.


Yes, setup as 8N1 9600baud. I've also tried every other combination of bits, parity, baud, stop bits, that I could think of just in case there is a remote possiblity that I have a software version on my EIS4000 that is not standard. I still do not get FE FF FE anywhere in the data stream.

I'm using a USB to serial converter. this one specifically:
https://www.amazon.com/gp/product/B07R8BQYW1/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

along with " Serial Port Monitor 7.0 by Eltima Software.

I've also tried using an Ardiono to read the Serial data as hex, binary, char, int or whatever. mostly I would get gibberish. Or I would get data that is not repeating. (so not using the USB serial converter).

Using the serial monitor in the arduino compiler, I still do not get the header I'm looking for.

I've setup an arduino to send out a serial data stream and another to recieve it and that seemed to work. But connectiong the GRT does not.

There's got to be somthing i'm missing.
 
I read somewhere that there were a couple of different software versions on the EIS4000 that had a different header but the rest of the data you posted doesn't look correct.

For my Arduino clone code in the setup I have:
Code:
Serial.begin(9600);

and my loop is:

Code:
void loop() {
	if (Serial.available() > 0) {
		incomingByte = Serial.read();
		// Look for the header
		if (headerIndex < 3) {
			if (incomingByte == header[headerIndex]) {
				headerIndex++;
			}
			else {
				headerIndex = 0;
			}
		}
		else {
			if (payloadIndex < PAYLOAD_SIZE) {
				payload[payloadIndex] = incomingByte;
				payloadIndex++;
			}
			// See if the last byte put us over the edge
			if (payloadIndex >= PAYLOAD_SIZE) {
				// udp.broadcastTo("payload", 6969);
				udp.broadcastTo(payload, PAYLOAD_SIZE, 6969);
				// Reset the counters
				headerIndex = 0;
				payloadIndex = 0;
			}
		}
	}
}
 
I have a friend that wrote a nice program that captures the data from Dynon, Grand Rapids and a GPS and merges them all into a single log file. I used it for recording all my data during the phase 1 of my RV-6A back in 2005.

Have a look at Waiter's Flight Data Recorder at http://www.iflyez.com/EFISRecorder.shtml It hasn't been updated in years but still should allow you to get the data you are looking for.

He even made some nice looking RV mouse cursors for your computer. :cool:


I've got Walters program. It thinks my header is FE FE FE. there is only supposed to be some rare versions of software with that header. to many FE's in my stream so the numbers it pulls for various parameters are all incorrect.

Here is an example of the data stream from Walter's program:
ACtC-3fpHyTQGdDQajhw13u19ByBV6uqYAiPSosGtmghLrdVT_D-i0caFMYXUGZzhebBYauEvVrZWHrYbWCgsWF6fN6zOrwSikqZdg7xn7NaKluiajq-lPkNFmhhtasOuaZqsBXj53vuI5rPYBL_KivqJvZM=w672-h376-no


Keep the ideas coming. I really appreciate it.
 
One other thing. You are connecting the green/black wire on pin 11 to your serial RX in and pin1 GND to your serial ground?
 
I read somewhere that there were a couple of different software versions on the EIS4000 that had a different header but the rest of the data you posted doesn't look correct.

This is from a GRT doc I have:

Note: All EIS Model 4000/6000/9000 made to date follow this serial data output format, with the exception of software versions
56 and 57 (very rare). For those software versions, the header was $FE,$FE,$FE (instead of $FE,$FF,$FE), and the single
spare byte at the end was replaced by TACH2H, TACH2L, and two spare bytes.


Mine is:

"SW Ver 44V59P"
"model 4000 EGG"

(It's on a Subaru)


It will take me a minute to understand your code, but it doesn't look like anything...unusual.

Thanks,
 
Do you have anything else connected to the serial line?


Nothing else is connected to the serial when it is on the bench.

I had it connected to the AFS EFIS and the laptop while in the plane. The serial data was not compromised on the EFIS, but still not OK on the laptop.
 
If the AFS EFIS saw the data fine then it has to be some issue with the connection to your computer. Bad USB/Serial adapter, bad wiring, misconfigured serial settings in the app.
 
If the AFS EFIS saw the data fine then it has to be some issue with the connection to your computer. Bad USB/Serial adapter, bad wiring, misconfigured serial settings in the app.


Your timing is impeccable. And you are correct. I had just found another USB adapter that did not work for something else in the past and appears to be working now.

I am getting the proper header:

ACtC-3eg-8FXfFaSQ3fCbKOOIzyzeIuQ6geJTyLiJ26yAFFzNDlfUMlgQeS-0VKJ1zp9G60ZNZrZxm0d1ctxR_hi-P2LrZzQWm6dxIdmhMjJnHvMEKYf7Fc8SX1V_3jvkSAogBNu327EFUd8fVPhr3ZwkD1P=w368-h310-no


The Walter's program is now working too.

This is the 3rd or 4th adapter I have used. So I was pulling my hair or trying to figure this out.


Thank you. I might have more question in the future.
 
Update. I made a thing.

Update!

Here is my graphic display of the data coming off the GRT EIS4000. Since I was only using 2 of the 6 EGT temp inputs and none of the CHT inputs, I repourposed them for water, case, and gearbox temp. It has a couple things displayed that are for future incoming data, such as engine temp from the SDS computer, and data from two 02 sensors, those have red numbers, everything else is working correctly. I still need to clean up some of the grahics.
IMG_20200828_123602.jpg
(the engine is not running in this photo)

The reason for making this is because I have more water and gearbox temps than i can currently display on the AFS screen and it's also annoying to constantly scroll through pages on the EIS4000. I also don't see a commertially available product to do what I want within my budget of $200 :D

components:
- Nextion 7" display
- Arduino Mega
- Voltage regulator
- RS232 --> ttl converter

This is still considered a prototype and would need to be more robust for long term use. Currently mounted to the panel with a RAM mount. Screen is not nearly as bright as my EFIS, but still seems to be sunlight readable.
 
Back
Top