Once this is completed, I'll post a full how-to, but until then, I'll be using this thread to document progress, take ideas, ask for help, etc
Project Goals
Summary
To provide an "all in one" module that can be added to the e85/e86 to do all the things offered by various 3rd party modules and addons, but be "open source" and highly modifiable, giving the ability to add more to it as we find new things!
Functionality
- Bluetooth media hub (A2DP+AVRCP)
Provide a target for Bluetooth enabled devices to stream music to / be controlled by the car stereo/MFSW - USB media hub (iPod Accessory protocol specification)
Provide the ability to stream audio from and control iDevices via USB as well as navigate and play audio files from a USB drive - Aux connectivity
Provide the ability to play audio received via an auxiliary cable (without the drop in low frequencies seen in the current cables due to the way the headunit works) - DAB Radio
Provide DAB radio functionality, using the standard headunit /mfsw to select channels and set favorites - One-touch roof operation
Provide the ability to open / close the soft-top by momentarily pressing the relevant button (instead of having to hold it) - Remote roof operation
Provide the ability to open / close the soft-top by pressing a button combination on the key fob (instead of having to hold the button and remain in range for the entire operation) - GPS Location
Provide the ability to remotely locate car via GPS - Throttle, Speed, RPM, G-Force, GPS Tracking
Provide data logging for the above items. Useful for track days, etc. - I/K Bus Logging
Provide real-time and logged access to the I/K Bus data. Useful for diagnosis, etc. - CD Changer support
Re-enabling of the CD Changer unit, when required, so that it can be used alongside the other functions (DAB,Bluetooth,USB, etc) - On/Off Switch
Ability to completely turn off the unit, meaning it uses no power whatsoever, and does not listen or communicate with the car via IKBus.
(Useful if you're leaving the car for an extended time, you're trying to diagnose an issue, or taking it to the dealer
I've chosen to go with the Raspberry Pi 2.0 as the basis for this module.
The reasons for this are:
- It's low powered
~200ma at rest, ~700ma when using bluetooth, ~2.3a when connected to an iPhone via USB.
This means that it should detect the car going to sleep, and turn off everything it doesn't need and just monitor for the IKBus coming back alive.
With this check in place, you could park the car for a week with the Pi connected and running without it draining the battery. - Linux already has a tonne of USB drivers and modules available
This dramatically cuts down on the need to recreate the wheel in regards to A2DP, AVRCP, IPhone, USB media connectivity, etc - Accelerometers and GPS sheilds are readily available
Again, cuts down on the need to create custom stuff when off-the-shelf pluggables exist - Easy to remotely maintain
Can easily wifi into an installed Pi and make changes, etc, without having to connect via USB, or dig it out from wherever it's hidden - Cheap
You can get Pi's for about £20-£25. - I've got three lying around already!
No point buying something else when you've got stuff lying about already
Current Status:In Progress
(In Progress, Completed)
- Bluetooth media hub
- USB media hub
- Aux connectivity
- DAB Radio
- One-touch roof operation
- Remote roof operation
- GPS Location
- Throttle, Speed, RPM, G-Force, GPS Tracking
- I/K Bus Logging
- CD Changer support
- On/Off Switch
(this bit will be updated to reflect what I'm currently working on as time goes by)
Managed to emulate GapTech's RCH (remote control hood) perfectly, meaning you can tap unlock on your key three times and the roof will open, tap unlock twice then lock once and the roof will close - no more holding buttons!
(Special thanks to srhutch for providing useful log info!)
video demo: