PCM Hammer - new ls1 flash tool

They go by many names, P01, P59, VPW, '0411 etc . Circa 1999 to 2006. All VPW OBD2 PCMs.
User avatar
Posts: 198
Joined: Fri Feb 02, 2018 3:13 pm

Re: PCM Hammer - new ls1 flash tool

Postby NSFW » Mon Dec 17, 2018 6:30 am

I'm not really happy about the flash kernel starting out as closed-source, but we want to make sure that free versions of this app get widely known before paid knock-offs start appearing on ebay and in app stores.

Also note that the flash kernel that I'm working on is going to be as simple as possible, so the vast majority of the work will continue to be in the C# code.

There is another flash kernel in progress by another developer, using a different approach (more code in the kernel, less code in the app). So it will be interesting to see where that goes, too. The C# side of that started with the nsfw/jskernels branch at github, and I'll update that when I get an update from the guys who are working on it. That kernel is also not yet open-source, but I expect that it will be.
Please don't PM me with questions about tuning or flashing - start a thread instead. Thanks!

Posts: 129
Joined: Sat Dec 15, 2018 7:38 am

Re: PCM Hammer - new ls1 flash tool

Postby Gampy » Mon Dec 17, 2018 9:22 am

NSFW wrote:I'm not really happy about the flash kernel starting out as closed-source, but we want to make sure that free versions of this app get widely known before paid knock-offs start appearing on ebay and in app stores.
Unfortunately that is unstoppable as long as there are people willing to make a buck off others work ... and that is a growing trend.

But I get where you're coming from, ya gotta do what ya gotta do to get what ya gotta get done, done!

We are on the same page ... My goals are free open tools.

-Enjoy
: )_~

User avatar
Posts: 198
Joined: Fri Feb 02, 2018 3:13 pm

Re: PCM Hammer - new ls1 flash tool

Postby NSFW » Thu Dec 20, 2018 4:27 pm

Gampy wrote:My goals are free open tools.


Same here. There's a great set of tools for my Subaru, and a great community sprung up around them, so it was kind of a let-down to find expensive tools that save encrypted files when I started looking into tuning my Chevy.

Major milestone tonight:

PcmHammerWrite.png
PcmHammerWrite.png (61.26 KiB) Viewed 2388 times


There's a bunch of stuff that I want to polish up now that it basically works, but I think the hard problems are all solved now.
Please don't PM me with questions about tuning or flashing - start a thread instead. Thanks!

Site Admin
User avatar
Posts: 5791
Joined: Sat Feb 28, 2009 8:34 pm

Re: PCM Hammer - new ls1 flash tool

Postby antus » Thu Dec 20, 2018 4:33 pm

Hell yeah! Good work.
Have you read the FAQ? For lots of information and links to significant threads see here: viewtopic.php?f=7&t=1396

Posts: 129
Joined: Sat Dec 15, 2018 7:38 am

Re: PCM Hammer - new ls1 flash tool

Postby Gampy » Thu Dec 20, 2018 10:10 pm

Hail to the F... Yea!

We don't own any Chebies, couple GMC's in the clan, but my nickname is Mopar for a reason, cause I like REAL CARS!!! :mrgreen:

Keep up the good work.

-Enjoy
: )_~

Site Admin
User avatar
Posts: 5791
Joined: Sat Feb 28, 2009 8:34 pm

Re: PCM Hammer - new ls1 flash tool

Postby antus » Fri Dec 21, 2018 9:05 am

Just to keep the forum in the loop, ive done a round of testing with the AVT and the J2534 interface. I found avt isnt working as is - we'll look at that, but the J2534 MDI is, and wow, nice and fast. I uploaded a bin with only one different segment and pcmhammer detected a flash of only one segement was required (the calibration segment, of course) and performed this at 4x speeds, for a total flash time of ~ 1 minute or under depending where you start counting. Winning!

