RomRaider Logo

RomRaider

Open Source ECU Tools
 FAQ •  Register •  Login 

RomRaider

Documentation

Community

Developers

It is currently Tue Dec 23, 2025 11:07 am

All times are UTC - 5 hours [ DST ]





Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 70 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Author Message
 Post subject: Re: MS41 ECU Definitions
PostPosted: Thu Oct 23, 2014 4:08 pm 
Offline
Experienced

Joined: Thu Sep 25, 2014 12:53 pm
Posts: 627
Location: Houston, TX
mrf582 wrote:
v0.13

Added Engine Coolant and Intake Air temperature scaling maps.
viewtopic.php?f=42&t=11143



Can you add the following to the v0.13:


Baserom 24k Partial MS41.1 0960:


Code:
  <table name="Engine Coolant Temperature - TCO" storageaddress="0x6F2">
   <table type="X Axis" storageaddress="0x64E" />
  </table>
  <table name="Intake Air Temperature - TIA" storageaddress="0x6C4">
   <table type="X Axis" storageaddress="0x635" />
  </table>




And to baserom 256kb full MS41.1 0960:

Code:
  <table name="Engine Coolant Temperature - TCO" storageaddress="0x146F2">
   <table type="X Axis" storageaddress="0x1464E" />
  </table>
  <table name="Intake Air Temperature - TIA" storageaddress="0x146C4">
   <table type="X Axis" storageaddress="0x14635" />
  </table>


Thank you!


Top
 Profile  
 
 Post subject: Re: MS41 ECU Definitions
PostPosted: Thu Oct 23, 2014 6:03 pm 
Offline
Senior Member

Joined: Fri Feb 10, 2006 7:04 pm
Posts: 2661
Location: RIP
v0.14

Added as per Enabled's post above.


v0.15
Reorganized the map folders a bit. No new additional maps.

_________________
MS41 Project Leader & Co-Developer (2012 - 2023)
MS41.3 https://sites.google.com/site/openms41/custom-code---ms41-3
MS41 ECU Portal https://sites.google.com/site/openms41/ms41-ecu-portal


Top
 Profile  
 
 Post subject: Re: MS41 ECU Definitions
PostPosted: Tue Oct 28, 2014 4:32 pm 
Offline
Senior Member

Joined: Fri Feb 10, 2006 7:04 pm
Posts: 2661
Location: RIP
v0.16

Based on viewtopic.php?p=105194#p105194 updated to the following
Code:
<table type="2D" name="2D - y1A94(RPM) - z1BC8" category="Unknown - Cranking?" storagetype="uint8" endian="little" sizey="3" userlevel="1">
   <scaling units="(&deg;) BTDC ?" expression="x*.375-23.6" to_byte="(x+23.6)/.375"  format="0.0" fineincrement="1" coarseincrement="10" />
   <table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="little">
     <scaling units="RPM" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
</table>
   
<table type="3D" name="3D - x1A9C(TCO) y1A94(RPM) z1B74" category="Unknown - Cranking?" storagetype="uint16" endian="little"  userlevel="1" sizex="8" sizey="3" >
   <scaling units="ms ?" expression="x*.004" to_byte="x/.004" format="0.00" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="ECT" storagetype="uint8" endian="little">
     <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="little">
    <scaling units="RPM" expression="x" to_byte="x" format="#" fineincrement="50" coarseincrement="100" />
   </table>
<description>?</description>
</table>

<table type="3D" name="3D - x1CEC(MAF) y1CF6(RPM) - z1F20" category="Unknown - Idle?" storagetype="uint8" endian="little"  userlevel="1" sizex="4" sizey="4" >
   <scaling units="(&deg;) BTDC ?" expression="x*.375-23.6" to_byte="(x+23.6)/.375" format="0.0" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="MAF" storagetype="uint16" endian="little">
     <scaling units="kg/hr" expression="x*.015625" to_byte="x/.015625" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="Engine Speed" storagetype="uint16" endian="little">
    <scaling units="RPM" expression="x" to_byte="x" format="#" fineincrement="50" coarseincrement="100" />
   </table>
<description>?</description>
</table>


Need someone to test these tables that may be used during Cranking and/or Idle.

_________________
MS41 Project Leader & Co-Developer (2012 - 2023)
MS41.3 https://sites.google.com/site/openms41/custom-code---ms41-3
MS41 ECU Portal https://sites.google.com/site/openms41/ms41-ecu-portal


Top
 Profile  
 
 Post subject: Re: MS41 ECU Definitions
PostPosted: Tue Oct 28, 2014 4:56 pm 
Offline
Senior Member

Joined: Wed Jan 22, 2014 6:54 pm
Posts: 1773
The first one is timing during start.


Top
 Profile  
 
 Post subject: Re: MS41 ECU Definitions
PostPosted: Wed Oct 29, 2014 2:39 am 
Offline
Senior Member

