Suzuki SV650 Riders Forum banner

1 - 20 of 30 Posts

·
Premium Member
Joined
·
117 Posts
Discussion Starter #1
I was curious if anyone knows what data is available via the diagnostic/SDS port? Seems like it's something that Suzuki had on a number of it's bikes (GSXR, Bandit, SV, Hayabusa, etc) and at least on the GSXR you can get at a lot of data from the ECM (pri & sec throttle body position, gear position, rpm, etc- at least 21 channels that I'm aware of per AIM's documentation).

I know Suzuki sells a special tool (and aftermarket tools are available as well like this one: http://www.aliexpress.com/item/SDS-For-Suzuki-Motorcycle-Diagnosis-System-Motorcycle-code-scanner/32356452298.html) but I haven't found much in the way of documentation to indicate what data is actually available via the SDS on the SV650 03-06 models and not really interested in spending $90 to find out right now.

I'm asking since I'm interested in tapping that line, decoding the data and making it available to my data logger. Trying to figure out if it's actually worth the effort.

Anyone know? Thanks!
 

·
Premium Member
Joined
·
117 Posts
Discussion Starter #2
Wow, surprised nobody had any information, so I found a tool sold on eBay for about $55 and gave it a try. It came with software which supports Suzuki, Honda and Kawasaki and plugged directly into the diagnostics port on the bike. I turned on the bike and clicked "connect" in the software and was able to pull some basic information from the ECU. Pretty cool actually- looks like all the sensors on my bike are supported.

Anyways, here's some screen shots of the app in use:


 

·
Premium Member
Joined
·
117 Posts
Discussion Starter #4
I ended up ordering the "Professional OBD Diagnostic Tool for Suzuki Motorcycles" from seller electradecentre. Quick shipping, but the unit was not as pictured. What they actually shipped is a product with the same functionality as "New Diagnostic OBD Tool for Suzuki Motorcycles" from xrdcnc-360.

links:
http://www.ebay.com/itm/281663182864
http://www.ebay.com/itm/151785540142

From what I can tell, any of the diagnostic tools marketed for Suzuki's on eBay, etc should work as long as it has the correct connector. The same tool should work for all 2nd gen SV's- the only difference is what sensors the bike has (ABS, etc).

You can use the software to save the data to a file on your computer. But if you're looking for a data logger to use while out ridding, this won't work since you need a windows computer to make it work. If you want to spend > $1K, you can buy an AIM EVO4 data logger which supports the Suzuki SDS protocol. They only list GSXR's, but this appears to prove that the SV uses the same protocol. I've actually done a ton of research on data loggers lately and AIM is the only vendor I've found which supports this protocol.

The good news is that with this information, it wouldn't be difficult for someone in the community to build a simple data logger. You'd need something like an ST L9637 to convert the K-Line bus to serial and then a simple micro controller to write to an SD card and output CSV.

I'm semi-tempted to add this to my own ECU Decoder project which currently decodes the messages from the ECU to the OEM dash, but it's unlikely I'd add a data logging feature since I'd need to support additional channels and I'd rather buy a commercial unit now that I've out grown my XT Racing GPX Pro.
 

·
Premium Member
Joined
·
117 Posts
Discussion Starter #5
So a quick followup... The AIM decodes some of the sensors over the SDS k-line, but not others. Throttle position seems to work well, but things like gear position is pretty bad and water temp is wrong. AIM is willing to update their software to support the SV650, but they're looking for more details. If anyone knows where I can get an SDS template for the SV650 that would be great!
 

·
Premium Member
Joined
·
117 Posts
Discussion Starter #6
So I decided to try a $30 ELM327-like K-line decoder (ScanTool 425801 OBDLink SX USB) off Amazon.com. This in theory would allow me to decode the K-Line messages via serial on my computer (the USB device shows up like a serial port), but unfortunately either the ScanTool is buggy or the SDS/K-Line protocol implemented by Suzuki doesn't 100% follow the spec and it can't negotiate the initialization of the K-Line protocol.

So looks like I'm going to have to use an ST L9637D to interface the K-Line to an Arduino or Teensy board. Won't be as easy to use as the ScanTool which has an easy to use "AT" command set like a modem, but there is code out there to help decode the KWP2000 protocol.

BTW, I should mention anyone looking at one of those ebay/AliExpress Suzuki Diagnostic Decoders out there- they're all knock-off's of the one made by Heal-Tech. The "real" one is about $230! Sounds like Heal-Tech added a "feature" to their latest version of their code which will brick the knock-offs, so don't try upgrading the Windows software... that said, the software version I got is pretty decent, albeit a pirated copy.
 

·
Premium Member
Joined
·
117 Posts
Discussion Starter #7
Been a long time, got distracted, but I made a bunch of progress. Much of the information is gleaned by reading code and various websites as a starting point, but some is also from my own analysis.

Also, turned out the ScanTool doesn't use an ELM327, but rather their own chip/firmware which try as I might, wasn't able to talk to the SDS K-Line. Rumor is that you can use a specific set of AT commands with an ELM327 (even some of those cheap Chinese knock-offs) to make it work.

Anyways, I've created a GitHub project containing much of what I've learned as well as source code I've written as well as data from my ECU I've been able to extract.

If anyone else is interested in contributing to documenting the SDS protocol for the SV650, let me know!
 

·
Premium Member
Joined
·
117 Posts
Discussion Starter #8
So spent some time this weekend using my SDS tool and a Teensy 2.0 + ST L9637 chip watch the SDS line. So one thing I've learned is that a lot of the public info that is out there for SDS (mostly for the vstrom), surprisingly doesn't apply to the SV. Pretty much all the fields are in the wrong place. Figured out a number of them, but going to have to start plugging numbers into formulas to figure out what is what for others.
 

·
Premium Member
Joined
·
117 Posts
Discussion Starter #9
Made more progress. Realized my tool chain for reverse engineering the SDS protocol was too painful, so I spent last weekend making major changes and then last night I designed a custom PCB to help.

More info about my project is available on my blog: https://synfin.net/sock_stream/technology/data-logging/reverse-engineering-the-sv650-sds-protocol

I've also open sourced everything (code and PCB design): https://github.com/synfinatic/sv650sds

Right now I have 3 boards on order with OshPark. I should get them in a little over a week. I'm going to populate one of them and test it. Assuming it works, if there's anyone else interested in working with the SDS protocol on the SV/VStrom let me know and I'll be happy to mail you one of the other two PCB's for free. You'll need to buy the necessary components (~$20-25) and populate the board yourself.
 

·
Super Moderator
Joined
·
8,544 Posts
Very cool project, Synfin, thanks for sharing!

It is a lot of fun reverse engineering things like this, just like solving a puzzle.

Have you been able to send commands to the EMC, like freezing the ISCV for doing throttle body sync on the 2007+ bikes. With that info it might be possible to make a low cost board that would allow folks to do throttle body sync at home without having to buy the expensive SDS tool.
 

·
Premium Member
Joined
·
117 Posts
Discussion Starter #11
Yes, I can send messages to the ECU and can query it for the sensor data- although for this I'm letting the SDS tool query the ECU so I can compare results.

I'm pretty sure my cheap Chinese SDS tool can do the throttle body sync for 2007+ bikes, but the protocol embeds the ECU model number in the messages and so it knows that's not supported on my bike. So I'd need someone with a 2007+ bike willing to let me go through the process so I could "sniff" the messages.
 

·
Super Moderator
Joined
·
8,544 Posts
So gear position info is available on the SDS interface and you are able to read that? That would make for a very nice input to a gear position sensor.
 

·
Premium Member
Joined
·
117 Posts
Discussion Starter #13
Yes it's available and easy to read- one of the few things that doesn't have some kind of magical math formula applied to it. I'm not yet convinced that it's accurate though. I think the ECU is reading the raw sensor data and vibration is causing the sensor to sometimes report a lower voltage then it should.

At least I'm pretty sure this is one of the fields the AiM data logger is reading correctly from the data stream (must be in the same location as a GSXR), but it's not always correct.

My board has both a GPS in and out so in theory I could read the analog sensor, apply some kind of heuristic and send a more accurate value to the ECU.

For street riding, using the wheel speed sensor + RPM to calculate the gear is probably more accurate. On the race track (especially with a slipper clutch) I tend to get some odd values on corner entry or sometimes at/near full lean angle due to the tire circumference changing. Dunlop apparently provides a formula for their MotoAmerica spec tires so if you know lean angle you can determine circumference: http://www.datamc.org/2016/08/07/tire-rolling-radius-correcting-wheel-speed/
 

·
Super Moderator
Joined
·
8,544 Posts
Yes it's available and easy to read- one of the few things that doesn't have some kind of magical math formula applied to it. I'm not yet convinced that it's accurate though. I think the ECU is reading the raw sensor data and vibration is causing the sensor to sometimes report a lower voltage then it should.
That is exactly what I found (except higher GPS voltage not lower). Hate to say it but the SV gear position sensor is terrible. Some of the gear voltage ranges are very close (they could have been spaced better with different resistor selection) and the GPS contacts are susceptible to engine vibration which introduces large noise spikes. In the low gears especially, it is like trying to read a 1v signal in the presence of 2v noise.

A few years ago I played around making a gear position sensor for the SV but it took a lot of work to clean up the GPS signal. The algorithm that worked for me was three step:
1. Take 16 consecutive readings, keep only the lowest one. The noise spikes from vibration always cause positive voltage spikes (GPS contact break lets the 10k pull-up go free towards 5v rail) so keeping the lowest reading filters the worst spikes.
2. Run a loop that continuously monitors the results in Step1, only present a final result when there are, say, 8 stable readings in a row. As soon as that threshold is passed, accept the reading. This has the benefit of rejecting bad signal but quickly accepting good which makes for very quick response to gear changes. Some commercial gear position sensors take a long time to respond to gear changes. I think these might be running a fixed length (long) filter algorithm.
3. The last filter was to only accept a gear change if the GPS signal momentarily went to 5v which only happens during actual gear change when the GPS contacts make/break when selecting a new gear resistor. This filters out noise spikes up to 4.5v and virtually eliminates spurious gear changes.

What started out as a simple project (just read the gear voltage, display a number) turned out to be a much bigger job. But that is not unusual, the devil is in the details. Anyway solving the sticky problems is the fun part, right? :naughty:

Anyway, please keep posting your SDS updates, it is very interesting what you are doing.
 

·
Premium Member
Joined
·
117 Posts
Discussion Starter #15
Yeah, you're right- vibration would cause the voltage to increase not decrease thanks to the pull up. Obviously, I haven't actually measured it- I was just guessing at the root cause of the problem. :)

