# Custom text on the DIS LCD!



## horseoutside (May 29, 2013)

Just got this working - I can send arbitrary text to the radio/CD status area of the DIS:




























Figured out the protocol the stock radios use to talk to the DIS, and I'm using a Raspberry Pi to send compatible messages to the DIS. Technical detail to follow later.

I intend to use this to display status from the onboard computer and whatever I can read out of some VCDS compatible software. Hopefully boost pressures - I have a BAM engine so I think it has the MAP sensor I need for this, right?

Any other ideas for what I can use this segment of the DIS for?


----------



## friktat (Sep 12, 2013)

i replace my cd player kenwood , and i dont have any info on this top screen , why ?


----------



## TTSPORT666 (Dec 1, 2011)

Well done...this is awesome..  Look forward to the details.

Damien.


----------



## horseoutside (May 29, 2013)

friktat said:


> i replace my cd player kenwood , and i dont have any info on this top screen , why ?


I'm not aware of any aftermarket head units that can send data to the DIS, except the very experimental stuff I have above.


----------



## toy4two (Jan 29, 2012)

wow that is so cool.


----------



## HIRAM (Feb 15, 2010)

Clever stuff ... [smiley=mexicanwave.gif] [smiley=mexicanwave.gif]...Rob


----------



## Garth (Feb 7, 2012)

Good work that. Much more impressive than the usual LCR front splitter threads :grin:
I'd be interested in the details of this


----------



## conlechi (May 6, 2006)

Very clever indeed 8)


----------



## Spaceman10 (Nov 15, 2011)

That's really good mate

Well done


----------



## V6RUL (May 28, 2009)

Dare I say, ground breaking.. 8) 
Steve


----------



## s3tt (Jul 10, 2012)

V6RUL said:


> Dare I say, ground breaking.. 8)
> Steve


There are similar things available, but nothing open source.. It has the potential to be very useful all the same..


----------



## Tritium (Apr 25, 2011)

Well done!
Good to see to entrepreneurial spirit lives in. mk1 owner

" insert coin" seems to have lost you 5 miles range. :lol:

Do put any contentious words up your TT may not be kind!

Brian


----------



## John-H (Jul 13, 2005)

Nice one. Another use for a Raspberry Pi 

You can read back manifold absolute pressure in mBar on measuring block (115) from the ECU and subtract atmosphere, calibrated at ignition switch on perhaps, leaving you boost as a useful display


----------



## Wak (May 6, 2002)

Very impressive as you mention getting VCDS stuff displayed would be great

Maybe scope to partner up something with liquidTT?

Do you only control text or can you force graphics of your choice?

Well done.


----------



## JorgeTTCQ (May 7, 2002)

Well done, very good.
There was a similar system a few years ago called EFU system from a german company called zusatzinstrumente with turbo boost and more info on fis:



















Cheers


----------



## uv101 (Aug 17, 2013)

This is really cool!...... Watching with interest ;D


----------



## horseoutside (May 29, 2013)

John-H said:


> Nice one. Another use for a Raspberry Pi
> 
> You can read back manifold absolute pressure in mBar on measuring block (115) from the ECU and subtract atmosphere, calibrated at ignition switch on perhaps, leaving you boost as a useful display


That's helpful, thank you!


----------



## horseoutside (May 29, 2013)

JorgeTTCQ said:


> Well done, very good.
> There was a similar system a few years ago called EFU system from a german company called zusatzinstrumente with turbo boost and more info on fis:
> 
> (images snipped)
> ...


Aah, very interesting. I figured I couldn't be the first to do this, it just seemed unlikely.  Great to know someone else has done it, specifically the boost pressure display.


----------



## horseoutside (May 29, 2013)

Wak said:


> Very impressive as you mention getting VCDS stuff displayed would be great
> 
> Maybe scope to partner up something with liquidTT?
> 
> ...


The first bit will require implementing a minimal Linux VCDS-style client, but without the GUI. I've been looking at the protocol docs and sniffing VCDS' traffic, it doesn't look too hard to do the basics. Most of the value/work in VCDS appears to be in things like the model specific knowledge like the label files, coding, etc, so just implementing enough to read the boost pressure shouldn't be too hard. Intending to open source that whenever it happens!

Don't have a liquidTT, wondering if two devices can interrogate the same component over the CAN bus or not. I suspect not...

So far I only have control of the text. There's a control byte in the messages that I haven't figured out yet, it is possible that the DIS supports other formats that might enable control of individual pixels, but I'm not going to play with it until I can get my hands on another instrument cluster for fear of bricking mine!

Interestingly, the lowercase character set has been repurposed for various special characters, this is supposed to be "ttforum.co.uk" in lowercase:










So one more little task is to document the mapping. Amusing how in the TT the letter 't' is preserved in the lowercase character set, but probably just a coincidence.


