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.

02/3/16

How to build a “Duzucati”

It’s been a few years, but I really wanted to do a write up how I came to build my race bike: a Suzuki SV650 powered Ducati 1098S- or as I like to call it, a “Duzucati”. A big reason why I wanted to write this up is because building custom/one off race bikes used to be a lot more popular, but with the advent of the modern “street bike” (really a race bike with mirrors and blinkers) custom bikes have gotten a lot rarer. People no longer need to do radical custom modifications to get a bike to make good horsepower and handle properly- you just need to walk into the local dealer and give him some money.

I had originally planned on glossing over some of the problems in order to focus on the positive parts of the story, but after a lot of consideration I decided to tell the whole story because I wanted to be honest about the experience. Building the bike and making it competitive wasn’t easy and it seemed dishonest to pretend that everything went smoothly.

With that said, here’s my story… Continue reading

02/2/16

Cheap Racing

So I was looking through my “Drafts” folder and found this post that I started writing back in September of 2011. This was back when I was racing my first race bike and before I built the Duzucati. Not sure why I didn’t post it back then, but looking back over the past few years I can’t say that much has changed. :)


So it’s almost the end of my third year racing in the AFM in a “cheap” class: 650 Production. Basically you take a relatively inexpensive motorcycle like a Suzuki SV650 and make it a race bike with limited modifications. If you’re not familiar with motorcycles, basically the SV650 isn’t a “race” bike like the sport bikes you’re familiar with. SV’s are great for commuting or just going out for a leisurely sunday ride, but they’re not that sporty, don’t make a lot of horsepower and hence don’t go through tires as quickly and since it’s production legal with a minimum amount of engine modifications should last a fair bit.

Boy was I wrong. Continue reading

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.

05/21/14

SV650 ECU Decoder v4.6 Design Finished

So I just ordered a few new boards from OshPark:

Front

Back

This was a major update which fixes all know bugs (many which are severe) and improves the protection of the circuit.

  • Switch to Murata 5V switching regulator.
  • LM7805 was overheating with heavy use of LED display in latest code
  • Add power MOSFET for reverse polarity protection
  • Add TVS diode for power/spike protection
  • Fix fuel/very low fuel indicator for 03-04 and 05+
  • Move EFI light off of pin 11 to allow interrupts to work
  • Move Mode switch to an interrupt pin
  • Add ground plane & clean up traces
  • Further improve battery voltage monitoring
  • Capacitors are now SMD too
01/25/14

v4.1 board design finished!

I’m happy to announce I’ve finished with the latest design of the SV650 ECU Decoder which has a number of improvements:

  • Add button for switching the display modes
  • Add support for detecting “very low fuel” on 2005-07 models
  • Improve battery voltage measurement circuit
  • Small tweaks to the layout and silkscreen

The board design has been sent to OSH Park for fabrication and hopefully I’ll get them in about 2 weeks.

Here’s a rendering of the new PCB design:

v4.1 Top

v4.1 Back

Update: So some testing of this board is showing some problems, including a possible problem which causes the Teensy board to be damaged, so I’m currently suggesting people not use it!

10/20/13

The 2013 AFM Season in Review

So I had planned on doing regular reports after each and every AFM round during the 2013 season. But after missing the first three rounds due to mechanical problems and then a constant struggle to not just develop a new bike, but make it reliable enough so I could just concentrate on my riding, I ended up having a really hard time talking about the project in the kind of positive manner that I wanted to.

Not to say I figured this year would be easy- building a one-off custom race bike is of course going to be fraught with lots of challenges, but frankly, the problems I ended up having left me exhausted and the last thing I wanted to do was share them with the world.

In the end though, I wanted to make sure to have a record of 2013 and take the time to thank my sponsors and everyone who helped me if for no other reason so that when things go better next year we’ll be able to look just how far things have improved.

So, long story short, back in October 2012 we started off with this poor 2008 Ducati 1098S with less then 1,000 miles:

Doner bike

Continue reading