# Thread: MEFI 4 ECM definition file

1. Originally Posted by Blacky
You should read the V4 documentation on how to create a data stream. The editor is accessed as shown in the image below.

Attachment 13712

Regards
Paul
Thanks for the help Paul, I did find how to open the editor, and have read a lot of the documentation, more than once. Can you recommend a specific section? I don't remember seeing a datastream section, although I did read the Vehicle Definition section and the ALDL protocol sections (didn't understand a lot of it, but I'm guessing if I read enough instructional material it will start to get through my thick skull - I am disadvantaged as I am a mechanical engineer, not a software or electrical engineer ;-)

2. Unless you have knowledge of the actual layout, format, scaling of the data stream then its going to be a difficult, uphill battle to figure it out.

Normally, the data is returned from the ECM as a sequence of bytes. Assume a simple/short data stream of 5 bytes (that I'm just making up on the spot) is defined as follows:

Byte 0 and 1 = RPM.
Byte 2 = Throttle position as %.
Byte 3 = Vehicle speed as mph.
Byte 4 = Battery Voltage as V.

Assume the following raw (hex) data was received from the ECM

\$28,\$63,\$AF,\$42,\$7A

RPM = \$2863 = 10,339 with a scaling factor of 0.25 = 2584.75rpm
TP = \$AF = 175 with a scaling factor of 0.392157 = 68.6%
VSS = \$42 = 66 with a scaling factor of 1 = 66mph
Battery = \$7A = 122 with a scaling factor of 0.1 = 12.2

So you'd need to know:
1: The byte layout of the data stream data sent from the ECM.
2: The units and scaling factors that convert the raw hex data into engineering units.

Unless you have that info you can't easily create a data stream definition in EFILive.

Regards
Paul

3. Originally Posted by Blacky
Unless you have knowledge of the actual layout, format, scaling of the data stream then its going to be a difficult, uphill battle to figure it out.

Normally, the data is returned from the ECM as a sequence of bytes. Assume a simple/short data stream of 5 bytes (that I'm just making up on the spot) is defined as follows:

Byte 0 and 1 = RPM.
Byte 2 = Throttle position as %.
Byte 3 = Vehicle speed as mph.
Byte 4 = Battery Voltage as V.

Assume the following raw (hex) data was received from the ECM

\$28,\$63,\$AF,\$42,\$7A

RPM = \$2863 = 10,339 with a scaling factor of 0.25 = 2584.75rpm
TP = \$AF = 175 with a scaling factor of 0.392157 = 68.6%
VSS = \$42 = 66 with a scaling factor of 1 = 66mph
Battery = \$7A = 122 with a scaling factor of 0.1 = 12.2

So you'd need to know:
1: The byte layout of the data stream data sent from the ECM.
2: The units and scaling factors that convert the raw hex data into engineering units.

Unless you have that info you can't easily create a data stream definition in EFILive.

Regards
Paul
Following your example, here is what I have:

RPM: Packet Offset (H|D) = 0x26 38 = RPM (no scaling or conversion)
TP: Packet Offset (H|D) = 0x23 35 = X * 0.390625

I'm not sure this is the same information as your example, but is it the same type of information? It has been years since I read Hex, but I am willing to get a calculator and work through it if I have all the information. I am really looking for a confirmation that I do have all the necessary pieces of information and if so how I might learn to put it all together in to something useful. Again, more than willing to re-read the documentation and go back through the process, just looking for a rosetta stone right now so I know what I am looking at.

Thanks again for all the help!

4. If a "rosetta stone" exists, it will be in the file called ALDLStuff.zip here: ftp://ftp.diy-efi.org/pub/gmecm/
That zip file contains hundreds of *.ds (plain text) files. Ecah file corresponds to a different GM engine controller's data stream.
Finding the right one for a MEFI controller may be difficult because the files are all listed by VIN codes and engine RPO codes - which yo umay not have/know for your MEFI controller.

Regards
Paul

5. OK, update on my project, which consist of creating a definition file for V4 using the Tunerpro ADX information I have for the Mefi controller. Hoping you guys can give me a little help along the way here...

1. 1st Tab - Application -
a. Eprom ID=Not sure - is this for informational purposes or does EFILive actually need it?
b. ALDL Baud - 8192

6. Application tab page: All values are for information only - to help other users identify whether the data stream works on their vehicles or not. The only value that is used by the EFILive software is the ALDL baud setting.

For the other tab pages, its probably easier if you refer to the documentation installed on your PC: file:///C:/Program%20Files%20%28x86%29/EFILive/V4/Doc/edit_vehicle.htm

Regards
Paul

7. Sorry about that post, hit enter before I finished it. I have the documentation in my lap and am working back and forth between what V4 needs and what I have. Trying to translate Spanish to Italian when I don't know either!

8. Originally Posted by Extinct
Sorry about that post, hit enter before I finished it.
I figured that's what happened

9. 2. 2nd tab - Chatter - this is more difficult to decipher - I have six pieces of information and I am not sure how to translate them in to V4
a. Mode 8 Stop Chatter - 0xF4 0x56 0x08 0xAE
b. Reply - Mode 8 Stop Chatter - Timeout=200ms, Payload Offset (Dec)=3, Payload Size (Dec)=3, Body Size (Dec)=3)
c. Macro - Mode 8 Stop Chatter -
i. Command
ii. Mode 8 Stop Chatter
iii.Reply - Mode 8 Stop Chatter
d. Mode 9 Start Chatter - 0xF4 0x56 0x09 0xAD
e. Reply - Mode 9 Start Chatter - same as Mode 8 Stop Chatter
f. Macro - Same as Mode 8 macro except 8 and stop are replaced with 9 and Start

I assume this stop and start equates to V4's Suspend and Resume - correct?

Seems like I have the resume and suspend commands, but what about Heartbeat? Obviously I guess I could connect and determine it per the V4 documentation instructions but I am guessing I already have it in Tunerpro - I just don't recognize it.

Also, I assume I should check the reply check boxes in Chatter?

10. Originally Posted by Extinct
I assume this stop and start equates to V4's Suspend and Resume - correct?
Correct

Originally Posted by Extinct
Seems like I have the resume and suspend commands, but what about Heartbeat? Obviously I guess I could connect and determine it per the V4 documentation instructions but I am guessing I already have it in Tunerpro - I just don't recognize it.
The term heartbeat is just something I "made up" for EFILive. Basically all EFILive is trying to do is to find some "bus silence", i.e. when no other module is transmitting any data. It needs the silence so it can send the "stop chatter" command without the stop chatter command being garbled by some other module transmitting data on the bus while EFILive is halfway through transmitting the "stop chatter" command. So I figured the best way to "know" when there will be some bus silence is to record all the chatter and analyze the time between each frame of chatter data. The frame that has the most time between it and the next frame is what I call the "heartbeat" frame. You can choose any from you like but it has to be a frame in which the first "n" bytes are unique and do not change. The first "n" bytes are the bytes you enter for the "chatter" frame - that's what EFILive looks for on the bus. When EFILive sees that sequence of bytes it knows that it can transmit the "stop chatter" command once the current frame is complete.

Originally Posted by Extinct
Also, I assume I should check the reply check boxes in Chatter?
Check those only if the ECM sends back a reply when EFILive transmits the stop/start chatter commands. You can verify that by turning on the menu option: View->Serial I/O. That will show the frames being sent/received.

Regards
Paul

Page 2 of 6 First 1234 ... Last

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•