----------



## mullum (Sep 16, 2011)

Very cool. Just as I'm about to fit a boost gauge :-|


----------



## uv101 (Aug 17, 2013)

Are you replacing the original functionality, or adding to it?

I guess if you're adding to it, the Pi will need to also interpret the DIS messages already on the wire??


----------



## Pugwash69 (Jun 12, 2012)

It's a great use of Pi. I think the Pi is a great bit of kit.


----------



## horseoutside (May 29, 2013)

uv101 said:


> Are you replacing the original functionality, or adding to it?
> 
> I guess if you're adding to it, the Pi will need to also interpret the DIS messages already on the wire??


I've removed the original radio so the signal lines I'm using are unused now, but I think it's possible to make something like this coexist by not attempting to send when the original radio is.


----------



## Pugwash69 (Jun 12, 2012)

I don't think it matters if you have the original radio so long as you stick to the protocol things will play nicely.
It's a little like ethernet where there are going to be clashes, but they get resolved and message re-sent.

Now you need to hook up the Pi's digital audio to an amp, and get MP3 tags displaying. 8) 
I don't imagine you will be able to shove bitmaps to the display though. The controller would have it's own character set probably? I'd love to be proved wrong though. I used to load custom characters into my dot matrix printer in about 1985.


----------



## uv101 (Aug 17, 2013)

horseoutside said:


> uv101 said:
> 
> 
> > Are you replacing the original functionality, or adding to it?
> ...


I guess the original radio would have been unaware of any problem status and that the dash handles a warning on the display as a priority over whatever the radio outputs.

Sounds like the original warning will still take priority over the Pi output which is the behavior I'd probably want.

How fast can you update the info on the display? a changing value for example.


----------



## horseoutside (May 29, 2013)

uv101 said:


> I guess the original radio would have been unaware of any problem status and that the dash handles a warning on the display as a priority over whatever the radio outputs.
> 
> Sounds like the original warning will still take priority over the Pi output which is the behavior I'd probably want.
> 
> How fast can you update the info on the display? a changing value for example.


I believe warnings will override anything sent like this. The DIS thinks it's the radio sending this, which I imagine is about the lowest priority system there is here. 

The theoretical maximum update rate is around 33Hz but I'll test that. Slightly worried about bricking the instrument cluster here too, so I won't push it quite that far.


----------



## neil_audiTT (Sep 1, 2010)

Very good! I've seen something similar like posted before, the boost settings, fuel pressure etc.

Anything other than "radio 1" is pretty interesting in my eye's though :lol:

Could make it like kit from knightrider :lol:


----------



## Spandex (Feb 20, 2009)

When I got my RPi one of the first things I thought of was using it for OBDII stuff, so I was surprised there weren't that many car diagnostics projects out there using it. This site has quite a lot of detail though, so might be useful if you want to display ECU values on the DIS:

http://cyantific.de/raspberrypi/kw1281-live-diagnosis-with-raspberry-pi/


----------



## neil_audiTT (Sep 1, 2010)

Spandex said:


> When I got my RPi one of the first things I thought of was using it for OBDII stuff, so I was surprised there weren't that many car diagnostics projects out there using it. This site has quite a lot of detail though, so might be useful if you want to display ECU values on the DIS:
> 
> http://cyantific.de/raspberrypi/kw1281-live-diagnosis-with-raspberry-pi/


that link should come with a "caution dont read if sleepy" tag lol


----------



## B0SSS (Aug 15, 2011)

Very impressive stuff. Looks cool 8)


----------



## uv101 (Aug 17, 2013)

neil_audiTT said:


> Spandex said:
> 
> 
> > When I got my RPi one of the first things I thought of was using it for OBDII stuff, so I was surprised there weren't that many car diagnostics projects out there using it. This site has quite a lot of detail though, so might be useful if you want to display ECU values on the DIS:
> ...


Lol 

Interesting and very well explained tho if you're into that stuff


----------



## horseoutside (May 29, 2013)

As promised, further technical detail.

The protocol is SPI but only in one direction, the input line is not present. The data line is valid on a rising clock edge. The data signals are inverted, where a high signal means a 0 bit.

There's some code implementing how to talk to it at https://github.com/derpston/linux-rpi-audi-dis

There's a detailed investigation of the format (and reading it with some cheap hardware instead of a logic analyser) at https://github.com/derpston/Audi-radio-DIS-reader and it also discusses the checksum calculation. There's some checksum validating code there too.

It's in use already in the car, I have the custom dashcam sending the recording state and the framerate to the DIS:










Lot of fun. Now I have to write something for talking to the ECU to get to the real interesting stuff.


----------



## horseoutside (May 29, 2013)

