Advertise on fullfatrr.com »

Home > In Car Electronics (L322) > I-Bus Message Help to Fool a DSP please
Post Reply  Down to end
Page 1 of 2 12>
Print this entire topic · 
Zulu 10



Member Since: 28 Nov 2014
Location: Hampshire
Posts: 88

United Kingdom 
I-Bus Message Help to Fool a DSP please

I have successfully managed to install a new Erisin head unit in my MY04 L322, however, not satisfied with that I also wanted iPod integration in some form – ideally digitally.
Moreover I hoped to retain the DSP and original speakers (at least for the time being).

Consequently I have connected the S/PDIF output of a Pure i20 iPod dock directly to the co-ax digital audio input of my DSP.

I have written some Python code to generate I-Bus messages to initialise the DSP, set volume etc, and to generate spoof status requests and responses to/from the radio and nav units. (I’ve also used the code to update time and date at the dashboard, and display a personalised message, sad, eh?).

The software is currently on a laptop, but I'll transfer it to a Raspberry Pi with touchscreen once finished.

Anyway, all seems to work satisfactorily and I can command the DSP to use its digital input, change volume etc, which it does for approximately one minute, and sounds fine, and then it goes back to sleep. It generates no error messages or anything when it does so, but a bus re-initialisation recovers it without the need to recycle power.

I suspect that this one minute keep alive drop-out is due to my failure to generate a specific message which it expects to see on a regular basis, but of which I’m unaware.

I’ve tried generating Radio to CD Changer demand and response messages such that the bus contains typical traffic, but to no avail.

I’ve gone back through the NavCoder logs to try to identify the missing message but can’t find it.

Does anyone, I wonder, happen to have a bus definition that lists all the messages (possibly FF broadcast ones) which the DSP expects to see in order for it to maintain normal operation?

