mikebb203 / IPC-Hammer

Modified version of PCM Hammer. Used to program calibration and OS or just the calibration section of 03-06 and 07 classic GMT800 instrument clusters.
22 stars 7 forks source link

Set Hours Issue #7

Closed coolboarder closed 1 year ago

coolboarder commented 2 years ago

Trying to program a 2003 Chevy Tahoe cluster with a VXDIAG VCX Nano adapter in J2534 mode. I tried programming with IPC Hammer release 16.3b and 16.4a because hour programming is missing from the latest 16.5 build. When it goes to program it gets a "Requesting permissions to upload." message 5 times then "Permission to program was denied." and fails. I still let the truck run for 7 minutes after programming and verified hours did not update. The mileage gets updated successfully though. See attached log and screenshot.

HourProgramFailLog.txt HourProgramFail

mikebb203 commented 2 years ago

Hours correction should still be in 16.5. I believe this is an issue with the j2534. I'm still working on getting the j2534 working fully. The message reporting the hours being updated successfully is a bug in the software not properly identifying the error.

coolboarder commented 2 years ago

Sorry you are right about 16.5 having the hours programming. Thought the first time I downloaded the latest version but didn't. If you need a tester for j2534 let me know I have a test bench setup with a cluster.

coolboarder commented 2 years ago

So I got the hours to write successfully on my cluster using the J2534 mode. I looked through the code on how the mileage was being updated and noticed it was calling the Vehicles.Properties.cs and noticed there was an UpdateHours function there so I tired calling it and it worked. Sorry I don't really understand the code base and there is probably a reason you are not using that function yet but it worked for me for the J2534 adapter.
I also ran the truck for 7 minutes after programming and made sure the tenth of an hour rolled over and it didn't loose the hours.

I modified MainForm.cs starting at line 1797 as follows:

                        if (mileageForm.Hours.Length > 1)
                        {

                            bool unlocked = await this.Vehicle.UnlockEcu(info.KeyAlgorithm);
                            if (!unlocked)
                            {
                                this.AddUserMessage("Unable to unlock IPC.");
                                return;
                            }

                            this.AddUserMessage("Changing Hours to " + Hoursmodified);

                            Response<bool> hoursmodified = await this.Vehicle.UpdateHours(mileageForm.Hours.Trim());

                            if (hoursmodified.Value)
                            {

                                this.AddUserMessage("Hours successfully updated to " + Hoursmodified);
                                MessageBox.Show("Hours updated to " + Hoursmodified + " successfully.", "Good news.", MessageBoxButtons.OK);
                            }
                            else
                            {
                                MessageBox.Show("Unable to change the Mileage to " + Hoursmodified + ". Error: " + hoursmodified.Status, "Bad news.", MessageBoxButtons.OK);
                            }

                            this.AddUserMessage("Delaying to allow IPC to reboot.");
                            await Task.Delay(11000);

                        }
mikebb203 commented 1 year ago

Working as of 16.8.