Sunday, May 3, 2015

Carputer 2015 - Motivation and Goals

Background


I've long wanted to do an in-car computer system but the timing was never right. Recently I decided that my midlife crisis car will be the car I already have: a 2007 Infiniti G35x sedan. Being willing to invest time and money into this car means I can finally have the carputer I want. Interestingly the carputer I want now bears only a passing resemblance to the carputer I wanted 5 years ago.

Mobile Device Integration


In-dash navigation used to be a really big deal. The factory Navigation Package including a 7" LCD touchscreen and Sirius XM Radio was a $2,100 option for my car. Needless to say I'm happy I declined. Now that mobile touchscreen devices are so ubiquitous, why would anyone want to be locked into an in-dash system that works differently and more awkwardly than one's own smartphone or tablet? The industry has clearly figured this out with integration platforms like Android Auto.

Starting Points


This is my car and its sorry 7" non-touch LCD screen. Status display is 15 kHz RGB video, just like old '80s arcade games! I still need access to status information but this washed-out and washed-up LCD needs to go.


The original Bose audio system is still good enough to my aging ears. I'm planning to integrate with the existing audio instead of replace it.

Philosophy and Goals


Having a software and systems background, I like to go into new projects with a set of guidelines. Here's what I've come up with for this carputer:
  • Incrementally add and augment features such that at no point are existing features lost.
    e.g. Kickass visualizations aren't as fun if there's no way to know cabin thermostat settings.
  • Integrate rather than re-create. Follow the mobile device integration philosophy.
  • Carefully plan the physical installation.
    Do I really want to open up the dash and interior panels more than, say, twice?
  • Be mindful of how and when components need to be powered.
  • Run multiplexed buses over distance rather than individual signals.
  • Be mindful of component placement and possibilities for modularity.
  • Maintain a professional look when the vehicle is turned off. Hide wires and dongles.
  • Start cheap and be able to justify increases to the BOM.
  • Prototype outside of the vehicle until a minimally acceptable feature set can be achieved.
    Yeah, this probably isn't as fun when it comes to posting progress pictures.
The following is my set of non-negotiable requirements:
  • The main computer shall run a Linux kernel. I understand this environment.
  • There must be a highly visible touchscreen within usable distance from the driver.
  • As a new feature, backup camera functionality must be integrated.

Continuation


I'm in the process of ordering parts for initial prototyping. I've tested a few system components to make sure they work and will satisfy requirements. I intend to continue posting status updates here on my blog and on Google+. It would be great if this becomes something of an open project with a degree of collaboration. You let me know what does/doesn't work and I'll let you know. Please let me know when I'm being stupid; I can take it. I'll attempt not to dwell on deep specifics of my vehicle so as to be useful to other carputer enthusiasts. Any generally useful software I develop will be made available, although I can't yet guarantee it will be open source or free.