06-19-2020, 05:14 PM
Hi Guys,
It's been a while but I'm back with another OpenAuto Pro build, this time on a Jaguar X400 (X-Type). I have been using OpenAuto Pro for a few years now and if you haven't seen my Corsa D post you should take a look .
This build replaces the original LCD in the headunit with a new TFT touchscreen LCD panel (7-inch). An Arduino is also used to scan the front panel buttons and depending on a preselected button being pressed will switch the SRGB video feed from the telematics unit located in the boot to the HDMI input from the Raspberry Pi. To accomplish this the LCD driver has a custom firmware flashed onto the EEPROM to allow the Arduino to switch the inputs via the onboard I2C bus. The advantage of this setup means that the original interface can still be used as well as OpenAuto Pro. When RPI mode is activated a miniature relay will also disable the original IR touch sensor and enable power to the touchscreen layer. (The original headunit used IR touch technology instead of a touchscreen, this is mainly due to the price and availability of touchscreen displays back in the early 2000s)
Power to the system is fed from the 12v being supplied to the headunit and passed through a 5v/3a stepdown converter for the Arduino and RPi (the LCD driver can run directly from 12v). A relay connecting to the RPI is controlled by the Arduino to switch the constant battery voltage when the Arduino senses ignition voltage, the Arduino senses ignition voltage using an optoisolator, after 10 minutes of the Arduino not detecting ignition voltage the Arduino will shutdown the RPI by sending a serial command (check my website for more information on this, it's a custom protocol designed for communication between different microcontrollers you might want to add to your car), turn off the relay and enter the deep-sleep mode to preserve power, this reduces the power consumption to around 6 microamps. The Arduino is then interrupted when the sense pin is pulled high by the ignition voltage and the relay is tripped turning on the RPI.
I am currently in the process of writing a custom interface to completely replace the original MMM1 interface, this includes climate and radio control, to communicate with the GCM (General Control Module) I am interfacing with the SCP (Standard Corporate Protocol) bus, this protocol is used on many Jaguar and Ford cars of the time (back when Ford owned JLR). This interface will also control the interior lighting of the car by sending serial commands (using the protocol I mentioned before) to another Arduino that controls the lighting. You can find more information on my website about this.
If you've made it this far then you really have nothing better to do, so we are on to the last bit of this project, Audio. Now, in Jaguar's infinite wisdom auxiliary and Bluetooth audio input was an optional extra, there are a few ways around this, an FM Transmitter which isn't exactly ideal for poor audio quality and unreliability issues. The other option is to modify the Radio/CD unit, the CD player uses an S/PDIF transport in most revisions of the unit and can be tapped into on the board to feed your own S/PDIF signal into the CD player, this is ideal for the RPI with a USB DAC.
If you've looked at the images below by now you will have noticed a nice crack in the display where I dropped it... Which is being replaced as soon as the new screen arrives so I will re-upload new images when it arrives. I will be shortly posting a link to my website with more information on this project, with a guide to building a similar setup and some tips that I've learned over the years. I will also post all the code and protocol information on GitHub for all of you to reuse.
Thank you so much for reading my Corsa D post a few years ago and this project. I would like to thank the OpenAuto Pro team for the amazing work they do, and I think we can all agree that it's made Carputer, DIY, and enthusiast projects so much more creative. Thank you!!!
It's been a while but I'm back with another OpenAuto Pro build, this time on a Jaguar X400 (X-Type). I have been using OpenAuto Pro for a few years now and if you haven't seen my Corsa D post you should take a look .
This build replaces the original LCD in the headunit with a new TFT touchscreen LCD panel (7-inch). An Arduino is also used to scan the front panel buttons and depending on a preselected button being pressed will switch the SRGB video feed from the telematics unit located in the boot to the HDMI input from the Raspberry Pi. To accomplish this the LCD driver has a custom firmware flashed onto the EEPROM to allow the Arduino to switch the inputs via the onboard I2C bus. The advantage of this setup means that the original interface can still be used as well as OpenAuto Pro. When RPI mode is activated a miniature relay will also disable the original IR touch sensor and enable power to the touchscreen layer. (The original headunit used IR touch technology instead of a touchscreen, this is mainly due to the price and availability of touchscreen displays back in the early 2000s)
Power to the system is fed from the 12v being supplied to the headunit and passed through a 5v/3a stepdown converter for the Arduino and RPi (the LCD driver can run directly from 12v). A relay connecting to the RPI is controlled by the Arduino to switch the constant battery voltage when the Arduino senses ignition voltage, the Arduino senses ignition voltage using an optoisolator, after 10 minutes of the Arduino not detecting ignition voltage the Arduino will shutdown the RPI by sending a serial command (check my website for more information on this, it's a custom protocol designed for communication between different microcontrollers you might want to add to your car), turn off the relay and enter the deep-sleep mode to preserve power, this reduces the power consumption to around 6 microamps. The Arduino is then interrupted when the sense pin is pulled high by the ignition voltage and the relay is tripped turning on the RPI.
I am currently in the process of writing a custom interface to completely replace the original MMM1 interface, this includes climate and radio control, to communicate with the GCM (General Control Module) I am interfacing with the SCP (Standard Corporate Protocol) bus, this protocol is used on many Jaguar and Ford cars of the time (back when Ford owned JLR). This interface will also control the interior lighting of the car by sending serial commands (using the protocol I mentioned before) to another Arduino that controls the lighting. You can find more information on my website about this.
If you've made it this far then you really have nothing better to do, so we are on to the last bit of this project, Audio. Now, in Jaguar's infinite wisdom auxiliary and Bluetooth audio input was an optional extra, there are a few ways around this, an FM Transmitter which isn't exactly ideal for poor audio quality and unreliability issues. The other option is to modify the Radio/CD unit, the CD player uses an S/PDIF transport in most revisions of the unit and can be tapped into on the board to feed your own S/PDIF signal into the CD player, this is ideal for the RPI with a USB DAC.
If you've looked at the images below by now you will have noticed a nice crack in the display where I dropped it... Which is being replaced as soon as the new screen arrives so I will re-upload new images when it arrives. I will be shortly posting a link to my website with more information on this project, with a guide to building a similar setup and some tips that I've learned over the years. I will also post all the code and protocol information on GitHub for all of you to reuse.
Thank you so much for reading my Corsa D post a few years ago and this project. I would like to thank the OpenAuto Pro team for the amazing work they do, and I think we can all agree that it's made Carputer, DIY, and enthusiast projects so much more creative. Thank you!!!