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.
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 boxConnect 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-BUSWith 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 channelsThe 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 namesYou 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.