is this possible? copy and save oem cals

American Delco GM ECUs and PCMs, ALDL, OBD 1.5.
User avatar
Posts: 2222
Joined: Fri Mar 14, 2014 8:37 pm
Location: Bacchus Marsh, Vic

Re: is this possible? copy and save oem cals

Postby Gareth » Thu Mar 09, 2017 8:25 am

Hmmm, haven't heard of that one, google doesn't show any results either?...
According to chemistry, alcohol is a solution...

Posts: 29
Joined: Fri Feb 24, 2017 11:27 am

Re: is this possible? copy and save oem cals

Postby gmtech825 » Fri Mar 10, 2017 12:31 am

that's the GM number, other part numbers on it :1310101000000x, 848032280, 1116355025809svp, 28367418 3506 ag02877, pdy-31-1

Posts: 29
Joined: Fri Feb 24, 2017 11:27 am

Re: is this possible? copy and save oem cals

Postby gmtech825 » Tue Mar 14, 2017 6:15 am

so if I was going to try and delete the VIN. where would I start?

Posts: 29
Joined: Fri Feb 24, 2017 11:27 am

Re: is this possible? copy and save oem cals

Postby gmtech825 » Wed Mar 15, 2017 11:55 pm

Does anyone know if Tunercat software will help me out?

Site Admin
User avatar
Posts: 6562
Joined: Sat Feb 28, 2009 8:34 pm

Re: is this possible? copy and save oem cals

Postby antus » Sat May 27, 2017 12:15 pm

Have a look at this thread, it will likely be similar.viewtopic.php?f=7&t=4893&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.
Have you read the FAQ? For lots of information and links to significant threads see here: viewtopic.php?f=7&t=1396

Posts: 1
Joined: Mon Jul 03, 2017 9:17 am

Re: is this possible? copy and save oem cals

Postby Caleditor » Sat Feb 03, 2018 11:16 pm

I have seen a program called MDI programming system. It works on some old stuff.

Posts: 29
Joined: Fri Feb 24, 2017 11:27 am

Re: is this possible? copy and save oem cals

Postby gmtech825 » Sat Jan 09, 2021 12:48 am

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?

Posts: 250
Joined: Thu Feb 13, 2020 11:32 pm

Re: is this possible? copy and save oem cals

Postby ironduke » Sat Jan 09, 2021 1:01 am

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();
}

Posts: 29
Joined: Fri Feb 24, 2017 11:27 am

Re: is this possible? copy and save oem cals

Postby gmtech825 » Sat Jan 09, 2021 1:34 am

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.

User avatar
Posts: 1071
Joined: Sat Dec 15, 2018 7:38 am

Re: is this possible? copy and save oem cals

Postby Gampy » Sat Jan 09, 2021 1:53 am

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.
Improve Knowledge -=- Share Yours!

PreviousNext

Return to US ALDL ECUs

Who is online

Users browsing this forum: No registered users and 4 guests