/VolvoCan

Volvo XC90 CAN bus adapter to restore wheel buttons and park assistant functionality

Primary LanguageC++GNU Lesser General Public License v2.1LGPL-2.1

Volvo low-speed CAN bus adapter


Some time ago I had installed the Android radio into my Volvo XC90 and had removed the all useless modules (phone, CD-changer, audio module, amplifier, navigation, antenna). I think the car lost weight :) I have got all nice android stuff, bluetooth connection to phone, video-in for the video recorder, sub-woofer out and etc. But I have lost the parking assistant(it works through Volvo audio system), steering wheel buttons.
So I have decided to make my own CAN bus adapter.

Features:

  • All information is received by low-speed car CAN bus, adapter works in Listen Only mode
  • Audio and navigation steering wheel buttons are mapped to two digital rheostats (sit to first, and six to second). It's simulated resistive buttons for Android audio
  • Rear gear output (0/12v)
  • Low ambient light detector output (0/12v)
  • Ignition key position I/II output (relay)
  • Parking assistant buzzer simulation (I've used central speaker)
  • Parking assistant control button allows to enable/disable parking buzzer

Hardware

  • Arduino Nano
  • MCP2515 based CAN bus adapter
  • MCP4231 double digital potentiometer
  • ULN2003A for digital outputs
  • 12v relay

Schematic

Software


Libraries:


Forked libraries:

Compilation

I've used Visual Studio Code with Platformio extension. Clone code, update sub-modules. Open volvo.code-workspace file, build and upload. NOTE: each car has own CAN module Id! You should detect it youself.

My module:

Hardware

More information