PCM Hammer P01 and P59 flash tool v015

They go by many names, P01, P59, VPW, '0411 etc. Also covering E38 and newer here.
Vampyre
Posts: 261
Joined: Wed Dec 06, 2017 1:02 pm
cars: grand am, trans am

Re: PCM Hammer - new ls1 flash tool

Post by Vampyre »

yup all v6 non 4.3 vehicles from 99-05 used P04, yes all the pcms with blue connector use same bench harness
MudDuck514
Posts: 397
Joined: Wed Jul 05, 2017 8:30 am
cars: 2001 Pontiac Grand AM SE
LD9 2.4l I4, 4T40E
2005 Chevrolet Venture
LA1 3400 V6, 4T65E
Location: North TX, USA

Re: PCM Hammer - new ls1 flash tool

Post by MudDuck514 »

Hi all,

Thanks Vampyre, I was hoping that was the case.

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

Re: PCM Hammer - new ls1 flash tool

Post by antus »

It looks like the P04s have an older? or different DLC chip type or config. The following 4 registers are not separated out and so we only have 2 registers. One for status/config and one for TX and RX FIFO.

P01/P59:

Code: Select all

	#define DLC_TRANSMIT_COMMAND       (*(unsigned char *)0x00FFF60C)
	#define DLC_TRANSMIT_FIFO          (*(unsigned char *)0x00FFF60D)
	#define DLC_STATUS                 (*(unsigned char *)0x00FFF60E)
	#define DLC_RECEIVE_FIFO           (*(unsigned char *)0x00FFF60F)
P04:

Code: Select all

	#define DLC_TRANSMIT_COMMAND       (*(unsigned char *)0x00FFE800)
	#define DLC_TRANSMIT_FIFO          (*(unsigned char *)0x00FFE801)
	#define DLC_STATUS                 (*(unsigned char *)0x00FFF800
	#define DLC_RECEIVE_FIFO           (*(unsigned char *)0x00FFF801)
There might be more to it than this, but as a first test, try updating these addresses, then compiling for the address which you know you can load to and sending in the read kernel (which is hopefully small enough to be accepted by the PCM) and then doing a read.
This was just a quick investigation, its reasonably likely there will be more to change or update. I think i'll import a P04 so I can have one on the bench, as this looks like a fun challenge.
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
Jim Blackwood
Posts: 32
Joined: Fri Dec 27, 2019 2:28 am
cars: 1971 MGB/340 Buick/TKO/Jag IRS
2002 Lincoln Blackwood
1996 MCI 102DL3

Re: PCM Hammer - new ls1 flash tool

Post by Jim Blackwood »

Guys, I have a question about the VIN.

Now lots of places say not to change it. I understand PCM Hammer says you can. But what does that do?

It seems that the characters in the VIN identify things like Body, Drivetrain, Engine, and other details. Do these identifiers affect anything in the programming though? Are they overridden by the settings you can make in TunerPro? And then are there limitations on what characters you can use where? (more restricted than straight alphanumeric?)

I'll give you an example. I'd like to use the actual vehicle VIN. In this case a 1971 MGB. VIN is: GHN5UB240478G. That's 4 digits too short so I'd like to use the MGB identifier plus a lowercase letter to identify which spare controller it is. Which then becomes MGBaGHN5UB240478G, MGBbGHN..., MGBc... etc. That would suit my purposes admirably. But TunerPro doesn't seem real happy with it and changes the lowercase "a" to a 5.

Any guidance on this, or should I just revert to a GM VIN?

Jim
User avatar
DavidBraley
Posts: 172
Joined: Thu Jun 07, 2018 8:15 am
cars: 1948 GMC
Location: Fort Collins, Colorado

Re: PCM Hammer - new ls1 flash tool

Post by DavidBraley »

That is a really good question. I have experienced before when using online VIN decoders, they will never allow a lower case letter. Is it possible PCM Hammer is configured to reject a lower case letter? Try using a capital "A" and see what happens?
-David

I'm a machinist... because engineers need heroes too.
Vampyre
Posts: 261
Joined: Wed Dec 06, 2017 1:02 pm
cars: grand am, trans am

Re: PCM Hammer - new ls1 flash tool

Post by Vampyre »

changing the vin will only cause issues with devices that use it to identify the vehicle for reading the pcm, like some scan tools and tuners
Vampyre
Posts: 261
Joined: Wed Dec 06, 2017 1:02 pm
cars: grand am, trans am

Re: PCM Hammer - new ls1 flash tool

Post by Vampyre »

how would i go about adding code to differenciate between the P01/P59 code and P04 code like i did for key algo data, that way I dont have to remove the P01/p59 functionality. I have to change kernel load address and remove the file validation info as of now to even get it to try and unlock and load a kernel.
User avatar
Gampy
Posts: 2333
Joined: Sat Dec 15, 2018 7:38 am

Re: PCM Hammer - new ls1 flash tool

Post by Gampy »

What Flash chip is in these P04's??

[edit]
Good question Vampyre, for the kernel code, I suspect it'll have to be a different kernel name.
Intelligence is in the details!

It is easier not to learn bad habits, then it is to break them!

If I was here to win a popularity contest, their would be no point, so I wouldn't be here!
Vampyre
Posts: 261
Joined: Wed Dec 06, 2017 1:02 pm
cars: grand am, trans am

Re: PCM Hammer - new ls1 flash tool

Post by Vampyre »

Gampy wrote:What Flash chip is in these P04's??

[edit]
Good question Vampyre, for the kernel code, I suspect it'll have to be a different kernel name.

same a P01
User avatar
NSFW
Posts: 679
Joined: Fri Feb 02, 2018 3:13 pm

Re: PCM Hammer - new ls1 flash tool

Post by NSFW »

Vampyre wrote:how would i go about adding code to differenciate between the P01/P59 code and P04 code like i did for key algo data, that way I dont have to remove the P01/p59 functionality. I have to change kernel load address and remove the file validation info as of now to even get it to try and unlock and load a kernel.
I'll create a branch that will pave the way for you.

Currently we create a PcmInfo object based on the operating system ID, and that object has a place to put the kernel address. It's currently used for seed/key algorithms, but we can use it for other stuff too.

However I stopped using it when I realized that if we depend on the OSID, we can't read or write PCMs with operating system IDs that aren't listed in the PcmInfo.cs file... I didn't want to have to maintain a list of every OS the GM ever released. I will also add some configuration settings so people can choose how the app handles PCMs that have unknown operating systems, and we can use OSID and PcmInfo to distinguish between different types of PCMs.
Please don't PM me with technical questions - start a thread instead, and send me a link to it. That way I can answer in public, and help other people who have the same question. Thanks!
Post Reply