Cadillac Owners Forum banner

No NAV With HUD

24K views 121 replies 14 participants last post by  Guy.Seminerio 
#1 ·
I need some help from you guys. My HUD works fine but I've never had the nav instructions show up on it when there is a route going. I looked in an old forum and 3 people, each of whom had an 09 (non V) had their problems solved by a firmware update. I took my car into the dealer and they said I am up to date and that I need a new nav for $27xx. Based my past with this dealer, my confidence that they are correct in saying my firmware is fully updated is 0.

I'd like you guys to check under the diagnostics screen what your versions are. Some may know how to do this but for those who don't, the instructions are as follows:

Put the car into acc, on, or start.
Get to the map screen by pressing the globe hard key.
Press "menu" soft key.
Above the "memory points" soft key, and directly across from the title "nav menu" is a blank space. Press and hold your finger down there for about 5 seconds until a keypad appears. You are basically pressing on a hidden soft key.
When the keypad appears, type in 295660 for 2008+ cars (9448 for older.)

There are two screens we're concerned with. The "parts info" and the "soft rel."

Under parts info, what is your "navi version?"

What is your soft rel?

I'm really asking this of 2008 (and 2009?) guys because of the HUD. I'm assuming you guys get the nav stuff showing up on the HUD just fine.

Last night I unplugged all the nav plugs in the back and reconnected. No dice. What I'm hoping and expecting to hear from you is that your versions are different from mine which would tell me that in fact I do need a firmware update.

Just a tip, if you guys are on your iPhones or whatever, take a screen shot of these instructions so you can refer to them while you're pulling the info up.

Thanks in advance for taking the time out to do this crap. Appreciate it.

----------

For your reference, here is the old thread I'm referring to. http://www.cadillacforums.com/forum...0159-nav-turn-instructions-dont-show-hud.html.
 
See less See more
#3 ·
Way ahead of ya Carter. Called that dealer up, the guy doesn't work there anymore so I brought it up to the service guy and he was freakin clueless. Knowledge was not passed on. So I said thanks anyway.

Thanks for your help though. And yeah the HUD is really nice. Kills me that the cts never got it. Don't think the escalade did either. Vette did though.
 
#7 · (Edited)
Hey Guy, I was messing around with the NAV DVD in the computer tonight and found another diagnostic pin code that works on the 08+ model for sure.

It's "3657"
It gives a couple more options for diagnostics.
There is also a second page of software version information.

Posted pics here:
(Trying out a 'new' feature of the Camera+ app ... not sure how well it will work in the long run)

http://campl.us/bkKsuoyc9a8

Here are direct links to the photos:




 
#9 · (Edited)
I do have HUD w/ACC, but my car is 08 non-V.

EDIT:
a coupld of links to other Nav related.
http://www.cadillacforums.com/forum.../284455-nav-updata-issues-need-some-help.html
http://www.cadillacforums.com/forums/cadillac-sts-v-series-forum/74744-so-all-sts-v-owners-any.html

based on what I remember about those threads I would have to bet that dealers are really only aware of the 05-07 model firmware upgrade due to the TSB.
I would wonder if the software update could be applied by the dealer if they manually went into the S/W update section on the Nav then used the TechII.
The TSB from 07 says:
Verify that the software versions are (post upgrade):
- Navigation system software version = 0FC1
- Audio system software version = 010C

What it also says (which I think may be mis-read / overlooked by most) is:
Important: If the navigation system software is the same or higher than version 0FC, the software update will not start and the navigation software update is not necessary. DO NOT insert disc 2 into the radio.

I bet that most read that as if it has 0FC then no update is possible, BUT the disc 1 update is still able to be done.

...btw...the update contains 2 CDs...it's not a single one...

GM 15943724
CD1 Software Version V01.0C
CD2 Software Version V0FC1

...both must be used...and a Tech II...