Code: Select all
[09:30:01:155]  Loaded DLL
[09:30:02:457]  Connected to Scantool
[09:30:02:468]  Battery Voltage is: 13.755
[09:30:07:902]  VIN: 6G12X14F03L000000
[09:30:07:939]  OS ID: 12225074
[09:30:07:962]  Calibration ID: 92155679
[09:30:07:988]  Hardware ID: 9386530
[09:30:08:102]  Serial Number: 2EB3D7AQ3005
[09:30:08:137]  Broad Cast Code: DSKW
[09:30:08:173]  MEC: 0
[09:30:18:427]  Checking for recovery mode...
[09:30:24:514]  PCM is not in recovery mode.
[09:30:24:563]  Requesting operating system ID...
[09:30:24:674]  Unlock succeeded.
[09:30:24:692]  Attempting switch to VPW 4x
[09:30:24:729]  Module 0x10 (engine controller) has agreed to enter high-speed mode.
[09:30:28:836]  Uploading kernel to PCM.
[09:30:29:531]  Kernel upload 38% complete.
[09:30:30:003]  Kernel upload 69% complete.
[09:30:30:480]  Kernel upload 100% complete.
[09:30:31:263]  Kernel Version: 010000AA
[09:30:31:278]  Kernel uploaded to PCM succesfully.
[09:30:31:318]  Flash memory type: 00894471
[09:30:31:325]  Computing CRCs from local file...
[09:30:31:336]  Requesting CRCs from PCM...
[09:30:31:342]  Range 060000-07FFFF - Not needed for this operation.
[09:30:31:348]  Range 040000-05FFFF - Not needed for this operation.
[09:30:31:354]  Range 020000-03FFFF - Not needed for this operation.
[09:30:33:794]  Range 008000-01FFFF - Local: FCCF5AF4 - PCM: 87958850 - Different
[09:30:33:808]  Range 006000-007FFF - Not needed for this operation.
[09:30:33:821]  Range 004000-005FFF - Not needed for this operation.
[09:30:33:826]  Range 000000-003FFF - Not needed for this operation.
[09:30:33:832]  Processing range 008000-01FFFF
[09:30:33:838]  Erasing
[09:30:34:402]  Writing...
[09:30:34:417]  Sending payload with offset 0x0000, start address 0x008000, length 0x0800.
[09:30:35:018]  Sending payload with offset 0x0800, start address 0x008800, length 0x0800.
[09:30:35:604]  Sending payload with offset 0x1000, start address 0x009000, length 0x0800.
[09:30:36:207]  Sending payload with offset 0x1800, start address 0x009800, length 0x0800.
[09:30:36:809]  Sending payload with offset 0x2000, start address 0x00A000, length 0x0800.
[09:30:37:410]  Sending payload with offset 0x2800, start address 0x00A800, length 0x0800.
[09:30:38:009]  Sending payload with offset 0x3000, start address 0x00B000, length 0x0800.
[09:30:38:579]  Sending payload with offset 0x3800, start address 0x00B800, length 0x0800.
[09:30:39:152]  Sending payload with offset 0x4000, start address 0x00C000, length 0x0800.
[09:30:39:719]  Sending payload with offset 0x4800, start address 0x00C800, length 0x0800.
[09:30:40:297]  Sending payload with offset 0x5000, start address 0x00D000, length 0x0800.
[09:30:40:868]  Sending payload with offset 0x5800, start address 0x00D800, length 0x0800.
[09:30:41:422]  Sending payload with offset 0x6000, start address 0x00E000, length 0x0800.
[09:30:41:975]  Sending payload with offset 0x6800, start address 0x00E800, length 0x0800.
[09:30:42:550]  Sending payload with offset 0x7000, start address 0x00F000, length 0x0800.
[09:30:43:113]  Sending payload with offset 0x7800, start address 0x00F800, length 0x0800.
[09:30:43:691]  Sending payload with offset 0x8000, start address 0x010000, length 0x0800.
[09:30:44:263]  Sending payload with offset 0x8800, start address 0x010800, length 0x0800.
[09:30:44:837]  Sending payload with offset 0x9000, start address 0x011000, length 0x0800.
[09:30:45:402]  Sending payload with offset 0x9800, start address 0x011800, length 0x0800.
[09:30:45:963]  Sending payload with offset 0xA000, start address 0x012000, length 0x0800.
[09:30:46:531]  Sending payload with offset 0xA800, start address 0x012800, length 0x0800.
[09:30:47:106]  Sending payload with offset 0xB000, start address 0x013000, length 0x0800.
[09:30:47:675]  Sending payload with offset 0xB800, start address 0x013800, length 0x0800.
[09:30:48:247]  Sending payload with offset 0xC000, start address 0x014000, length 0x0800.
[09:30:48:822]  Sending payload with offset 0xC800, start address 0x014800, length 0x0800.
[09:30:49:394]  Sending payload with offset 0xD000, start address 0x015000, length 0x0800.
[09:30:49:956]  Sending payload with offset 0xD800, start address 0x015800, length 0x0800.
[09:30:50:522]  Sending payload with offset 0xE000, start address 0x016000, length 0x0800.
[09:30:51:093]  Sending payload with offset 0xE800, start address 0x016800, length 0x0800.
[09:30:51:670]  Sending payload with offset 0xF000, start address 0x017000, length 0x0800.
[09:30:52:243]  Sending payload with offset 0xF800, start address 0x017800, length 0x0800.
[09:30:52:797]  Sending payload with offset 0x10000, start address 0x018000, length 0x0800.
[09:30:53:372]  Sending payload with offset 0x10800, start address 0x018800, length 0x0800.
[09:30:53:946]  Sending payload with offset 0x11000, start address 0x019000, length 0x0800.
[09:30:54:500]  Sending payload with offset 0x11800, start address 0x019800, length 0x0800.
[09:30:55:060]  Sending payload with offset 0x12000, start address 0x01A000, length 0x0800.
[09:30:55:619]  Sending payload with offset 0x12800, start address 0x01A800, length 0x0800.
[09:30:56:174]  Sending payload with offset 0x13000, start address 0x01B000, length 0x0800.
[09:30:56:744]  Sending payload with offset 0x13800, start address 0x01B800, length 0x0800.
[09:30:57:306]  Sending payload with offset 0x14000, start address 0x01C000, length 0x0800.
[09:30:57:880]  Sending payload with offset 0x14800, start address 0x01C800, length 0x0800.
[09:30:58:441]  Sending payload with offset 0x15000, start address 0x01D000, length 0x0800.
[09:30:59:017]  Sending payload with offset 0x15800, start address 0x01D800, length 0x0800.
[09:30:59:591]  Sending payload with offset 0x16000, start address 0x01E000, length 0x0800.
[09:31:00:153]  Sending payload with offset 0x16800, start address 0x01E800, length 0x0800.
[09:31:00:730]  Sending payload with offset 0x17000, start address 0x01F000, length 0x0800.
[09:31:01:320]  Sending payload with offset 0x17800, start address 0x01F800, length 0x0800.
[09:31:01:916]  Requesting CRCs from PCM...
[09:31:01:930]  Range 060000-07FFFF - Not needed for this operation.
[09:31:01:945]  Range 040000-05FFFF - Not needed for this operation.
[09:31:01:959]  Range 020000-03FFFF - Not needed for this operation.
[09:31:04:377]  Range 008000-01FFFF - Local: FCCF5AF4 - PCM: FCCF5AF4 - Same
[09:31:04:394]  Range 006000-007FFF - Not needed for this operation.
[09:31:04:408]  Range 004000-005FFF - Not needed for this operation.
[09:31:04:420]  Range 000000-003FFF - Not needed for this operation.
[09:31:04:426]  Flash successful!
Have you read the FAQ? For lots of information and links to significant threads see here: viewtopic.php?f=7&t=1396

