Pages: 1 2 [3] 4 5 ... 8
Author Topic: MED 17 , EDC 17 EEPROM CHECKSUM  (Read 89011 times)
macxxx
Sr. Member
****

Karma: +30/-1
Offline Offline

Posts: 498


« Reply #30 on: December 06, 2016, 01:55:57 AM »

Ok i see that it wont be that easy , a friend asked me if i can do it...i see i dont have tools , i thought that there was a simple chip that i can desolder and read...
Logged
gmgunderground
Newbie
*

Karma: +0/-0
Offline Offline

Posts: 5


« Reply #31 on: December 08, 2016, 04:32:03 AM »

To read eeprom on TriCore you have to put ecu in boot mode, then load a CAN boot loader, initialize cpu, then you can read the eeprom portion of memory.
Or the alternative is to use a commercial product ready to go

Inviato dal mio GT-I9505 utilizzando Tapatalk
Logged
macxxx
Sr. Member
****

Karma: +30/-1
Offline Offline

Posts: 498


« Reply #32 on: December 08, 2016, 07:09:50 AM »

Thank you for your info , it's not for me..... i don't do it commercially so I will attack cluster epprom Smiley
Logged
_nameless
Hero Member
*****

Karma: +320/-448
Offline Offline

Posts: 2673



« Reply #33 on: January 01, 2017, 04:35:20 AM »

i can make all edc17 / med17 eeprom checksum

gttuning2009@yahoo.co.uk

Regards
What he means is he can steal all of your work, you just need to email it to him
Logged

If you are in the market for a tune and would like the ease of downloading and flashing a dyno tested tune for a fair price check out https://instatune.sellfy.store/
Buzzard
Jr. Member
**

Karma: +7/-0
Offline Offline

Posts: 28


« Reply #34 on: January 01, 2017, 10:58:22 AM »

Marty he also goes by the names        ecu-tuners.net or dpfsolutions.net or gt-tuning.net

Sent from my SM-N910F using Tapatalk
Logged
MarchCat
Newbie
*

Karma: +0/-0
Offline Offline

Posts: 2


« Reply #35 on: June 23, 2017, 06:14:12 AM »

Hi. I need your help!
Example block :
36 00 F2 78 E2 09 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 6F 79 00 00 B1 6F 00 00 85 7C 88 7C

F2 78 - is CS1(half word) ?
36 00 - is id block ? CRC32 or CRC16 ? initial value for cs1 ? 0x00003600 or 0x36000000 ?
85 7C 88 7C - is CS ? algo is CRC32 ? with polynom 0xEDB88320 ? initial value is 0xB16F0000 or 0x0000B16F ?

