LS1GTO Forums banner

VZClusterMod - Public beta

194230 Views 990 Replies 185 Participants Last post by  Sturdy
3


So I've been working on a program to update the cluster with all the fun new information we've discovered over in the original cluster-hacking thread. After some hours of R&D on what's in the memory we can now:

  • Turn on the shift light, change shift RPMs
  • Set custom shutdown text with the HSV logo
  • Change logos
  • Turn off the DRL light, and/or the DRLs
  • Dim the MPH light on 04 clusters
  • Fix the speedometer error on 04 clusters
  • Enable the current gear indicator
  • Recalibrate the temperature gauge
And a whole bunch of other stuff, and in the car too.
This is still beta software, but I've had a few beta testers try it out and had some success in-car. I'd like some feedback from 05-06 people to make sure nothing's different with the heartbeat stuff, so please post in this thread about your results.

I'm releasing vzclustermod under GPLv3, which means that everyone can look at and modify the source should they feel so inclined.

To get the software/documentation, go here:
http://1337vending.com/vzclustermod/

A word on cables:


I've tried this cable here on the bench and in the car: http://www.aldlcable.com/sc/details.asp?item=aldlobd2u
I've also tried the FTDI FT232RL usb to serial adapter for Arduino (found on ebay) on the bench and had good results. I haven't tried it in the car, because I have the good cable. People have reported success using FTDI FT232RL usb-serial adapters in-car, but I know some people have had problems with communication.
Update: If the cable does not explicitly specify ALDL or OBD1 it will not work! R&D at your own risk!

Build your own cable here! Thanks to Shane.