Joined: Fri Feb 10, 2006 7:04 pm
Posts: 2661
Location: RIP
Thanks.

_________________
MS41 Project Leader & Co-Developer (2012 - 2023)
MS41.3 https://sites.google.com/site/openms41/custom-code---ms41-3
MS41 ECU Portal https://sites.google.com/site/openms41/ms41-ecu-portal


Top
 Profile  
 
 Post subject: Re: MS41 ECU Definitions
PostPosted: Wed Oct 29, 2014 4:08 am 
Offline
Senior Member

Joined: Fri Feb 10, 2006 7:04 pm
Posts: 2661
Location: RIP
v0.17

Moved the 3 new maps from v0.16 out of the 'Unknown' folder and into their appropriate folders after confirmation by busterhax and Cloudforce.

Also added a map to adjust injector dead time as mentioned in viewtopic.php?f=42&t=11169

Code:
 <table type="2D" name="Injector Dead Time" category="Fueling" storagetype="uint8" endian="little" sizey="8" userlevel="1">
   <scaling units="ms" expression="x*.032" to_byte="x/.032"  format="0.00" fineincrement=".1" coarseincrement="1" />
   <table type="Y Axis" name="Battery Voltage" storagetype="uint8" endian="little">
     <scaling units="Volts" expression="x*.10196" to_byte="x/.10196" format="0.0" fineincrement="1" coarseincrement="10" />
   </table>
   <description>TI_ADD_DLY - Injector dead time correction.</description>
   </table>

_________________
MS41 Project Leader & Co-Developer (2012 - 2023)
MS41.3 https://sites.google.com/site/openms41/custom-code---ms41-3
MS41 ECU Portal https://sites.google.com/site/openms41/ms41-ecu-portal


Top
 Profile  
 
 Post subject: Re: MS41 ECU Definitions
PostPosted: Fri Oct 31, 2014 4:45 pm 
Offline
Senior Member

Joined: Fri Feb 10, 2006 7:04 pm
Posts: 2661
Location: RIP
v0.18

Added a whole bunch of unknown maps. Hopueflly one day we'll look through the code and see what these do.
Code:
<table type="3D" name="3D - x848(?) y84A(?) - zF42" category="Unknown" storagetype="uint8" endian="little"  userlevel="1" sizex="6" sizey="8" >
   <scaling units="?" expression="x" to_byte="x" format="0.00" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="?" storagetype="uint8" endian="little">
     <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="?" storagetype="uint8" endian="little">
    <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>?</description>
</table>


<table type="3D" name="3D - x75A(?) y767(?) - zA38" category="Unknown" storagetype="uint8" endian="little"  userlevel="1" sizex="5" sizey="7" >
   <scaling units="?" expression="x" to_byte="x" format="0.00" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="?" storagetype="uint8" endian="little">
     <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="?" storagetype="uint8" endian="little">
    <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>?</description>
</table>

<table type="3D" name="3D - x75A(?) y767(?) - zAB0" category="Unknown" storagetype="uint8" endian="little"  userlevel="1" sizex="5" sizey="7" >
   <scaling units="?" expression="x" to_byte="x" format="0.00" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="?" storagetype="uint8" endian="little">
     <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="?" storagetype="uint8" endian="little">
    <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>?</description>
</table>

<table type="3D" name="3D - x75A(?) y767(?) - zAD8" category="Unknown" storagetype="uint8" endian="little"  userlevel="1" sizex="5" sizey="7" >
   <scaling units="?" expression="x" to_byte="x" format="0.00" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="?" storagetype="uint8" endian="little">
     <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="?" storagetype="uint8" endian="little">
    <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>?</description>
</table>


<table type="3D" name="3D - x75A(?) y76F(?) - zA60" category="Unknown" storagetype="uint8" endian="little"  userlevel="1" sizex="5" sizey="7" >
   <scaling units="?" expression="x" to_byte="x" format="0.00" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="?" storagetype="uint8" endian="little">
     <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="?" storagetype="uint8" endian="little">
    <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>?</description>
</table>
<table type="3D" name="3D - x75A(?) y76F(?) - zA88" category="Unknown" storagetype="uint8" endian="little"  userlevel="1" sizex="5" sizey="7" >
   <scaling units="?" expression="x" to_byte="x" format="0.00" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="?" storagetype="uint8" endian="little">
     <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="?" storagetype="uint8" endian="little">
    <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>?</description>
</table>

<table type="3D" name="3D - x7AA(?) y7DF(?) - zFCE" category="Unknown" storagetype="uint8" endian="little"  userlevel="1" sizex="8" sizey="8" >
   <scaling units="?" expression="x" to_byte="x" format="0.00" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="?" storagetype="uint8" endian="little">
     <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="?" storagetype="uint8" endian="little">
    <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>?</description>
</table>



