Hey Everyone,
My project is finally at a point where I am ready to post some info about it. I have aimed to create a fully featured head unit replacement using Openauto Pro, utilizing almost all of its features
Appologies in advance, this is going to be a long boi.
First of all, and briefly, the car:
![[Image: 2u4BPcK.jpg]](https://i.imgur.com/2u4BPcK.jpg)
Its a 2004 Subaru Forester STI, only sold in Japan. 330BHP, AWD turbo fridge. Its mostly stock, apart from some handling mods so far.
Imported into the UK in 2017, it really is an affordable dream car for me, so it deserves a top notch stereo system!
Subaru offered a factory fit double din pod for these cars, so that made housing the official 7in touch screen relatively easy. Its placed nicely on top of the dash, leaving room for another double din stereo. Currently this just takes the place of an amplifier, and radio receiver. Once Openauto integreates a reliable DAB system I will probably replace this with a standalone amp.
![[Image: uzrybqN.jpg]](https://i.imgur.com/uzrybqN.jpg)
In my opinion, one of the biggest issues with modern infotainment systems is that they rely entirely on touchscreens, which are a poor interface when driving, especially on bumpy roads.
Luckily, I managed to integrate an E60 Idrive unit into the centre console, just where your hand naturally falls to. This allows much easier control over the head unit.
![[Image: FEkNotz.jpg]](https://i.imgur.com/FEkNotz.jpg)
This is attached using 2 3D printed brackets, screwed into the centre console and resting on the top of the transmission tunnel.
![[Image: 5wgdaUX.jpg]](https://i.imgur.com/5wgdaUX.jpg)
![[Image: WJqso2H.png]](https://i.imgur.com/WJqso2H.png)
Now this brings us to the problem of interfacing. The Idrive controller uses CAN bus, which whilst the pi supports, it needs some external hardware to enable.
And such, I designed an interface HAT that would sit on top of the pi, and fetures a whole host of things that make the pi more suited to being a car computer.
![[Image: 3xM7NKv.jpg]](https://i.imgur.com/3xM7NKv.jpg)
This features:
- 12V - 5V buck converter to power the pi and touchscreen, with fuse and filtering.
- Safe shutdown circuitry to allow the pi to control its own power.
- Dedicated reverse, ilumination and aux inputs, all opto isolated.
- 4 opto isolated general purpose inputs.
- 2 high current, high side switched 12V outputs. (for switching relays, lights ect)
- 2 independent CAN bus ports. One for connecting to OBD, and one for connecting to accesories such as Idrive.
- Real time clock to maintain time across reboots.
- Broken out I2C bus for light sensor and other peripherals
- Broken out 1W for temperature sensor.
All packed into a 65mm x 55mm board!
All connectors are latching, ensuring that they wont vibrate out of place.
This sits on the back of the pi and screen combo, and accepts all of the inputs I required.
![[Image: TiLaDeV.jpg]](https://i.imgur.com/TiLaDeV.jpg)
At this point, I thought since I was going to all of this effort, it would be silly not to include a reversing camera!
So I designed a mount around a wide angle version of the raspberry pi CSI camera, and 3D printed it. This includes an O ring to seal it from the outside world.
I painted this to match the car, and installed in on the boot.
I am using a pair of these to send the CSI signal over a long HDMI cable, and up to the head unit:
https://www.tindie.com/products/freto/pi...extension/
![[Image: oe8KSak.jpg]](https://i.imgur.com/oe8KSak.jpg)
This is triggered through the reverse input on the board, so it automatically brings up the camera view upon entering reverse.
( I hit the image limit, oops!)
Last, but not least, the light sensor! This is connected over I2C, and mounted in the top of the double din pod, under the windscreen. Using a python script, this controls the screen brightness depending on ambient conditions.
![[Image: 62jNYbb.jpg]](https://i.imgur.com/62jNYbb.jpg)
Last, but not least, the light sensor! This is connected over I2C, and mounted in the top of the double din pod, under the windscreen. Using a python script, this controls the screen brightness depending on ambient conditions.
![[Image: 3AVB7LY.jpg]](https://i.imgur.com/3AVB7LY.jpg)
In terms of other accesories, I have a USB soundcard and bluetooth chip managing the base requirements for openauto, along with a small microphone placed on the drivers side sun visor.
I am running custom splash screens, showing the "STI" logo and a small loading graphic.
So the final result - an OEM esque install, bringing the 16 year old car up to date
![[Image: 1Dz377I.jpg]](https://i.imgur.com/1Dz377I.jpg)
![[Image: gLsjr06.jpg]](https://i.imgur.com/gLsjr06.jpg)
![[Image: c0oSdav.jpg]](https://i.imgur.com/c0oSdav.jpg)
![[Image: 4WBFyFz.jpg]](https://i.imgur.com/4WBFyFz.jpg)
Future Plans:
I would like to implement Torque Pro esque dials utilising the secondary CAN interface, allowing diagnostics and possibly datalogging, to go along with the Defi Gauges I already have installed.
So, if I have missed anything feel free to drop a question below. I would love to hear your thoughts and opinions on what has been quite a big project!
Cheers for reading this far,
Sam
My project is finally at a point where I am ready to post some info about it. I have aimed to create a fully featured head unit replacement using Openauto Pro, utilizing almost all of its features

Appologies in advance, this is going to be a long boi.
First of all, and briefly, the car:
![[Image: 2u4BPcK.jpg]](https://i.imgur.com/2u4BPcK.jpg)
Its a 2004 Subaru Forester STI, only sold in Japan. 330BHP, AWD turbo fridge. Its mostly stock, apart from some handling mods so far.
Imported into the UK in 2017, it really is an affordable dream car for me, so it deserves a top notch stereo system!
Subaru offered a factory fit double din pod for these cars, so that made housing the official 7in touch screen relatively easy. Its placed nicely on top of the dash, leaving room for another double din stereo. Currently this just takes the place of an amplifier, and radio receiver. Once Openauto integreates a reliable DAB system I will probably replace this with a standalone amp.
![[Image: uzrybqN.jpg]](https://i.imgur.com/uzrybqN.jpg)
In my opinion, one of the biggest issues with modern infotainment systems is that they rely entirely on touchscreens, which are a poor interface when driving, especially on bumpy roads.
Luckily, I managed to integrate an E60 Idrive unit into the centre console, just where your hand naturally falls to. This allows much easier control over the head unit.
![[Image: FEkNotz.jpg]](https://i.imgur.com/FEkNotz.jpg)
This is attached using 2 3D printed brackets, screwed into the centre console and resting on the top of the transmission tunnel.
![[Image: 5wgdaUX.jpg]](https://i.imgur.com/5wgdaUX.jpg)
![[Image: WJqso2H.png]](https://i.imgur.com/WJqso2H.png)
Now this brings us to the problem of interfacing. The Idrive controller uses CAN bus, which whilst the pi supports, it needs some external hardware to enable.
And such, I designed an interface HAT that would sit on top of the pi, and fetures a whole host of things that make the pi more suited to being a car computer.
![[Image: 3xM7NKv.jpg]](https://i.imgur.com/3xM7NKv.jpg)
This features:
- 12V - 5V buck converter to power the pi and touchscreen, with fuse and filtering.
- Safe shutdown circuitry to allow the pi to control its own power.
- Dedicated reverse, ilumination and aux inputs, all opto isolated.
- 4 opto isolated general purpose inputs.
- 2 high current, high side switched 12V outputs. (for switching relays, lights ect)
- 2 independent CAN bus ports. One for connecting to OBD, and one for connecting to accesories such as Idrive.
- Real time clock to maintain time across reboots.
- Broken out I2C bus for light sensor and other peripherals
- Broken out 1W for temperature sensor.
All packed into a 65mm x 55mm board!
All connectors are latching, ensuring that they wont vibrate out of place.
This sits on the back of the pi and screen combo, and accepts all of the inputs I required.
![[Image: TiLaDeV.jpg]](https://i.imgur.com/TiLaDeV.jpg)
At this point, I thought since I was going to all of this effort, it would be silly not to include a reversing camera!
So I designed a mount around a wide angle version of the raspberry pi CSI camera, and 3D printed it. This includes an O ring to seal it from the outside world.
I painted this to match the car, and installed in on the boot.
I am using a pair of these to send the CSI signal over a long HDMI cable, and up to the head unit:
https://www.tindie.com/products/freto/pi...extension/
![[Image: oe8KSak.jpg]](https://i.imgur.com/oe8KSak.jpg)
This is triggered through the reverse input on the board, so it automatically brings up the camera view upon entering reverse.
( I hit the image limit, oops!)
Last, but not least, the light sensor! This is connected over I2C, and mounted in the top of the double din pod, under the windscreen. Using a python script, this controls the screen brightness depending on ambient conditions.
![[Image: 62jNYbb.jpg]](https://i.imgur.com/62jNYbb.jpg)
Last, but not least, the light sensor! This is connected over I2C, and mounted in the top of the double din pod, under the windscreen. Using a python script, this controls the screen brightness depending on ambient conditions.
![[Image: 3AVB7LY.jpg]](https://i.imgur.com/3AVB7LY.jpg)
In terms of other accesories, I have a USB soundcard and bluetooth chip managing the base requirements for openauto, along with a small microphone placed on the drivers side sun visor.
I am running custom splash screens, showing the "STI" logo and a small loading graphic.
So the final result - an OEM esque install, bringing the 16 year old car up to date

![[Image: 1Dz377I.jpg]](https://i.imgur.com/1Dz377I.jpg)
![[Image: gLsjr06.jpg]](https://i.imgur.com/gLsjr06.jpg)
![[Image: c0oSdav.jpg]](https://i.imgur.com/c0oSdav.jpg)
![[Image: 4WBFyFz.jpg]](https://i.imgur.com/4WBFyFz.jpg)
Future Plans:
I would like to implement Torque Pro esque dials utilising the secondary CAN interface, allowing diagnostics and possibly datalogging, to go along with the Defi Gauges I already have installed.
So, if I have missed anything feel free to drop a question below. I would love to hear your thoughts and opinions on what has been quite a big project!
Cheers for reading this far,
Sam