PCMHammer P04

User avatar
antus
Site Admin
Posts: 10014
Joined: Sat Feb 28, 2009 10:34 am
cars: TX Gemini 2L Twincam 8psi
TX Gemini SR20 18psi
Datsun 1200 Ute
Subaru Blitzen '06 EZ30 4th gen, 3.0R Spec B
Subaru WRX 2007

Re: PCMHammer P04

Post by antus »

I've added some more file checks for P04 to identify the file is corrupt if its missing the param blocks. I've noticed that very many of the files I have on hard from internet sources do not have this data. I think people are converting from other formats, or maybe the old DHP tool worked differently. This probably explains the bricks that were reported on the earlier preview version. If you try to flash a file that needs this segment and its not there, you will need to use universal patcher to bring that segment across and make a good file before pcmhammer will write it. If you want to check your files you can use the test file checksums function. PCMHammer will determine if it needs to apply the extra checks at that time.

The code added is: https://github.com/PcmHammer/PcmHammer/ ... d780711252
The latest build can be downloaded from the 'actions' tab if you are logged in with a github account.

Thanks to Darkman5001 who's cross flash testing (and soft bricks) lead to the discovery of this widespread issue.

Examples:
1996 256k (no param block):

Code: Select all

[02:41:30:216]  Examining S:\backedup\ecu\P04.v6\bins v6\V6 bin files\1996\96 firebird L36 09352143.bin
[02:41:30:231]  Identifying 256KiB file.
[02:41:30:236]  File is P04 256KiB.
[02:41:30:243]  File operating system ID: 9352143
[02:41:30:249]  File is P04 256KiB.
[02:41:30:254]  	Start	End	Stored		Needed		Verdict	Segment Name
[02:41:30:263]  	00000	3FFFF	984CB6B6	984CB6B6	Good	Whole File
[02:41:30:270]  All checksums are valid.
1997 512k (does not need param block):

Code: Select all

[02:45:37:268]  Examining S:\backedup\ecu\P04.v6\bins v6\V6 bin files\1997\1997 Buick - ParkAve - Stock - 9365041 - 1G4CW52K1V4638924.bin
[02:45:37:292]  Identifying 512KiB file.
[02:45:37:302]  File is P04 512KiB.
[02:45:37:312]  File operating system ID: 9365041
[02:45:37:322]  File is P04 512KiB.
[02:45:37:330]  1997 type P04, Param block not needed
[02:45:37:337]  	Start	End	Stored		Needed		Verdict	Segment Name
[02:45:37:351]  	00000	7FFFF	C9EBE6AB	C9EBE6AB	Good	Whole File
[02:45:37:360]  All checksums are valid.
1998 512k (needs param block, has one):

Code: Select all

[02:39:38:148]  Thanks for using PCM Hammer.
[02:39:43:806]  Examining S:\backedup\ecu\P04.v6\bins v6\V6 bin files\1998\1998 Chevy - Camero V6 - Stock - 16268296 - 2G1FP22K1W2139537.bin
[02:39:43:817]  Identifying 512KiB file.
[02:39:43:824]  File is P04 512KiB.
[02:39:43:831]  File operating system ID: 16268296
[02:39:43:837]  File is P04 512KiB.
[02:39:43:840]  P04/P05 1998+, checking for valid paramater block
[02:39:43:842]  Param block at 0x6000
[02:39:43:844]  	Start	End	Stored		Needed		Verdict	Segment Name
[02:39:43:852]  	00000	7FFFF	8940214D	8940214D	Good	Whole File
[02:39:43:856]  All checksums are valid.
1998 512k (needs param block, missing)

Code: Select all

[02:41:03:617]  Examining S:\backedup\ecu\P04.v6\bins v6\V6 bin files\1998\98 LeSabre L36 09379801.bin
[02:41:03:638]  Identifying 512KiB file.
[02:41:03:645]  File is P04 512KiB.
[02:41:03:651]  File operating system ID: 9379801
[02:41:03:656]  File is P04 512KiB.
[02:41:03:659]  P04/P05 1998+, checking for valid paramater block
[02:41:03:663]  1998+ P04/P05 with missing param block. This file is bad and would soft brick your PCM.
[02:41:03:667]  	Start	End	Stored		Needed		Verdict	Segment Name
[02:41:03:676]  	00000	7FFFF	8DFD181B	8DFD181B	Good	Whole File
[02:41:03:682]  This file is corrupt or its format is unknown to PCMHammer. It would render your PCM unusable.
2005 1024k (needs param block, has one) The P05 check logic is here, but P05 is not supported so its a moot point.

Code: Select all

[02:41:55:139]  Examining S:\backedup\ecu\P04.v6\bins v6\V6 bin files\2005\2005 Grand Prix GTP CompG 12596629.bin
[02:41:55:170]  Identifying 1024KiB file.
[02:41:55:178]  File is P05 1024KiB.
[02:41:55:188]  File operating system ID: 12596629
[02:41:55:206]  File is P05 1024KiB.
[02:41:55:214]  P04/P05 1998+, checking for valid paramater block
[02:41:55:222]  Param block at 0x4000
[02:41:55:229]  	Start	End	Stored		Needed		Verdict	Segment Name
[02:41:55:244]  	00000	FFFFF	8AFA0067	8AFA0067	Good	Whole File
[02:41:55:254]  All checksums are valid.
2005 1024k (needs param block, does not have) The P05 check logic is here, but P05 is not supported so its a moot point.

Code: Select all

[02:44:39:446]  Examining S:\backedup\ecu\P04.v6\bins v6\V6 bin files\2005\05 GP L36 12596631.bin
[02:44:39:477]  Identifying 1024KiB file.
[02:44:39:486]  File is P05 1024KiB.
[02:44:39:497]  File operating system ID: 12596631
[02:44:39:505]  File is P05 1024KiB.
[02:44:39:514]  P04/P05 1998+, checking for valid paramater block
[02:44:39:521]  1998+ P04/P05 with missing param block. This file is bad and would soft brick your PCM.
[02:44:39:528]  	Start	End	Stored		Needed		Verdict	Segment Name
[02:44:39:543]  	00000	FFFFF	8BA5CC23	8BA5CC23	Good	Whole File
[02:44:39:553]  This file is corrupt or its format is unknown to PCMHammer. It would render your PCM unusable.
Have you read the FAQ? For lots of information and links to significant threads see here: http://pcmhacking.net/forums/viewtopic.php?f=7&t=1396
ProfessWRX
Posts: 183
Joined: Mon Oct 02, 2023 11:33 pm
cars: 04 Monte SSSC
04 Tahoe
92 Trans Am
Location: AZ USA

Re: PCMHammer P04

Post by ProfessWRX »

I know in car has never been supported but I have been flashing in car for a very long time. I had brick issues at first but had come up with a simple process that worked every time.
It is turn the key on first.
Then connect obd port.
Then read pcm info.
Then burn entire pcm.
And after that I touch NOTHING in car. IE doors, windows, radio, locks.
I also only use my bin file that I edit myself.

I don’t know if the read info has something to do with my success but since I started doing that every time I have not had the bus interrupt anything.

Maybe it’s hocus pocus. But it works.
SuperGTP01
Posts: 10
Joined: Wed Dec 25, 2024 8:23 pm
cars: 2001 Pontiac Grand Prix GTP
2013 Chrysler T&C Touring

Re: PCMHammer P04

Post by SuperGTP01 »

ProfessWRX wrote: Sun Oct 19, 2025 3:52 pm I know in car has never been supported but I have been flashing in car for a very long time. I had brick issues at first but had come up with a simple process that worked every time.
It is turn the key on first.
Then connect obd port.
Then read pcm info.
Then burn entire pcm.
And after that I touch NOTHING in car. IE doors, windows, radio, locks.
I also only use my bin file that I edit myself.

I don’t know if the read info has something to do with my success but since I started doing that every time I have not had the bus interrupt anything.

