Technical Stilo CAN Bus Question

Currently reading:
Technical Stilo CAN Bus Question

Joined
Mar 24, 2008
Messages
790
Points
132
Location
Outtta Space
Does anyone know anything about the stilos implementation of CAN. Ive sniffed data on CAN-B (11bit/50k) but cannot seem to get anywhere trying the C-CAN (11bit/500k).

Does the stilo use 11bit or 29bit? I am using an ELM327 version 1.3 interface (it definately is a 1.3 too, not far-east knock-off)

When I issue the monitor bus command (ATMA) i get some data (RTR / RX ERROR) but it doesnt look like anything as all the data is null's (00h).

If anyone has any information, docs or pointers they would be greatly appriciated.

Cheers

Dan
 
the Stilo uses low speed CAN 11 bit 50kbps and high speed CAN 11 bit 500 kbps.
Only the low speed CAN bus is on the diagnostic socket so you have to connect to the high speed bus yourself- that's why you don't get any live information.
I take the signal from the electric steering column.
Keep in mind that the high speed CAN is not OBD2 information so you won't be able to connect using the normal connection procedure.
Using CanHacker software and a Peak CANusb or Lawicel CANusb interface is much more user-friendly for sniffing both CAN-busses...
Take caution regarding proper connection - you don't want to loose your CAN-communication whilst driving !
 
Hi,

Thanks for the reply yellowstilo, i have been trying the various can protocols on the elm327 and getting random stuff on them all other than 11bit/50k.

Do you know if I could tap into the can connection on the rear of the connectnav+ radio for the 500k/11bit? Would rather do that than near the steering column or instrument panel.

btw. your posts on the canhacker.de forum have been really helpful, with my high school german and babelfish your posts got me this far. Cheers

Thanks

Dan
 
Last edited:
Hello Dan,

no, the 500 kbps CAN bus is not available behind the Connect Nav or radio - this is only connected to the low speed CAN bus.
I found the cable at the end of the lower steering column cover was the easiest way to tap into the high speed CAN bus.
There are two pairs of twisted cable (for fail-safe reasons) - you have to twist the cables you connect to one of these strings and keep them as short as possible .
Once you monitor the high speed CAN bus you will be flooded with messages - with my info on the CanHacker forum you will be able to decipher a lot of them..
The filter function of the CanHacker software will turn out to be very useful !
Good luck,
yellowstilo
 
yellowstilo,

just to confirm (in english lol)

To find the can bus connection near the lower part of the steering column, I am looking for cables which are in heat shrink/plastic covering and actually twisted together as a pair and the following ...

White/Pink CAN-LOW
Black/Pink CAN-HIGH

is this correct? I have elearn stilo but I cannot seem to find any diagrams that go into that much detail.

For the moment I am just logging the info on the low-speed CAN bus, I am wanting to write a program to mimic the functions of the connectnav+ (set clock/door locking etc) before I upgrade it. Assuming that the high speed bus isnt available to the connectnav+ this should be achievable over the low speed bus. I thought i had cracked the clock setting with 6D7 but that doesnt seem to do it - if not I will rip the connectnav out of the car and mock the can-bus up on the bench - might be easier.

The info you posted seems to be making sense.. and is kind of following the can/node connection diagram on the elearn CD.

Thanks for your help.

Dan
 
Last edited:
Hello Dan,
the wire colour combination you mention is for the low speed CAN-bus , those wires are not twisted - the high speed bus uses the colours the other way around and are twisted because of the higher speed:

Pink with black stripe > can high 500 kbps
Pink with white stripe > can low 500 kbps

the 6D7 you mention is the correct ID for changing the time setting - all other changes are done using 6E7 .
6D7 is BCD code, so the hex data show the time data without conversion.
6E7 is bit-coded so every bit or bit cluster has it's own meaning regarding the options you choose.
So if you know what data string you have to send it is possible to change time and configuration with a laptop and CanHacker software + Peak or Lawicel CANusb interface.
Good luck with your experiments - I'm exploring the electronics of my Stilo for 6 years now and still learning every day...

yellowstilo
 
Excellent.. At least I know I am on the right track and know how I can filter the data to work out what other options are set.

I set the clock at 1845 26/12/2008 and changed it to 12hr, and logged the following..

Code:
281 00 00 80 85 01 81 15 00 
[B]6D7 18 45 26 12 20 08[/B] 
[B]6E7 92 32 05 50 03[/B] 
282 00 00 
281 00 00 80 85 01 81 15 00

I have tried just sending 6D7 hh mm dd mm yy yy as BCD but to no avail.
Now ill have a go at the rest. I know I can send commands as I have popped the boot open with the message to ID 7b0.

I am trying so far with the ELM327 1.3 as its relatively cheap to purchase and can be easily controlled with visual basic 6 and the mscomm control. If I reach the limits of this I might go for something like the peakcan.

Thanks for all your help!

Dan
 
Last edited:
yellowstilo,

Firstly, you must have an elm 1.3 i think, it doesnt work on the v1.0 because you cant change the baudrate to anything other than 500k or 250k. Not sure about the 1.2 or 1.2a as havent seen the datasheet for it.

