Bluetooth audio for BMW with CAN-bus support for steering wheel buttons control. Supported cars should be E90, E91, E92, E93, E82, E81, (also probably 5, 7-series, maybe E46).
Features:
- Next / Previous - (CAN-bus) steering buttons
- OTA over Wi-Fi (hold Volume Down and Previous Song buttons on the steering to go into Dwonload mode)
- Other possibilities that you can develop:
- autmoatically enable heated seats if ambient tempreture is low)
- display car info on your phone, if you make an app ;)
Hardware thingies (BOM):
- ESP8266 - (Wemos D1 mini) ($3) (they usually come with the black sockets)
- BK3254 (BT4.1 A2DP audio) - with UART enabled firmware (the ebay ones should be ok) ($2)
- MCP2515 board with some transciever ($2)
- https://oshpark.com/shared_projects/qK7vXqp4
- Audio jack PJ-320D
- (optional) resistors (2x2.2k & 2x3.3k) for level shifting for longetivity of ESP8266. You can replace them with short wire if you're on a brave side.
Installation:
- clone the repository and also run download_libraries.bat from /lib folder :/
- Import project to https://platformio.org/platformio-ide and flash ESP8266 using USB cable (for the first time).
- Power it with 5V cigarette charger or get Wemos power shield from ebay.
- Find K-CAN ("chasis" CAN-bus) - twisted green (CAN HIGH) and orange (CAN LOW) cables behind the radio and splice it and connect to MCP2515.
Some info regarding K-CAN - it is @100kbps