<table type="3D" name="3D - x8D2(?) y8DB(?) - z1018" category="Unknown" storagetype="uint8" endian="little"  userlevel="1" sizex="8" sizey="8" >
   <scaling units="?" expression="x" to_byte="x" format="0.00" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="?" storagetype="uint8" endian="little">
     <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="?" storagetype="uint8" endian="little">
    <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>?</description>
</table>

<table type="3D" name="3D - x8E4(?) y8EB(?) - z105C" category="Unknown" storagetype="uint8" endian="little"  userlevel="1" sizex="6" sizey="8" >
   <scaling units="?" expression="x" to_byte="x" format="0.00" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="?" storagetype="uint8" endian="little">
     <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="?" storagetype="uint8" endian="little">
    <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>?</description>
</table>
<table type="3D" name="3D - x87D(?) y886(?) - z1090" category="Unknown" storagetype="uint8" endian="little"  userlevel="1" sizex="8" sizey="9" >
   <scaling units="?" expression="x" to_byte="x" format="0.00" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="?" storagetype="uint8" endian="little">
     <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="?" storagetype="uint8" endian="little">
    <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>?</description>
</table>

<table type="3D" name="3D - x828(?) y80C(?) - z10DC" category="Unknown" storagetype="uint8" endian="little"  userlevel="1" sizex="8" sizey="8" >
   <scaling units="?" expression="x" to_byte="x" format="0.00" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="?" storagetype="uint16" endian="little">
     <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="?" storagetype="uint8" endian="little">
    <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>?</description>
</table>

<table type="3D" name="3D - x828(?) y80C(?) - z1164" category="Unknown" storagetype="uint8" endian="little"  userlevel="1" sizex="8" sizey="8" >
   <scaling units="?" expression="x" to_byte="x" format="0.00" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="?" storagetype="uint16" endian="little">
     <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="?" storagetype="uint8" endian="little">
    <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>?</description>
</table>


<table type="3D" name="3D - x798(?) y78F(?) - z1120" category="Unknown" storagetype="uint8" endian="little"  userlevel="1" sizex="8" sizey="8" >
   <scaling units="?" expression="x" to_byte="x" format="0.00" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="?" storagetype="uint8" endian="little">
     <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="?" storagetype="uint8" endian="little">
    <scaling units="?" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>?</description>
</table>

_________________
MS41 Project Leader & Co-Developer (2012 - 2023)
MS41.3 https://sites.google.com/site/openms41/custom-code---ms41-3
MS41 ECU Portal https://sites.google.com/site/openms41/ms41-ecu-portal


Top
 Profile  
 
 Post subject: Re: MS41 ECU Definitions
PostPosted: Wed Nov 05, 2014 12:31 pm 
Offline
Senior Member

Joined: Fri Feb 10, 2006 7:04 pm
Posts: 2661
Location: RIP
v0.19

- Changed software version recognition scheme. Now is 2 byte starting at xEh instead of 4 byte starting at xCh.
- Updated the formula for WOT enrichment to % after discussion with EVILM3666 and verifying in Siemens documents.

_________________
MS41 Project Leader & Co-Developer (2012 - 2023)
MS41.3 https://sites.google.com/site/openms41/custom-code---ms41-3
MS41 ECU Portal https://sites.google.com/site/openms41/ms41-ecu-portal


Top
 Profile  
 
 Post subject: Re: MS41 ECU Definitions
PostPosted: Thu Nov 06, 2014 5:23 pm 
Offline
Senior Member

Joined: Fri Feb 10, 2006 7:04 pm
Posts: 2661
Location: RIP
v0.20

- Added MAF Plausibility Check RPM Thresholds. Modifying these values will disable the check and should allow for Turbocharger tuning where the MAF can be very high even at low RPM and low Throttle.
Code:
<table type="2D" name="MAF Plausibility Check - Low RPM Threshold" category="Turbo" storagetype="uint8" endian="little" sizey="1" userlevel="1">
   <scaling units="RPM" expression="x*32" to_byte="x/32"  format="0" fineincrement="50" coarseincrement="500" />
   <table type="Static Y Axis" name="Set to a value above MAF Plausibility Check - High RPM Threshold to disable" sizey="1">
<data>Low RPM Threshold</data>
   </table>
   <description>If RPM is less than this value, MAF Plausibility Check will be disabled
   The ECU runs through a section of code to check for TPS and/or MAF plausibility to detect sensor errors that aren't due to simple disconnects. The ECU has a rough Alpha N map that knows how RPM, TPS, and MAF should relate to one another. If sensor readings fall outside of this range, it will throw a code for plausibility. For example, at 25% throttle at 3400RPM, you can run into a situation where the turbo has spooled up and is generating a lot of airflow. This would never happen in an NA engine so the ECU sees this extra air read by the MAF sensor and thinks something is wrong. But it only checks for this in a narrow window of RPM between 1504 and 3488 and TPS between 13% and 30% in stock form. We can change these thresholds to fool the ECU into never running this code by changing the RPM thresholds.
   </description>
  </table>
 
