Introduction: Windows 8.1 Car Media System

THE SITUATION: My newly purchased 2006 Mazda Axela, came with a really cool touch-screen media system - but there were a few problems: the only language available was Japanese, the maps were only available for Japan, and worst of all - it was faulty (the system kept rebooting randomly - maybe a hard disk problem??).

THE SOLUTION: Rip it out and replace it with a D.I.Y. Windows 8.1 based Media Center/Car PC.

My system uses a Pipo X7 Windows 8.1 media center PC running MediaPortal. I installed a set of large buttons into the ashtray for common functions used while driving (like next track, next album etc.), and included a media center remote with a small keyboard for full functionality while not driving. The system can be upgraded to a touch-screen, but I personally like the big buttons - as you don't have to take your eyes off the road to use them.

Step 1: Parts

MAIN PARTS


COMPONENTS - OPTO CIRCUIT

  • 2 x 200R Resistors
  • 2 x PC817 Optocouplers
  • 2.5mm stereo plug and panel socket
  • Dupont headers and connectors

COMPONENTS - CONTROLLER

Step 2: Software

WINDOWS 8.1

First make a backup of your system ( http://freaktab.com/forum/tv-player-support/intel-... ).

Now you need to do some modifications so that Windows goes into hibernation when the button is pressed.

Go to Contrl Panel > Power Options > Choose What the Power Buttons Do

If you don't have hibernate as an option, then you will need to do the following:

1. Open registry editor (Window Button + R, then type regedit) and navigate to:
HKEY_LOCAL_MACHINE/SYSTEM/CurentControlSet/Control/Power and change the following keys:

CsEnabled - set to 0
HibernateEnabled - set to 1 (you might have to create this key if it doesn't exist).

Open command prompt as administrator (right click on Windows/System32/cmd.exe and select run as administrator) and enter:

powercfg /hibernate on
shutdown.exe -s -t 00

which will perform a total shutdown.

When you reboot you should have the hibernate options in control panel. Set both to Hibernate.
The Pipo should now hibernate when you press the button.


MEDIAPORTAL

My choice of media center software was MediaPortal ( http://www.team-mediaportal.com/ ), though there are other options that you might want to use (eg Kodi). Once installed, change the settings as shown in the screenshots, so that it runs on startup.

I also modified the default Titan skin slightly so that it displays better on a 7 inch screen (basically I enlarged the font used in the playlist, and time and removed the date). If you want to use these mods, then place the xml files into the

C:\ProgramData\Team MediaPortal\MediaPortal\skin\Titan directory (make a backup of the originals first), then delete the C:\ProgramData\Team MediaPortal\MediaPortal\Cache\Titan folder.

Step 3: Mod the Pipo


NOTE: I would advise to use you Pipo as a normal media center for a few days to make sure it is operating correctly. Once you open it up and start modifying it, the warranty will probably be void and you won't be able to return it if it is faulty.


HEATSINKS

A slight design fault with the Pipo X7 is that it does not dissipate heat too well. There are several posts on the internet about adding heatsinks and thermal pads to solve this problem.

http://freaktab.com/forum/tv-player-support/intel-...

I added eight small (15mm x 15mm x 8mm) self-adhesive heatsinks to the metal plate that covers the CPU (peel the grey plastic film off the metal plate first).

OPTO CIRCUIT

Because I don't want to reach into the glove box (where I installed the system) every time I want to start and stop the PC, I built an Arduino-based controller circuit to handle all that. I needed a way to turn on the system remotely - the Opto Circuit.

The Opto Circuit is basically a pair of opto-isolators. One that takes a signal from the Arduino and electronically 'presses' the button on the Pipo. The other takes a signal from the Pipo's 'on' LED and sends it to the Arduino.

So the Arduino has complete control.

I installed a (3 pin) 2.5mm stereo socket at the back of the Pipo to make the connection to the Opto Circuit.

Step 4: The Controller Unit

The controller is based on a Arduino ProMicro. The ProMicro uses the ATmega32U4 chip, which can act as a USB HID device - so you can use it to send keyboard commands to your Pipo.

The circuit overview: Basically there are two 12V inputs: ACC (on when ignition is on) and BAT (always on), and some outputs which can be switched on or off by the Arduino: Monitor (switched rather than constant because the monitor displayed an undesirable 'blue screen' when there was no input), Pipo (12V output to Pipo), AUX (5V output to drive a USB hub for further accessories). There is also a 12V reverse signal input to turn the monitor on when the car is in reverse (this is for a reverse camera - to be implemented later).

The 12V inputs are protected with 2 amp fuses, reverse polarity protection diodes and TVS diodes to help suppress voltage spikes from the ignition system.

The unit will power up when the power button is on and the ignition is on. When the ignition is turned off, the unit can stay powered until the Arduino cuts the power (via pin D5), allowing the Pipo time to shut down. Pin D4 is an input telling the Arduino when the ignition is on, D6 is an output that allows the Arduino to turn on the monitor and AUX. Pins D2 and D3 connect to the Opto Circuit. D15 drives the LED on the power button. D14 is the power button input. D7, D8, D9, D10, D16 connect to the push buttons.

Step 5: The Peripherals

BUTTON PANEL
The button panel was made from a strip of 18 guage aluminium and a plastic (from an ice-cream carton) template cut to fit the profile of the ash-tray. On the plastic template I glued a black vinyl covering cut from a vinyl box. Aluminium stand-offs were used to mount the button panel into the ash-tray.

USB HUB
The simple USB hub provides enough ports for future add ons. I turned it into a powered hub by modifying the USB cable. Power is feed to the hub from the AUX output of the controller instead of from the USB port of the Pipo.

Step 6: Installation

POWER
The system requires a constant 12V power source (BAT) and another 12V power source that is only on when the car ignition is on (ACC). I tapped the cigarette lighter to obtain the ACC power and used a fuse tap on the door lock fuse to obtain BAT. These are fed to the controller through 2 amp fuses and a three pin auto plug/socket.

NOTE: Do not tap directly to the car battery to obtain the BAT power, as this is a fire risk. Find a fused source behind the dash or tap a fuse in the fuse box ( http://www.ebay.com/itm/Add-A-Circuit-TAP-Adapter-... ).


MOUNTING

I built a case out of perf board to slot the Pipo into. Foam padding was inserted into the 5mm gap around the Pipo to provide some protection against vibrations. I also used a glue gun to secure the mounting screws inside the Pipo, as I found that they had a tendency to come unscrewed through vibrations.

Step 7: Future Add-ons

The following are possible add ons for the future:

  • Reverse camera activated by reverse gear selector
  • GPS USB dongle and offline navigation software
  • USB SIM card modem (for streaming music)
  • TV USB stick for TV and FM reception
  • Touch screen (USB)

With the USB hub there are enough ports for all the above.