Login  Register

Re: Custom CDC to SID text

Posted by Karlis on Jun 05, 2016; 4:59am
URL: http://bluesaab-forum.90.s1.nabble.com/Custom-CDC-to-SID-text-tp90p421.html

Oki-doki.... So here's a small update (story). Did some coding today and concluded that SID software is buggy (or maybe it's just me :)). This fact may also explain why there are a number of SID software versions out there. So here's the idea I'm trying to implement: since we are not a "man-in-the-middle" type of deployment, we can't just hijack IHU text frames and alter them before they are sent to SID. We have to be a bit cleverer.

From testing me and Seth have done previously, these messages appear to be sent at an interval of 1000ms. The message begins with IHU node ID = 348 and is followed with something like:

    0x11, 0xFF, 0x02, 0x19, 0x00, 0x00, 0x00, 0x00

Now, I'm pretty sure that 0x02 means "I wan't to write something on the 2nd 'object' (let's call it this way)". From what I understand, SID consists of three objects:

   0 = "Both rows of SID"
   1 = "1st row of SID"
   2 = "2nd row of SID"

Now back to the message - 0x19 apparently is some sort of confirmation to the node id 348, meaning "yes, I'm IHU and the text is coming from me".

I bet 0x11 means some sort of "priority", which is tied to a particular node.

Now to this 348 request, SID replies with a group of three messages outlining which 'object' it grants the requester to write on. I've seen three messages being sent at an interval of 1000ms with the same node ID. This is pretty much the same as described on Tomi's site:

00 FF 00 00 00 00 00 00
01 FF 00 00 00 00 00 00
02 19 00 00 00 00 00 00

This means, "ok, no one is allowed to write on 'object' 0 (the whole SID) or 'object' 1, but hey you - number 19 (IHU), whatever it is you want to say, do it so now!". At this moment IHU happily sends it's text control message with id 328, which in our case usually is "CD1 PLAY".

Now, after a lot of testing done, I don't believe any SID software version has been provisioned with acceptance of display resource requests coming from a CD changer. CD changer reports its status to IHU and IHU then sends text to SID on behalf of CD changer. Clear as mud, heh? :)

So what I tried to do today is use the same idea that was described in this post earlier with a little tweak. Basically I was trying to sit on the bus and listen for IHU to send "display resource request" messages to SID. When those messages appeared, I immediately sent another one saying "well, ok there's nothing to show for now. Clear whatever text you have on 2nd SID 'object'", anticipating that the second row would "free up" and I could immediately send my own text. That didn't work. So I wen't a step further and added some code that would send "clear everything on 'object' 0" on every loop of the code. This is where the fun begins... :)

Initially SID obeyed my code commands and wasn't displaying anything except clock, which was fine. I already started to think that this might actually work, but then... SID went out, the engine fan kicked off and all sorts of weird stuff started to happen. I quickly reverted the code changes and had to pull ECU reset fuse to get everything back to normal.

So, lesson learned - SID is to be handled with white gloves as it is more powerful than we could imagine... All hail to the SID. :)))

To be continued...

2001 9-5 SE V6; 2006 9-5 Wagon; iOS; BlueSaab version = "latest and greatest" :)