Things I Learned While Upgrading non-DIC to DIC in an Envoy SLE

LikeEnvoy

Member
Joined
Apr 17, 2012
Posts
145
Location
Winnipeg, MB
I just began using my "new" DIC instrument cluster in my Envoy SLE.
So far I have no steering wheel with switches, so I only have the odometer and the messages that display, but what a difference! The characters are much larger and easier to read, I have two trip counters now instead of one and I get messages for any door ajar, not just a light when the tailgate is not shut., plus messages to advise when traction control or Stabilitrak is active or disabled.

I hope some information I learned over this process might be of use/interest to others. Perhaps some light, technical reading on a gloomy day! If you are interested enough to read all this you will realise why I am SO happy now have a DIC cluster.

The road to this point is long; I wanted to upgrade over 10years ago and saw many people describing they had upgraded and how easy it was so I thought this would be easy for me too. Hmmm. First, our local junkyard didn't get any Envoys or TBs until much later than other members. Adverts for clusters online were only from USA so in MPH - no good for Canada - and the prices were high due to the exchange rate; USA has always had better choice and lower prices.
Oh, and lastly, when Envoys did begin to appear, the clusters were all gone by the time I got there.
Meanwhile I collected a connector for the instrument panel and made up a test wiring harness for it.

First DIC
So it was only in 2020 that I finally saw a DIC circuit-board lying in a car; not the whole cluster; someone had already been there and dismantled it, removed a couple of stepper motors then dumped the PCB (printed circuit board) on the seat. The window was missing so rain had splashed over the PCB. This was from a 2002 car so no good for my 2007, but I got this for nothing, so this was my first DIC cluster; I had never seen one before, let alone held one in my hand! It would be good as a tester, to learn everything.
I got this home and powered up with my bench power supply and test harness. It worked! Wow, my first gaze at a DIC panel. I got the functions to work by shorting the appropriate wires to ground (as the steering wheel switches usually do). Great.

Editing EEPROM
Next step was remove the EEPROM and try editing it for my VIN number and mileage (kilometerage?). I had watched many videos on this subject in those years so Knew about this and I had bought a cheap Chinese programmer (CH341) with its free software.
I tried the clip-on connector but that didn't work. I then read that usually it does not work due to other circuit components connected. So I had to de-solder it. I did that with my old solder sucker (press a plunger down then push the button to suck). It was not very successful. I also tried my old solder-wick from a previous job I had. Oh, I got the EEPROM off alright, but destroyed several solder pads on the PCB. Now I am not a novice to soldering - I was in the repair business of Precision cameras, flashes, projectors etc for many years - but this just caused problems from the start.
Anyway, I traced where the connections were supposed to go and repaired the pcb with jumper wires.

Then I began with the programmer. With the EEPROM off the board, I managed to read the chip and saved the dump, as advised by all those videos. Then I edited it for my VIN and odometer reading, as shown in the videos, and wrote it back. Writing was not easy. It kept failing at first but I got there eventually.
I thought I was smart and avoided more solder/de-solder damage by just pressing the EEPROM in place while testing.
I powered up and ...nothing. No DIC display at all and furthermore, the Gear display (PRNDL) was not right. Instead of all gears appearing and no selector bar underneath, now it had only the first few gears and a bar was under one of them, flickering.

OK, I checked and realised I had positioned the EEPROM upside down. Aggh. (Actually this did not hurt it, as you will see later, but it did worry me at the time). This 2002 model has the EEPROM upside down on the PCB, whereas the later models have it the right way up.
I positioned it correctly and tried again - no display. Drat.
The next few years
I thought it must be a circuit problem, so looked up all the videos about fixing the clusters. They mostly said it was simply resistors that had bad joints. I tried that but no good.
So I spent the next few years measuring and drawing out the schematic for the HT (High Tension), (or High Voltage) circuit and checking all of it. I had about 40V there, and other parts had voltages that varied with the input voltage.
I collected a lot of information but also found how difficult it was to find information, because GM and AC Delco got manufacturers to make special batches of components/chips with unique GM part numbers. That makes it impossible to get data sheets to help with troubleshooting. The VFD display for the DIC and gears was also a problem. I learned later that Futaba made these, but it is obsolete so they have no datasheets any more.

EEPROM Comparisons
Meanwhile, I was finding every video of EEPROM editing for Envoy/TB and saving shots of them. I examined all of them and was puzzled why their EEPROM contents had a different layout to mine. They mostly had two values at the start, then some blank positions then a third value (Byte), which apparently made up the odometer reading. That was repeated twice, to give three copies of the odometer. HOWEVER, my DIC EEPROMS had only one byte at the start. I assumed it was different for certain models and years (Wrong, as you will see later)

continued in part 2...
 
  • Like
