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.
- 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
- Arduino Nano
- MCP2515 based CAN bus adapter
- MCP4231 double digital potentiometer
- ULN2003A for digital outputs
- 12v relay
Libraries:
- [Tone] (https://github.com/daniel-centore/arduino-tone-library)
- [MCP4231] (https://github.com/jmalloc/arduino-mcp4xxx)
- [MCP2515] (https://github.com/autowp/arduino-mcp2515) Has some changes, see forked version
Forked libraries:
- [Tone] (https://github.com/olegel/arduino-tone-library)
- [MCP4231] (https://github.com/olegel/arduino-mcp4xxx)
- [MCP2515] (https://github.com/olegel/arduino-mcp2515)
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.
- More information you can find in my blog (Russian) (https://olegel.blogspot.com/2019/01/can-volvo-xc90.html)