<table type="2D" name="MAF Plausibility Check - High RPM Threshold" category="Turbo" storagetype="uint8" endian="little" sizey="1" userlevel="1">
   <scaling units="RPM" expression="x*32" to_byte="x/32"  format="0" fineincrement="50" coarseincrement="500" />
   <table type="Static Y Axis" name="Set to a value below MAF Plausibility Check - Low RPM Threshold to disable" sizey="1">
<data>High RPM Threshold</data>
   </table>
   <description>If RPM is more than this value, MAF Plausibility Check will be disabled
   The ECU runs through a section of code to check for TPS and/or MAF plausibility to detect sensor errors that aren't due to simple disconnects. The ECU has a rough Alpha N map that knows how RPM, TPS, and MAF should relate to one another. If sensor readings fall outside of this range, it will throw a code for plausibility. For example, at 25% throttle at 3400RPM, you can run into a situation where the turbo has spooled up and is generating a lot of airflow. This would never happen in an NA engine so the ECU sees this extra air read by the MAF sensor and thinks something is wrong. But it only checks for this in a narrow window of RPM between 1504 and 3488 and TPS between 13% and 30% in stock form. We can change these thresholds to fool the ECU into never running this code by changing the RPM thresholds.
   </description>
  </table>

_________________
MS41 Project Leader & Co-Developer (2012 - 2023)
MS41.3 https://sites.google.com/site/openms41/custom-code---ms41-3
MS41 ECU Portal https://sites.google.com/site/openms41/ms41-ecu-portal


Top
 Profile  
 
 Post subject: Re: MS41 ECU Definitions
PostPosted: Sat Nov 08, 2014 12:24 am 
Offline
Senior Member

Joined: Fri Feb 10, 2006 7:04 pm
Posts: 2661
Location: RIP
v0.21

- 3 of the unknown 4x16 maps were confirmed to be knock related so put them in their own 'Knock' folder
- Set the X and Y axis as MAF and RPM, respectively
- Set formula for table values based on Siemens Documents for MS42 and a wild ass guess
- Renamed the 3 different types of cylinder specific tables (Window Start, Window End, and Multiplicative Factor) assuming a firing order of 1 5 3 6 2 4 and their order of appearance in disassembly
- Changed most of the MAF axis from 'kg/hr' to 'mg/stroke' and updated the conversion formulae accordingly
- Renamed some of the DTC tables because I think they are actually 'error counter increment values'

_________________
MS41 Project Leader & Co-Developer (2012 - 2023)
MS41.3 https://sites.google.com/site/openms41/custom-code---ms41-3
MS41 ECU Portal https://sites.google.com/site/openms41/ms41-ecu-portal


Top
 Profile  
 
 Post subject: Re: MS41 ECU Definitions
PostPosted: Mon Nov 17, 2014 5:58 pm 
Offline
Senior Member

Joined: Fri Feb 10, 2006 7:04 pm
Posts: 2661
Location: RIP
v0.22

added 3 warmup tables for SAP, Catalyst Heating, and Warmup?
added table z19AE which disables FD40.6 which may be a flag to disable Catalyst Heating. Testing needed.
Code:
 
 <table type="2D" name="2D - y13A6(TCO) - z19AE" category="TI_WUP_COR" storagetype="uint16" endian="little" sizey="8" userlevel="4">
   <scaling units="???" expression="x" to_byte="x"  format="0" fineincrement="1" coarseincrement="10" />
   <table type="Y Axis" name="ECT" storagetype="uint8" endian="little">
     <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   </table></table>

  <table type="3D" name="3D - x3148(MAF) y314A(RPM) - z314C" category="TI_WUP_COR" storagetype="uint8" endian="little"  userlevel="4" sizex="8" sizey="8" >
   <scaling units="%" expression="x*.392" to_byte="x/.392" format="0" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="MAF" storagetype="uint8" endian="little">
     <scaling units="mg/stroke" expression="x*5.45" to_byte="x/5.45" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="Engine Speed" storagetype="uint8" endian="little">
    <scaling units="RPM" expression="x*32" to_byte="x/32" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>IP_TI_SAWUP?</description>
</table>
    <table type="3D" name="3D - x1762(MAF) y1764(RPM) - z1766" category="TI_WUP_COR" storagetype="uint8" endian="little"  userlevel="4" sizex="8" sizey="8" >
   <scaling units="%" expression="x*.392" to_byte="x/.392" format="0" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="MAF" storagetype="uint8" endian="little">
     <scaling units="mg/stroke" expression="x*5.45" to_byte="x/5.45" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="Engine Speed" storagetype="uint8" endian="little">
    <scaling units="RPM" expression="x*32" to_byte="x/32" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>IP_TI_CH?</description>
