News

Ferrari 360 Swiss Army Knife by 360trev!

Discussion in '360/430' started by 360trev, Sep 6, 2018.

  1. 360trev

    360trev F1 Rookie
    Project Master

    Oct 29, 2005
    3,250
    isle Of Man
    Full Name:
    360trev
    I thought some of the more technical (and even curious non techy!) guys on here may be interested to see my progress on the understanding of the Ferrari 360 Ignition Computers and how to adjust their internal programming to adapt to our own individual needs/desires.

    There are many applications of this including;
    1. Stradale or Custom maps in a Modena (for example for more power)
    2. Disabling Immobilizer (my original intention, now done and coming soon ! under extensive testing !)
    3. Adjusting Exhaust Valve opening times
    4. Disabling Secondary o2 sensors or temp probes
    5. Swapping a CS firmware to work with a 6-speed manual (e.g. for manual conversions)
    6. Larger CS AFM's in a Modena for more high rpm power
    7. Larger TB's, etc.
    8. Customized Throttle Sensitivity
    or Adjustible maps on the fly, Launch control, *insert your idea here*. You get the point.


    ...There are tonnes of reasons why this needs to be done!


    Now this has taken a serious amount of effort to get to this point. This isn't something that was off the shelf so I've had to custom develop all of the software from scratch. Also to make things more complex there are significant hurdles to changing even a single byte of code. There where literally tens of 'checksum's' embedded into the code to prevent tampering (or corruption of the rom images causing weird issues). Instead of disabling them I've had to write the software to re-calculate those sums (retaining them to keep the same level of security as it originally came with).
     
  2. 360trev

    360trev F1 Rookie
    Project Master

    Oct 29, 2005
    3,250
    isle Of Man
    Full Name:
    360trev
    Here's an interesting table (a table a bit like cells in Excel) contains rows and columns...

    This particular table is from a 360 Modena...

    -[ Exhaust Valve KFAGK Table ]---------------------------------------------------------------------
    >>> Scanning for KFAGK Table #1 Checking sub-routine [manages exhaust valve/flap opening]
    Found at offset=0x4d004 (seg:0x206 phy:0x818000 val:0x52d)

    KFAGK table: Characteristic map for exhaust flap changeover

    KFAGK table: 0x0001852d (file-offset)
    KFAGK table: X-Axis: 6 Rows : % of Throttle Applied.
    KFAGK table: Y-Axis: 10 Rows : RPM before Opening occurs.


    0.00% 20.25% 63.75% 69.00% 81.00% 99.75%
    [1]---- [2]---- [3]---- [4]---- [5]---- [6]----
    0 0 0 0 0 0 [ 1] : 800 rpm

    0 0 0 0 0 0 [ 2] : 1000 rpm
    0 0 0 0 0 0 [ 3] : 2520 rpm
    0 0 1 1 1 1 [ 4] : 2720 rpm
    0 0 1 2 2 2 [ 5] : 2920 rpm
    0 0 1 2 2 2 [ 6] : 3720 rpm
    0 0 1 2 2 2 [ 7] : 3920 rpm
    0 0 1 2 2 2 [ 8] : 5000 rpm
    0 0 1 2 2 2 [ 9] : 6000 rpm
    0 0 1 2 2 2 [10] : 9000 rpm

    Here you can see (and change!) the precise opening characteristics of the exhaust valves....
    This could be interesting to play with ;)

    Also you'll note its quite different in different countries and for different models... More coming soon ;)
     
    becir1, _TS and blueTT like this.
  3. RedNeck

    RedNeck F1 Rookie
    Silver Subscribed

    Jul 8, 2016
    4,070
    TN/GA
    Full Name:
    Matt
    Let me be the first to congratulate you on this. I gave up on programming many years ago, but I have a BASIC (pun intended) understanding of the amount of work that must have gone into this. You are performing a great service to the entire Ferrari community. Kudos, sir, kudos.
     
  4. 360trev

    360trev F1 Rookie
    Project Master

    Oct 29, 2005
    3,250
    isle Of Man
    Full Name:
    360trev
    Thanks Matt,

    Its becoming quite powerful now... for instance it already works to swap Air Flow Meters on a 360 Modena to use Stradale ones...

    Here it is dumping the Modena original AFM table called 'MLHFM' in Bosch speak...

    -[ Ferrari AirFlow Meter HFM ]-----------------------------------------------------------

    >>> Scanning for HFM Linearization Table Lookup code sequence...

    Found GGHFM_DHFM_Lookup() instruction sequence at file offset: 0x4f21e, len=16
    7c 1c 46 fc 00 02 9d 05 f0 4c 5c 14 d4 54 00 43
    Extracted MLHFM map table offset from mov instruction = 0x4300 (endian compliant)
    Extracted 512 table entries from code.

    File offset to MLHFM table 0x14300 (82688) [1024 bytes]
    MLHFM Table Identified: Ferrari 360 Modena/Spider/Challenge (Stock) Air Flow Meters
    Saving raw MLHFM table (dumped with no endian conversion) to file: 'MLHFM_Modena_4200bc1.bin'

    unsigned short MLHFM_4200bc1[512] = {
    0x05f5,0x05fc,0x0603,0x060a,0x0611,0x0617,0x061e,0x0625,0x062c,0x0632,0x0639,0x063f,0x0646,0x064c,0x0652,0x0659,
    0x065f,0x0665,0x066b,0x0672,0x0678,0x067e,0x0684,0x0689,0x068f,0x0695,0x069b,0x06a1,0x06a6,0x06ac,0x06b1,0x06b7,
    0x06bc,0x06c2,0x06c7,0x06cc,0x06d2,0x06d7,0x06dc,0x06e1,0x06e6,0x06eb,0x06f0,0x06f5,0x06fa,0x06ff,0x0704,0x0708,
    0x070d,0x0711,0x0716,0x071a,0x071f,0x0723,0x0727,0x072b,0x072f,0x0734,0x0738,0x073b,0x073f,0x0743,0x0747,0x074b,
    0x074e,0x0752,0x0756,0x0759,0x075d,0x0760,0x0763,0x0767,0x076a,0x076e,0x0771,0x0774,0x0777,0x077b,0x077e,0x0781,
    0x0784,0x0787,0x078a,0x078e,0x0791,0x0794,0x0797,0x079a,0x079e,0x07a1,0x07a5,0x07a8,0x07ac,0x07b0,0x07b4,0x07b8,
    0x07bc,0x07c0,0x07c4,0x07c8,0x07cc,0x07d0,0x07d3,0x07d7,0x07db,0x07df,0x07e3,0x07e7,0x07ea,0x07ee,0x07f2,0x07f6,
    0x07fa,0x07fe,0x0801,0x0805,0x0809,0x080d,0x0810,0x0813,0x0816,0x0819,0x081c,0x081f,0x0823,0x0826,0x0829,0x082c,
    0x082f,0x0833,0x0836,0x0839,0x083d,0x0840,0x0844,0x0847,0x084b,0x084e,0x0852,0x0856,0x0859,0x085d,0x0861,0x0865,
    0x0869,0x086d,0x0871,0x0875,0x0879,0x087d,0x0881,0x0886,0x088a,0x088f,0x0893,0x0898,0x089c,0x08a1,0x08a6,0x08ab,
    0x08af,0x08b4,0x08b9,0x08be,0x08c3,0x08c9,0x08ce,0x08d3,0x08d8,0x08de,0x08e3,0x08e9,0x08ee,0x08f4,0x08fa,0x08ff,
    0x0905,0x090b,0x0910,0x0916,0x091c,0x0922,0x0928,0x092e,0x0934,0x093a,0x0940,0x0946,0x094c,0x0952,0x0959,0x095f,
    0x0966,0x096c,0x0972,0x0979,0x0980,0x0986,0x098d,0x0993,0x099a,0x09a1,0x09a7,0x09ae,0x09b4,0x09bb,0x09c2,0x09c9,
    0x09d0,0x09d7,0x09de,0x09e5,0x09ec,0x09f3,0x09fa,0x0a02,0x0a09,0x0a11,0x0a18,0x0a20,0x0a27,0x0a2f,0x0a37,0x0a3f,
    0x0a47,0x0a4f,0x0a57,0x0a5f,0x0a67,0x0a6f,0x0a78,0x0a80,0x0a88,0x0a91,0x0a9a,0x0aa2,0x0aab,0x0ab4,0x0abd,0x0ac6,
    0x0acf,0x0ad8,0x0ae1,0x0aeb,0x0af4,0x0afe,0x0b07,0x0b11,0x0b1b,0x0b24,0x0b2e,0x0b38,0x0b42,0x0b4d,0x0b57,0x0b61,
    0x0b6b,0x0b76,0x0b80,0x0b8b,0x0b95,0x0ba0,0x0baa,0x0bb5,0x0bc0,0x0bcb,0x0bd6,0x0be1,0x0bec,0x0bf7,0x0c02,0x0c0d,
    0x0c18,0x0c24,0x0c2f,0x0c3a,0x0c46,0x0c51,0x0c5d,0x0c68,0x0c74,0x0c7f,0x0c8b,0x0c97,0x0ca3,0x0cb0,0x0cbc,0x0cc8,
    0x0cd5,0x0ce1,0x0cee,0x0cfa,0x0d07,0x0d14,0x0d21,0x0d2e,0x0d3b,0x0d48,0x0d56,0x0d64,0x0d72,0x0d80,0x0d8f,0x0d9d,
    0x0dac,0x0dbb,0x0dc9,0x0dd9,0x0de8,0x0df7,0x0e07,0x0e16,0x0e26,0x0e36,0x0e46,0x0e56,0x0e66,0x0e76,0x0e87,0x0e97,
    0x0ea8,0x0eb9,0x0eca,0x0edb,0x0eec,0x0efe,0x0f0f,0x0f21,0x0f33,0x0f45,0x0f57,0x0f69,0x0f7b,0x0f8e,0x0fa0,0x0fb3,
    0x0fc6,0x0fd9,0x0fed,0x1000,0x1013,0x1027,0x103b,0x104f,0x1063,0x1077,0x108c,0x10a0,0x10b5,0x10ca,0x10df,0x10f4,
    0x110a,0x1120,0x1135,0x114b,0x1161,0x1178,0x118e,0x11a5,0x11bc,0x11d3,0x11ea,0x1202,0x1219,0x1231,0x1249,0x1262,
    0x127a,0x1293,0x12ac,0x12c5,0x12de,0x12f7,0x1311,0x132b,0x1345,0x135f,0x1379,0x1394,0x13ae,0x13c9,0x13e4,0x1400,
    0x141b,0x1437,0x1453,0x146f,0x148c,0x14a8,0x14c5,0x14e2,0x1500,0x151d,0x153b,0x1559,0x1578,0x1597,0x15b6,0x15d5,
    0x15f4,0x1614,0x1634,0x1655,0x1675,0x1696,0x16b7,0x16d9,0x16fa,0x171c,0x173f,0x1761,0x1784,0x17a7,0x17ca,0x17ee,
    0x1811,0x1835,0x185a,0x187e,0x18a3,0x18c8,0x18ed,0x1913,0x1939,0x195f,0x1986,0x19ac,0x19d3,0x19fb,0x1a22,0x1a4a,
    0x1a72,0x1a9b,0x1ac4,0x1aee,0x1b18,0x1b42,0x1b6d,0x1b98,0x1bc3,0x1bef,0x1c1b,0x1c47,0x1c74,0x1ca1,0x1ccf,0x1cfd,
    0x1d2b,0x1d59,0x1d88,0x1db8,0x1de8,0x1e18,0x1e48,0x1e79,0x1eaa,0x1edc,0x1f0e,0x1f40,0x1f73,0x1fa6,0x1fda,0x200d,
    0x2042,0x2076,0x20ab,0x20e0,0x2117,0x214d,0x2184,0x21bc,0x21f3,0x222c,0x2264,0x229d,0x22d7,0x2311,0x234b,0x2386,
    0x23c1,0x23fd,0x2439,0x2476,0x24b3,0x24f1,0x252f,0x256e,0x25ad,0x25ed,0x262d,0x266d,0x26ae,0x26f0,0x2732,0x2775,
    0x27b8,0x27fc,0x2840,0x2885,0x28cb,0x2911,0x2957,0x299e,0x29e6,0x2a2e,0x2a77,0x2ac1,0x2b0b,0x2b55,0x2ba1,0x2bec
    };
    ---

    and here it is dumping Challenge Stradale one...;

    -[ Ferrari AirFlow Meter HFM ]-----------------------------------------------------------

    >>> Scanning for HFM Linearization Table Lookup code sequence...


    Found GGHFM_DHFM_Lookup() instruction sequence at file offset: 0x4f21e, len=16
    7c 1c 46 fc 00 02 9d 05 f0 4c 5c 14 d4 54 00 43
    Extracted MLHFM map table offset from mov instruction = 0x4300 (endian compliant)
    Extracted 512 table entries from code.

    File offset to MLHFM table 0x14300 (82688) [1024 bytes]
    MLHFM Table Identified: Ferrari 360 Challenge Stradale (Stock) Air Flow Meters
    Saving raw MLHFM table (dumped with no endian conversion) to file: 'MLHFM_Stradale_87b3489a.bin'

    unsigned short MLHFM_87b3489a[512] = {
    0x0593,0x059b,0x05a2,0x05aa,0x05b2,0x05b9,0x05c1,0x05c8,0x05d0,0x05d7,0x05de,0x05e6,0x05ed,0x05f4,0x05fb,0x0602,
    0x0609,0x0611,0x0618,0x061e,0x0625,0x062c,0x0633,0x063a,0x0641,0x0647,0x064e,0x0655,0x065b,0x0662,0x0668,0x066f,
    0x0675,0x067b,0x0682,0x0688,0x068e,0x0694,0x069a,0x06a1,0x06a7,0x06ad,0x06b2,0x06b8,0x06be,0x06c4,0x06ca,0x06d0,
    0x06d5,0x06db,0x06e1,0x06e6,0x06ec,0x06f1,0x06f7,0x06fc,0x0701,0x0707,0x070c,0x0711,0x0716,0x071a,0x071f,0x0724,
    0x0728,0x072d,0x0731,0x0736,0x073a,0x073f,0x0743,0x0747,0x074b,0x0750,0x0754,0x0758,0x075c,0x0760,0x0764,0x0768,
    0x076c,0x0770,0x0774,0x0778,0x077c,0x0780,0x0784,0x0788,0x078b,0x078f,0x0793,0x0797,0x079c,0x07a1,0x07a5,0x07aa,
    0x07af,0x07b4,0x07ba,0x07bf,0x07c5,0x07ca,0x07d0,0x07d5,0x07da,0x07df,0x07e4,0x07e9,0x07ef,0x07f4,0x07f9,0x07fe,
    0x0803,0x0808,0x080d,0x0811,0x0815,0x0819,0x081d,0x0820,0x0824,0x0828,0x082c,0x0830,0x0834,0x0838,0x083c,0x0840,
    0x0844,0x0848,0x084d,0x0851,0x0855,0x0859,0x085d,0x0862,0x0866,0x086a,0x086f,0x0873,0x0878,0x087c,0x0881,0x0886,
    0x088b,0x0890,0x0894,0x0899,0x089f,0x08a4,0x08a9,0x08ae,0x08b4,0x08b9,0x08bf,0x08c4,0x08ca,0x08d0,0x08d5,0x08db,
    0x08e1,0x08e7,0x08ed,0x08f3,0x08fa,0x0900,0x0906,0x090c,0x0912,0x0918,0x091e,0x0925,0x092b,0x0931,0x0938,0x093e,
    0x0945,0x094b,0x0952,0x0959,0x095f,0x0966,0x096d,0x0974,0x097b,0x0982,0x0989,0x0990,0x0997,0x099e,0x09a5,0x09ac,
    0x09b3,0x09bb,0x09c2,0x09c9,0x09d1,0x09d8,0x09e0,0x09e8,0x09f0,0x09f8,0x0a00,0x0a08,0x0a10,0x0a18,0x0a20,0x0a29,
    0x0a31,0x0a3a,0x0a42,0x0a4b,0x0a54,0x0a5c,0x0a65,0x0a6e,0x0a77,0x0a80,0x0a8a,0x0a93,0x0a9c,0x0aa6,0x0aaf,0x0ab9,
    0x0ac2,0x0acc,0x0ad6,0x0ae0,0x0aea,0x0af4,0x0aff,0x0b09,0x0b13,0x0b1e,0x0b28,0x0b33,0x0b3e,0x0b48,0x0b53,0x0b5e,
    0x0b6a,0x0b75,0x0b80,0x0b8c,0x0b98,0x0ba3,0x0baf,0x0bbb,0x0bc7,0x0bd3,0x0be0,0x0bec,0x0bf8,0x0c05,0x0c11,0x0c1e,
    0x0c2a,0x0c37,0x0c44,0x0c50,0x0c5d,0x0c6a,0x0c77,0x0c84,0x0c92,0x0c9f,0x0cac,0x0cba,0x0cc8,0x0cd5,0x0ce3,0x0cf1,
    0x0cff,0x0d0d,0x0d1b,0x0d29,0x0d38,0x0d46,0x0d55,0x0d64,0x0d74,0x0d83,0x0d93,0x0da3,0x0db3,0x0dc3,0x0dd3,0x0de3,
    0x0df4,0x0e05,0x0e16,0x0e27,0x0e38,0x0e49,0x0e5b,0x0e6d,0x0e7f,0x0e91,0x0ea3,0x0eb5,0x0ec8,0x0edb,0x0eee,0x0f01,
    0x0f14,0x0f27,0x0f3b,0x0f4f,0x0f63,0x0f77,0x0f8b,0x0fa0,0x0fb4,0x0fc9,0x0fde,0x0ff3,0x1008,0x101e,0x1034,0x1049,
    0x105f,0x1076,0x108c,0x10a3,0x10b9,0x10d0,0x10e7,0x10ff,0x1116,0x112e,0x1145,0x115d,0x1176,0x118e,0x11a7,0x11c0,
    0x11d9,0x11f2,0x120c,0x1225,0x123f,0x125a,0x1274,0x128f,0x12aa,0x12c5,0x12e0,0x12fb,0x1317,0x1333,0x134f,0x136c,
    0x1388,0x13a5,0x13c2,0x13e0,0x13fd,0x141b,0x1439,0x1458,0x1477,0x1496,0x14b5,0x14d4,0x14f4,0x1514,0x1534,0x1555,
    0x1576,0x1596,0x15b8,0x15d9,0x15fb,0x161c,0x163f,0x1661,0x1684,0x16a7,0x16cb,0x16ee,0x1712,0x1737,0x175b,0x1781,
    0x17a6,0x17cc,0x17f2,0x1818,0x183f,0x1866,0x188e,0x18b6,0x18de,0x1906,0x192f,0x1958,0x1981,0x19ab,0x19d4,0x19ff,
    0x1a29,0x1a54,0x1a7f,0x1aab,0x1ad6,0x1b03,0x1b2f,0x1b5c,0x1b89,0x1bb7,0x1be4,0x1c12,0x1c41,0x1c70,0x1c9f,0x1cce,
    0x1cfe,0x1d2e,0x1d5f,0x1d8f,0x1dc0,0x1df2,0x1e24,0x1e56,0x1e89,0x1ebc,0x1eef,0x1f23,0x1f57,0x1f8b,0x1fc0,0x1ff5,
    0x202a,0x2060,0x2096,0x20cc,0x2103,0x213a,0x2172,0x21aa,0x21e2,0x221b,0x2254,0x228d,0x22c7,0x2301,0x233c,0x2377,
    0x23b2,0x23ed,0x242a,0x2468,0x24a6,0x24e4,0x2524,0x2563,0x25a3,0x25e4,0x2625,0x2667,0x26a9,0x26eb,0x272e,0x2772,
    0x27b5,0x27f9,0x283e,0x2883,0x28c9,0x290f,0x2955,0x299d,0x29e4,0x2a2d,0x2a76,0x2abf,0x2b09,0x2b54,0x2b9e,0x2bea,
    0x2c36,0x2c84,0x2cd2,0x2d21,0x2d71,0x2dc1,0x2e12,0x2e63,0x2eb6,0x2f09,0x2f5d,0x2fb2,0x3007,0x305d,0x30b4,0x310c,
    0x3165,0x31be,0x3218,0x3272,0x32ce,0x332b,0x3388,0x33e7,0x3446,0x34a6,0x3507,0x3569,0x35cc,0x362f,0x3694,0x36f9
    };
    ---

    And here it is transplanting the Stradale one into a 360 firmware...

    >>> Scanning for HFM Linearization Table Lookup code sequence...


    Found GGHFM_DHFM_Lookup() instruction sequence at file offset: 0x4f21e, len=16
    7c 1c 46 fc 00 02 9d 05 f0 4c 5c 14 d4 54 00 43
    Extracted MLHFM map table offset from mov instruction = 0x4300 (endian compliant)
    Extracted 512 table entries from code.

    File offset to MLHFM table 0x14300 (82688) [1024 bytes]
    Ý Opening 'MLHFM_Stradale_87b3489a.bin' file
    Correctly loaded in an MLHFM file 'MLHFM_Stradale_87b3489a.bin'
    MLHFM Table Identified in loaded file: Ferrari 360 Challenge Stradale (Stock) Air Flow Meters

    Merging MLHFM table into rom...

    Saving modified rom to '360_US_F1_1_cpy.bin_patched.bin'...

    All done.
     
    XLNLIFE and blueTT like this.
  5. KC360 FL

    KC360 FL Formula Junior
    Silver Subscribed

    Jun 20, 2017
    641
    Melbourne Florida
    Full Name:
    KGC
    God bless you Trev. what else can I say...
     
    XLNLIFE and arizonaitalian like this.
  6. FlyingHaggisRacing

    FlyingHaggisRacing Formula 3
    Silver Subscribed

    Jul 2, 2013
    1,270
    This could be the best 360 thread in a long time.

    1. How are you determining the purpose of each block/table of data.
    Is there similarity in the data address offsets as found in other vehicles where more is known ?

    2. One day, perhaps we can dive into the TCU code, and deal with the slightly iffy clutch behavior on a light throttle.
     
    360trev likes this.
  7. CarbonDan

    CarbonDan Karting

    Aug 19, 2017
    126
    PNW
    Awesome Trev, subscribing to check in on the progress. This will no doubt be a strong product when ready for sale.

    1. Do you think something like independently adjustable racemode/suspension/transmission mapping can be done on a 360CS?
    For example, on my 360CS, I would love to be able to enable race mode but still maintain full (normal) Traction Control and keep the suspension in normal mode. But still get the faster shifts and auto blip on down shift, earlier exhaust valve opening etc.
    Really the main thing would be to have control of the fast shifting on the trans without stiffening the suspension and decreasing TCS.
    Is it possible to make that happen?

    2. Additionally, would it be possible to disable O2/catalyst monitoring while still maintaining monitor readiness? Normal exhaust tunes will get rid of the o2 CEL, but they will also put the monitor into a permanent state of 'Not Ready' meaning instant fail for emissions.

    Great work as usual!
     
  8. 360trev

    360trev F1 Rookie
    Project Master

    Oct 29, 2005
    3,250
    isle Of Man
    Full Name:
    360trev
    Hello CarbonDan,

    On your first point. This has already been done and documented. Its a VERY simple change and you can make it look oem by buying an identical button for the bank slot where there is a foglight. As it happens there is a button from a 456 which has a suspension logo on too so it looks factory when done. I'll dig out the details and post them. Also easy to reverse and works 100% as described. Its exactly what they did on the 430 Scuderia. CS owners simply miss the button!!!

    On point 2 absolutely yes its what I'm working on...
     
    CarbonDan likes this.
  9. Vegas CS

    Vegas CS Karting

    Apr 5, 2018
    76
    Full Name:
    Jim J
    I believe you, Stokpro, and Mike to be three of the most dedicate and hard working people on earth with regards to 360’s and the CS in particular. Thank you and kudos!
     
    360trev likes this.
  10. 360trev

    360trev F1 Rookie
    Project Master

    Oct 29, 2005
    3,250
    isle Of Man
    Full Name:
    360trev
    OK guys... My Swiss Army Knife of Ferrari tools is now ready to beta test... ;)

    https://github.com/360trev/ME7RomTool_Ferrari

    Its currently limited to command line users (console only) but this will be fixed later after its feature completed. I've release the basic tool as completely open source, freeware. If you have the skills you can edit it and modify it yourself ;)

    If you look in the release folder there is a pre-built binary which works on Windows. Ready to go, just feed it a rom and choose some options to test!!!

    Let me know how you get on!
     
  11. FlyingHaggisRacing

    FlyingHaggisRacing Formula 3
    Silver Subscribed

    Jul 2, 2013
    1,270
    Hi Trev
    Some people may encounter an error running the 'exe' - Missing libgcc_s_dw2-1.dll
    May need to add it in the Linker setup ?
     
  12. sierra055

    sierra055 Karting
    Silver Subscribed

    Sep 25, 2016
    227
    Melbourne, AU
    Full Name:
    Marshall
    Awesome work Trev!!

    As above, I had to add the dll to the program directory but otherwise worked a treat!

    Image Unavailable, Please Login

    Interestingly though, i got a no match found against the special CS map?
     
  13. 360trev

    360trev F1 Rookie
    Project Master

    Oct 29, 2005
    3,250
    isle Of Man
    Full Name:
    360trev
    Thanks, corrected.

    I will investigate if I can statically link this into the file. For now added it to the repo!

    Also done some more updates...
     
  14. 360trev

    360trev F1 Rookie
    Project Master

    Oct 29, 2005
    3,250
    isle Of Man
    Full Name:
    360trev
    I've just done the same screenshot...

    Compare the opening times for EU Modena version vs Sports Exhaust...!

    You'll notice it opens MUCH later in the rev range... Ofcourse we can edit this if we want now very easily ;)
    Image Unavailable, Please Login
     
  15. 360trev

    360trev F1 Rookie
    Project Master

    Oct 29, 2005
    3,250
    isle Of Man
    Full Name:
    360trev
    I've not added the feature to show the fueling maps yet!!! Gimme time ;)
     
  16. 360trev

    360trev F1 Rookie
    Project Master

    Oct 29, 2005
    3,250
    isle Of Man
    Full Name:
    360trev
    Fixed the valves checking, now with a second strain support added! try again!
     
  17. 360trev

    360trev F1 Rookie
    Project Master

    Oct 29, 2005
    3,250
    isle Of Man
    Full Name:
    360trev
    Just to give you an idea on how to convert your Bosch Ignition ECU rom dumped file to larger upgraded AFM's as fitted on the Stradale/F430 and F599... You can do it in a single command...

    me7romtool.exe -romfile "Ferrari 360 Challenge.bin" -whfm MLHFM_Stradale_87b3489a.bin -fixsums -outfile "finalrom.bin"

    This taks the original romfile, in this case "Ferrari 360 Challenge.bin" and updates it so that it now uses larger Ferrari 360/CS/F430 Air Flow Meters. It then uses -fixsums option to automatically correct the checksums and finally we save the new rom to "finalrom.bin"...
     
  18. 360trev

    360trev F1 Rookie
    Project Master

    Oct 29, 2005
    3,250
    isle Of Man
    Full Name:
    360trev
    And this is what the output should look like.

    Ferrari 360 ME7.3H4 Rom Tool. *BETA TEST* Last Built: Sep 7 2018 16:03:37 v1.03
    by 360trev. Needle lookup function borrowed from nyet (Thanks man!) from
    the ME7sum tool development (see github).

    HFM Input Filename: 'MLHFM_Stradale_87b3489a.bin'
    Ý Opening 'Ferrari 360 Challenge.bin' file
    Succeded loading file.

    Loaded ROM: Tool in 512Kb Mode

    -[ Ferrari AirFlow Meter HFM ]-----------------------------------------------------------

    >>> Scanning for HFM Linearization Table Lookup code sequence...


    Found GGHFM_DHFM_Lookup() instruction sequence at file offset: 0x4b90e, len=16
    7c 1c 46 fc 00 02 9d 05 f0 4c 5c 14 d4 54 00 43
    Extracted MLHFM map table offset from mov instruction = 0x4300 (endian compliant)
    Extracted 512 table entries from code.

    File offset to MLHFM table 0x14300 (82688) [1024 bytes]
    Ý Opening 'MLHFM_Stradale_87b3489a.bin' file
    Correctly loaded in an MLHFM file 'MLHFM_Stradale_87b3489a.bin'
    MLHFM Table Identified in loaded file: Ferrari 360 Challenge Stradale (Stock) Air Flow Meters

    Merging MLHFM table into rom...
    -[ CRC32_ChecksumCalc ]---------------------------------------------------------------------

    >>> Scanning for CRC32_ChecksumCalc() Variant #1 Checking sub-routine [calculates crc32 from polynomial table]
    No match found



    -[ Main-Rom Checksum Analysis ]----------------------------------------------------------

    >>> Scanning for Main ROM Checksum sub-routine #1 [to extract number of entries in table]
    main checksum byte sequence #1 found at offset=0x6003c.
    Found #2 Regional Block Entries in table

    >>> Scanning for Main ROM Checksum sub-routine #2 [to extract Start/End regions]
    main checksum byte sequence #2 found at offset=0x60000.

    Main Region Block #1:
    lo:0x1bfe8.W hi:0x1bfea.W (seg: 0x206 phy:0x81bfe8) : 0x0
    lo:0x1bfec.W hi:0x1bfee.W (seg: 0x206 phy:0x81bfec) : 0xfe6d sum=5e07d8e2 ~sum=a1f8271d : acc_sum=0
    Main Region Block #2:
    lo:0x1bff0.W hi:0x1bff2.W (seg: 0x206 phy:0x81bff0) : 0x20000
    lo:0x1bff4.W hi:0x1bff6.W (seg: 0x206 phy:0x81bff4) : 0x7ffff sum=e01b1f9c ~sum=1fe4e063 : acc_sum=5e07d8e2

    Final Main ROM Checksum calculation: 0x3e22f87e (after 2 rounds)
    Final Main ROM Checksum calculation: ~0xc1dd0781


    >>> Scanning for Main ROM Checksum sub-routine #3 variant #A [to extract stored checksums and locations in ROM]
    main checksum byte sequence #3 block found at offset=0x600a8.
    MAIN STORED ROM CHECKSUM: 0x3e22f87e (calc) ? 0x3e29679a (stored) : BAD! ~CHECKSUM: 0xc1dd0781 ? 0xc1d69865 : BAD!
    ***CORRECTING STORED MAINROM CHECKSUMS...
    MAIN STORED ROM CHECKSUM: 0x3e22f87e (calc) ? 0x3e22f87e (stored) : OK! ~CHECKSUM: 0xc1dd0781 ? 0xc1dd0781 : OK!


    -[ Multipoint Checksum Analysis ]--------------------------------------------------------

    >>> Scanning for Multipoint Checksum sub-routine #1 Variant A [to extract number entries in stored checksum list in ROM]
    Found at offset=0x61a42.
    Found #34 Multipoint Entries in table

    >>> Scanning for Multipoint Checksum sub-routine #2 Variant A [to extract address of stored checksum list location in ROM]
    Found at offset=0x61c9a.

    Multipoint Block #01 of #34:
    lo:0x1fc00.L (seg: 0x207 phy:0x81fc00) : Start: seg:0x000 phy:0x00000000 (offset: 0x00000000)
    lo:0x1fc04.L (seg: 0x207 phy:0x81fc04) : End: seg:0x000 phy:0x00003fff (offset: 0x00003fff)
    Block Checksum: 0x0fa0f5cf : Calculated: 0x0fa0f5cf OK
    ~Block Checksum: 0xf05f0a30 : ~Calculated: 0xf05f0a30 OK
    Multipoint Block #02 of #34:
    lo:0x1fc10.L (seg: 0x207 phy:0x81fc10) : Start: seg:0x001 phy:0x00004000 (offset: 0x00004000)
    lo:0x1fc14.L (seg: 0x207 phy:0x81fc14) : End: seg:0x001 phy:0x00007fff (offset: 0x00007fff)
    Block Checksum: 0x0f4716b3 : Calculated: 0x0f4716b3 OK
    ~Block Checksum: 0xf0b8e94c : ~Calculated: 0xf0b8e94c OK
    Multipoint Block #03 of #34:
    lo:0x1fc20.L (seg: 0x207 phy:0x81fc20) : Start: seg:0x200 phy:0x00800000 (offset: 0x00000000)
    lo:0x1fc24.L (seg: 0x207 phy:0x81fc24) : End: seg:0x200 phy:0x00803fff (offset: 0x00003fff)
    Block Checksum: 0x0fa0f5cf : Calculated: 0x0fa0f5cf OK
    ~Block Checksum: 0xf05f0a30 : ~Calculated: 0xf05f0a30 OK

    ... cut .... cut ....... cut .... cut .... You get the message ;)

    Multipoint Block #34 of #34:
    lo:0x1fe10.L (seg: 0x207 phy:0x81fe10) : Start: seg:0x21f phy:0x0087c000 (offset: 0x0007c000)
    lo:0x1fe14.L (seg: 0x207 phy:0x81fe14) : End: seg:0x21f phy:0x0087ffff (offset: 0x0007ffff)
    Block Checksum: 0x1ffde002 : Calculated: 0x1ffde002 OK
    ~Block Checksum: 0xe0021ffd : ~Calculated: 0xe0021ffd OK

    Total Multipoint Checksums Passed : 66 (~97%)
    Total Multipoint Checksums Failed : 2 (~2%)
    Total Multipoint Checksums Fixed : 2 (~2%)


    Attempting to save corrected rom to 'finalrom.bin'...
    File already exists.


    If you get the 'Already exists' since you've ran it before you can either delete the file or use -force option to force overwriting!
     
  19. timwu12

    timwu12 Formula Junior

    Oct 31, 2014
    524
    Houston, TX
    Trev, when this is rolled out to the masses later, if our 360 modena's ECU have been tuned by a tuner and we select this option of upgrading the air flow meters to the CS/430 ones, I remember you saying it'll utilize the CS map tables so I was wondering if this will overwrite the previously tuned file from the tuner?
     
  20. Skidkid

    Skidkid F1 Veteran
    Rossa Subscribed Owner

    Aug 25, 2005
    5,402
    Campbell, CA
    Full Name:
    John Zornes
    If you swap flow meters to larger size the maps aren't valid any more anyway so why does it matter?
     
  21. 360trev

    360trev F1 Rookie
    Project Master

    Oct 29, 2005
    3,250
    isle Of Man
    Full Name:
    360trev
    The stock Modena maps work just fine with larger AFM's done in this way. These tables just linearize the airflow readings and the ecu will adjust things accordingly. This is so that it knows precisely how much air is being metered and it can adjust the AFR automatically.

    I will ofcourse add feature to swap over the CS fueling maps too (which also work just fine on a stock Modena, larger AFM's or not)...
     
  22. Skidkid

    Skidkid F1 Veteran
    Rossa Subscribed Owner

    Aug 25, 2005
    5,402
    Campbell, CA
    Full Name:
    John Zornes
    Understood, the system will adjust trim to match the change. I meant the maps generated by a tuner are no longer 'tuned' since the system is now different (response to Tim Wu). Then again, maybe I am confused about Tim's Q and he isn't talking about changing the MAF to a larger size and expecting it to remain tuned. OR I am completely full of it and failed to understand any of this. All are possible.
     
  23. timwu12

    timwu12 Formula Junior

    Oct 31, 2014
    524
    Houston, TX
    Yup, that's exactly what I was asking...if changing the MAFs to a larger size and selecting the corresponding tables to accommodate the larger MAF will essentially render my tune useless?
     
  24. 360trev

    360trev F1 Rookie
    Project Master

    Oct 29, 2005
    3,250
    isle Of Man
    Full Name:
    360trev
    Using the larger Mass Air Flow housing diameter from the bigger AFM's simply allows us to extend the functional metered flow range so that we can supply enough unrestricted air at the higher rpm range. On the Modena they where a bit undersized so they limited max power at high rpm. They simply couldn't flow enough air..
    When you upgrade the AFM's it requires the MLHFM table (to be re-calibrated to ensure that intake air mass is correctly metered). This is exactly what this updated table does.

    While not for our exact car (this document attached is for a turbocharged Audi TT) it does use the approximately the same ME7.x software family so majority of the information is broadly the same... a great read for those interested in the subject...
     
  25. 360trev

    360trev F1 Rookie
    Project Master

    Oct 29, 2005
    3,250
    isle Of Man
    Full Name:
    360trev
    No... it will be fine..

    Most tuners in the Ferrari scene don't really do real 'tuning', they simply swap over the maps in your ecu's from someone elses engine, often using commercial software called WinOLS.

    While engines are broadly the same, its not optimal due to how engines wear with use so every engine is different to some extent. Tunes are good as a 'base map' but they could often benefit from some adjustmnts, particularly if your car has other mods like sports exhaust, headers, cats, larger afm's ,etc. To get the most of a tune you need to do realtime tuning, either on a rolling road or on the actual road with a laptop connected and monitoring realtime readings from accurate wideband o2 sensor. Trouble is this requires physical access to the car and several days at a dyno to do perfectly... How many tuners you know offer this service?

    The pre-baked maps (like those from a CS) are a great ultra low cost alternative and many map tunes aren't really that much better than CS maps in the real world anyway...
     
    Skidkid likes this.

Share This Page