Reactions: Blckshdw
Second DIC cluster!
2022: I saw on the web page of our junkyard that a 2007 Envoy Denali had come in. I raced round and the cluster was still there. I got it out and tried my battery-powered harness on it. The DIC did not light up. Anyway, I was sure I could fix it, so I took it home for $20 ( it was only the PCB and back/front cases.) A 2007 DIC cluster! This one should work in my truck.
On my bench, the DIC actually lit up, although it was very dim; much dimmer than that 2002 had been.
Oh well, I thought I could look at that later.
1770837464991.png

EEPROM editing again
After that 2002 damage to circuit board, I had bought a Chinese hot-air de-soldering tool, like the videos showed. I still do other repair work for myself, so it would be useful for many things. No instructions said what temperature to set, so I had to learn over quite some time how hot to set it in order for the chips to come off easily.
Anyway, I got this EEPROM off much easier than that first one and with no damage at all.
I read the chip and saved the dump, as before. Interestingly the EEPROM values also had only one byte at the start, like the 2002 board.
Edited it and wrote to the chip. Soldered back on.
Powered up and... no DIC display. What?? I couldn't figure what had happened, so thought the circuit must be faulty (remember it did not light up in the yard and it was dim when it did power up on my bench.
So I began troubleshooting this PCB as well, just like the 2002 board.
I drew the circuitry out, like the 2002. Some fair differences and certainly different PCB layouts. I created quite detailed drawings of both PCBs in MS Visio. Ultimately I hit a wall like the 2002 board.

A revelation in 2025 ( almost a DUH! moment)
So, by 2025 everything I had measured/tested seemed to be NOT the problem. I had, by now, learned some of how VFDs work and how the processor and firmware worked in these clusters and much more and was convinced the problem was either the cpu was not sending serial data out to the driver chips or the driver chips were faulty. I had noticed a logo on the driver chips and searched the internet for this logo in images. I discovered the logo was from Allegro microsystems, so clearly they had made these driver chips, but with special GM part numbers on them. I approached Allegro, who were very helpful. It did not hurt their business because these chips are now obsolete. They reasoned (correctly) that these chips were A6818 and A6810 part numbers.
So into my document went this information. I downloaded the datasheets for these and improved my drawings.
I made more tests and found there should be different voltages on the VFD display pins. Mine had none.

VCX FD and Tech2Win
It was in 2025 that I also decided (after much reading of GMT Nation users) that I wanted a Tech2 type scan tool.
The original Tech2 was now pretty much obsolete and difficult to find a working clone, it seemed. So I looked up the VXDiag VCX FD. This is a fairly new model they brought out and is more powerful, with more protocols and better interfacing than the previous Nano or their other tools. So I bit the bullet and ordered one.
When it came, I had by then wiped an old Sony laptop and installed Windows 7 and Windows 10 on separate partitions. Windows 10 for the new GDS2 GM software and Windows 7 for the Tech2Win and TIS200 for my Truck.
I did have some trouble installing it and getting it working, but VXDIAG helped cure all problems. (Separate laptop, off my network in case of any spyware worries).

Well, Well, Well
With the Tech2Win connected to my test harness, I was able to learn the software versions on the Instrument Panel (IPC) and much more I could test all segments of the DIC and the gear LEDS and lamps.
BUT when I tried to read the Data about the odometer information, the software beeped and flashed the screen continuously, until I exited that test.
I tried this on the 2002 PCB too. It did the same thing!

Hmm. Because the Tech2Win error only occurred when trying to read the values that are stored in the EEPROM, it seemed there was something wrong in both EEPROMS. I began to think what are the odds that both PCBs do not light up the DIC and Tech2Win complains. Also the 2002 gear VFD was bad now. This all seemed to happen after I removed the EEPROMS, edited them and wrote the values back.
The last part of the puzzle was when I thought of that first byte of data in both of my EEPROMS, compared to two bytes in other EEPROMS I had seen.
The penny began to drop! I looked up on the internet and asked "Can EEPROM readers miss the first byte?"
....Answer: Yes, sometimes a bad read can miss the first byte! AHA!

I went back to my original 2002 EEPROM dump file and looked carefully. I discovered that not only was there only one byte at the start, but all the way at the bottom of the screen was a byte that was NOT present in all other EEPROM dumps I saw. Not only that, bu that extra byte was the same value that should have been at the start!

1770837322809.jpeg

See that 1B at the bottom. The top line should have started 1B 01, just like the 1B 01 further along the line!
I realised that the software had missed the first byte, continued along and got to the end of the chip, needed to read one more byte to fill all memory addresses, so reset back to the beginning of the chip and read that byte.
That means all the data was shoved over to the left by one location, effectively scrambling the information that the cpu was trying to read.