</table>
    <table type="3D" name="3D - x17D6(MAF) y17D8(RPM) - z17DA" category="TI_WUP_COR" storagetype="uint8" endian="little"  userlevel="4" sizex="8" sizey="8" >
   <scaling units="%" expression="x*.392" to_byte="x/.392" format="0" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="MAF" storagetype="uint8" endian="little">
     <scaling units="mg/stroke" expression="x*5.45" to_byte="x/5.45" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="Engine Speed" storagetype="uint8" endian="little">
    <scaling units="RPM" expression="x*32" to_byte="x/32" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>IP_TI_WUP?</description>
</table>

_________________
MS41 Project Leader & Co-Developer (2012 - 2023)
MS41.3 https://sites.google.com/site/openms41/custom-code---ms41-3
MS41 ECU Portal https://sites.google.com/site/openms41/ms41-ecu-portal


Top
 Profile  
 
 Post subject: Re: MS41 ECU Definitions
PostPosted: Wed Dec 03, 2014 5:39 am 
Offline
Senior Member

Joined: Fri Feb 10, 2006 7:04 pm
Posts: 2661
Location: RIP
v0.23

added switch to disable checksum for program section (256KB full read only) courtesy of Alec (d_munter)

added switches to disable OBD2 readiness monitoring for 5 systems (256KB MS41.2 full read only) *NEEDS TESTING*
Off-road and racing use only. Must NEVER be disabled on any vehicle driven on a public road.

Keep in mind this is changing the program code and we don't have a way to calculate those checksums yet so make sure you disable the checksum for the program section which is also included in this version of the ECU definitions

_________________
MS41 Project Leader & Co-Developer (2012 - 2023)
MS41.3 https://sites.google.com/site/openms41/custom-code---ms41-3
MS41 ECU Portal https://sites.google.com/site/openms41/ms41-ecu-portal


Top
 Profile  
 
 Post subject: Re: MS41 ECU Definitions
PostPosted: Wed Dec 17, 2014 2:19 am 
Offline
Senior Member

Joined: Fri Feb 10, 2006 7:04 pm
Posts: 2661
Location: RIP
v0.24

- renamed a warmup table and added another. these are used to help the engine run when it's not at operating temp.
- added coolant and air temperature compensation tables for ignition timing advance.
Code:
    <table type="3D" name="Warmup Enrichment - Multiplicative Factor" category="TI_WUP_COR" storagetype="uint8" endian="little"  userlevel="1" sizex="3" sizey="8" >
   <scaling units="Multiplicative Factor" expression="x*.00784" to_byte="x/.00784" format="0.00" fineincrement=".1" coarseincrement="1" />
   <table type="X Axis" name="Coolant Temperature @ Engine Start" storagetype="uint8" endian="little">
     <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="Coolant Temperature" storagetype="uint8" endian="little">
    <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>Fuel enrichment for a cold engine.
 
Multiply the values in this table to "Warmup Enrichment - Nominal" to calculate final Warmup Enrichment</description>
</table>
    <table type="3D" name="Warmup Enrichment - Nominal" category="TI_WUP_COR" storagetype="uint8" endian="little"  userlevel="1" sizex="8" sizey="8" >
   <scaling units="%" expression="x*.392" to_byte="x/.392" format="0" fineincrement="1" coarseincrement="10" />
   <table type="X Axis" name="MAF" storagetype="uint8" endian="little">
     <scaling units="mg/stroke" expression="x*5.45" to_byte="x/5.45" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="Engine Speed" storagetype="uint8" endian="little">
    <scaling units="RPM" expression="x*32" to_byte="x/32" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>Fuel enrichment for a cold engine.

Multiply the values in this table to "Warmup Enrichment - Multiplicative Factor" to calculate Warmup Enrichment.</description>
</table>
  <table type="3D" name="Temperature Compensation - Multiplicative Factor" category="Timing" storagetype="uint8" endian="little" sizex="6" sizey="6" userlevel="4" >
   <scaling units="Multiplicative Factor" expression="(128-x)*.0078" to_byte="128-(x/.0078)" format="0.00" fineincrement=".1" coarseincrement="1" />
   <table type="X Axis" name="Air Temperature" storagetype="uint8" endian="little">
    <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   </table>
   <table type="Y Axis" name="Coolant Temperature" storagetype="uint8" endian="little">
    <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="50" coarseincrement="100" />
   </table>
   <description>IP_TIA_TCO_FAC__TIA__TCO - This is multiplied to the "Temperature Compensation - Nominal" table to determine total adjustment to ignition angle based on coolant and air temperature.</description>
  </table>
  <table type="3D" name="Temperature Compensation - Nominal" category="Timing" storagetype="uint8" endian="little" sizex="6" sizey="8" userlevel="4" >
   <scaling units="(&deg;) BTDC" expression="(128-x)*.375" to_byte="128-(x/.375)" format="0.00" fineincrement=".1" coarseincrement="1" />
   <table type="X Axis" name="MAF Load" storagetype="uint8" endian="little">
     <scaling units="mg/stroke" expression="x*5.45" to_byte="x/5.45" format="0" fineincrement="1" coarseincrement="10" />
   </table>
     <table type="Y Axis" name="Engine Speed" storagetype="uint8" endian="little">
    <scaling units="RPM" expression="x*32" to_byte="x/32" format="#" fineincrement="50" coarseincrement="100" />
   </table>
   <description>IP_IGA_N_MAF__N_32__MAF - This is multiplied to the "Temperature Compensation - Multiplicative Factor" table to determine total adjustment to ignition angle based on coolant and air temperature.</description>
  </table>