Maybe it’s hocus pocus. But it works.
I did do a full read with a different VCI with the earlier version of this in car doing the same thing as you. I believe Antus said something along the lines that the older VPW systems have errant modules communicating where as the CAN stuff is quieter. Or it's just GM being GM and that's how it is.
User avatar
antus
Site Admin
Posts: 10014
Joined: Sat Feb 28, 2009 10:34 am
cars: TX Gemini 2L Twincam 8psi
TX Gemini SR20 18psi
Datsun 1200 Ute
Subaru Blitzen '06 EZ30 4th gen, 3.0R Spec B
Subaru WRX 2007

Re: PCMHammer P04

Post by antus »

Yes, P04 covered a lot of years and the platform was not as stable. Those cars are known for modules wakeing up when they should not. It can work, but I just advise not to do it because it'll break for someone somewhere and they need to be warned if its their daily driver and/or they don't have a spare PCM. If it works for some people on some cars and they go in with eyes open, great. And if bricks, well, they were warned.

On the plus side now I've seen how many bins do not have paramater data in the wild for P04 I am 99% convinced the problems reported with the assembly kernel were due to bad files, not a problem with PCM Hammer, so I think it might be ready for an official PCM Hammer 2 release, unless anything else comes up.
Have you read the FAQ? For lots of information and links to significant threads see here: http://pcmhacking.net/forums/viewtopic.php?f=7&t=1396
darkman5001
Posts: 275
Joined: Fri Dec 17, 2021 10:15 pm
cars: 2005 Yukon, 2004 Suburban, 2001 Tahoe, 2002 Envoy, 2006 Envoy, 2003 Lincoln LS
Location: New Jersey, USA

Re: PCMHammer P04

Post by darkman5001 »

Thanks for credit Antus. Much appreciated.

I think it is also important to note that everyone should use Universal Patcher or another way to ensure that your bin has a vin and other information identifying it as read from an actual car. I can tell you for a fact that PCM Hammer will NOT see any issue with the file and everything will work as normal, and you will not know there is something wrong until you reboot the PCM. I guarantee the car will no longer run and if you try to read the PCM again the PCM will show that the vin, calibration #, hardware ID and serial number are all blank. Even though the PCM is not hard bricked and is still talking, PCM Hammer will not be able to reflash to fix. I am sure that Antus will ensure that future releases will help prevent this from happening, however do your part and just make sure that the file you are trying to use, especially if you found it somewhere online, has the required info. If you read your working PCM from and actually running car using PCM hammer, then you should have nothing to worry about there.

I am going to continue to experiment with cross-flashing both the P04 AMD and Intel as I have BDM on each as well to fix if it bricks.
User avatar
antus
Site Admin
Posts: 10014
Joined: Sat Feb 28, 2009 10:34 am
cars: TX Gemini 2L Twincam 8psi
TX Gemini SR20 18psi
Datsun 1200 Ute
Subaru Blitzen '06 EZ30 4th gen, 3.0R Spec B
Subaru WRX 2007

Re: PCMHammer P04

Post by antus »

That is no longer true, the post above yours and the latest version will identify that it is missing and block the flash. But it's also true that test releases already in the wild will not.

Please grab the latest version from github actions and see if you can break anything. You should not be able to.
Have you read the FAQ? For lots of information and links to significant threads see here: http://pcmhacking.net/forums/viewtopic.php?f=7&t=1396
darkman5001
Posts: 275
Joined: Fri Dec 17, 2021 10:15 pm
cars: 2005 Yukon, 2004 Suburban, 2001 Tahoe, 2002 Envoy, 2006 Envoy, 2003 Lincoln LS
Location: New Jersey, USA

Re: PCMHammer P04

Post by darkman5001 »

antus wrote: Mon Oct 20, 2025 12:25 am That is no longer true, the post above yours and the latest version will identify that it is missing and block the flash. But it's also true that test releases already in the wild will not.

