Desi Programmer @ Work

My first carputer - v0.1

Have you ever thought about putting a PC in your car? I did!

Lilliput Touchscreen


Havit Keyboard

I’ve put my first carputer (car computer) into use in my Honda Civic EXI 96. The whole process which includes lots of Googling, forums readings, hectic trips to Hafeez Center and writing some code, too me two years. This time span is not a metric of complexity of the task but just a reflection of my great quality of laziness. The carputer has bare minimum functionality and it requires a lot of improvements but I feel that the time spent was worth it.Specs

  • Dell Optiplex SX270, 512 MB RAM, 40 GB HDD – Rs. 9,600 \~ $150
  • Windows XP (came with the machine)
  • Lilliput 12” Touchscreen – $200 \~ Rs. 12,800
  • Garmin USB GPS - $100 \~ Rs. 6000
  • Havit Mini-Keyboard – Rs. 800 \~ $13
  • Sony Ericsson T290i – Rs. 1,200 \~ $20
  • And some other small accessories

The whole system cost me about Rs. 30,000 i.e. about US$ 500.Some of its usages

  • Play music
  • Play videos. [I can watch my favourite Google TechTalks in my car ;) ]
  • Navigate my route using Google Earth
  • Control cell phone using voice commands
  • Car Tracking
  • Parking Assistance using sensors and cameras.
  • Night vision cameras
  • Accident Recording
  • Monitor Car Health using OBD-II sensors
  • War driving
  • Use Emacs, Eclipse & PyScripter on the go (soon a new law will be passed to forbid the use of IDEs while driving)

Right now only the first three of the purposes are being served.Bao G asked me to add one more thing in my wish list: A button, when pressed, activates the weapon system and brings up machine gun in front and two missiles on each side of the car. The way people drive around on the roads these days, I am seriously thinking about it.

Components & Installation Details

Dell Optiplex

Under the seat

The Dell Optiplex SX270 is extremely compact. I found it ideal for three reasons:Small SizeLow CostRuns on DC 12v (Most Important)The machine is so compact (8.5cm x 24.7cm x 24.2cm) that it can be easily placed at most of the places in your car. Also, another great thing about SX-270 is that it has parallel and serial ports. Which means you can easily attach it to other devices and program them. New machines usually don’t have Serial and especially Parallel ports and put a lot of restrictions on interfacing with other devices.For the time being I’ve placed it under the passenger seat. However I plan to move it in the trunk in future.I bought it back in October last year and at that time its cost was only Rs. 9,600 ($160). The chap selling these machines wasn’t finding customers because it runs on 12v and has a separate AC-DC adapter. And that is precisely the reason I bought it.It is no more available in Hafeez Center. I wish I had bought another one for my home router.


Power by Battery

Running wires for power

Dell Optiplex SX-270 runs on 12v 12.5A. That means it can be powered directly from cigarette lighter. However it can easily fry up the wiring. So I ran wires from machines directly to the car battery with a 15A fuse and a connector in between. 15A fuse prevents it from getting cooked up during spikes etc and the connector is there so I may conveniently unplug the machine for car wash etc.The Optiplex SX-270 adapter is proprietary. Initially I tried to reverse engineer it but later found everything about at [this link][].There are two major problems with my approach of directly attaching to battery. Firstly, when the car is not on ignition the machine is on battery which can be drained out easily. Secondly, when the car is given self-start, there is a spike of power on the wiring which restarts the machine. MP3Car Forums suggest that this spike can also cook the machine but I think 15A fuse will take care of it.To make sure that the battery doesn’t drain, I have turned on XP’s power saving and have added the rule to hibernate the machine after 1 hour of inactivity. The day XP gets hanged, the day my car’s battery shall drain out.Addressing the second problem is quite difficult. It appears that I’ll have to buy some extra stuff to avoid that spike on self start. A UPS will do but that’ll be another headache. For the time being I’ve enabled “Auto Power On” in BIOS which makes the machine turn on automatically after restarting from a power spike.Every time I get out of my car, I hibernate the machine. Even if I forget, it gets hibernated after 1 hour anyway. When I start the car next time, the machine gets turned on automatically and Windows starts from where I left. This is certainly not a very good way and I am looking for other better ways.