_________________
MS41 Project Leader & Co-Developer (2012 - 2023)
MS41.3 https://sites.google.com/site/openms41/custom-code---ms41-3
MS41 ECU Portal https://sites.google.com/site/openms41/ms41-ecu-portal


Top
 Profile  
 
 Post subject: Re: MS41 ECU Definitions
PostPosted: Mon Dec 22, 2014 6:35 am 
Offline
Senior Member

Joined: Fri Feb 10, 2006 7:04 pm
Posts: 2661
Location: RIP
v0.25
- added some Catalyst Heating tables
- added some Fuel Trim limits
- added some Closed Loop tables

Code:
 <table type="2D" name="Catalyst Heating - Initial Counter - Fuel and Ignition Correction" category="Catalyst Heating" storagetype="uint16" endian="little" sizey="8" userlevel="4">
   <scaling units="Time" expression="x" to_byte="x"  format="0" fineincrement="1" coarseincrement="10" />
   <table type="Y Axis" name="Coolant Temperature @ Engine Start" storagetype="uint8" endian="little">
     <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   </table>
   <description>If value is 0, ignore rest of the tables and disable all Catalyst Heating logic.</description>
   </table>
   
    <table type="2D" name="Catalyst Heating - Initial Counter - Fuel Correction" category="Catalyst Heating" storagetype="uint16" endian="little" sizey="8" userlevel="4">
   <scaling units="Time" expression="x" to_byte="x"  format="0" fineincrement="1" coarseincrement="10" />
   <table type="Y Axis" name="Coolant Temperature" storagetype="uint8" endian="little">
     <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   </table>
   <description>If value is 0, ignore rest of the tables and disable Catalyst Heating - Fuel Correction logic.</description>
   </table>
   

<table type="2D" name="Catalyst Heating - Fuel Correction % - Multiplicative - Idle" category="Catalyst Heating" storagetype="uint8" endian="little"  userlevel="1" sizey="8" >
   <scaling units="Multiplicative %" expression="x*.78" to_byte="x/.78" format="0" fineincrement="1" coarseincrement="5" />
   <table type="Y Axis" name="Coolant Temperature" storagetype="uint8" endian="little">
      <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   </table>
   <description>Multiply this table to "Catalyst Heating - Fuel Correction % - Nominal" and add "Catalyst Heating - Fuel Correction % - Additional Value" to calculate Fuel Enrichment % when Catalyst Heating mode is enabled. This table is only used during idle.</description>
</table>
<table type="2D" name="Catalyst Heating - Fuel Correction % - Multiplicative - Out Of Idle" category="Catalyst Heating" storagetype="uint8" endian="little"  userlevel="1" sizey="8" >
   <scaling units="Multiplicative %" expression="x*.78" to_byte="x/.78" format="0" fineincrement="1" coarseincrement="5" />
     <table type="Y Axis" name="Coolant Temperature" storagetype="uint8" endian="little">
    <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>Multiply this table to "Catalyst Heating - Fuel Correction % - Nominal" and add "Catalyst Heating - Fuel Correction % - Additional Value" to calculate Fuel Enrichment % when Catalyst Heating mode is enabled. This table is only used when out of idle.</description>
</table> 
<table type="3D" name="Catalyst Heating - Fuel Correction % - Nominal" category="Catalyst Heating" storagetype="uint8" endian="little"  userlevel="1" sizex="8" sizey="8" >
   <scaling units="Nominal %" expression="x*.3906" to_byte="x/.3906" format="0" fineincrement="1" coarseincrement="5" />
   <table type="X Axis" name="MAF" storagetype="uint8" endian="little">
      <scaling units="mg/stroke" expression="x*5.45" to_byte="x/5.45" format="0" fineincrement="1" coarseincrement="10" />
   </table>
   <table type="Y Axis" name="Engine Speed" storagetype="uint8" endian="little">
      <scaling units="RPM" expression="x*32" to_byte="x/32" format="0" fineincrement="1" coarseincrement="10" />
   </table>
   <description>Multiply this table to "Catalyst Heating - Fuel Correction % - Multiplicative - Idle" or "Catalyst Heating - Fuel Correction % - Multiplicative - Out Of Idle" and add "Catalyst Heating - Fuel Correction % - Additional Value" to calculate Fuel Enrichment % when Catalyst Heating mode is enabled.</description>
</table>

