ECU data from pre-canbus Subaru
Posted: Tue Oct 13, 2015 6:40 am
Over the last couple of years I have slowly been adding on to my RaceCapture setup. Previously, to capture ECU data I was utilizing the logging feature on my Cobb Accessport. However, I was unsatified with the process to get my setup logging for track time. Not to mention lining up the RCP and AP data was very difficult and time consuming.
I was determined to replace the AP with an interface that translated ECU data into CAN messages for processing by the RCP. I really like Arduinos (previously wrote code for a Yun to allow my RaceCapture to start/stop recording on my GoPros). I decided to implement this on arduino.
Pre-Canbus / OBII equipped Subaru's use a version of iso 9141-2 with a protocal layer called "Subaru Select Monitor" or SSM for short. It runs on a half duplex serial connection with a baud rate of 4800. In a nutshell, it's your basic call and response model. I found some previous work on clubwrx.net. The author had built an arduino based code scanner/gauge to replace his clock with. Further, the author was kind enough to post his design schematic and code.
I changed the way the code worked, but retained the portions of the code for reading/writing to the ECU. I added a CAN bus layer, a more track orientend request "string" and then tuned it until I got the refresh rate down to around 60 milliseconds.
I finally had a chance to test it out over this past weekend at an open lapping day, and overall I think it did fairly well. It's all posted on github. If this is something you have interest in pursuing, I am happy to answer any of your questions.
Open lapping day: https://www.youtube.com/watch?v=3QWjXjI28gE
Github: https://github.com/rpkish/Subduino-SSM
Original Project: http://www.clubwrx.net/forums/tutorials ... duino.html
I was determined to replace the AP with an interface that translated ECU data into CAN messages for processing by the RCP. I really like Arduinos (previously wrote code for a Yun to allow my RaceCapture to start/stop recording on my GoPros). I decided to implement this on arduino.
Pre-Canbus / OBII equipped Subaru's use a version of iso 9141-2 with a protocal layer called "Subaru Select Monitor" or SSM for short. It runs on a half duplex serial connection with a baud rate of 4800. In a nutshell, it's your basic call and response model. I found some previous work on clubwrx.net. The author had built an arduino based code scanner/gauge to replace his clock with. Further, the author was kind enough to post his design schematic and code.
I changed the way the code worked, but retained the portions of the code for reading/writing to the ECU. I added a CAN bus layer, a more track orientend request "string" and then tuned it until I got the refresh rate down to around 60 milliseconds.
I finally had a chance to test it out over this past weekend at an open lapping day, and overall I think it did fairly well. It's all posted on github. If this is something you have interest in pursuing, I am happy to answer any of your questions.
Open lapping day: https://www.youtube.com/watch?v=3QWjXjI28gE
Github: https://github.com/rpkish/Subduino-SSM
Original Project: http://www.clubwrx.net/forums/tutorials ... duino.html