(...my dealer lost his set...ordered a spare and after 2 month or so he received only one (copied) disc and didn't get the second...gladly I could find myself a set on ebay in between...;) )

...thats the "service" from Cadillac Europe...:thepan:

 
#10 ·
Ludacrisvp said:
Hey Guy, I was messing around with the NAV DVD in the computer tonight and found another diagnostic pin code that works on the 08+ model for sure.

It's "3657"
It gives a couple more options for diagnostics.
There is also a second page of software version information.

Posted pics here:
(Trying out a 'new' feature of the Camera+ app ... not sure how well it will work in the long run)

http://campl.us/bkKsuoyc9a8

Here are direct links to the photos:
How do you use the computer to mess with the disc and find diagnostic codes!?
 
#11 ·
Maybe more than you were looking for but here is the gist of it.

After some (ok a lot of) time searching on the web I found this blog that had a python script made that claimed to be able to display some info from the nav disc and 'extract modules' from the disc as well.
http://biot.com/blog/navigation-dvd-hacking
combined with some information from:
http://www.takingthingsapart.org/in...ask=view&id=39&Itemid=56&limit=1&limitstart=1

There was a minor typo in his python script that I fixed on my local copy so that it would function.
basically there is an offset in the loading.kwi file that makes it less readable with a hex editor, the extract module function corrects the offset from what I can tell and makes HEX editor viewing better.

There seems to be a community of people modifying their Audi Nav unit and some other units, so it was pure chance this even was able to get anything.


Code:
t110-osx:nav ludacrisvp$ ls -lh
-r-xr-xr-x@ 1 ludacrisvp  staff    11M Jul 25 18:03 LOADING.KWI
-rw-r--r--@ 1 ludacrisvp  staff   6.3K Aug 13 07:36 kiwi.py
t110-osx:nav ludacrisvp$ chmod +x kiwi.py
t110-osx:nav ludacrisvp$ nano kiwi.py
t110-osx:nav ludacrisvp$ ./kiwi.py
usage: kiwi [-v|-x] [-o outputdir] -d <dvd directory>
  -v	list modules contained in the LOADING.KWI FILE
  -x	extract modules from the LOADING.KWI file
  -d	directory where the DVD is mounted
  -o	target dir to extract modules into
t110-osx:nav ludacrisvp$ ./kiwi.py -v -d .
number of systems found: 1
System 1
    Manufacturer ID: DENSO
    Number of modules in this system: 1
    Module 1:
	Name: GE14
	Version: 1350
	Category: Program
	Address: 0x800
	Size: 10.8 MB

t110-osx:nav ludacrisvp$ ./kiwi.py -x -d . -o .
extracting modules into ....
   GE14
t110-osx:nav ludacrisvp$ ls -lh
-rw-r--r--  1 ludacrisvp  staff    11M Aug 13 07:39 GE14
-r-xr-xr-x@ 1 ludacrisvp  staff    11M Jul 25 18:03 LOADING.KWI
-rwxr-xr-x@ 1 ludacrisvp  staff   6.3K Aug 13 07:38 kiwi.py
t110-osx:nav ludacrisvp$ file GE14
GE14: data
t110-osx:nav ludacrisvp$ file LOADING.KWI
LOADING.KWI: raw G3 data, byte-padded
I grabbed the code out of the HEX output from home, this is just a re-creation of some of it on my work computer using a copy of a LOADING.KWI that I had emailed myself a while back.
Not sure what disc this loading.kwi is from (this one in particular doesn't mention the 3657 code).
The kwi file compresses quite well, the 11.4MB file was only about 4MB after being compressed, I'm thinking we should start collecting loading.kwi files from any/all Denso Nav discs for any make/model and see what we can find. Land Rover and Jaguar use Denso based navigation in some models so there might be something to be learned from them.

But it does for some reason mention "2003 KENWOOD CORPORATION" in the file, in addition to DENSO references.

Here is a copy of the kiwi.py file that has the typo corrected from his blog.
If you have access to a Linux/Unix/Mac machine you can copy the code from the section below into a file called kiwi.py and run it from terminal.

Code:
#!/usr/bin/env python
#
#       kiwi
#
#       Copyright 2009 Bert Vermeulen <bert@biot.com>
#
#       This program is free software; you can redistribute it and/or modify
#       it under the terms of the GNU General Public License as published by
#       the Free Software Foundation; either version 2 of the License, or
#       (at your option) any later version.
#
#       This program is distributed in the hope that it will be useful,
#       but WITHOUT ANY WARRANTY; without even the implied warranty of
#       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#       GNU General Public License for more details.
#
#       You should have received a copy of the GNU General Public License
#       along with this program; if not, write to the Free Software
#       Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
#       MA 02110-1301, USA.

import os
import sys
from getopt import getopt
import string
from datetime import datetime
import struct

EXTRACT_BUFSIZE = 1024 * 1024

def usage():
	print """usage: kiwi [-v|-x] [-o outputdir] -d <dvd directory>
  -v	list modules contained in the LOADING.KWI FILE
  -x	extract modules from the LOADING.KWI file
  -d	directory where the DVD is mounted
  -o	target dir to extract modules into"""
	sys.exit(1)

def is_printable(text):
	for i in text:
		if i not in string.printable + '\x00':
			return False
	return True

def show_date(stamp):
	date = datetime.fromtimestamp(stamp)
	datestr = "%d-%.2d-%.2d" % (date.year, date.month, date.day)

	return datestr


def maybe_dump(text):
	if is_printable(text):
		return text
	else:
		hex = ''
		for i in text:
			hex += "%.2x " % int(ord(i))
		return hex

def show_kwi_info(lo):
	print "number of systems found:", lo['num_systems']
	syscnt = 1
	for s in lo['systems']:
		print "System %s\n    Manufacturer ID: %s" % (syscnt, maybe_dump(s['mid']))
		print "    Number of modules in this system:", len(s['modules'])
		modcnt = 1
		for modname, modversion, category, startdate, enddate, title, info, address, size in s['modules']:
			print "    Module %d:" % modcnt
			print "\tName:", modname
			print "\tVersion:", modversion
			print "\tCategory:", category
			if startdate:
				print "\tValid from:", show_date(startdate)
			if enddate:
				print "\tValid until:", show_date(enddate)
			print "\tAddress: 0x%X" % address
			size += 0.0
			if size > 1024 * 1024:
				size /= 1024 * 1024
				unit = "MB"
			elif size > 1024:
				size /= 1024
				unit = "KB"
			else:
				unit = "bytes"
			print "\tSize: %.1f %s" % (size, unit)

			print
			modcnt += 1

		syscnt += 1

def extract_modules(path, targetdir, system=1):
	try:
		lo = parse_loading(path)
		if lo['num_systems'] < system:
			raise Exception, "only %s systems found" % lo['num_systems']

		if not os.path.exists(targetdir):
			os.mkdir(targetdir)

		s = lo['systems'][system-1]
		print "extracting modules into %s..." % targetdir
		fp = open(path)
		for modname, modversion, category, startdate, enddate, title, info, address, size in s['modules']:
			print "  ", modname
			fp.seek(address)
			cnt = 0
			outfile = open(targetdir + '/' + modname, 'w')
			while True:
				if cnt + EXTRACT_BUFSIZE > size:
					chunksize = size - cnt
				else:
					chunksize = EXTRACT_BUFSIZE
				buf = fp.read(chunksize)
				outfile.write(buf)
				cnt += chunksize
				if len(buf) < EXTRACT_BUFSIZE:
					break
			outfile.close()
		fp.close()
	except Exception, msg:
		print "Error:", str(msg)

module_categories = [
	'Initial program',
	'Program',
	'Library',
	'Data'
]

def parse_loading(path):
	lostruct = {}
	fp = open(path)
	data = fp.read(4)
	num_systems, dummy = struct.unpack_from(">HH", data)
	lostruct['num_systems'] = num_systems
	offset = 4
	lostruct['systems'] = []
	for s in range(num_systems):
		system = {}
		fp.seek(offset)
		data = fp.read(16)
		mid, num_modules, dummy = struct.unpack_from(">12sHH", data)
		offset += 16
		system['mid'] = mid
		system['modules'] = []
		# get Module Identification Information blocks
		for m in range(num_modules):
			fp.seek(offset)
			data = fp.read(64)
			cat, modname, modversion = struct.unpack_from(">cxxx52s4s", data)
			offset += 64
			cat = ord(cat)
			category = module_categories[cat & 3]
			if cat & 64:
				category += " (Test module)"
			if cat & 128:
				category += " (Diagnostic service module)"
			modname = modname.rstrip('\x00')
			system['modules'].append([modname, modversion, category])
		# get Module Management Information blocks
		address_multiplier = 0
		for m in range(num_modules):
			fp.seek(offset)
			data = fp.read(256)
			startdate, enddate, title, info, address, size = struct.unpack_from(">HH64s182sIH", data)
			offset += 256
			# dates are in number of days since 1997-01-01 00:00:00. that's
			# 852073200 seconds since the unix epoch, convert to that
			# if it's 0 no date is set, so preserve that
			if startdate:
				startdate += 852073200 + (startdate * 86400)
			if enddate:
				enddate += 852073200 + (enddate * 86400)
			# address is either in 2048-byte sized blocks, or some odd 3-byte
			# block size. try to grok this by the first one we
			# see, which will be right past this this Loading Module Management
			# block we're parsing now
			if m == 0:
				if address < 0x100:
					# too small to be an absolute address
					address_multiplier = 2048
				elif (address >> 8) < 0x100:
					address_multiplier = 8
				else:
					address_multiplier = 1
			address *= address_multiplier
			# size is in 2048-byte sized blocks
			size *= 2048
			system['modules'][m] += [startdate, enddate, title, info, address, size]
		lostruct['systems'].append(system)
	return lostruct

#
# main
#

opts, args = getopt(sys.argv[1:], "vxd:o:")

mode = dvddir = targetdir = None
for opt, arg in opts:
	if opt == '-v':
		if mode:
			usage()
		else:
			mode = 'view'
	elif opt == '-x':
		if mode:
			usage()
		else:
			mode = 'extract'
	elif opt == '-d':
		dvddir = arg
	elif opt == '-o':
		targetdir = arg

if not mode or not dvddir:
	usage()

try:
	path = dvddir + '/LOADING.KWI'
	if not os.path.exists(path):
		print "no LOADING.KWI found in %s" % dvddir
		sys.exit(1)
except Exception, msg:
	print "failed to open %s: %s" % (path, str(msg))
	sys.exit(1)
else:
	if mode == 'view':
		kwi_info = parse_loading(path)
		show_kwi_info(kwi_info)
	elif mode == 'extract':
		if not targetdir:
			print "please set a target directory to extract into."
			usage()
		else:
			extract_modules(path, targetdir)
Running it would be something like:
Code:
$ ./kiwi.py -x -d /Volumes/<DVD_Drive> -o /Users/<username>/Desktop/Nav
(replace <DVD_Drive> with the correct path, like DW464210-7740, and replace <username> with your username)
I then opened that file in a HEX editor and did some poking around, searched up the known 295660 and saw a few codes around it.
Like 660, 9448 which we already know about and then there was -> 3657, 3366 next to them as well, so I ran out to the car and tried both and the first one worked.
3657 seems to give the most diagnostic features for the 08+ model (looks like it matches what the 9448 code provides 05-07 models based on screen captures).
 
#15 ·
Well my audio version is 2.01 and my navi is 0070. So based on the navi alone, mine and yours, Luda, are off. And since your nav and HUD work together, and we both have 2008+, I truly believe I need a firmware update.

I absolutely believe that you're right in saying that since there isn't a tsb for 2008+ the dealers assume its updated. I have to venture away from my local dealer and find one that knows what they're doing. Thanks so much Luda.
 
#16 ·
I truly believe I need a firmware update.
You might try entering your VIN on this site:
https://tis2web.service.gm.com/tis2web
and see if you have an option to view if there is any information about your radio on it.
You may find something useful on it but you may not; since our units are updated via CD and tech 2 is just needed for some controlling I don't believe it will show up here.
(The Escalade however apparently does list the radio / AMP in here and they can get some updates to fix certain things)

This is the list of modules I was able to get from my VIN:
>EBCM Electronic Brake Control Module
>ECM Engine Control Module
>ESCM Electronic Suspension Control Module
>ONSA TIS2WEB Pass-Thru OnStar Activation (Replaced/Upgraded units only)
>TCM Transmission Control Module
>TVT TV Tuner (Export Only)
>V.T.D. Vehicle Theft Deterrent Learn
>VDAAW Vehicle Direction Alert Alarm Warning
 
#22 ·
Hmm, hadn't really thought about that being the issue... I just assumed it would display whatever came over the serial data line.

I cannot seem to find a pinout of the HUD that shows what wires are connected to it, did ddalder provide you with one from your HUD project?
You mentioned needing to relocate a PIN from the XLR HUD harness to work with the STS HUD...
Did you test out the nav features with your HUD?

Guy, do any of the other display abilities fail to work?

Code:
Head Up Display (HUD) Description and Operation 

The reconfigurable head up display (HUD) is an active matrix color display system that optically projects critical vehicle information through the windshield. 
The head up display is controlled by a combination switch located in the vehicle center console:

Image Up/Down Switch-The HUD image adjustment switch allows the driver to vertically adjust the images on the windshield up or down. 
The HUD image position on the windshield can be personalized for Driver 1, Driver 2 and Unknown. 
The vertical image position set by the various vehicle drivers is saved and recalled next time they drive the vehicle. 
Moving this switch directs the motor to move the HUD image up or down on the windshield.
Power/Dimmer Switch-The brightness of the HUD image can be adjusted by pressing the knob on the center of the DIC control panel in until it pops out and then pull the knob until it is completely extended. 
Turn the knob clockwise or counter clockwise to increase or decrease the brightness. 
If the knob is turned all the way to the left, the HUD will turn OFF. 
On vehicles with adaptive cruise control, if the HUD is turned OFF, the cruise control will be inoperative.


Telltales 

The following is a list of telltales and gage information displayed in the head up display (HUD) and received via the serial data circuit:

Vehicle Speed
English/Metric Mode
Turn Signals
High Beam
CHECK GAGES
Tap Up/Tap Down/Upshift
Adaptive Cruise Control Warning Symbols
Warning Messages 

The head up display (HUD) will temporarily display certain warning messages as it receives a serial data message from the responsible source (module). 
The HUD displays certain warning messages received from the following sources:

Adaptive Cruise Control Messages
Radio Information
Cellular Phone Information
HVAC Information
Turn-by-Turn Navigation Display (if equipped)
Arbitrary Text Displays
----------

Only issue I see with this is its my understanding lane departure and blind zone are turned on and off through the nav.
That is correct, the bottom two buttons on the left side of the config screen are dedicated to the SBZA and Lane Departure enable/disable functions.
 
#20 ·
Mj caddy i have the same exact versions, same year car, same issue. We definitely need firmware updates. Unfortunately we need to convince a dealer of this because there is no tsb stating ours needs to be updated. I found a dealer finally. It's an hour away and they're open Monday to Friday. They close at 5. Doesn't go well with work. Ill keep you guys posted.
 
#23 ·
I assume thats in the firmware then and not an auto detect feature like with Magnetic ride.

Daddler did I THINK if he did it would be in the HUD thread. I know there were several different HUD part numbers like with the radios. My HUD came from an 06 and was re-manufactured before I bought it for the $30 bucks so its essentially new.

I bought it for the Speedo and Tach while it would be neat if the directions display as well I wont cry if it doesnt.
 
#33 ·
Yeah I spoke to the guy on the phone. I explained what happened at the other dealer explained there is no tsb. He assured me he would pop the upgrade discs in. He understands we're talking software update, not map discs here. I explained he is an hour away so I don't need him to not find a tsb and tell me I'm updated. I'm pretty confident we're good here. Ill let you know.
 
#34 ·
Jeez. Ok so I bring the car in and I reiterate all the stuff from my previous post. I say there IS an update.

I'm in the waiting room for a half hour and the service rep comes out and says "guy you were right." I say "I know I'm right." He has my MAP DISC IN HIS HAND. He tells me there is an updated map disc. I explained to him calmly that the issue here wasn't a map disc. It is a firmware update that only the dealer can do. I explain that there are multiple 09 sts owners who had this very problem solved with a firmware update. He goes back in.

Under 10 minutes later he comes back in and asks me to come into the bay and talk to the guy working on my car. I explain the whole story to this guy. I explain the whole 2 disc thing. Everything. He says he has to call GM and ask about it. I tell him I'm afraid GM is not going to see a tsb and tell me to take a walk, my nav is updated. He assures me this won't happen. I even show him luda's post where he copies Pontiacv8's old post showing the 2 discs and showing the part number. He says he has to call. I go back and wait.

Service rep comes back shortly after with my no charge receipt showing a part number for the disc they had to order to fix my nav. They say it could be weeks before they get it in. I say, "this is the disc you can reuse on other cars to update their nav software?" He says yes. He'll call me when the disc comes in. I show him the post this time, the part number of the update discs. He says "we have those but GM says its not for your car. It could freeze up your nav. It's for the older cars." I say ok and I leave.

I come home, and just before I do this post, I google the part number of the nav firmware update disc he will be ordering. 22944166. THE 2013 MAP DISC! F@&$ me.

Any suggestions? I figure ill play his game, go in when he gets the MAP DISC!! it won't work, and then ill tell him to go ahead and use those discs that might "freeze the nav" to upgrade my firmware. What do you think?

I love dealing with unknowledgable, incompetent Cadillac dealers.
 
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top