<table type="3D" name="Catalyst Heating - Fuel Correction % - Additional" category="Catalyst Heating" storagetype="uint16" endian="little"  userlevel="1" sizey="8" sizex="8" >
   <scaling units="Additional %" expression="x*.0244" to_byte="x/.0244" format="0" fineincrement="1" coarseincrement="5" />
   <table type="X Axis" name="Counter since Engine Start" storagetype="uint16" endian="little">
   <scaling units="Time" expression="x" to_byte="x" format="0" fineincrement="1" coarseincrement="10" />
   </table>
    <table type="Y Axis" name="Coolant Temperature" storagetype="uint8" endian="little">
    <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>Add the values in this table after multiplying "Catalyst Heating - Fuel Correction % - Nominal" to either "Catalyst Heating - Fuel Correction % - Multiplicative - Idle" or "Catalyst Heating - Fuel Correction % - Multiplicative - Out Of Idle" to calculate Fuel Enrichment % when Catalyst Heating mode is enabled.</description>
</table>


<table type="2D" name="Short Term Fuel Trim - Minimum Limit" category="Fuel Learning" storagetype="uint16" endian="little"  userlevel="1" sizey="1">
   <scaling units="%" expression="(x-32768)*(100/65536)" to_byte="(x/(100/65536))+32768" format="0.00" fineincrement=".1" coarseincrement="1" />
      <table type="Static Y Axis" name="Short Term Fuel Trim - Minimum Limit" sizey="1">
    <data>Lambda Integrator - Minimum Limit</data>
   </table>
<description></description>
</table>
<table type="2D" name="Short Term Fuel Trim - Maximum Limit" category="Fuel Learning" storagetype="uint16" endian="little"  userlevel="1" sizey="1">
   <scaling units="%" expression="(x-32768)*(100/65536)" to_byte="(x/(100/65536))+32768" format="0.00" fineincrement=".1" coarseincrement="1" />
         <table type="Static Y Axis" name="Short Term Fuel Trim - Maximum Limit" sizey="1">
    <data>Lambda Integrator - Maximum Limit</data>
   </table>
<description></description>
</table>
<table type="2D" name="Long Term Fuel Trim - Minimum Limit" category="Fuel Learning" storagetype="uint16" endian="little"  userlevel="1" sizey="1">
   <scaling units="%" expression="(x-32768)*(100/65536)" to_byte="(x/(100/65536))+32768" format="0.00" fineincrement=".1" coarseincrement="1" />
      <table type="Static Y Axis" name="Long Term Fuel Trim - Minimum Limit" sizey="1">
    <data>Adaptation Multiplicative - Minimum Limit</data>
   </table>
<description></description>
</table>
<table type="2D" name="Long Term Fuel Trim - Maximum Limit" category="Fuel Learning" storagetype="uint16" endian="little"  userlevel="1" sizey="1">
   <scaling units="%" expression="(x-32768)*(100/65536)" to_byte="(x/(100/65536))+32768" format="0.00" fineincrement=".1" coarseincrement="1" />
         <table type="Static Y Axis" name="Long Term Fuel Trim - Maximum Limit" sizey="1">
    <data>Adaptation Multiplicative - Maximum Limit</data>
   </table>
<description></description>
</table>


<table type="2D" name="Additive Fuel Trim - Minimum Limit" category="Fuel Learning" storagetype="uint16" endian="little"  userlevel="1" sizey="1">
   <scaling units="milliseconds" expression="(x-32768)*.004" to_byte="(x/.004)+32768" format="0.00" fineincrement=".1" coarseincrement="1" />
      <table type="Static Y Axis" name="Additive Fuel Trim - Minimum Limit" sizey="1">
    <data>Adaptation Additive - Minimum Limit</data>
   </table>
<description></description>
</table>
<table type="2D" name="Additive Fuel Trim - Maximum Limit" category="Fuel Learning" storagetype="uint16" endian="little"  userlevel="1" sizey="1">
   <scaling units="milliseconds" expression="(x-32768)*.004" to_byte="(x/.004)+32768" format="0.00" fineincrement=".1" coarseincrement="1" />
         <table type="Static Y Axis" name="Additive Fuel Trim - Maximum Limit" sizey="1">
    <data>Adaptation Additive - Maximum Limit</data>
   </table>
<description></description>
</table>
 <table type="3D" name="Long Term Fuel Trim - Warm-up Compensation" category="Fuel Learning" storagetype="uint8" endian="little"  userlevel="1" sizey="5" sizex="5" >
   <scaling units="Multiplicative %" expression="x*.3895" to_byte="x/.3895" format="0" fineincrement="1" coarseincrement="5" />
   <table type="X Axis" name="Long Term Fuel Trim" storagetype="uint16" endian="little">
   <scaling units="%" expression="(x-32768)*(100/65536)" to_byte="(x/(100/65536))+32768" format="0" fineincrement="1" coarseincrement="10" />
   </table>
    <table type="Y Axis" name="Coolant Temperature" storagetype="uint8" endian="little">
    <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>The applied Long Term Fuel Trim is multiplied by this table to reduce its effect when coolant temp is less than "Fuel Learning - Minimum Coolant Temp".</description>