From what I understand at least the SV ECU only has two fuel maps- one for when the bike is cold and the other once it is brought up to temp. Might also be selected by the clutch? Think I read that once upon a time on the Internet so it must be true. :) So they probably don't really care what gear it actually is in, hence not too surprising that it's not very accurate since that data is effectively unused.

But yeah, kinda amazing how bad it is. You wouldn't think this is hard right? Thanks for the advice on how to filter out the noise on the GPS sensor. Sounds like something easy to implement with a microcontroller.

Glad to hear that you're interested in what I'm doing... was feeling like I was talking to myself here for a while. :)
 

·
Super Moderator
Joined
·
8,544 Posts
... So they probably don't really care what gear it actually is in, hence not too surprising that it's not very accurate since that data is effectively unused.
I think that explains it. If the GPS were truly being used or if a flaky signal made much difference, they would have had to fix it.

I am definitely interested in what you are doing, for a while I was not too active here on SVR. Things have been picking back up lately though.

Speaking of reverse engineering SV electronics, I investigated the serial data stream inside the SV gauge, was able to control the individual LCD segments (but not the odometer or clock segments, unfortunately those are wired direct, they do not use the serial interface). I used that hack to make the SV650/1000 MultiBot (gear position sensor, voltmeter, and speedohealer) one chip mod that mounts inside the SV gauge and uses the stock LCD for display.
 

·
Premium Member
Joined
·
117 Posts
Discussion Starter #18
Finally got the necessary resistors I ordered from China so I was able to build the board with the GPS emulator:



Now I just need to modify my code to generate a gear position pattern that I can use to synchronize the SDS Tool graphs to the data I'm reading manually via my Teensy.
 

·
Premium Member
Joined
·
117 Posts
Discussion Starter #20
Heh, I was just thinking I need to find some time to work on this... other projects have been eating all my time and I'm still recovering from my big highside last year so I haven't been riding.

rajpr00: what data logger are you thinking about? Do you have any programming and/or electronics experience?
 
1 - 20 of 30 Posts
Top