| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Main Page

Page history last edited by Paul Grandstrand 12 years, 11 months ago

E46 BMW CarPC

Paul Grandstrand

 

WEEKLY DESIGN REPORTS

PURCHASES

BACK TO 2011 SPRING 

 

Project Summary

 

     Cars today are being fitted with GPS navigation, Bluetooth for cell phones, and voice commands to control both; however, my car, built just seven years ago is behind the times. The products on the market today to solve this problem are outdated, only partly functional, look out of place in a BMW interior, and/or are over priced. I want a large, clear touchscreen monitor, voice commands, Bluetooth phone connection, and I want it to look as if it belongs in the car. It needs to be reversible, so that if it is removed in the future (for instance if the car is sold), it can be easily returned to its original state. It must also fit in the dash so that it is not taking up valuable storage space in another place in the vehicle. By utilizing these technologies and requirements, I hope to update my car’s social electronics to present day.

 


Intro

 

At this day in age, people want access to a computer at all times. Instead of having a family desktop at home and a desktop at work, a typical person has both of these as well as a smart-phone, a laptop, and perhaps even more – technology has to be at his/her fingertips. Because of this technology craze, people now expect more out of their cars. A car needs to interact with the driver by utilizing voice recognition, playing a phone call over the cars speakers, navigating to the nearest McDonalds, as well as standard radio functions. Newer cars, such as the 2011 Ford Fusion have these functions already built in with what Ford calls SYNC; however, older cars have a hard time getting to the level of their newer counterparts.

 

My car's dash, as it looks now in stock form:

From top to bottom, the dash consists of a radio, climate control panel, sunglasses holder, and finally a row of buttons. The radio will play a single CD and has AM and FM radio - a very basic setup with little functionality. I want more out of my car, and so I am taking on the task of catching up my car's electronics to the times.

 


Background

My 2005 BMW 330xi (chassis code e46) was built in the last year of its body style, so if my particular car came even with the offered navigation system (which it did not), it is 8-year-old technology. Voice commands are only for a bluetooth connection to a phone, however, there is another module that can be added to get voice commands for navigation - no one has documented a retrofit with this optional module. Forgetting about functionality, to retrofit one of these systems, performing labor on your own, will run around $2,600. For an idea of how involved the retrofit of the OEM navigation system is, one can take a look here.

 

Another option to get better functionality such as voice commands, bluetooth, etc is to buy any double-din touchscreen navigation radio such as an alpine INA-W900. This unit will cost around $1,000, which is much cheaper that retrofitting the OEM BMW unit; however, in order to install it, the HVAC vents behind the radio have to cut and modified to make room for double-din size, a task that will leave the climate control system in a BMW changed irreversibly (here is a link documenting the process). The plastic bezel to fit around the INA-W900 will also cost over $200, unless one fabricates one on his/her own. Ultimately, this route ends with a non-OEM looking dash and a car that is changed irreversibly.


 

Perhaps the best aftermarket alternative to the OEM system is a unit produced by Dynavin. This unit will cost $700, and has promising functionality. It is a very new product with design flaws that are slowly being weeded out with successive versions. It will connect to a cell phone, provide navigation, and play the radio, but it is still far from a personal computer, as it runs an embedded version of Windows (Windows CE), making it more difficult to install applications. It also uses a 7” 16:9 screen at a resolution of 800x480. Unfortunately, the Dynavin does not have voice commands.

 

 

In a nutshell, here is a summary of existing potential solutions:

 

Plus and Minus for the User:
  Good Bad
OEM Nav
OEM look and fit
expensive, old technology
Double-Din
best technology
modify vents, doesn't look OEM
Dynavin OEM look no voice commands

 


Intellectual Property

 


Proposed Solution

 

My proposed solution will fit a compact computer inside the dash of my car where my current radio fits. It will utilize Bluetooth Hands-free profile (HFP) to connect to a cell phone, navigation software of the United States, and voice commands. Aesthetically, it will look at home in my BMW, having an OEM appearance, and it will be reversible. Obviously, a compact computer will be built and it will use an 8" touchscreen display.

 


Requirements

 

Hard

  • Voice Bluetooth Dialing
  • Voice Music Control
  • Voice Control of Navigation Menu
  • OEM Look
  • 8" Touchscreen
  • Reversible

Soft

  • Internet through cell phone

First Prototype

 

For my first prototype, I built a flow chart showing all expected components of my carpc. Software is on the left, and hardware is on the right.

 

Starting with software, I wanted to use Microsoft Windows 7 for obvious reasons; however, due to compatibility issues, I had to resort to Microsoft Windows XP for an operating system. Ride Runner (RR), a front end software, is the face of the computer and is shown below. From RR, all applications are loaded and displayed either embedded or natively. RR has plugins and skins; skins determine how the front end looks such as fonts, colors, placement of buttons, etc, and plugins add functionality. In my case, I am using the skin DFX 5.0.3, only slightly modified, and two plugins: RRVoice for voice commands and PhoneControl.Net for Bluetooth phone dialing. RRVoice comes preconfigured with basic voice commands such as "menu" or "music." It also has a utility to create voice commands using artists, albums, and song titles from a given music library. Voice commands outside of these two areas had to be created and added. Other necessary programs that had to be installed in Windows XP were: BlueSoleil - for a bluetooth connection to a cell phone, Xport - for splitting com ports for a GPS receiver, WinAmp - a music player that is native to RR, Microsoft Speech SDK 5.1 - a voice recognition engine by Microsoft, Garmin Mobile PC - a GPS program that is embedded into RR, and AutoHotKey - a program that creates scripts for key presses and mouse clicks. AutoHotKey is necessary to create voice commands for Garmin Mobile PC becuase it is an embedded program. I cannot interface directly into the software, so I have to create voice commands that run script files, which send mouse clicks on buttons within the GPS software.

 