</table>
<table type="3D" name="Additive Fuel Trim - Warm-up Compensation" category="Fuel Learning" storagetype="uint8" endian="little"  userlevel="1" sizey="5" sizex="5" >
   <scaling units="Multiplicative %" expression="x*.3895" to_byte="x/.3895" format="0" fineincrement="1" coarseincrement="5" />
   <table type="X Axis" name="Additive Fuel Trim" storagetype="uint16" endian="little">
   <scaling units="milliseconds" expression="(x-32768)*.004" to_byte="(x/.004)+32768"  format="0.00" fineincrement="1" coarseincrement="10" />
   </table>
    <table type="Y Axis" name="Coolant Temperature" storagetype="uint8" endian="little">
    <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>The applied Additive Fuel Trim is multiplied by this table to reduce its effect when coolant temp is less than "Fuel Learning - Minimum Coolant Temp".</description>
</table>
<table type="2D" name="Fuel Learning - Minimum Coolant Temperature" category="Fuel Learning" storagetype="uint8" endian="little"  userlevel="1" sizey="1">
   <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement=".1" coarseincrement="1" />
      <table type="Static Y Axis" name="Minimum Coolant Temperature" sizey="1">
    <data>Minimum Coolant Temperature</data>
   </table>
<description>Minimum Coolant Temperature to enable Fuel Learning.</description>
</table>
<table type="2D" name="Fuel Learning - Maximum Air Temperature" category="Fuel Learning" storagetype="uint8" endian="little"  userlevel="1" sizey="1">
   <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement=".1" coarseincrement="1" />
      <table type="Static Y Axis" name="Maximum Air Temperature" sizey="1">
    <data>Maximum Air Temperature</data>
   </table>
<description>Maximum Air Temperature to enable Fuel Learning.</description>
</table>
<table type="2D" name="Fuel Learning - Maximum MAF" category="Fuel Learning" storagetype="uint16" endian="little"  userlevel="1" sizey="1">
   <scaling units="kg/h" expression="x*.25" to_byte="x/.25" format="0" fineincrement=".1" coarseincrement="1" />
      <table type="Static Y Axis" name="Maximum MAF" sizey="1">
    <data>Maximum MAF</data>
   </table>
<description>Maximum MAF to enable Fuel Learning.</description>
</table>

<table type="2D" name="Closed Loop - Minimum RPM" category="Closed Loop" storagetype="uint8" endian="little"  userlevel="1" sizey="1">
   <scaling units="RPM" expression="x*32" to_byte="x/32" format="0" fineincrement="32" coarseincrement="128" />
         <table type="Static Y Axis" name="Engine Speed" sizey="1">
    <data>Closed Loop - Minimum RPM</data>
   </table>
<description>Minimum Engine Speed to enable Closed Loop.</description>
</table>

<table type="2D" name="Closed Loop - Minimum Coolant Temperature - Idle" category="Closed Loop" storagetype="uint8" endian="little"  userlevel="1" sizey="6" >
   <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   <table type="Y Axis" name="Coolant Temperature @ Engine Start" storagetype="uint8" endian="little">
     <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>Minimum coolant temperature during idle to enable Closed Loop.</description>
</table>
 
<table type="2D" name="Closed Loop - Minimum Coolant Temperature - Out of Idle" category="Closed Loop" storagetype="uint8" endian="little"  userlevel="1" sizey="6" >
   <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   <table type="Y Axis" name="Coolant Temperature @ Engine Start" storagetype="uint8" endian="little">
     <scaling units="&deg;C" expression="x*.75-48" to_byte="(x+48)/.75" format="0" fineincrement="1" coarseincrement="10" />
   </table>
<description>Minimum coolant temperature when out of idle to enable Closed Loop.</description>
</table>

_________________
MS41 Project Leader & Co-Developer (2012 - 2023)
MS41.3 https://sites.google.com/site/openms41/custom-code---ms41-3
MS41 ECU Portal https://sites.google.com/site/openms41/ms41-ecu-portal


Top
 Profile  
 
 Post subject: Re: MS41 ECU Definitions
PostPosted: Wed Dec 24, 2014 5:09 pm 
Offline
Senior Member

Joined: Fri Feb 10, 2006 7:04 pm
Posts: 2661
Location: RIP
v0.26

- renamed some Fuel Trim tables in BMW terms
- adjusted formula for "Catalyst Heating - Fuel Correction % - Additional"
- added VANOS cold start map

_________________
MS41 Project Leader & Co-Developer (2012 - 2023)
MS41.3 https://sites.google.com/site/openms41/custom-code---ms41-3
MS41 ECU Portal https://sites.google.com/site/openms41/ms41-ecu-portal


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 70 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

All times are UTC - 5 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Style based on FI Subsilver by phpBBservice.nl