My code for CRC32 (C#) :
Code:
public static UInt32 Calculate(byte[] Value, UInt32 ini)
        {
            UInt32[] CRCTable = new UInt32[256];
            for (int i = 0; i < 256; i++)
            {
                UInt32 entry = (UInt32)i;
                for (int j = 0; j < 8; j++)
                    if ((entry & 1) == 1)
                        entry = (entry >> 1) ^ 0xEDB88320;
                    else
                        entry = entry >> 1;
                CRCTable[i] = entry;
            }

            UInt32 CRCVal = ini ;
            for (int i = 0; i < Value.Length; i++)
            {
                CRCVal = (CRCVal >> 8) ^ CRCTable[(CRCVal & 0xff) ^ Value[i]];
            }
            CRCVal ^= 0xFFFFFFFF; // NOT
            UInt32 Result = CRCVal;

            return Result;
        }


Logged
kuebk
Jr. Member
**

Karma: +3/-0
Offline Offline

Posts: 44



« Reply #36 on: June 23, 2017, 01:59:02 PM »

What's the point of keeping 10 different versions of same block? Which version is used by ECU, always latest?
« Last Edit: June 23, 2017, 02:16:56 PM by kuebk » Logged
ozzy_rp
Jr. Member
**

Karma: +16/-1
Offline Offline

Posts: 49


« Reply #37 on: July 03, 2017, 10:21:15 PM »

What's the point of keeping 10 different versions of same block? Which version is used by ECU, always latest?
.
Flash has a limited number of erase-write cycles. ECU distributes writing of blocks throughout the flash.
Logged

MED17/EDC17 Reverse engineering
conversion sgo and frf to bin https://osotec.com/
kolocar
Newbie
*

Karma: +0/-0
Offline Offline

Posts: 1


« Reply #38 on: September 03, 2017, 12:01:48 AM »

Hi. I need your help!
Example block :
36 00 F2 78 E2 09 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 6F 79 00 00 B1 6F 00 00 85 7C 88 7C

F2 78 - is CS1(half word) ?
36 00 - is id block ? CRC32 or CRC16 ? initial value for cs1 ? 0x00003600 or 0x36000000 ?
85 7C 88 7C - is CS ? algo is CRC32 ? with polynom 0xEDB88320 ? initial value is 0xB16F0000 or 0x0000B16F ?

My code for CRC32 (C#) :
Code:
public static UInt32 Calculate(byte[] Value, UInt32 ini)
        {
            UInt32[] CRCTable = new UInt32[256];
            for (int i = 0; i < 256; i++)
            {
                UInt32 entry = (UInt32)i;
                for (int j = 0; j < 8; j++)
                    if ((entry & 1) == 1)
                        entry = (entry >> 1) ^ 0xEDB88320;
                    else
                        entry = entry >> 1;
                CRCTable[i] = entry;
            }

            UInt32 CRCVal = ini ;
            for (int i = 0; i < Value.Length; i++)
            {
                CRCVal = (CRCVal >> 8) ^ CRCTable[(CRCVal & 0xff) ^ Value[i]];
            }
            CRCVal ^= 0xFFFFFFFF; // NOT
            UInt32 Result = CRCVal;

            return Result;
        }



Maybe  first calc crc32 (08-7B)then  half word(cs1),but i don't know how calc it,so who can offer more useful advice please?thx BR Kolo
Logged
Ionut
Full Member
***

Karma: +4/-3
Offline Offline

Posts: 89


« Reply #39 on: September 21, 2017, 02:01:17 PM »

Hi all, i`ve tried every possible combination and nothing seems to work....
For example this block
Code:
08 00 EB 04 94 53 00 00 FF B8 71 E0 EA 30 D0 E4 B1 8E 05 E4 35 AF 3E F2 8E 6A 09 9C A7 EF 80 E7 FC AE AE 56 AA 80 01 00 57 41 55 5A 5A 5A 38 54 37 42 41 30 39 37 36 36 31 48 EF E0 24 BA 6C 05 30 02 B6 6C 7D 43 97 A4 F9 B1 EF BF F7 74 FB 67 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C1 4E 00 00 56 8D F6 1C
Tried with CRC32 with poly 0xEDB88320, initial value 0xC14E0000, bytes from 8 to 7F (119 bytes) and result is D7A854D and it should be 56 8D F6 1C.
With initial value just first 2 bytes (0xC14E), result is F219CCDD, with fist 2 bytes reversed, result is AA79A104 and with initial value 0x4EC10000 (each 2 bytes reversed) result is 418F9500

Here is the C# code used for CRC32:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FwpCrc
{
    class CRC32
    {
        uint[] table;

        public uint ComputeChecksum(byte[] bytes, uint initialValue) {
            uint crc = initialValue;
        //  uint crc = 0xffffffff;
            for(int i = 0; i < bytes.Length; ++i) {
                byte index = (byte)(((crc) & 0xff) ^ bytes[i]);
                crc = (uint)((crc >> 8) ^ table[index]);
            }
            return ~crc;
        }

        public CRC32() {
            uint poly = 0xEDB88320;
            table = new uint[256];
            uint temp = 0;
            for(uint i = 0; i < table.Length; ++i) {
                temp = i;
                for(int j = 8; j > 0; --j) {
                    if((temp & 1) == 1) {
                        temp = (uint)((temp >> 1) ^ poly);
                    }else {
                        temp >>= 1;
                    }
                }
                table[i] = temp;
            }
        }
    }
}
I`m doing something wrong?
Logged
IamwhoIam
Hero Member
*****

Karma: +44/-100
Offline Offline

Posts: 1032


« Reply #40 on: September 22, 2017, 03:08:56 AM »

Buy WinOLS and Tricore checksum plugin, and then eeprom checksums won't be a problem anymore at all, apart from 1793 Bosch MEDC17.
Logged

I have no logs because I have a boost gauge (makes things easier)
Ionut
Full Member
***

Karma: +4/-3
Offline Offline

Posts: 89


« Reply #41 on: September 22, 2017, 03:53:22 AM »

I want to learn how to do it, not buy something that already exists!
Logged
cherry
Full Member
***

Karma: +24/-2
Offline Offline

Posts: 246


« Reply #42 on: September 22, 2017, 04:02:23 AM »

Buy WinOLS and Tricore checksum plugin, and then eeprom checksums won't be a problem anymore at all, apart from 1793 Bosch MEDC17.

Really, did they fix VAG EDC17 eeprom checksum? I think it´s wrong and miss something Wink
Logged
H2Deetoo
Sr. Member
****

Karma: +26/-1
Offline Offline

Posts: 256


« Reply #43 on: September 23, 2017, 02:56:08 PM »

Not all blocks have a valid 32 bit checksum.
Logged
Ionut
Full Member
***

Karma: +4/-3
Offline Offline

Posts: 89


« Reply #44 on: October 25, 2017, 02:35:35 AM »

With help of a great man, succeeded to build correct checksum on EDC17 EEPROM. Informations posted here are correct, my approach was not Smiley
Logged
Pages: 1 2 [3] 4 5 ... 8
  Print  
 
Jump to:  

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Page created in 0.027 seconds with 17 queries. (Pretty URLs adds 0s, 0q)