User avatar
Posts: 198
Joined: Fri Feb 02, 2018 3:13 pm

Re: PCM Hammer - new ls1 flash tool

Postby NSFW » Fri Dec 21, 2018 12:34 pm

Whoah, you just doubled the number of successful flashes so far! :)
Please don't PM me with questions about tuning or flashing - start a thread instead. Thanks!

Posts: 129
Joined: Sat Dec 15, 2018 7:38 am

Re: PCM Hammer - new ls1 flash tool

Postby Gampy » Fri Dec 21, 2018 5:36 pm

How sad ...

: )_~

Posts: 2
Joined: Sun Dec 30, 2018 4:17 am

Re: PCM Hammer - new ls1 flash tool

Postby Dud Doodoo » Sun Dec 30, 2018 5:32 am

I've been tracking the progress of this tool from several different forums now before I tracked you guys down here...

I just want to say that this development is incredible. It is a breath of fresh air for the DIY community that has, in my opinion, been royally screwed by a lot of the companies that are out there. For the amount of people who do LS swaps there really is no cost effective option to tune the damn thing. Hell, a good number of people switch to a carb because they can't afford an aftermarket ECU and don't feel like they have a better option!

I wish I could offer some programming assistance to help you guys along. In lieu of that...how's moral support? :thumbup:

On a somewhat related note, from what I read I would need a XDF file created for my specific OS in order to use this tool. If that is correct, do you know of any available for a E40 ECM? Is there a way that someone like me with little experience could create one?

User avatar
Posts: 198
Joined: Fri Feb 02, 2018 3:13 pm

Re: PCM Hammer - new ls1 flash tool

Postby NSFW » Sun Dec 30, 2018 7:29 am

I'm not familiar with the E40, so I'm not sure this app will support it.

I'm focused on the P01 right now, and the P59 should be very easy to add support for next because it's basically the same thing with a larger flash chip.

The E40 apparently uses a CPU that was also derived from the Motorola 68000 series (like the P01 and P59), but some of the work we did for reflashing kernels would carry over, but it uses a different protocol (CAN) for communicating with the outside world, so it would probably take a significant amount of work. And someone would probably have to do some hard work to figure out how the flash and RAM are arranged in memory, how to talk with the data link controller (or whatever the E40/CAN equivalent is) and so on.


I'm sure it's possible, but I'm also sure it would not be easy.
Please don't PM me with questions about tuning or flashing - start a thread instead. Thanks!

PreviousNext

Return to GM LS1 512Kbyte and 1Mbyte

Who is online

Users browsing this forum: No registered users and 1 guest