05/20/16

Decoding the SDS protocol on the SV650

So long story short, I replaced my old GPX Pro with an AiM MXL2 dash. One of the nice things is that the dash supports the Suzuki SDS protocol for the GSXR. SDS is sorta like ODBII for cars- if you’ve ever heard of a “K-Line”, well that is pretty much SDS. Long story short, the MXL2 dash can decode some of the sensors (TPS for example) but others are pretty far off (water temp).

I reached out to AiM to see if they could fix it, but they didn’t have the information necessary to fix their decoding of the messages. They suggested reaching out to Suzuki to get the specs, but I don’t know anyone there and nobody I know seems to know anyone there…

Long story short, I’m going to reverse engineer it myself.

I’ve started another little project up on GitHub. Right now it includes some python scripts I’ve written to parse the bytes on the wire and find the individual messages between the ECU and diagnostic tool. Here’s some sample messages:

OK [0.033ms] ToECU: 0x81,0x12,0xf1,0x81 csum:0x05 [5]
OK [0.107ms] FromECU: 0x80,0xf1,0x12,0x03,0xc1,0xea,0x8f csum:0xc0 [8]
OK [0.034ms] ToECU: 0x80,0x12,0xf1,0x02,0x1a,0x91 csum:0x30 [7]
OK [0.092ms] FromECU: 0x80,0xf1,0x12,0x12,0x5a,0x91,0x33,0x32,0x39,0x32,0x30,0x2d,0x31,0x37,0x47,0x32,0x2a,0x00,0x00,0x00,0x00,0x00 csum:0xb8 [23]
OK [0.035ms] ToECU: 0x80,0x12,0xf1,0x02,0x1a,0x91 csum:0x30 [7]
OK [0.091ms] FromECU: 0x80,0xf1,0x12,0x12,0x5a,0x91,0x33,0x32,0x39,0x32,0x30,0x2d,0x31,0x37,0x47,0x32,0x2a,0x00,0x00,0x00,0x00,0x00 csum:0xb8 [23]
OK [0.035ms] ToECU: 0x80,0x12,0xf1,0x02,0x1a,0x91 csum:0x30 [7]
OK [0.093ms] FromECU: 0x80,0xf1,0x12,0x12,0x5a,0x91,0x33,0x32,0x39,0x32,0x30,0x2d,0x31,0x37,0x47,0x32,0x2a,0x00,0x00,0x00,0x00,0x00 csum:0xb8 [23]
OK [0.034ms] ToECU: 0x80,0x12,0xf1,0x02,0x1a,0x9a csum:0x39 [7]
OK [0.092ms] FromECU: 0x80,0xf1,0x12,0x12,0x5a,0x9a,0x33,0x32,0x39,0x32,0x30,0x2d,0x31,0x37,0x47,0x30,0x00,0x00,0x00,0x00,0x00,0x00 csum:0x95 [23]
OK [0.034ms] ToECU: 0x80,0x12,0xf1,0x02,0x1a,0x9a csum:0x39 [7]
OK [0.094ms] FromECU: 0x80,0xf1,0x12,0x12,0x5a,0x9a,0x33,0x32,0x39,0x32,0x30,0x2d,0x31,0x37,0x47,0x30,0x00,0x00,0x00,0x00,0x00,0x00 csum:0x95 [23]
OK [0.030ms] ToECU: 0x80,0x12,0xf1,0x02,0x21,0x08 csum:0xae [7]
OK [0.060ms] FromECU: 0x80,0xf1,0x12,0x34,0x61,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0xff,0x43,0xca,0x3f,0x40,0xff,0xa7,0xff,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0x47,0x47,0xff,0xff,0xff,0x80,0xff,0xff,0xff,0xff,0x00,0x04,0xff,0xff,0xff csum:0x4a [57]

My next plan is to see if I can hook up both the diagnostic tool and a Teensy + STL9637D chip which in an interface to the “K-Line” signaling used for the SDS protocol. If I can properly decode the messages to/from the ECU using the Teensy I should be able to capture more then ~12 sec of data (one of the limits of my cheap $50 logic analyzer is that it doesn’t have much memory for longer captures).

Once I have that then I can map each byte to a sensor and then start comparing the values on the wire to what is actually being displayed by the cheap-o diagnostic tool and figure out the formula for converting between the two values.

For those curious, here’s the project on GitHub.

01/19/16

Initial AiM MXL2 Review

After comparing AiM, Race-Technology, MoTeC, AEM, RaceCapture/Pro, GEMS, XT Racing, TraqMate, VBox and 2D data logger offerings, I decided to go with the AiM MXL2 for my race bike to replace my XT Racing GPX Pro.

There’s a number of reasons for choosing AiM and their MXL2 over the others, but here’s the short version:

  • Software. After using the XT Racing GPX Pro for five years I learned how the hardware is only half of the equation. It doesn’t matter how much data you collect if you can’t display that data as actionable information.
  • Support. Many of these companies don’t have any support here in the USA and their support suffers. Even when the company is native English speaking it can take weeks for them to answer even basic questions about their product. AiM often responds in less then 24 hours!
  • Pricing. Some companies seem a lot less expensive then AiM until you realize they start charging you extra for critical features that AiM includes by default. That and AiM never charges for software/firmware updates for the life of the product can mean saving hundreds of dollars over the lifetime of the unit.
  • Features. The MXL2 is the latest generation hardware from AiM and it has many features that other high-end vendors like MoTeC and 2D charge thousands of dollars more for.
  • Ease of Use. Data logging in motorsports has been going on for nearly two decades and many vendors have software which look like it would be more at home running under Windows 95 rather then a modern operating system. AiM is in the process of rewriting their Race Studio Analysis software to take advantage of modern UI design.
  • Education. AiM is the only vendor I could find that not only has a lot of Youtube videos explaining how to use their software, but also offer inexpensive classes around the country. I just finished two days worth of classes (cost me $80) and learned not only a lot about AiM’s products and software, but also a lot about how to analyze the data which isn’t really obvious when you’re first starting out.
  • Quality. Once you look at the wiring harness connectors on the MXL2 you know this is a serious piece of equipment. The dash is billet aluminum and the buttons are solid. Everything about it exudes quality. Actually, the dash is so solid that I decided to re-enforce the front fairing stay on my motorcycle to make sure it could handle the extra weight!

There are some risks though- AiM while very big in the automotive club racing scene it has a very small (but growing) presence in motorcycles. The good news is that there are very few features that are specific to cars or bikes, so whatever enhancements are added over time should carry over. That said, the factory MotoAmerica Yamaha Team is also using the MXL2 so I’m sure the bikes won’t be ignored completely.