majbthrd / MazdaCANbus

database of known Mazda CAN messages
50 stars 10 forks source link

i-activesense decoding? #1

Closed HarrySonghurst closed 6 years ago

HarrySonghurst commented 6 years ago

Don't suppose you have a newer Mazda with the i-activesense gear (LKAS, smart city breaking, adaptive cruise control etc...)? Do you reckon all that stuff is on the canbus and makes it possible to hack the steering, gas and breaks?

majbthrd commented 6 years ago

It has been an area of curiosity for me, but my vehicle does not have such capabilities.

The answer to your question is yes: MRCC (Mazda Radar Cruise Control), FSC (Forward Sensing Camera), SCBS (Smart City Brake Support), and EPS (Electric Power Steering) are all on HS-CAN. BSM (Blind Spot Monitoring) is on MS-CAN.

What helps Mazda relative to other manufacturers is that their infotainment system is not Internet-facing. What hurts Mazda is that the company they contracted out the infotainment design to has a Renasys microcontroller acting as a 'firewall' between the infotainment processor and the HS-CAN and MS-CAN buses. This should have been a good thing, but the infotainment processor can reprogram the microcontroller at will :(.

hs-can ms-can

charlieporth1 commented 5 years ago

What year is old enough is 2014 to early?

GrayHatter commented 5 years ago

I to am very interested in this, can you suggest some reading? How did you dumb the CAN variable you have currently? Via the IVI, or the standard OBD2 port?

majbthrd commented 5 years ago

You could look at Mazda' Factory Service Manual for the vehicle of interest. An exact phrase to search for is "MULTIPLEX COMMUNICATION SYSTEM", which is Mazda's blanket term for the CAN bus in its vehicles.

I obtained my results by first capturing traffic via the standard OBDII port. That provided guidance as to which bits in particular CAN ID messages looked promising. I then used Mazda components that I could find inexpensively on eBay to do bench testing. Functionality that I could confirm in the bench testing was then documented in this github project.