Reverse Engineering P59 HWID 12575502

They go by many names, P01, P10, P12, P59, E38, VPW, '0411 etc.
User avatar
AngelMarc
Posts: 222
Joined: Sat Apr 08, 2023 9:23 pm
cars: A CB450 running to 8,000RPM with a P59.

Re: Reverse Engineering P59 HWID 12575502

Post by AngelMarc »

"The digital filters of the CIC have a 500 nanosecond (500 nsec.) resolution. This is 2x the
internal IC clock rate. The reference signals are synchronized to this clock rate before entering
the digital filter logic."
So 4 megahertz clock on that IC.

EDIT: 1MHz. I did something backwards
Attachments
Capture.PNG
Capture.PNG (64.64 KiB) Viewed 1992 times
Last edited by AngelMarc on Wed Apr 30, 2025 2:52 pm, edited 2 times in total.
Don't stress specific units.
User avatar
AngelMarc
Posts: 222
Joined: Sat Apr 08, 2023 9:23 pm
cars: A CB450 running to 8,000RPM with a P59.

Re: Reverse Engineering P59 HWID 12575502

Post by AngelMarc »

Ok, signed (+/-) start at zero, count down when low, up when high, move MSB of counter (for the +/-) each time signal goes low, into a shift register.
I knew it had to be a list of 1s and 0s, but I love this simple thing that can likely be done with common arduinos.
A little validation on a theory is nice every now and then. Great read.
Attachments
Capture.PNG
Capture.PNG (174.4 KiB) Viewed 1999 times
Last edited by AngelMarc on Wed Apr 30, 2025 3:33 pm, edited 1 time in total.
Don't stress specific units.
User avatar
AngelMarc
Posts: 222
Joined: Sat Apr 08, 2023 9:23 pm
cars: A CB450 running to 8,000RPM with a P59.

Re: Reverse Engineering P59 HWID 12575502

Post by AngelMarc »

Well, there's the thing to go for waste spark/2 stroke use.
EDIT: and let's not forget V12 waste spark.
Attachments
Capture.PNG
Capture.PNG (24.28 KiB) Viewed 1990 times
Don't stress specific units.
User avatar
AngelMarc
Posts: 222
Joined: Sat Apr 08, 2023 9:23 pm
cars: A CB450 running to 8,000RPM with a P59.

Re: Reverse Engineering P59 HWID 12575502

Post by AngelMarc »

Curious if enough of the I/O is known to allow starting from scratch on the code.
Don't stress specific units.
V8fan
Posts: 99
Joined: Mon Nov 01, 2021 6:27 am
cars: Astro VAN

Re: Reverse Engineering P59 HWID 12575502

Post by V8fan »

This 24x strange pattern tone wheel looks to me same as fuel injectors locked inside intake plenum with plastic hoses instead solid rails
Just experiment that proves that 58x tone wheel better
User avatar
AngelMarc
Posts: 222
Joined: Sat Apr 08, 2023 9:23 pm
cars: A CB450 running to 8,000RPM with a P59.

Re: Reverse Engineering P59 HWID 12575502

Post by AngelMarc »

Can you explain how it's better? Have you seen the details of figuring out sync on various ECUs that use it? Or did you just see complexity and cringe? They're all complex.
Don't stress specific units.
V8fan
Posts: 99
Joined: Mon Nov 01, 2021 6:27 am
cars: Astro VAN

Re: Reverse Engineering P59 HWID 12575502

Post by V8fan »

AngelMarc wrote: Sun May 04, 2025 4:02 am Can you explain how it's better?
All manufacturers use now 58x for 0-7000 rpm engines
User avatar
AngelMarc
Posts: 222
Joined: Sat Apr 08, 2023 9:23 pm
cars: A CB450 running to 8,000RPM with a P59.

Re: Reverse Engineering P59 HWID 12575502

Post by AngelMarc »

And? All car manufacturers are using bullshit thin oil too.
Don't stress specific units.
User avatar
AngelMarc
Posts: 222
Joined: Sat Apr 08, 2023 9:23 pm
cars: A CB450 running to 8,000RPM with a P59.

Re: Reverse Engineering P59 HWID 12575502

Post by AngelMarc »

24x without a cam sensor only needs 90 degrees to sort out crank position.
58x only gets close to that with the 4x cam sensor.
Don't stress specific units.
User avatar
NSFW
Posts: 745
Joined: Fri Feb 02, 2018 3:13 pm

Re: Reverse Engineering P59 HWID 12575502

Post by NSFW »

AngelMarc wrote: Fri May 02, 2025 5:28 pm Curious if enough of the I/O is known to allow starting from scratch on the code.
I don't think so, but I also don't think it would be an insurmountable problem if you're motivated. There are basically two ways to approach it:

1) From software: For a given input or output pin, find the code that reads from it or writes to it... For a lot of the IO pins, you could start with a corresponding OBD2 PID, find the code that reports that PID, look at the memory location that it reads from, and then look for code that writes to that memory location.

2) From hardware: follow the traces from that pin to the CPU, look at the datasheet to find out what registers are used to read or write to that pin, and then look for code that reads or writes those registers.

Either way you'd want IDA or Ghidra of course. And it will take time.

The flash kernels have the VPW communication stuff implemented, as well as watchdogs. You could make small changes to them to add code that reads or writes whatever IO registers you are interested in, so that you could test your IO code without even writing to flash memory.

It should also be possible to get the m68k version of gcc to produce binaries that you could flash to the PCM, though you'd want to use BDM for testing that.
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