I haven't investigated the maximum refresh rate yet, but I think it'll be nowhere near the theoretical line maximum of 30/sec because the LCD seems to react very slowly, it takes around 200ms (in my asstimation) for the previous message to fade out and be replaced, for a likely maximum of 5/sec. If you were to update it at that speed, I think it'd just be a blur to the user, so something more tame like 2/sec seems more likely.

Disappointing, but I think I'll work around it by doing something like displaying the max boost pressure in the previous half-second than the value at that instant, because I'm probably more interested in the max reached.


----------



## jamman (May 6, 2002)

Very impressive good work


----------



## mullum (Sep 16, 2011)

jamman said:


> Very impressive good work


+1

So much potential to be exploited here


----------



## John-H (Jul 13, 2005)

Good helpful detail. Didn't know it was SPI. It's not a super twist LCD by the sound if it. You'll probably find it gets even slower as the temperature drops but the cabin temperature control will eventually sort it out. You could peak hold the max reading for half a second within the live reading perhaps?


----------



## horseoutside (May 29, 2013)

Didn't know about super twist LCDs, that was an interesting read.

Good point about the temperature - I'll make sure to do refresh rate tests when hot and cold. Your suggestion of holding the peak reading steady while updating the live one more frequently is also good, hadn't thought of that!

... not that one would be staring at the DIS while accelerating hard, of course.


----------



## xiphon (Dec 8, 2011)

Quality use of the RPi


----------



## Mondo (Feb 20, 2009)

Very slick! Quite keen on a boost gauge, don't want a sodding great gauge in the car, do have an after-market head unit so that top 1/3 of the DIS is free... I like! 

Well done. I sense a GB coming on. :wink:


----------



## horseoutside (May 29, 2013)

Mondo said:


> Very slick! Quite keen on a boost gauge, don't want a sodding great gauge in the car, do have an after-market head unit so that top 1/3 of the DIS is free... I like!
> 
> Well done. I sense a GB coming on. :wink:


Yeah, maybe. That would be a lot of fun to do! Loads of work, like I didn't have enough already, but I'm open to the idea.


----------



## uv101 (Aug 17, 2013)

how good is the refresh rate on liquid TT?

just wondering if the limiting factor would be the data rate coming from the car rather than the data rate to the display?


----------



## John-H (Jul 13, 2005)

It depends on how many measureing blocks are read. looking back over some of my logs...

115 [Engine Speed, Load, Cmd Pressure, Press @ Intercool] (1 x 4 readings)
... gives readings every 300 ms

102, 101, 204 (3 x 4 readings)
... gives readings every 900 ms


----------



## John-H (Jul 13, 2005)

Just to complete this following a request from someone for more information the OP has kindly provided a link to all the detective work. I'm impressed with the ingenuity and dedication:

This home page provides the code and links:

https://github.com/derpston/Audi-radio- ... er?files=1

This link being the main story:

https://github.com/derpston/Audi-radio- ... /README.md


----------



## Spandex (Feb 20, 2009)

John-H said:


> I'm impressed with the ingenuity and dedication


Me too, but someone really needs to get that guy a logic analyser for xmas...


----------



## John-H (Jul 13, 2005)

Spandex said:


> John-H said:
> 
> 
> > I'm impressed with the ingenuity and dedication
> ...


Ha ha. I thought if I were doing it at work I'd use some sort of sniffer/logic analyser or a scope with that function but such general equipment is often expensive. Using a PC sound card to record a deep swath of data and using sound editing software to view and analyse it at leisure is ingenious and cheap as chips. The closest commercial in cost I can think of is Picoscope. There is an app for Android phone that uses the Mic input to produce a scope function - only one channel though so not much use with clock and data. So top marks I'd say.

I've got a circuit analysis PC package that can record Wav files from a transient analysis and in a continuous loop play it back through the speakers. It's like re-entering the early days of the BBC Radiophonic workshop - very Dr Who :lol:


----------



## Spandex (Feb 20, 2009)

John-H said:


> but such general equipment is often expensive.


Low spec usb models have been dropping in price a lot recently:

https://www.amazon.co.uk/Hobby-Componen ... B00DAYAREW

Plenty good enough for CAN.


----------



## pcbbc (Sep 4, 2009)

Or, if you want to get really serious the Microchip CAN Analyser.

Here's a dump of the proportional DIS alphanumeric font generated via the analyser and by a custom .NET application:





I'll admit the sound card solution is quality work though!


----------



## silkman (Jul 29, 2004)

Resurrecting an old thread that posed some interest and then nothing...


----------



## John949 (Apr 12, 2017)

On a MkII this is what I managed. It uses CAN to talk to the DIS so would work on the later Mk1s. If you just want to use the top two lines then it is much easier to send the data, however the radio and the cluster (line 2) both send data to the DIS and you will need to find a way to arbitrate between the data displays.

https://www.ttforum.co.uk/forum/viewtop ... &hilit=DIS


----------