Heres what I sent
Code:
atl1 (switch linefeeds on - makes it prettier)
atspc (set to can 11/50)
ath1 (switch on headers)
atsh 7b0 (set header to 7b0)
04 02 10 81 00 00
04 04 30 0f 07 ff

The boot pops open, i think you can do the above and not bother setting the header to 7b0 and just send the whole message.

Code:
7b0 04 02 10 81 00 00
7b0 04 04 30 0f 07 ff

Same works for the controlling the connectnav+ with ID 3c4 04 00 etc.

Looking at the diagram am I right in thinking it should be possible to control other stuff such as windows, with them being on the slow can bus?

Dan
 

Attachments

  • STILOSCH.JPG
    STILOSCH.JPG
    56.5 KB · Views: 2,791
Last edited:
Hello Dan,

are you sure you didn't use more setting options of the ELM 327? (like auto formatting off etc.)
I'm asking this because the default settings are used for OBD2 over CAN which the Stilo doesn't use (K-line for OBD2 diagnosis) so im my opinion you have to use more settings of the ELM 327 to be able to send your command string because these are non-OBD2 commands...
Did you use Hyperterminal or your Visual Basic program?
Regarding your question controlling other stuff on the CAN bus - yes, it's possible to control the windows, door locks , mirrors etc. - see what is sent on the bus when you activate items, send the same message and the same action happens!
 
hi,

yes thats all i did, i checked my log and those commands were sent after an ATZ. I have changed some of the programmable parameters for stuff such as the baud rate but that was on the pc side (parameter 11 set to 08) but that doesnt effect sending commands.

The same goes for the steering wheel buttons, same commands just different messages.

I have changed the headers in the past for stuff over the K-line to talk to the selespeed ecu, but havent touched anything for the CAN stuff everything is default as per the elm327 datasheet.

I dont quite understand what you mean by sending obd2 type messages. The elm doesnt format the messages with tester and target bytes like it automatically does for ISO 14230. In respect to can. the first three characters are the ID, the rest are the message itself. As far as I have read the elm itself sorts the PCI bytes out.

Ill check but im sure thats all there is to it.

Dan
 
Hello Dan,
I will do some testing with my ELM 327 s soon as i have some spare time, until now i only used my Peak interface with CanHacker software for my experiments on the CAN-bus.
I will get back here to post my findings but it might take some time as i'm very busy at the moment...
Good luck,
yellowstilo
 
Yeah, i did both.

I normally use hyperterminal though as for some reason my program locks up after 10 minutes or so of use at high speed (500,000), might be to do with the win32api calls that change the baudrate beyond 230.4k, im not sure .

My own app just appends the system time to the start the recieved message and logs it to a text file - nothing special. Ive written a few more for querying other things such as the CFC209 selespeed ecu, but that doesnt work properly yet either.

Ive gone back to the can stuff as that to me is more useful as I want to get that finished so I can rip out the connectnav+

My VB programming skills arent that great, so im learing all the string handling stuff and the CAN/OBD stuff at the same time.

When ive got the commands sorted off the vehicle/time & date menus sorted Ill code it into a simple app, should be very easy as its just sending commands - Im not too bothered about the responses other than the ELM errors.

Then ideally my car will come up with the service warning, so Im going to hide the laptop in the boot, and log all the examiner data and get the flashing indicators enabled on the alarm too, at the local dealers ;-) Ive got 2 elm 327s so I should be able to monitor both the slow CAN and K-Line at the same time.

Fingers crossed.

Dan
 
Last edited:
sounds good to me - i spent a lot of time exploring the data communication in the Stilo but i now nothing about computers or programming !
So you are planning to "steal" some Examiner information during your maintenance....
Well, you can find a lot of useful information between all data, you just have to know what you are looking for!
Let met know when you have your logs, maybe i can help you decyphering the data mass....
good luck!
yellowstilo
 
Quick Update.

Coming on well, have the time set commands working, and have coded it into a simple app in VB6 so it picks up the PC clock and sets the Stilo to the same time, using an ELM. Its a bodge but it works... Just going to do a re-write in vb .net and tidy it up.

I dont suppose if you know if the auto door locking is done by the connectnav+ itself over CAN? From what I have worked out the CN+ gets the speed signal and when it reaches 5/10mph or whatever it sends a door lock signal over the CAN bus.

Is this correct anyone?

Dan
 
Not quite sure what you're asking here Dan but the option for Auto Door Locking is set from one of the CN+ menus and the only means by which CN+ can comunicate with the Body Computer is via CAN.

For cars without CN+ the option would be set from the Mode/Fog Light switch panel. The Auto Door Locking is supposed to operate at 20kph.

Dave.
 
Yep.. know that,

What i mean is: Are the doors locked by the body computer when the vehicle reaches speed or does the connectnav+ actually tell the body computer to lock the doors when the vehicle reaches speed. I am talking in respect to the Abarth with CN+.

If that makes sense.... lol

Dan
 
Last edited:
Back
Top