Better Software Tool
OK. Meanwhile, I had already found problems writing to the EEPROMS and had found another tool, AsProgrammer, that writes easily.
I made tests and found that that original software from the CH341 programmer tool always missed the first byte, but AsProgrammer reads the EEPROMS correctly.
I corrected the EEPROM Dump file and wrote it to the chip. Put it back on the board and... Hallelujah! The DIC display lit up!!
I couldn't believe it. After all those years, thinking it was a bad component. At last I saw the DIC working again.
Also, the gear indicator lit up brightly and correctly. So the cpu needed the correct data from the EEPROM to configure how to drive the displays.

I then did the same on the 2007 cluster. YES, that worked too! I thought I was finally on the last leg of this issue.

DIM Display
The DIC display was still dim though; VERY dim. The 2002 DIC display was nice and bright.
I measured the high voltage on the circuit and it was now only 32V. It had been about 39V when the VFD display was dead. The current draw now was likely loading the circuit down and reducing it, I thought.
I swapped the VFD from the 2002 board into this 2007 cluster. There is a lot of pins on those VFD displays but It was quite easy with flux and solder-wick. Result: ...it was bright! Yes.

That high voltage was still low, though. So I swapped the transistors that drive the high voltage circuit from the 2002 to the 2007. 39.1V now. Good. I thought it would work in the truck now.

Nov 2025 Try in Truck - Bad Characters
A brief warm spell allowed me to put this into the truck. However, when I turned the ignition on, the 3rd and 4th characters from the right were very dim. Also, when I turned the dimmer knob down slightly, those two characters disappeared then the rest of the display went off.
Ugggh. So I took it out and back to my bench.
The display was generally bright and the voltage was good, so the fact that just those two characters had problems pointed me to the driver chips. perhaps one of them was intermittently driving those characters badly.

So I decided to replace the driver chips. I already had the VFD off the 2002 board so I removed the driver chips. That was quite a job and I had to apply a LOT of hot air to eventually get the larger chips off. I was worried they may have been damaged.
Because soldering and de-soldering many pins is risky and could lift the circuit board traces with repeated work, I didn't want to try fitting these AND that VFD then finding it was bad. So I decided to get new driver chips.
1770837565465.png