Touchscreen LCD

Lilliput touchscreen LCD

Screen display

Touchscreens come in different forms. In-dash, on-dash. In-dash screens are usually expensive so I bought Lilliput's on-dash touchscreen LCD. Lilliput’s Touchscreen LCD is specifically designed for car usage. It comes with all the wires, the drivers, the configuration software and runs well out of the box. It also has a nice stand to stick the screen at a nice place on the dashboard.I’ve placed it under the console, in front of the lever gear. Though at this place it is not as much accessible as it would be somewhere on the console or on dashboard, it is prevent by prying eyes of the other car drivers ;) Also, it just fitted well into the lower area of Civic and did not require any drilling or interior modding.

Garmin External USB GPS

Garmin GPS

Garmin External GPS module uses NMEA format. It has a Serial Port version as well USB. I didn’t do much R&D over this and bought the one with USB thinking it’ll be better. But it turned out that it wasn’t. The only application I found supporting it was Google Earth Pro. Every other application demanded a COM port.However I found this nice utility called Spanner by Garmin which takes your USB based GPS device and maps it onto several virtual COM ports. This means that different applications can access your GPS data simultaneously through different COM ports.The problem with Spanner is that many times when the system wakes up from hibernation it does not detect the GPS device and the system has to be restarted. Otherwise it is great.

Havit Mini Keyboard

Havit Keyboard

Havit Keyboard

Havit’s Mini Keyboard is extremely thin. I’ve placed it in the slit between the passenger seat and the handbrake cover.It can also be placed under the sun visor but then you’ll have to run the wires all over.UserInteface: RoadRunnerRoad Runner is an application specifically designed for car computers. It has a skinnable interface which provides a touch friendly environment with big buttons and support for gestures. Its functionality can be enhanced by its plug-in support. This might not be the best software for user interface of carputer but it surely is the most popular.

Google Earth Navigation

Google Navigation

This may seem useless in Pakistan as we don’t have digital maps available here. However tracking your location on just satellite imagery is still quite useful and fun. Most of the times you remember can recognize the roads and it becomes easy to figure out rest of the map.Google Earth works best when connected to internet but even when it isn’t it works well using its cache. To make it work in my city, I had to increase the cache size, hover over all of the areas and then copy the cache from %HOME% folder to the carputer machine.This manual process can be tiresome but can be overcome using a great utility called Google Earth Voyager. GEV makes Google Earth visit certain areas and cache them. Just give it starting and ending coordinates and it will cache the rectangular region in between.Once you get satellite imagery cached, you have to map your GPS location on Google Earth. For this you can buy Google Earth Pro or use some third party software. As I have experience with GPS programming as well as Google Earth interfacing, I started writing my own. It is still under development.For the time being I am using free version of GooPS. It not only maps your car on Google Earth, it also shows your speed and direction as well as the track you just followed. There are also other options like logging your data etc. which I haven’t explored yet.However I feel that GooPS is not up to the mark. I’d still prefer writing my own program in which I can add other features I want such as trips, bookmarked locations and different routes I followed.Take a look at this [video we shot][] while driving around LUMS.

Audio output to car's stereo


To avoid any modding, I simply bought this cassette based adapter which has a wire with jack which you plug into your machine’s sound output and insert the cassette into cassette player to get computer’s sound on your car’s speakers.Car TrackingCar tracking is simple. I haven’t done it yet but all the required stuff and techniques are with me. All I need is to attach the Sony Ericsson T290i phone with a connection and make it respond to SMS queries from my phone. If I want to find out my car’s location, all I’ll do is SMS my car with a query and it will return me its coordinates. Surely it won’t workThat’s all folks! I’ll keep my blog updated with the updates on my carputer.PS: A lot of people have asked me for a test ride. FYI ticket is Rs. 50 / head :P