A word on 160°F thermostats:
If you are running a 160°F thermostat, you will need to set the cold shift RPM to whatever shift point you want for all gears! Since the cold shift light is active below 185°F (85°C), it will never look at the other settings. As of this post, no one has located where the temperature is stored in the cluster memory (pretty sure it's not in the eeprom), so we have no way to update it. :smurf:


A word on drivers:
If windows doesn't automatically detect your cable, you may need to go here to get the drivers for your FTDI FT232 cable:
http://www.ftdichip.com/Drivers/VCP.htm

There's a getting started doc on the site, but I'll post it here as well:

Getting Started

If you're using the windows binary, double click the vzclustermod-xxxbeta.exe, which should open a command window like so:


Since the program is all command line, the rest of the getting started will be text rather than screenshots.

To find out what COM ports are available, type listports Example:
Code:
[incar-cluster]$ listports
COM1
COM5
COM4
If you're not sure which COM port is your ALDL Cable, unplug it from the computer, run listports, and plug it back in and run listports again. Whichever one disappeared and reappeared is your cable.

Now open the port:

Code:
[incar-cluster]$ open com4
serial port opened successfully
[incar-cluster-com4]#

Note that the prompt changed from [incar-cluster]$ to [incar-cluster-com4]#

Turn the key on, but leave the engine off.

Now you're ready to work! If you're in the car, no need to change modes, if you're on the bench type bench. This will keep the program from listening for vehicle heartbeats.

To verify your cable is working, run listen and you should see something like this repeated over and over:
Code:
[incar-cluster-com4]# listen
==Heartbeat==
  Module:b8 Mode:A2 Data:B8
  Module:b9 Mode:02 Data:00,00
  Module:40 Mode:C6 Data:39,02
  Module:BCM-data Mode:12 Data:00,00,00,3D,19,00,00,70,F2,1E,00,00,10,00,00,00,94,00
  Module:a8 Mode:03 Data:
  Module:20 Mode:8B Data:
  Module:21 Mode:09 Data:38,2C,00,00,00,00,00,94,94
  Module:90 Mode:1B Data:
  Module:91 Mode:03 Data:18,00,00
  Module:a0 Mode:0B Data:
  Module:Airbag-data Mode:02 Data:08,00
  Module:Transmission-data Mode:07 Data:FF,10,40,05,00,00,00
  Module:b8 Mode:A2 Data:B8
  Module:b9 Mode:02 Data:00,00
  Module:40 Mode:C6 Data:39,02
  Module:BCM-data Mode:12 Data:00,00,00,3D,19,00,00,70,F2,1E,00,00,10,00,00,00,94,00
  Module:20 Mode:8B Data:
  Module:21 Mode:09 Data:38,2C,00,00,00,00,00,94,94
Press Ctrl+C to stop listening, it scrolls quite quickly.

To read table 9, run read 9. This is a stock 2004 table.
Code:
[incar-cluster-com4]# read 9
Waiting for heartbeat...
Send: ['F2', '57', '01', '09', 'AD']
['01', '09', '05', '00', '00', '00', '00', '00', '50', '79', '7C', '7E', '7E', '7E',
 '60', '80', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00']
ALDL Mode: 0x1 (read configuration table) Table: 0x9
Startup Logo: Pontiac
HSV Serial: 0
HSV Model: XU6
Cold shiftlight 4000 RPM
1st gear shiftlight 6000 RPM
2nd gear shiftlight 6200 RPM
3rd gear shiftlight 6300 RPM
4th gear shiftlight 6300 RPM
5th gear shiftlight 6300 RPM
Shift light on: False
Custom text:>            <
Note that the shift light is off, but the RPM values are set. 2005-2006 GTOs have the RPM values set to 9000.

I want my shiftlight on!!!1 ... Ok, now send preset shiftlight-on
Code:
[incar-cluster-com4]# preset shiftlight-on
===Current Config===
Send: ['F2', '57', '01', '09', 'AD']
['01', '09', '05', '00', '00', '00', '00', '00', '50', '79', '7C', '7E', '7E', '7E',
 '60', '80', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00']
Startup Logo: Pontiac
HSV Serial: 0
HSV Model: XU6
Cold shiftlight 4000 RPM
1st gear shiftlight 6000 RPM
2nd gear shiftlight 6200 RPM
3rd gear shiftlight 6300 RPM
4th gear shiftlight 6300 RPM
5th gear shiftlight 6300 RPM
Shift light on: False
Custom text:>            <
===New Config===
['01', '09', '05', '00', '00', '00', '00', '00', '50', '79', '7C', '7E', '7E', '7E',
 '60', '90', '00', '00', '00', '00', '00', '00', '00', '00', '00', '0 '00']
Startup Logo: Pontiac
HSV Serial: 0
HSV Model: XU6
Cold shiftlight 4000 RPM
1st gear shiftlight 6000 RPM
2nd gear shiftlight 6200 RPM
3rd gear shiftlight 6300 RPM
4th gear shiftlight 6300 RPM
5th gear shiftlight 6300 RPM
Shift light on: True
Custom text:>            <
===Write config===
Send: ['F2', '70', '28', '09', '05', '00', '00', '00', '00', '00', '50', '79', '7C', '7E', '7E', '7E',
'60', '90', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', '00', 'B9']
['28', '09', '01']
Easy.

Other useful presets are under the Presets documentation. For those averse to RTFM, here are some good presets:
mph-dim
drl-fulloff
custom-text=RTFM

I also want to thank the following people, because I certainly didn't figure this out all by myself:
DSMinVA for the original POC here on LS1GTO
Beerman and 06phantom for figuring out the security algorithm
Tazzi for explaining ALDL stuff and original cluster R&D
Stoopalini for the spreadsheet
Slow for eeprom dumps and the Tech 2 ALDL dumps
Chris White for showing that this is possible :)
And everyone who beta-tested stuff.:burnout:

Cheers. :gears:

Attachments

See less See more
941 - 960 of 991 Posts
Are you using the correct com port and do you have the correct cable? You have to unlock before you can readmem and it doesn't even look like you can unlock which seems to indicate you aren't even reaching the cluster due to using the wrong com port or an incapable cable.
Yes I'm the right port because I'm able to read tables and etc... I'm on a bench though (not in car)
I'm on a bench though (not in car)
I really can't help you there, I've no idea if that makes a difference or not.
Yes I'm the right port because I'm able to read tables and etc... I'm on a bench though (not in car)
There is a "bench" command you can use for bench work, but I think your issue might be that you haven't enabled the advanced commands by using the "iddqd" command before the "unlock" command. See posts 498 and 500:

Ah I think I see the problem. When you updated stuff with the OSE tool, the string that was floating around mangled the lamp config. Your lamp config is showing as 0x0090 I believe.

To fix the lamp config:
Code:
iddqd
unlock
readmem cd
writemem cd=60,80
That should be stock for 04.
correct, first line enables advanced commands

second line unlocks the cluster for writing to memory

third line reads the current value in memory

fourth writes the new value to memory.
  • Like
Reactions: 1
There is a "bench" command you can use for bench work, but I think your issue might be that you haven't enabled the advanced commands by using the "iddqd" command before the "unlock" command. See posts 498 and 500:
ahhhhh okay yeah!! I definitelly missed the iddqd (I like that!!! old times playing Doom :) )I will give it a try!! Thank you so much for the support!
alright, so I got this, I have two clusters and I swapped the cluster but of course mileage different. I read a lot about it in the forum and some other forums too about changing mileage is not possible but if you search on Ebay for example there is a lot of ads showing the service of changing mileage for 80+ bucks.
I think the mileage is encrypted in some way on the cluster that probably there is a calculation formula to convert the HEX in some decimals that will be calculated and therefore have one or more bytes allocated for mileage.
So... I was wondering what if I write all memory places to copy exactly what I have on my old one to the new one? Will it brick?
I tried to writetable table 2 with new HEX for mileage but of course it didn't work.


cheers

Rectangle Font Line Screenshot Parallel
See less See more
Been a while. Back tweaking with VZCM. Lowered my shift light RPMs as I’d been hitting rev limiter. As my prior posts in this thread describe, I’ve gone back and forth on benefits/drawbacks using the “stuck” stock dummy temp gauge vs a scale that constantly moves, showing actual temp. I’m back trying the latter, created a custom scale which assigns hash marks for a few key temperatures. Bounds are Cold-100, Halfway-200, Hot-240, similar 3 points as Corvette/other performance cars. I assigned the 3/8 (h/l) hash as 185/186–the shift light cold temp delineation, 1/2 hash (200) is roughly when my tune first turns on fans at 25%, and 5/8 hash is 215–the temp my fans throttle-up to 100%. Over temp alarm set shy of first red hash 230. Operating range roughly 3/8 - 5/8, below that is warm up, above that provides 3 hash marks to indicate hot/trouble. Printed a small card (cheat sheet) as I know I’ll forget all this…
Rectangle Font Eyelash Circle Pattern


These specific hash numbers may not be useful for all as OEM fan temps are different, but concept may give folks some ideas. IIRC, 05/06 OEM fans are:

First fan @ 221*F (low speed)
Both fans @ 228-232*F (low speed)
Both fans @ 235*F (both full speed)
See less See more
  • Like
Reactions: 5
My cluster the main LED screen went almost non readable. WIl this program work to program a new cluster to auto trans and the mileage? Or need a Tech 2?
My cluster the main LED screen went almost non readable. WIl this program work to program a new cluster to auto trans and the mileage? Or need a Tech 2?
Program to auto yes. Mileage "can't" be changed even with Tech2...
So will cluster work starting at 0? Or have a tamper error of some kind
If you bought a brand new NOS cluster, then yes, it would start reading at 0. That said, you'd need to take the cluster to a dealer and have them program your correct mileage into the brand new cluster.

If you bought a used cluster, then it's going to start at whatever the mileage is on that cluster as the mileage is hard recorded to each cluster. Seems that some places have been able to crack into a used cluster to program the correct mileage into them, but historically you could only program them once when they were new and only by a GM dealer.
I bought a new cluster assuming the unreadable LED main display is toast-and while one was still around to get. Display was working fine parked it in my shop unhooked battery then when hooked back up a few months later to drive it it was all FUBAR'd. I've used to program to tweak something like shift light, custom name, temp gauge just was not sure I could get it running to auto or not.
1337, Stoopalini, other cluster gurus—

Is the Overtemp alarm simply an operator warning display on the LCD, or that you know of, does it trigger any other actions by the ECU or otherwise?
You get a warning message on the LCD panel and an audible beeping warning.
Correct… asking if any other triggers occur
None that I know of. I experienced this once when I threw a belt and the car began to overheat. It ran fine before, during and after, no reduced performance mode, I don't think it even set any codes in the computer. But then I pulled over just as soon as the alarm went off and I had a spare belt with me and changed it on the side of the road and then drove home.
Correct… asking if any other triggers occur
Take a look at the picture below. These are parameters that the PCM uses to determine overheating and what will happen.
  • B1601 - Engine Protection Coolant Temp Upper Threshold. If the engine coolant temperature is above this value, then the PCM will go into engine overheat protection mode.
  • B1603 - Engine Protection Enable Delay. Once the engine coolant temperature reaches the overtemp threshold, it must do so for this long before engine overheat protection becomes active.
  • B3603 - Commanded Fuel When in Engine Protection Mode. When the PCM is in Engine Protection Mode, this is the Commanded Fuel (EQ Ratio). Engine Protection Fueling Mode is enabled once the engine gets too hot.
So once the temperature exceeds the value in B1601 for the amount of time in B1603 the PCM will go into overheat protection and will apply fueling per B3603. So for a 2004 GTO this means that once the coolant reaches or exceeds 269.6 F for more than 10 seconds the commanded AFR will be 12.99:1.

  • B1604 - Engine Protection Alarm. Some vehicles are fitted with an overtemp warning alarm, if engine coolant temperature reaches this value, then an alarm will sound or be illuminated.
  • B1606 - Over Temp Timer for Shutdown. must do so for this long before the engine will be shutdown.
  • B1608 - Engine Protection Coolant Temp. Engine will be shutdown if engine coolant temperature is above {B1604} "Engine Protection Alarm" plus this value for more than {B1606} "Overtemp Timer for Shutdown" seconds.
The 2004 GTO does not use the overtemp warning from the PCM, it uses the cluster. That is why this is set to 284 F, the maximum the parameter can have. Also the car does not have an engine shutdown due to coolant overtemp. Well it technically does, but you would have to run the engine coolant above 568 F for 410 seconds in order for this to happen. I think something else would cause the engine to shut down before these conditions are met.
Rectangle Font Software Parallel Technology
See less See more
  • Like
Reactions: 5
None that I know of. I experienced this once when I threw a belt and the car began to overheat. It ran fine before, during and after, no reduced performance mode, I don't think it even set any codes in the computer. But then I pulled over just as soon as the alarm went off and I had a spare belt with me and changed it on the side of the road and then drove home.
Right on, I had the same thing happen… belt came off and temps shot up. I just wasn’t sure if when alert triggered if it pulled timing/added fuel or anything to reduce load/try to drop temps. I too didn’t notice limp mode or anything occur.

Running day to day, I’m curious if setting a too-low Overtemp warning with VZClusterMod could be bad. Just curious if the cluster coders saw any additional instruction set in there that does anything besides set off the center display and alarm.
Great find Phoenix. So do we know if the cluster Overtemp value impacts this process? Would assume the PCM use its own values
Great find Phoenix. So do we know if the cluster Overtemp value impacts this process? Would assume the PCM use its own values
All the cluster does is shoot the gauge to the max and play a jingle.
  • Like
Reactions: 1
After changing back to a 186 stat, and relearning my operating temps, I decided constant temp needle movement isn’t for me. I want a useful gauge—not an almost binary OEM gauge, and not a desensitizing always moving needle on a gauge with no printed numbers. Something in between. My LS3 full-warm operating temps are between ~195 and -215, so I set that narrow range on the 3/8 lo/hi “parked” spot. The 1/4 hash is 185 so I know when the cold shift light warning is off, and the gauge still tells me when my fans are turning on/low/high and off. With 1/2 at 220, anything that point or higher, I need to keep an eye on the temp. Overtemp alarm at 232 aligns with entering the red zone on the gauge. It’s too bad Holden/GM didn’t add temp numbers on the gauge low/mid/high hashes, but we work with what we have. Again, hopefully this gives folks ideas. Thanks again for the tools, 1337.

Font Material property Circle Eyelash Data storage device
See less See more
941 - 960 of 991 Posts
Top