Old Jan 28, 2018 | 09:20 PM
  #1  
megatron-uk's Avatar
megatron-uk
15000
 
Joined: Oct 2014
Posts: 47
Likes: 2
From: UK
Default Magneti Marelli L8/P8 datastream decoding

Quick summary of where I'm at:
  • mk1 Escort with full Cosworth conversion (4x4 motor, L8, uprated T3, greens, etc)
  • Pretty much complete, waiting for MOT for road use
  • MSD 320bhp chip, wasted spark, closed loop
  • IAW software from RP Labs - works great, picked up several faults and let me correct them
  • I now want to build a digital dashboard and datalogger - NOT using a laptop

So far I've got the basic pectel serial datastream working - I can connect to the ECU, ask for several types of sensor, and get the raw byte values back. I have found though, that the serial baud rate is extremely low, so the amount of samples we can get per second from the ecu is really limited. I'm calculating around 60-65 samples/sec, best case scenario, when we only get single-byte sensor readings (most are single bytes, but rpm and injector duration are 16bit, so need two reads and take up almost twice the amount of time).

I've gotten this far with a serial port monitor and a copy of the Fiat P8 documentation from the author of the Fiat Coupe serial datastream monitor (same P8 ecu hardware as the Escort Cosworth)

The Fiat docs that list the control codes for the various sensors are all wrong (fortunately I've got all the main ones for the L8 worked out now) and the Fiat/Lancia formula for translating the raw data into real world values is a 50/50 mix of correct/incorrect.

Here's a basic version of the sensor reading code from today:


For example, the formula for converting TPS, battery voltage and injector duration is the same on Fiat/Lancia and Cossie, but temperature, MAP and others are completely wrong.

The other things I'm missing are any way to decipher the two status codes that are returned from the ECU to indicate faults, and to detect Lambda sensor status or open/closed loop mode. In the IAW logger I've not seen any way to see what my O2 sensor is up to.

Does anyone have any information on how the data in the Cossie version of the L8/P8 ecu get translated to real world numbers?

I'm more than happy to share everything that I've found so far; it is all publicly available on Github: https://github.com/megatron-uk/PyCosworth

My ultimate aim is a dash mounted realtime display - rpm, boost, tps, temperature... and, I hope, gear position sensor (if I can fabricate one), not just in a numeric form, but in various visualisations, with peak indicators, etc. Here's a really early example of what it will look like:


I've reached out to RP Labs to see if they can supply a copy of the translation formulae, but was wondering if anyone else had any more data to share?
Reply