Please grab the latest version from github actions and see if you can break anything. You should not be able to.
Ok cool. Thanks Antus. I try out the latest version and see what happens. :thumbup:
darkman5001
Posts: 275
Joined: Fri Dec 17, 2021 10:15 pm
cars: 2005 Yukon, 2004 Suburban, 2001 Tahoe, 2002 Envoy, 2006 Envoy, 2003 Lincoln LS
Location: New Jersey, USA

Re: PCMHammer P04

Post by darkman5001 »

So, I have downloaded the latest update of PCM Hammer 2.0 to try and flash all the suspect files that I have found and had soft bricks with, and the newest version would not allow them to flash to the P04. Good Job Antus.

I can also say that every single file that I was able to confirm as good has successfully cross-flashed and the PCM is still alive. So far, I have been able to flash about 6 or 7 bins to the P04 in a minute using a uLink NT wired to the PCM and running PCM Hammer alongside of it with an MDI and only power cycling the PCM for reboot, so I have already done a lot of cross-flash testing. I also confirmed that there are bins all over the internet for P04s and other PCMs that are missing vin numbers etc. and I had a shit ton of them in my local tune repository, and I really was did not look very hard yet. I will continue to do more testing, but I think so far things are looking good.

Again, thank you Antus and good job on fixing this issue.
User avatar
antus
Site Admin
Posts: 10014
Joined: Sat Feb 28, 2009 10:34 am
cars: TX Gemini 2L Twincam 8psi
TX Gemini SR20 18psi
Datsun 1200 Ute
Subaru Blitzen '06 EZ30 4th gen, 3.0R Spec B
Subaru WRX 2007

Re: PCMHammer P04

Post by antus »

Awesome thanks. I think this likely explains most or all the brick reports. It was not bad flash kernel, comms edge case, app bugs, or cross flashing. It's just the large number of incomplete bin files for P04 in circulation in the wild. It's good to know the protection against flashing them works.
Have you read the FAQ? For lots of information and links to significant threads see here: http://pcmhacking.net/forums/viewtopic.php?f=7&t=1396
User avatar
xetura
Posts: 2
Joined: Sat Apr 25, 2026 4:46 am
cars: 86 Fiero, 78 Scirocco, 93 Land Cruiser, 02 Audi a4 Avant, 2017 Alltrack, 2022 Taos

Re: PCMHammer P04

Post by xetura »

Hey all, new member here. I just wanted to post my successful flash on my p04 from a 2001 Buick Park Avenue Ultra.

After reading a bunch, building my flashing station and working through errors, I can now say I successfully flashed my 2001 Buick PA Ultra PCM (p04). I've read a lot about how these pcms can be finicky and haven't always worked very well, but I wanted to share.

PCM Hammer 021 would see the pcm, but would hang after grabbing the serial number and give a "BCC query failed: Error". With that error I wasn't able to read the PCM, so I went to the Github page. From there I grabbed the latest with a green dot from -> actions -> check builds and compiled it in Visual Studio 2022. After getting my OBDX VS Pro connected, I fired it up, pointed it to my OBDX with J2534 and it was saying 'faulted'. I went back and changed it to Serial and it connected. Having an IT background, I was curious if it was just a bug, so I went back to J2534... connected! Awesome.

Then I clicked read, set the file name and.. it started working! A minute or so later, I had my first bin file from my pcm. I quickly opened it up in Universal Patcher and was confused as I only saw 2 fields: DTC & Fuel. After reading a bit more, I THOUGHT I needed an xdf, but that was incorrect. After wasting a bunch of time, I determined I need to start with a different bin all-together. I found a 1998 and 2000 Grand Prix bin file. I took a look and the 2000 one was definitely closer to the data I had from mine, so I went with that. After deleting everything I didn't need for my Fiero swap (vats, egr, downstream o2, evap, manual trans swap, etc), I did a test write... and it succeeded. So I held my breath and did a real write... a few minutes later, it was done and said it was successful. So to make 100% sure, I did a read of it and it was an exact match!
Now, Obviously the true test is hooking it up the engine and test firing it, but I'm not quite there on my harness.