Thursday, December 13, 2012

Sardine CAN version 0.2 alpha now available!

Hello all,

Sardine CAN is now available as open source software, as promised some time ago. In the past few days I've been cleaning up the code and writing short pieces of documentation to help in installation, but to get more detailed view of the software, one must resort to reading comments that are peppered all over the source code.

Please note that this is still HIGHLY EXPERIMENTAL software and great care should be taken when using it beyond any test installation on your desktop, such as diagnosing your car or clearing error codes stored in ECUs. Flashing any ECUs or making any other bigger changes in your car is completely beyond the scope of Sardine CAN and even though it might be possible in theory, I wouldn't dare to try it. If you respect your daily commuter at all, please buy a commercial product for that purpose.
For basic diagnosing I do not anticipate any big problems, but still, should you decide to use Sardine CAN, it is done completely on your own risk. I won't be held responsible for any damage caused to you, your property or nearby persons by any attempts to use Sardine CAN in any other ways except than by looking at the source code. Sorry, one more addendum: Should you get a head ache or burst your brain aneurysm while reading the source code, I won't be held responsible. And no reading while driving!

That being said, installation should be quite straightforward. Just follow the installation instructions and you should be fine.

The code can be found in GitHub in HERE.  You need to download both repositories, the Arduino firmware and the Win32 DLL.  If you don't want to install Git (though highly recommended), you can download repositories as complete ZIP files.

So, what can you do with it?

I've been able to use it with VIDA to identify my car and all the various ECUs in the low-speed CAN bus. It can read and clear error codes stored in all the available modules. Also with VIDA it is possible to use various diagnostic commands to test ECU functionality (for example to activate wipers, power windows, test heater functionality etc) as well as read various status parameters available on each ECU. Remember, J2534 is just a pass-through protocol. All the functionality depends on the program using the J2534 interface.

Note that ISO9141 K-line initialization is not yet implemented, so at least in my Volvo S80 (year model 2002) it is not possible to plug this straight into OBD port, because the lack of initialization causes the diagnostic relay to stay closed and thus CAN bus pins on the OBD port remain floating. However any other CAN bus port can be used, such as RTI or AEM connector, or perhaps a connector in the audio module.

Do also note that Sardine CAN hasn't been tested on the high speed CAN bus yet, but the data rate is hard-coded to 125 KBit/s (speed of low speed CAN bus in my car). Also the PASS filter is hardcoded in Arduino firmware to accept diagnostic messages originating only from addresses of the form 0080xxxx, so if you have problems receiving messages from Arduino, please check with some other CAN reader the diagnostic addresses that ECUs use in your car - they might be different from those that are expected.

Even though the device works quite well in my car, I'm sure there are bugs and there will be problems, not to mention nuisances caused by missing functionality. Please don't hesitate to contact me, but in case you do, include all the necessary information (your car model and year, software used (Windows version etc)) as well as attach the log files related to the incident along with the description what happened. Also if you have any coding skills, I would be happy to receive patches and bug fixes and maybe even some code to implement functionality that is still missing.

Happy hacking!

Best regards,
Olaf

8 comments:

  1. Hi,
    Was googling how to change Volvo DIM language and found this blog.
    What you did is amasing! I wish i know as much as you do.
    Only question i have is: are there any plans to make K-line interface for SardineCAN? So it works via ODBII cconnector? This may come handy to not-familiar-with-coding sysadmin guys like myself.
    Cheers

    ReplyDelete
  2. Tested on Volvo S80 2000" 2.5TDI, works great with Win7 and WinXP. Only thing in WinXP, in my case, there is need to change first "FunctionLibrary"="C:\sardine\sardine.dll" to "FunctionLibrary"="C:\\sardine\\sardine.dll" or else there will be error about "not found sardine.dll"

    ReplyDelete
    Replies
    1. BTW I used Seed Studio CAN-Bus shield

      Delete
    2. Can you please contact me I need to make it work but I think the last versions are not tested since I can't succed to compile them always getting some errors
      Can you please contact me and help me by sending you compiled arduino .ino firmware
      here is my email : jwdsoft1990@gmail.com

      Delete
  3. Hi
    Is it possible to send some data (text) to icm via can in v50 from 2006?
    Regards

    ReplyDelete
  4. Hey. Great job. Thank you. And how to make the speed can become 500kbs?

    ReplyDelete
  5. My Testimony Hello everyone. Am here to testify how I got my loan from Mr. Benjamin after I applied several times from various loan lenders who promised to help but they never gave me the loan. Until a friend of mine introduced me to Mr.Benjamin Lee promised to help me and indeed he did as he promised without any form of delay.I never thought there are still reliable loan lenders until I met Mr. Benjamin Lee, who indeed helped with the loan and changed my belief. I don't know if you are in any way in need of a genuine and urgent loan, Be free to contact Mr. Benjamin via WhatsApp +1-989-394-3740 and  his email: 247officedept@gmail.com thank you. 

    ReplyDelete
  6. If you want to hire a hacker or hire a professional email and password hacker online, then feel free to contact our experts at Anonymoushack.co. We are defining hacker for hire and solving your most complex problems very fast.

    ReplyDelete