PCMHammer P04

User avatar
antus
Site Admin
Posts: 9044
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: PCMHammer P04

Post by antus »

I dont think you necessarily have a brick there.

Something went wrong about here. It looks like it was determining what sectors it needed to re-write and it got out of sync. It got the CRC for the first sector (06 00 00), then it asked for the CRC for 05 00 00 (the second sector) but it complained it had timed out and did not. In fact it timed out too early. Then it asks for 04 00 00 and receives the previous 05 00 00. This does not match and is not accepted, then comms are lost, then the crash and by the end the pcm is still running the kernel but its not communicating properly. It didnt erase any sectors, so I think it should come back from a power cycle if that is where you are at. I think this might be fixed in the develop branch, we clearly need to get another release together as there are a couple of fixes in develop that need to get out there.

Code: Select all

[02:38:20:169]  RX: 6C F0 10 7D 02 01 00 00 06 00 00 62 A6 D7 96
[02:38:20:169]  060000-06FFFF	62A6D796	62A6D796	Same	OperatingSystem
[02:38:20:200]  XPro: 20 01 00 DE
[02:38:20:200]  TX: 6C 10 F0 3D 02 01 00 00 05 00 00
[02:38:20:966]  RX: 8C F0 61 60
[02:38:20:966]  Unable to get CRC for memory range 00050000 / 00010000
[02:38:20:997]  XPro: 20 01 00 DE
[02:38:20:997]  TX: 6C 10 F0 3D 02 01 00 00 04 00 00
[02:38:21:341]  RX: 6C F0 10 7D 02 01 00 00 05 00 00 A5 64 D6 33
[02:38:21:341]  Unable to get CRC for memory range 00040000 / 00010000
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: 148
Joined: Tue Oct 03, 2023 9:33 am
cars: 04 Monte SSSC
04 Tahoe
92 Trans Am
Location: AZ USA

Re: PCMHammer P04

Post by ProfessWRX »

antus wrote:I dont think you necessarily have a brick there.

Something went wrong about here. It looks like it was determining what sectors it needed to re-write and it got out of sync here. It got the CRC for the first sector, then it also got the CRC for the second sector but it complained it didnt. In fact it timed out too early. Then comms are lost, and by the end the pcm is still running the kernel but its not communicating properly. It didnt erase any sectors, so I think it should come back from a power cycle if that is where you are at. I think this might be fixed in the develop branch, we clearly need to get another release together as there are a couple of fixes in develop that need to get out there.

Code: Select all

[02:38:20:169]  RX: 6C F0 10 7D 02 01 00 00 06 00 00 62 A6 D7 96
[02:38:20:169]  060000-06FFFF	62A6D796	62A6D796	Same	OperatingSystem
[02:38:20:200]  XPro: 20 01 00 DE
[02:38:20:200]  TX: 6C 10 F0 3D 02 01 00 00 05 00 00
[02:38:20:966]  RX: 8C F0 61 60
[02:38:20:966]  Unable to get CRC for memory range 00050000 / 00010000
[02:38:20:997]  XPro: 20 01 00 DE
[02:38:20:997]  TX: 6C 10 F0 3D 02 01 00 00 04 00 00
[02:38:21:341]  RX: 6C F0 10 7D 02 01 00 00 05 00 00 A5 64 D6 33
[02:38:21:341]  Unable to get CRC for memory range 00040000 / 00010000
Ok, I will swap PCMs for the night, then swap back and hopefully it comes back from that.

Could you give me a quick idea of what the kernel does? Is it permanently in the flash or is it uploaded into RAM or...? Just so I have an idea of the backend of this stuff as I'm completely clueless.
User avatar
antus
Site Admin
Posts: 9044
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: PCMHammer P04

Post by antus »

It loads to ram and runs the PCM during the flash process. It needs to handle the communications chip and the flash process, as well as the hardware watchdogs. It just runs in a loop until its told to exit. This allows the flash to be erased, whereas normally the factory kernel is running from flash. If PCMHammer crashes, it leaves the kernel running, so it wont respond the same as the factory operating system would until it gets a mode 60 reboot request or a power cycle. If pcmhammer has logged an erase, then its best try and work with what you have as it might not come back after a power cycle as the boot sector might be broken. If you have not had an erase, you are probably ok. The later PCMs have some recovery code in the boot sector, and in our app the boot sector is erased last, and so long as that is in place you can recover. But the P04 does not have boot sector recovery.
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: 148
Joined: Tue Oct 03, 2023 9:33 am
cars: 04 Monte SSSC
04 Tahoe
92 Trans Am
Location: AZ USA