[edited to add: the same time out problem applies when connected to the analogue input as well, and I've measured it at 40 seconds rather than a minute]

Many thanks in advance.

Post #401796 24th Aug 2016 11:25am
View user's profile Send private message View poster's gallery Reply with quote
bebechoon



Member Since: 22 Apr 2014
Location: In ze middle of Frainsch nul part
Posts: 454

France 

I don't even understand the question! What language is it in? Embarassed
Bus definitions? Is that a Bus timetable?
Python code. As in Monty ...??? Confused

I suppose this post will mean something to someone. I bow down very low before such experts Bow down !!! It's "bébéchoon", ackcherly, with accents. 'Steve' to my chums.
20 years ownership of Solihull products, ALL GONE NOW, sniff!
Current motor: Suzuki S-Cross 4WD auto, 1.4 petrol. Oh so reliable! 7 years now and no problems. Oh, all right then, a leaking shocker replaced under guarantee.
Previous:
TD6 HSE L322 Auto FF
2.5 TDi 4-door Classic
Disco II
And my 1st Rangie: in 1995, a 2-door VM 2.5 diesel Classic
Not to mention the Lada Niva before those. (I said not to mention it!)

Post #401823 24th Aug 2016 2:11pm
View user's profile Send private message View poster's gallery Reply with quote
Haylands



Member Since: 04 Mar 2014
Location: East Yorkshire
Posts: 8189

England 2014 Range Rover Autobiography SDV8 Loire Blue

At last, Thumbs Up I knew it must be possible, like bebe I'm afraid it is way above my pay scale and I can't help with your request but well done for getting that far...

Is there someway to "read" the canbus code or do you have to know what it should be,,,??? Pete

__________________________________________________
2014 L405 Autobiography SDV8 4.4 Loire Blue Ebony interior
2011 L322 Vogue SE 4.4 TDV8 Baltic Blue. Parchment over Navy Interior. Sold
2012 L322 Autobiography 5.0 Supercharged Ipanema Sand, Jet Interior. Sold
2002 L322 Vogue 4.4 V8 Epson Green, Ivory over Aspen Interior (Fatty Offroader) Sold
-Click for Project Fatty off roader-

Post #401833 24th Aug 2016 4:17pm
View user's profile Send private message View poster's gallery Reply with quote
MrKev



Member Since: 09 Aug 2015
Location: UK
Posts: 22

United Kingdom 

Good job Zulu 10, but have you seen my post?

Yes, there's a keep alive message. See here for circuit, and source code on bitbucket. If you can update with any new

http://www.fullfatrr.com/forum/post349650.html#349650discoveries, please do!

It's worth keeping the DSP in if you can, the sound is much better.

@Pete: it's NOT canbus. That's something else.

Kevin[/u]


Last edited by MrKev on 24th Aug 2016 4:35pm. Edited 1 time in total

Post #401836 24th Aug 2016 4:31pm
View user's profile Send private message View poster's gallery Reply with quote
Zulu 10



Member Since: 28 Nov 2014
Location: Hampshire
Posts: 88

United Kingdom 

...er..both Pete:

I've bought one I-Bus to USB interface from a chap in Germany (Rolf Resler), and built a second less sophisticated one myself.

I use the simple one to feed a program called Navcoder which can capture all bus traffic for analysis.

I use the Gucci one connected to and generating messages created by my 'touchscreen'.

Hopfully by using two I can avoid drawing false conclusions.

So far I can't see any difference between my message structure and that generated when the original units were installed, but I'm sure I've missed something.

There's talk on the BMW I-Bus fora of a Tech Service Bulletin to install a filter that slows down the waking of the DSP until the Radio is fully awake, but I've cobbled a few bits to mimic this and behaviour is the same.

Maybe my timings are still awry and I just need to finesse the code.

Worst case is I either revert to standard to make some more logged measurements from the original LR/BMW system, but if I can find someone who has already fought their way through such problems, then there's probably a reward...


Last edited by Zulu 10 on 24th Aug 2016 4:36pm. Edited 1 time in total

Post #401837 24th Aug 2016 4:35pm
View user's profile Send private message View poster's gallery Reply with quote
Zulu 10



Member Since: 28 Nov 2014
Location: Hampshire
Posts: 88

United Kingdom 

MrKev wrote:
Good job Zulu 10, but have you seen my post?

Kevin[/u]


Sorry, URL wasn't visible first time


Last edited by Zulu 10 on 24th Aug 2016 4:37pm. Edited 1 time in total

Post #401838 24th Aug 2016 4:35pm
View user's profile Send private message View poster's gallery Reply with quote
MrKev



Member Since: 09 Aug 2015
Location: UK
Posts: 22

United Kingdom 

Sorry, I forgot to include the link... now edited.

The keep alive message needs to be sent approx every minute. As there's no collision detection on the I-bus, I think I send it every 10 seconds just to be sure.

Kevin

Post #401839 24th Aug 2016 4:36pm
View user's profile Send private message View poster's gallery Reply with quote
Haylands



Member Since: 04 Mar 2014
Location: East Yorkshire
Posts: 8189

England 2014 Range Rover Autobiography SDV8 Loire Blue

See, I know even less than I thought... Kevin you have mail... Thumbs Up Pete

__________________________________________________
2014 L405 Autobiography SDV8 4.4 Loire Blue Ebony interior
2011 L322 Vogue SE 4.4 TDV8 Baltic Blue. Parchment over Navy Interior. Sold
2012 L322 Autobiography 5.0 Supercharged Ipanema Sand, Jet Interior. Sold
2002 L322 Vogue 4.4 V8 Epson Green, Ivory over Aspen Interior (Fatty Offroader) Sold
-Click for Project Fatty off roader-

Post #401840 24th Aug 2016 4:37pm
View user's profile Send private message View poster's gallery Reply with quote
Zulu 10



Member Since: 28 Nov 2014
Location: Hampshire
Posts: 88

United Kingdom 

Thanks Kevin,

I'm intrigued by that message, because it's not directed at the DSP (ID 6A), but I'll go and add a thread which, if I read your code right, is simply sending F0 03 68 01 9A every ten seconds.

My neighbours think I'm barking sitting on a garden chair on my driveway and gazing into the boot of my car...

The Gucci interface which I mentioned earlier contains collision detection, unlike my cobbled version.

Sadly that makes no difference - I tried generating the BMBT to DSP equivalent as well.
That said, it makes me think: I wonder if the DSP is expecting a Keep Alive Bit request from the CD player?


Last edited by Zulu 10 on 24th Aug 2016 5:20pm. Edited 2 times in total

Post #401841 24th Aug 2016 4:46pm
View user's profile Send private message View poster's gallery Reply with quote
Haylands



Member Since: 04 Mar 2014
Location: East Yorkshire
Posts: 8189

England 2014 Range Rover Autobiography SDV8 Loire Blue

Zulu 10, you have mail as well... Thumbs Up Pete

__________________________________________________
2014 L405 Autobiography SDV8 4.4 Loire Blue Ebony interior
2011 L322 Vogue SE 4.4 TDV8 Baltic Blue. Parchment over Navy Interior. Sold
2012 L322 Autobiography 5.0 Supercharged Ipanema Sand, Jet Interior. Sold
2002 L322 Vogue 4.4 V8 Epson Green, Ivory over Aspen Interior (Fatty Offroader) Sold
-Click for Project Fatty off roader-

Post #401842 24th Aug 2016 4:48pm
View user's profile Send private message View poster's gallery Reply with quote
gregdav



Member Since: 26 May 2014
Location: just north of stafford
Posts: 1077

England 2005 Range Rover Vogue Td6 Bonatti Grey

Guys you all have, Bow down Bow down Bow down


way over my head.
but interesting.
Thumbs Up

Post #401854 24th Aug 2016 6:22pm
View user's profile Send private message View poster's gallery Reply with quote
MrKev



Member Since: 09 Aug 2015
Location: UK
Posts: 22

United Kingdom 

Are you feeling audio into the radio box or straight into the DSP? Mine is feeding into the radio L/R and the radio makes front back left right signals to the DSP.

Kevin

Post #401855 24th Aug 2016 6:25pm
View user's profile Send private message View poster's gallery Reply with quote
Zulu 10



Member Since: 28 Nov 2014
Location: Hampshire
Posts: 88

United Kingdom 

Ah, now I understand why you've managed it, dare I say, so easily. Though I can't understand where your Case 1 Case 2 list is hidden.

In my case I've wired the new head unit's front speaker outputs into the differential analogue inputs to the DSP, and the iPod via a dock through a coax to the SMB socket on the DSP.

My follow-on is to use the Head Unit's line level outputs and feed them into a differential output op-amp, but I need to crawl before leaping.

The sound quality by staying at lossless digital all the way to the DSP is most impressive, so long as it will last for more than 40 seconds!

By using the input select bus commands I can happily switch between the two input - but after 40 seconds it goes silent.
Simply sending a Source = Off byte to the DSP, followed by DSP Initialise and finally Source = CD (iPod) is enough to get the DSP to re-start, then a volume +15, but obviously it's a major pain.

I think I have to examine carefully my handshakes.

As an aside I can set the clock and date, and set a 'my Range Rover' message to the display - happy to share the code if you wish, although I'm not a code monkey by trade, so it's rough and not well structured.

Post #401857 24th Aug 2016 6:39pm
View user's profile Send private message View poster's gallery Reply with quote
MrKev



Member Since: 09 Aug 2015
Location: UK
Posts: 22

United Kingdom 

Yeah, code to set the clock would be cool. I could 'influence it' but most to 11.00 or 11.01 - interesting to see what I was doing wrong. I god bored of sitting in the drive with a laptop Wink

Dash messages could be good too, I'm sure I can think of something!

What about resetting the fuel consumption stats etc - any thoughts?

Kevin

Post #401861 24th Aug 2016 6:53pm
View user's profile Send private message View poster's gallery Reply with quote
Zulu 10



Member Since: 28 Nov 2014
Location: Hampshire
Posts: 88

United Kingdom 
To set the time

def buildtimemessage():
now = datetime.datetime.now()
t = now.time()
HbyteHour = hex(t.hour).lstrip("0x")
HbyteMinute = hex(t.minute).lstrip("0x")

byteHour = str(HbyteHour)
if int(HbyteHour, 16) < 0x0F:
byteHour = "0" + byteHour #for hour values in single digits, pad the string with a leading zero

byteMinute = str(HbyteMinute)
if int(HbyteMinute, 16) < 0x0F:
byteMinute = "0" + byteMinute #for minute values in single digits, pad the string with a leading zero


Last edited by Zulu 10 on 10th Oct 2016 10:42pm. Edited 1 time in total

Post #401868 24th Aug 2016 7:22pm
View user's profile Send private message View poster's gallery Reply with quote
Post Reply  Back to top
Page 1 of 2 12>
All times are GMT

Jump to  
Previous Topic | Next Topic >
Posting Rules
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum



Site Copyright © 2006-2024 Futuranet Ltd & Martin Lewis
fullfatrr.com RSS Feed - All Forums


Switch to Mobile site