Page 2 of 5

Re: is this possible? copy and save oem cals

Posted: Thu Mar 09, 2017 8:25 am
by Gareth
Hmmm, haven't heard of that one, google doesn't show any results either?...

Re: is this possible? copy and save oem cals

Posted: Fri Mar 10, 2017 12:31 am
by gmtech825
that's the GM number, other part numbers on it :1310101000000x, 848032280, 1116355025809svp, 28367418 3506 ag02877, pdy-31-1

Re: is this possible? copy and save oem cals

Posted: Tue Mar 14, 2017 6:15 am
by gmtech825
so if I was going to try and delete the VIN. where would I start?

Re: is this possible? copy and save oem cals

Posted: Wed Mar 15, 2017 11:55 pm
by gmtech825
Does anyone know if Tunercat software will help me out?

Re: is this possible? copy and save oem cals

Posted: Sat May 27, 2017 12:15 pm
by antus
Have a look at this thread, it will likely be similar.https://pcmhacking.net/forums/viewt ... 93&p=69914

I believe its a different option in sps so you can type the donor car vin even though its installed in the new car. SPS will unlock an reflash the computer and link it to the new car. The option isnt in that thread and we didnt screen shot it but its at the part where you update the calibration. One of the other options lets you enter the vin and thats the ticket.

Re: is this possible? copy and save oem cals

Posted: Sat Feb 03, 2018 11:16 pm
by Caleditor
I have seen a program called MDI programming system. It works on some old stuff.

Re: is this possible? copy and save oem cals

Posted: Sat Jan 09, 2021 12:48 am
by gmtech825
so i revisited this module after learning a few things. i read about the $3b 90 service to write the VIN to try and use this module in another vehicle. I successfully unlocked it, got it to enter programming mode, and sent the can messages to write the vin. the VIN write requires 3 messages. after I send the first message I receive the 30 00 response from the ecm, then proceeded to send the remaining 2 message frames. I don't get any response back from the ecm positive or negative and when I read the VIN out it did not change.

any input?

Re: is this possible? copy and save oem cals

Posted: Sat Jan 09, 2021 1:01 am
by ironduke
Is this still on the 2015??? What ecu is that?? E92?? Should be right on the label of the ecu..

No response kind of sounds like your not sending the message correctly? Mind sharing what you have?

Also in sps when tryingt to program the ecm is there an option to prepare for removal?? That's been showing up more lately and I believe that is what you would use to unpair the ecu in preparation to install into a different vehicle.. If that shows up I would try that and then try remove and replace and typing in the vin of the truck it's going into..

code below is something I threw together playing with the E92 which I think is what you have.. could at least see if your sending the message the same way I am.. Honestly haven't visiting E92 in a little while but I do think it was successful in changing the vin..

public static void changevin()
{
if (!A._isconnected) Connect();
// insert vin readout and typing in new vin
string seed = "0000";
string ecukey = "0000";

string temp = Sendcommand(new byte[] { 0, 0, 7, 0xE0, 2, 0x1a, 0x90 }, 300);
if (temp.Length == 42) A.EcuVin = HexStringToString(temp.Substring(6, 34));
else Errorcontrol("Error reading VIN");
Console.WriteLine($"Current Vin programmed into E92 module is {A.EcuVin}");

Console.WriteLine("Type in Vin you want programmed into module ");
string Newvin = Console.ReadLine().ToUpper();
if (Newvin == "") Newvin = A.EcuVin;
if (Newvin.Length == 17)
{
System.Threading.Thread.Sleep(20);
if (!Sendcommand(new byte[] { 0, 0, 7, 0xE0, 2, 0x10, 0x03 }, 300).Contains("50"))
{
Console.WriteLine("10 03 failed, trying recovery");
A.recovery = true;

}
else Console.WriteLine("1003 response OK");
System.Threading.Thread.Sleep(20);
string Seedr = Sendcommand(new byte[] { 0, 0, 7, 0xE0, 2, 0x27, 0x01 }, 300);
if (!Seedr.Contains("6701")) Errorcontrol("Seed request response of " + Seedr);
else Console.WriteLine("Seed request response OK");
seed = (Seedr.Substring(4, 4));

Console.WriteLine($"Seed is {seed}");
if (seed == "0000") ecukey = "0000";

else ecukey = getkey(seed);
Console.WriteLine($"Key used to unlock is {ecukey}");

byte key1 = Convert.ToByte(ecukey.Substring(0, 2), 16);
// Console.WriteLine($"key 1 is {key1}");
byte key2 = Convert.ToByte(ecukey.Substring(2, 2), 16);
// Console.WriteLine($"key 2 is {key2}");

if (!Sendcommand(new byte[] { 0, 0, 0x07, 0xE0, 4, 0x27, 2, key1, key2 }, 300).Contains("670")) Errorcontrol("Unlocking");
else Console.WriteLine("Unlocked- OK");
System.Threading.Thread.Sleep(20);

byte[] vbytes = Encoding.ASCII.GetBytes(Newvin);
// Console.WriteLine("1st byte is " + vbytes[0].ToString("X2"));

A.Channel.SendMessage(new byte[] { 0x00, 0x00, 0x07, 0xE0, 0x10, 0x13, 0x3b, 0x90, vbytes[0], vbytes[1], vbytes[2], vbytes[3] });
GetMessageResults writevin = A.Channel.GetMessages(1);
string message = (BitConverter.ToString(writevin.Messages[0].Data).Replace("-", ""));
Console.WriteLine($"Response from writevin is {message}");
if (!message.Contains("7E830"))
{
Console.WriteLine($"Error!! Response from writevin {message}");
// do we quit or keep on going??
}
else Console.WriteLine("Write vin 1st line OK");
// System.Threading.Thread.Sleep(5);

A.Channel.SendMessage(new byte[] { 0x00, 0x00, 0x07, 0xE0, 0x21, vbytes[4], vbytes[5], vbytes[6], vbytes[7], vbytes[8], vbytes[9], vbytes[10] });
System.Threading.Thread.Sleep(5);
A.Channel.SendMessage(new byte[] { 0x00, 0x00, 0x07, 0xE0, 0x22, vbytes[11], vbytes[12], vbytes[13], vbytes[14], vbytes[15], vbytes[16], 0x00 });
GetMessageResults wrotevin = A.Channel.GetMessages(1, 500);
message = (BitConverter.ToString(wrotevin.Messages[0].Data).Replace("-", ""));
Console.WriteLine($"Response from wrotevin is {message}");
if (!message.Contains("7E8027B"))
{
Console.WriteLine($"Error!! Response from wrotevin {message}");
// do we quit or keep on going??
}
else Console.WriteLine("Write vin completed OK");

}
else Console.WriteLine("Vin must be 17 characters long.. Try again ");
Console.WriteLine("Press any key to exit.");
Console.ReadKey(); // delay
// APIFactory.StaticDispose();
Main();
}

Re: is this possible? copy and save oem cals

Posted: Sat Jan 09, 2021 1:34 am
by gmtech825
yes it's the 2015 E92

my commands match yours essentially, But i'm manually typing them into a console. Maybe I'm not able to send them fast enough because I have to manually send them? I am sending a periodic tester present message also.
I need a decent way to automatically send these messages, But it seems most programs I find won't work with the tools I have.

Re: is this possible? copy and save oem cals

Posted: Sat Jan 09, 2021 1:53 am
by Gampy
Quick hijack ...

gmtech825,

IIRC you have access to a MDI2, it would be much appreciated if you would test PCM Hammer Release 015 (Preview) using the MDI2 and post results in that thread.

Thank you.