On the other side of the flow chart is hardware. For my first prototype, I didn't spend much time on hardware other than to research and find components that would fit my needs. Of note, items in gray are not purchased yet, and anything in green has been modified beyond minor settings.  The one piece of hardware that I did spend a good amount of time on was a solidworks bezel that I will have built using rapid prototyping. A priliminary solidworks view is shown below:

And here is a picture of some of my hardware components connected next to my desktop PC:

 

Moving forward into my second prototype, I need to now integrate my hardware and software into one package.


Second Prototype

 

The goal of my second prototype is to integrate the software and hardware into one package that will eventually find its way into my BMW. The success of my voice recognition software for control of gps, music, and cell phone has to be at a minimum maintained, and hopefully it is improved upon. More voice recognition specific hardware should be able to aid in completing this task.

 

Staring off, I used all hardware initially setup in my first prototype, but soon found that my CPU power was inadequete. Once all the software was configured using my new hardware, I starting testing voice commands. The problem was that it would take 15-30 seconds for the computer to recognize the voice command and then act on it - simply unacceptable. So, my ASUS motherboard/Intel Atom CPU had to be returned. In their place, I ordered an Intel i3 2100 CPU and ASRock motherboard. Based upon benchmarks, this combination would be not only many times faster than the Atom CPU, it would be faster than my Apple macbook pro that I used in my first prototype to configure the software. Once the new hardware arrived, it proved this to be true. One downside to this new hardware is that it is slightly taller, and the CPU requires a fan - not to mention that instead of a 8W TDP Atom processor, the Intel i3 is 65W TDP. I will have to closely monitor heat when the computer is installed in its car environment.

               

 

Another major problem was sound. I want to use two soundcards: one for the input and one for the output. However, this is difficult to setup with RideRunner as it likes to confuse itself as to what soundcard to use when. To simplify my system, I cut it down to just use the onboard Realtek soundcard and got that working initially. Then, building on this success, I got it working just the USB soundcard. For the final prototype, I hope to have the dual soundcard system working. For now, one soundcard will have to do.

 

I am using a program called AutoHotKey to create script files that click on a part of the screen to interface with the GPS software. The problem has been that in order to run the script files, I have been converting them to executable files. This method works, however, whenever the computer is started or rebooted, these executable files take some time to load or initialize before they can be run. Currently, I am compiling them without compression, and this does help some, but it does not eliminate the problem entirely.

 

 

 

Final (3rd) Prototype


The bezel has finally come in and it looks amazing. After close to 100 Solidworks iterations until I was satisfied, Shapeways did a very good job. Some minor dremel work and manual sanding will have to be done to get it to fit perfectly, but here is a picture of the product out of the box:

 

A plastic carrier, which will be used to mount the entire computer in the dash, is shown below with the plastic bezel test-fitted.

Bezel test-fitted in the car.

Now that the bezel arrived, the next step was to mount all the components to the plastic carrier. After test-fitting, some more dremel work, and a trip to the hardware store to get mounting hardware, the configuration shown below was chosen. The M4-ATX power supply is mounted on top. The motherboard is mounted right-side-up in the carrier, and the hard drive is mounted upside down to the top of the carrier. The SVEN will be placed below the motherboard as well as the monitor cables.

For a monitor cable, I have been using a special HDMI + USB cable (USB for touchscreen functions). However, it is extremely long - far too long to fit all of it in the minimal space in my car's dash. So, I planned to build one, by combining a short HDMI cable and a USB cable as shown below.

Unfortunately, after soldering the two together, the cable didn't work. By scrutinizing my current cable and my custom built cable, I realized that the HDMI cable that I had bought did not have all of the wires that the long cable had. To put the issue to rest, I am now using a VGA cable, which actually is working much better and has fixed some of my resolution problems.

 

Bezel and monitor

 

With all the components affixed to the carrier, I connected everything and hooked up 12V battery, 12V ignition, and ground to the power supply and did a test run in my car. The power supply is programmed to turn the computer on 5 seconds after receiving ignition. It then turns the computer off 5 seconds after ignition is lost. On the first turn of the car key, the computer booted 5 seconds later - success. I managed to blow the radio fuse, but that was while hooking up the three wires (I accidentally touched 12V power and ground together). A quick trip to Radio Shack fixed my problem.

 

And finally - here is the completed third prototype outside of the car. The microphone used for this final prototype had beam formation technology which improved speech recognition from my past prototypes. For install into the car, a wiring harness (shown above) will have to be completed, I will map steering wheel buttons to control the computer, and the bezel will be primed and painted to match the interior.

 

 

 

 

 

 

 

 

 

 

Comments (0)

You don't have permission to comment on this page.