Established 22 years
Last Updated on June 13 2020

Adding the ECU Master EGT-to-CAN Box

In 2019 my Mountune engine failed. The ECU wasnt equipped with exhaust gas temperature sensors, which may have given me an early warning of the impending catastrophic failure. The resulting engine failure melted two pistons, and distorted the cylinder liners in the block. Once I had the engine rebuilt, I bought a set of type-K EGT sensors from Sensor Connection in the US, and the next challenge was how to provide the ECU with the EGT sensor data.

Sensors installed on the new engine

Polish company ECU Master produce an EGT-to-CAN box, which provides 8 channels of EGT temperatures over the CAN-BUS. I bought one, and wired it in to the CAN-BUS interface on the Life ECU. I then had to program the ECU to read the information from the EGT-CAN box.

Setup the EGT-to-CAN box

Connect the EGT-to-CAN box to a PC using the supplied USB lead. Run the downloaded configuration tool and go to the Setup tab.

Configure the decimal address for the CAN interface to 1280 and 1281 (500h and 501h)
Change the Byte order to Big Endian (MSB stored at the smallest address)

Why do we need to change the address and byte order?

The EGT-to-CAN box transmits two frames, on to the 1Mbps CAN BUS. Each frame is 8 bytes in size. Each frame has a hexadecimal address which identifies the frame to the ECU. For the EGT-to-CAN box on my car, the first frame has an address of 500h, and the second frame 501h. We are using Receive A frames. Receive A frames consist of four 16-bit signed quantities sent high byte first. High byte first means we need to use Big Endian, hence the Setup parameter (above) for Byte order in the EGT-to-CAN box must be set to Motorola (Big Endian).

Msg1 with an ID of 500h, consists of 8 bytes; the first pair of bytes (16 bits in total) are for EGT channel #1, the second pair of bytes are for EGT #2, then EGT #3 and finally EGT #4.

Msg2 with an ID of 501h, consists of 8 bytes; the first pair of bytes (16 bits in total) are for EGT channel #5, the second pair of bytes are for EGT #6, then EGT #7 and finally EGT #8.

When you add a device to the CAN-BUS it needs to have a unique address. I chose 500-501h since I know these arent used already on the BUS.

Setup the ECU to read the frames from the EGT-to-CAN box over CAN-BUS

With the EGT-to-CAN box connected to the two wire ECU CAN interface, run LifeCal and in Datastreams, configure the Generic CAN Receive as follows

Set both A01..A04 and A05..A08 to YES

Set the address of frame A01..A04 to 500h
Set the address of frame A05..A08 to 501h

Now we need to go to the IO Config section in LifeCAL, to Pin Assignments and assign the data from the EGT-CAN box, to the Inputs R01 to R08

Double click on A) Inputs : R01 [Received Sensor 01], to display the connection screen

The connection screen allows you to assign the first frame from the EGT-to-CAN box to Input R01.
Double click on X:CAN RECEIVE A #01 to assign it to Inputs : R01

As you can see, the A) Inputs : R01 [Received Sensor 01] now shows X:CAN RECEIVE A #01
Now we need to repeat the same process for the remaining 7 inputs

Note that when you go to assign the next frame, RECEIVE A #01 is highlighted in RED. This means it is already assigned and cannot be assigned for a second time. A programming error will result if you try to assign the same frame twice.

This shows two inputs are assigned to frames #01 and #02 from the EGT-to-CAN box.

Assigning EGT-to-CAN data to the inbuilt Exhaust Gas Temperature 1 and 2 channels

The LIFE F88 ECU has the ability to react to exhaust gas temperatures, to protect the engine, both during Launch Control, and in Run Mode Fuelling / Corrections / Closed Loop Lambda. It does not however have an engine trip associated with EGT temperatures. A custom map can be added to add protection, I'll cover that in another post.

I've added the EGT-to-CAN box, which allows the ECU to record / log the temperatures from the engine, but it wont do anything with those temperatures to protect the engine from failure. The ECU has a pair of EGT temperature inputs on the giant BOSCH ECU connector, but we dont know if the FF200 version of ECU supplied to the Formula Ford championship even supports the use of EGT sensors.

So I can either hard wire two more EGT sensors to the ECU by adding more wires to the Bosch ECU Connector, or I can assign frames from the EGT-to-CAN box to the Exhaust Gas Temperature inputs. I'm going for the second option:

I have five Sensor Connection EGT sensors fitted, sensors #1 through #4 are fitted in the exhaust manifold for cylinders #1 through #4, and I have sensor #8 fitted to monitor the exhaust temperature in the exhaust pipe, post-turbo.

To assign EGT-CAN data to ECU Exhaust Gas Temperature 1 channel, again in LifeCAL IO Configuration, select the frame from the X: CAN RECEIVE that you want to assign to EGT1. Then if you want to, you can do the same for EGT2. egtMax is the maximum value of both sensors.

Find the Exhaust Gas Temperature 1 and 2 settings in the IO Configuration / Pin Assignments

Select the frame that you want to assign to EGT, and double click it. Remember Red means its already assigned and cant be assigned twice.

Here you can see that both EGT Inputs are now assigned to frames from the X:CAN RECEIVE A #03 and A #08

Renaming the EGT-to-CAN frame data to friendly names

You can change the names of the Inputs to friendly names. If you leave the inputs as they are, then the ECU will log the channels as RX01_R01 to RX02_R08, which isnt exactly meaningful. To change the names to something more user friendly, in LifeCAL, with the calibration still open, select View, Customising Options.

Open the IO Sensors section and go to User Definable Sensors

Find the R01 to R08 sensors, and expand each sensor in turn.

There is a Redefine option for every User Definable Sensor, and double clicking on Redefine opens the configuration pane for the sensor.

This is the Redefine pane. Here you can change the name to a friendly name, usually in lower case.

This is an example for another sensor on the ECU. To give you an idea as to what to enter.

One of the most important changes is to set the data from the EGT-CAN box to Temperature. Using the example above for the Gearbox Temperature, set Units to Temperature and Celcius, and Min/Man/Dec places for all the temperature inputs that you have created.

How does the data look?

Good. This was captured at Mallory Park in March 2020. The four temperatures from the cylinder head all stay below 850C (RX01 to RX04) and the temperature after the turbo (RX08) stays around 150C cooler than the cylinder head temps.

Whats next?

I've got three free channels on the EGT-to-CAN box. I'm adding a type-K thermocouple inside the fuel tank, so I can record the fuel temperature being delivered to the engine. I will also record the air charge temperature before the air passes through the intercooler, so I can measure the I/C efficiency.