That was an experience in itself. Nobody in Canada or USA has them because once GM finished their need for them the production and sale here stopped. So China it was. China not only has stock of the original remaining production, but they can manufacture new ones if necessary. I contacted many sellers and got quotes but most wanted huge shipping costs. Eventually Alice at ICHome gave me an economy shipping rate. I ordered them plus the HT drive transistors. ( I thought, since swapping the 2002 transistors into the PCB improved the voltage, it showed they had degraded and new ones would be a good idea. Also, I could replace the 2002 transistors and get it functional again, as a test board.

Dec 2025 - SUCCESS
Meanwhile, I changed all the backlight bulbs because some had begun to go intermittent. I had already stocked up on these because my original non-DIC cluster had lost a few bulbs some years earlier.

I fitted the new transistors when they came. Now 41.7V of high voltage! Good.
I removed the VFD display and driver chips from this 2007 board and while under there I cleaned up the PCB and made continuity tests. I found some traces lost continuity or were intermittent where they transferred through the PCB in conductive "through-holes" or "Vias" as I learned they are called by electronic designers. I wondered if these could have been a causal factor in the intermittent characters as well. So I scraped away the green resist to reach copper and soldered tiny jumper wires through each hole that I found suspect. I did not want to EVER have to remove these chips or VFD again.

The driver chips came and I fitted them and the VFD display.
Yes!! All characters are bright and even. I switched on and off many times to prove it.
It was absolutely freezing outside though, -20°C to -33°C, so I had to wait until I could survive working outside.

Pulse Generator
Meanwhile, I made one last adjustment to the EEPROM to get my odometer reading close, then soldered it in finally.
From there I used a home-made pulse generator to gradually increment the odometer until it matched my truck.
I'm too old to mess about making pulse generators and can't justify paying for a professional one. However, I do have an old ArduPilot autopilot module that I acquired some years ago when it was being thrown out by its owner. I realised that the servo outputs which drive Radio-control type servos are pulses and the repeat rate is somewhere from 30Hz to 50Hz usually.

So I connected this up to the Vss wire of my test harness and put a 5V battery pack on the ArduPilot. After the autopilot initialised, the pulses began to come out, and the speedometer needle turned round to around 70km/h and the4 trip counter began to increment and finally the odometer reading clicked over.
1770837861840.jpeg
So from that time I have been frequently running the pulse generator to keep my DIC cluster up to date with my non-DIC cluster in the truck.

A Last - The Work Was Worth it ::rolleyes:
Here in February 2026 ,The forecast temperature swung up above zero. So I went out and swapped the cluster. I used my Tech2Win to ensure the needle positions matched the correct values shown and then fitted the front lens and all the panels.

Next day the temperature plummeted again but I have a DIC cluster!
The messages are large and clear and even the odometer is much better than my old non-DIC, tiny numbers.

I hope you can see now why I am so happy after all those years and problems and puzzling. Any of you who simply pulled a DIC cluster from the junkyard and plugged it in and it worked, you should thank your lucky stars. It was never that easy for me.

Also, I just found a decent steering wheel on eBay, at a reasonable price. (Costs much more in Canadian, of course) and ordered it. I have never found a decent wheel in my junkyard over all these years. They were all swollen up with grease and oil and torn, ripped, cut etc. I already have a clock-spring harness that I acquired years ago.

continued in part 3..
 
Last edited:
  • Like
Reactions: Blckshdw
Footnote about Differences between DIC and non-DIC (Especially to Mooseman)
In my thread from 2022: (https://gmtnation.com/forums/threads/odometer-keeps-dimming.21117/#post-654530) I had mentioned that when I first got this DIC cluster, some of the warning lamp symbols were different. I showed the two overlays to compare. I also found that the wrong lamps were turning on. E.g. when I disabled Stabilitrak, the same lamp in the position where my cluster had the Stabilitrak symbol turned on, BUT the DIC cluster had a "Check Gauges" symbol. A couple of others were wrong too. See the photos there for comparison. I had worried it needed programming. We all thought that, I think.

Well, here in 2026, when I fitted the DIC cluster, I did worry that it wouldn't work, BUT... It does - perfectly.
I think the bad EEPROM data, after I had read and written the data back then, had misconfigured the cpu of the cluster and it was driving the lamps as it though it should be for a non-DIC cluster.
Now that the data is correct , it drives the lamps for the correct function. This makes sense to me.
---------------------------------------------
I also learned, along the way, how some of the EEPROM values represent certain things and how the trip counter values are stored and encoded. I had already discovered a lot on my own, but I found a very useful map of the EEPROM from a GM full-size truck, although it was rather different to our Envoys/TBs : (map from DougAMiller on https:// www.tahoeyukonforum.com/threads/update-to-adding-trans-temp-gauge.110600/forum). After testing by writing values to my old 2002 board I noted down how it works and made my own schema diagram in the same format as that poster.
EEPROM-Map.png

A5 at address 0x58 seems to be the vehicle type. Full size trucks of this era seem to have A7 here and the next bytes are about Transmission temperature. Hours are then stored to the left of the A7.
DISP TYPE
Display Type Configuration. Configures the MCU for driving the displays on the PCB. Earlier models with VFD gear display and VFD DIC had 10. LED Gears and non DIC VFD have 20. I have also seen 00/01/11. Sometimes I found that sometimes a DIC can go blank after the wrong data has been read from the EEPROM; writing 10 here got it working, then I wrote 30 back and it still works.

LANG
Dispay Language setting. 0 = English, 1 = French, 2 = Spanish.

UNITS
Units of displayed values. 0=imperial, 1=metric l/km, 2=metric l/100km.

LABEL
Last 4 characters from label bar code stored as plain text

PART NUMBER
GM 8 digit Part Number for cluster is stored in hex format MSB→LSB.
(Enter these bytes in sequence into a hex calculator and convert to a decimal number)

MODEL ID
Cluster model ID is 4 large characters from the label. Also stored as ASCII plain text.


Again, thanks to DougAMiller, it was a handy start. I made mine for the Envoy/TB in the same format to make it consistent.

By the way, the trip counter values actually store the odometer reading at the time the counter is reset to zero. The cpu then calculates the difference between that and the current mileage and displays that number.
Those values are in speed sensor pulses of 4000 per mile.
The top rows contain the mileage (x10) in three bytes. In the photo I included, You take 1B 01 7F and that converts to 1769855 miles x10, or 176985.5 miles. The values are repeated twice again in case of errors.
The third byte of that sequence is written successively to the next memory location until it reaches the location before the next 1B, then it goes back to the start.
 
Last edited:
Wow! That is way more than what I would have done. All I did was swap in a junkyard cluster and was done, wrong KM and all. I have a label reminding me to deduct 120k from the odometer for actual KM. Everything worked in mine, even the buttons for the DIC. Radio buttons I can't get to work with my current head unit as all of them just do volume up. One bulb is out but it's hardly noticeable. The cluster is at 328k.

Good work on figuring this out and for anybody else looking at a similar project.
 
Thanks MM. Yes, I'm stubborn when it comes to finding a problem. My wife sometimes wonders. However she was happy I'd finally got it working. Yes, maybe this will help someone.
I find I do need a few beers now to recover/celebrate.
 
  • Like
Reactions: Mooseman

Forum Statistics

Threads
24,240
Posts
648,332
Members
20,675
Latest member
nickG

Members Online