Re: PCMHammer P04

Post by ProfessWRX »

Cool that’s exactly how I thought it worked.
I ended up unplugging the negative cable for 45 minutes and it started again.

All is well for me. Thanks again.
User avatar
Tazzi
Posts: 3558
Joined: Thu May 17, 2012 8:53 pm
cars: VE SS Ute
Location: WA
Contact:

Re: PCMHammer P04

Post by Tazzi »

This is the part that has me troubled:

[02:38:20:200] TX: 6C 10 F0 3D 02 01 00 00 05 00 00
[02:38:20:966] RX: 8C F0 61 60

This is showing something else has woken up in the car.

The tester present message is not being sent enough, and resulting in other parts waking up in the car.

At 1x, this technically is not the end of the world. But PCMHammer is not 'searching' for the actually message it needs and instead takes the first message it sees as its response even though its from another module.
There needs to be processing added into the function which searches for a network frame and outputs a message indicating 'car chatter detected' which could also change the dynamic of the application or could automatically make it send another "disable chatter" command.
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726
Image
ProfessWRX
Posts: 148
Joined: Tue Oct 03, 2023 9:33 am
cars: 04 Monte SSSC
04 Tahoe
92 Trans Am
Location: AZ USA

Re: PCMHammer P04

Post by ProfessWRX »

For some context, this may have been inadvertently caused by me. I was doing some logging trying to sniff parameters. I may have not keyed off after doing so and gone straight to a write.
User avatar
antus
Site Admin
Posts: 9044
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: PCMHammer P04

Post by antus »

It does look a bit like that, source id 61, target id F0 - tool. Device 61 would not nornally be trying to talk to a tool. But there are search functions that wait for a specific response already, we should be using one of those here.
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
kur4o
Posts: 1044
Joined: Sun Apr 10, 2016 9:20 pm

Re: PCMHammer P04

Post by kur4o »

Code: Select all

TX: 6C FE F0 28 00
[02:40:21:122]  Sending 'test device present' notification.
[02:40:21:122]  RX: 6C F0 40 68 00
[02:40:21:122]  RX: 6C F0 58 68 00
[02:40:21:122]  RX: 6C F0 80 68 00
[02:40:21:138]  RX: 6C F0 61 68 00

[02:40:21:154]  XPro: 20 01 00 DE
[02:40:21:154]  TX: 8C FE F0 3F
[02:40:21:154]  Ignoring chatter: 6C F0 40 68 00
[02:40:21:154]  Sending seed request.
[02:40:21:170]  RX: 6C F0 60 68 00
[02:40:21:170]  XPro: 20 01 00 DE
[02:40:21:170]  TX: 6C 10 F0 27 01
[02:40:21:170]  Parsing seed value.
[02:40:21:170]  Unable to parse seed response. Attempt #1
[02:40:21:217]  RX: 6C F0 99 68 00 ------>getting module id 99 response while waiting for seed RX-
[02:40:21:217]  Parsing seed value.

Looks like a mode 20 was requested. But looking closer at logs PCMhammer waits only for 4 responses at mode 28. And there could be upto 15-20modules in a car.

Later responses also interfere with seed/key logic.

In car could take a bit of optimizing.
User avatar
Tazzi
Posts: 3558
Joined: Thu May 17, 2012 8:53 pm
cars: VE SS Ute
Location: WA
Contact:

Re: PCMHammer P04

Post by Tazzi »

In my own software, I do the following:
1) Begin tester present routine
2) Perform normal setup steps(mode 28, ect)
3) Between every single single step, add 1 second delay (Tester present still being sent here)
4) Begin flash routine, send tester present manually after every single block sent or received.
The delay between each step is more then enough to ensure the entire vehicle has responded and processed the response.

The current filters of the app are setup to basically accept anything that is sent to F0 or 6C from memory. In theory this is great, but, the app is not setup to handle messages from other apps correctly.
In its current state, it would need to search for an invalid (7F) response that comes from another module that would result in it erroring out, while still searching for the desired modules response.
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726
Image
User avatar
antus
Site Admin
Posts: 9044
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: PCMHammer P04

Post by antus »

It should be enough. It was developed against Australian Commodores, and the logic that is in there seems to work fine on P01 / P59 for other vehicles. No doubt logic holes are starting to appear as we add more platforms. We just need help/time from those with these cars to look at what is breaking, and why, and improve the logic. It is part of the logic tidyup that the app would benefit from.
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
Post Reply