M2.8.1/M4.4 MAF linearisation

Discuss Bosch (Porsche, BMW, Volvo, etc) tuning topics here. Request definitions, discuss parameters, etc.

Moderators: robertisaar, dex

Post Reply
tjwasiak
Posts: 1
Joined: Wed Feb 18, 2015 10:42 am

M2.8.1/M4.4 MAF linearisation

Post by tjwasiak »

I would like to kindly ask if anyone have a solution for proper setting up MAF linearisation curve in XDF for Motronic M2.8.1 (Opel/Vauxhall V6) and M4.4 (Volvo)? Those maps are 256x1 16bit (despite both ECUs being 8bit) and are written in strange manner: 256 high byte values followed by 256 low byte values. I managed to set correct routine to read values in kg/h like that:

Code: Select all

<XDFTABLE uniqueid="0xFDE0" vislevel="4" flags="0x0">
    <title>MAF linearisation</title>
    <XDFAXIS id="x" uniqueid="0x0">
      <EMBEDDEDDATA mmedelementsizebits="8" mmedmajorstridebits="-32" mmedminorstridebits="0" />
      <indexcount>1</indexcount>
      <decimalpl>0</decimalpl>
      <datatype>0</datatype>
      <unittype>0</unittype>
      <DALINK index="0" />
      <MATH equation="X">
        <VAR id="X" />
      </MATH>
    </XDFAXIS>
    <XDFAXIS id="y" uniqueid="0x0">
      <EMBEDDEDDATA mmedelementsizebits="8" mmedmajorstridebits="-32" mmedminorstridebits="0" />
      <units>mV</units>
      <indexcount>256</indexcount>
      <decimalpl>0</decimalpl>
      <datatype>26</datatype>
      <unittype>32</unittype>
      <DALINK index="0" />
      <LABEL index="0" value="0" />
      <LABEL index="1" value="20" />
        ...
      <LABEL index="254" value="4980" />
      <LABEL index="255" value="5000" />
      <MATH equation="X">
        <VAR id="X" />
      </MATH>
    </XDFAXIS>
    <XDFAXIS id="z">
      <EMBEDDEDDATA mmedaddress="0xFDE0" mmedelementsizebits="8" mmedrowcount="256" mmedmajorstridebits="0" mmedminorstridebits="0" />
      <units>kg/h</units>
      <decimalpl>2</decimalpl>
      <min>0.000000</min>
      <max>255.000000</max>
      <outputtype>1</outputtype>
      <MATH equation="&#40;&#40;256*THIS&#40;&#41;&#41;+&#40;ADDRESS&#40;&#40;0xFEE0+ROW&#40;&#41;&#41;;8;FALSE;FALSE&#41;&#41;&#41;/8" />
    </XDFAXIS>
  </XDFTABLE>
Unfortunately this code allows only showing values from bin or modyfing values in 32kg/h steps (as only high byte values are modified). Of course one can change it so it will use low byte starting address as base and then substract ROW() in conversion function to modify low byte values but that way it will allow only changes in +/- 32kg/h range.

Is there any way to solve this so values could be properly written into bin?

BTW. This code is from my 0261204589 XDF (valid for most 0261203589 and all 0261204589 SW versions). 0xFDE0h is start of high byte values; 0xFEE0h is start of low byte values.
Post Reply