When we talk about computers I bet we talk about the heart first, so guess what? The first thing I am considering is the CPU. Decision, decision, decision…. ugh….Top of the list of course is Intel Atom CPU. It has decent power, superb power efficiency but … low availability right now, especially for this kind of project.
Next in line is the Via Epia series of CPU/board combos, more like a de-facto standard for industry and carPC enthusiasts as well. Epia is a very well proven platform, with tons of options and versions, a very good choice overall.
Finally, the last in line are regular Intel or AMD low-end CPUs. You can find them practically everywhere, they are dirty cheap but not very efficient, even with their 45nm technology. Tons of options for the MB as well.
As I told you, decision, decision, decision …
Well, this problem is instantly solved by a friend of mine who bought a while ago a Epia board from cartft.com for a similar project but never had time to complete it and is planning to sell. So, here I am, the new owner!
VIA EPIA MII12000G with Via C3 1.2MHz CPU
512MB DDR266
60GB laptop HDD (PATA)
M1-ATX power source
VOOM case (blue edition)
Now that is a pretty decent configuration (at a fair price, I might add), except for the HDD. This is the first thid I will trash! In my opinion a regular laptop HDD is a completely waste for in-car environment. As a matter of fact I have always been a fan of solid state devices. Unfortunately these things are very rare and/or expensive right now so I’m taking an alternate route: CF!
CF cards have become cheaper and cheaper over the years, I have a lot of brands to choose from and they have 3 huge advantages over regular HDDs: 0 ms access time, little power consumption and solid design, virtually unaffected by vibration and with broad range of working temperatures. Of course they also have 2 drawbacks: relative small reading/writing speed and limited write cycles.
But wait, there are solutions! The actual read/write speed is not that crucial, especially when combined with 0 latency time. There is a very thorough review of CF cards/readers speed written by Hans-Jürgen Reggel on his CARDSPEED webpage. You can see that top rated CF cards have nice reading/writing speeds, but only when paired with high quality card readers. Well, there is a catch here. You see, the CF interface is basically derived from the actual ATA interface. So, for the best performace I am going to use a CF-PATA interface, in fact a simple pin-to-pin PCB with a few resistors and a LED.
The closest source for these adapters is Sorinescu.net, a local importer of adapter boards.
There is also some concern about the fixed/removable feature of CF cards with Windows. I plan on using a tweaked version of Windows XP and this OS sees the CF card as either a fixed disk or a removable disk. The problem is that booting from CF requires it to be used in fixed disk mode for the Windows swap file to work. Anyway, I am planning to use no swap file at all. The same issue applies for the hybernation system file and I am planning not to use that either. The system will simply cold boot each time the engine starts. With serious tweaking of the OS and applications, the boot time should not be unbearable. For those of you who plan a similar system but need swap file and/or hybernation, there are solutions to overcome the removable disk problem. More about that in the future software section (post).
The limited write cycle of CF cards is a serious problem. Most of these cards have an average of 100k writing cycles before they wear out and go bad. Most modern CF chips have the ability to spread the write data to unused cells to minimize the chance of making too many writes in one place, but even with that optimization, in a swapping-intensive system, a card like that can be destroyed in a week of continuous abuse. Of course there are industrial-grade CF cards that are certified for a million write cycles or more, but they are expensive, slow and relative hard to find. Cartft sells such a card, made by Transcend (you can check it out here).
The answer here is EWF (Enhaced Write Filter). It is basically a component developed by Microsoft for Windows XP Embedded but it works perfectly on Windows XP. It is a low level driver superimposed over the HDD driver that chatches all read/write operations. Read operations are passed to the HDD driver and write operations are cached in RAM. For a lot of written data, memory overflow may occur, but it is not the case for a carPC. Another feature of the EWF filter is that written data is lost on power off, unless specifically committed before shutdown. This is a very good thing for car environment because it renders the OS data read-only and transforms a potential harmful reset or accidental power loss into a simple harmless shutdown. With EWF, the system will ALWAYS start in the original state.
HOT TIPS!
There is a catch with these cheap chinese CF-to-IDE adapters. They are generally two slots adapters. That means that you can use 2 CF cards at the same time. The adapter takes over one IDE channel and so, the cards are seen as the MASTER and the SLAVE drives on that channel.
The first problem is that you can not tell which is which. The adapter has a jumper for selecting the master/slave option of one card (in single card operation) but it gets confused when you use 2 cards. I had problems with BIOS not detecting one of the cards or even both in 2 card configuration.
The second more insidious problem appears when you make more than one partition on a card. The CF card itself is treated by the PC as regular HDD, so you can organize your data any way you want, even creating more than one partition. This works with a single card only. In dual card operation, the second card simply vanishes from this world.
It took me almost 5 days to sort all these things up and decide I need a second adapter to suit my needs (and another 2 days for the adapter to arrive). The planned setup is as follows:
1. The fastest card available takes the first IDE channel. It is split into 2 partitions. The first one (as small as possible) is protected by EWF and holds the OS with a little free space as slack for future configs. I estimate 3-400MB for the nLited WinXP and another 4-500MB for a few installed applications. This takes me to a max 1GB partition.
The second partition on this card is not protected and is used for the applications that need writing (GPS routes, data logs, etc.). This partition should be as big as possible to maximize the spread of written data and to minimize the chance of cell failure due to high write cycles.
Both partitions are formatted with FAT32. Why? Because I took the time and installed 2 Windows XPs on 2 different partitions, one formatted with FAT32 and the other one with NTFS. FAT32 proved to be marginally faster and a great deal easier on HDD writes than NTFS, which offers greatly increased security, file indexing, access time-stamp, file–by–file compression, quotas and encryption. And these features cost a lot of HDD work, even when all disabled. So FAT it is!
The card that suits the requirements with a decent shipping time (readily available here, in Romania) is Kingston Ultimate 4GB 266x. The 4GB total space is also suited to making Ghost backup images on a regular USB stick, as this card is a main component of my carPC and data loss here means a lot of trouble afterwards.
2. The second fastest card (8GB or more, emphasis on size first, than speed) takes the second channel. It has only one partition, unprotected, for media storage. File system? … You guessed, FAT! This card is not critical, as it holds only media. It may even be swapped in future with a different card / size.
The card that suits the requirements with a decent price is Lexar Professional UDMA 8GB 300x.
This card is actually faster that Kingston, but for some obscure reason the PC refuses to boot from it. It succeeded once or twice but most of the times the BIOS freezes to a black screen. Weird! It must have something to do with that removable/fixed drive thing…
Hot tip!
If you plan a similar setup, please keep in mind that these cards are not meant to be hot-swapped. I mean the CF card itself is, but the IDE subsystem it is not!! So you are most likely to fry something if you attempt to remove the card with the PC running. Even if both the card and the IDE survive the swap, the OS will never read the data on the new inserted card until restart. So be careful!
Now the intimidating question!
Why for crying out loud am I not using the integrated CF card reader on my Epia mainboard?
Why all that hassle with CF to IDE adapters and master/slave drives, and partitions, and all the headache.
Because in their infinite wisdom, the guys at VIA made the onboard CF card reader UNBOOTABLE!!! You don’t believe me? Check out the manual, it’s written there, in plain text. But we never read the manual, do we? I confess it took me a while to discover this fact, and I learned it the hard way, but it’s true. In fact, it’s even better, the onboard CF card reader is only capable of PIO mode. It is useless for any high speed DMA card like mine. PIO mode is so dumb that it wastes most CPU time (even 80% on my Epia) on data reading only, with about 1/4 of the card rated speed. Go figure!
How is that possible? Well, I really don’t know, I guess it’s one of the greatest mysteries of humankind!
Here are some pictures of my single-card dual-adapter setup:
Now for the read/write performance, here are some graphs:
My second and last add-on to the base hardware beside the CF adapters is a low-profile wireless card, a Linksys Wireless-G PCI adapter. The card fits perfectly in the designated slot, except being 1mm too high to squeeze into the Voom case. Damn!
Well, did I mention that I am pretty handy with an angle grinder? Really, no kidding! I grinded about half mm from the bottom of the PCI connector to allow the card to sit even further down in the PCI slot and another half mm from the unused upper part of the PCB. This got me pretty close to the traces on the PCB so I covered the entire upper half with isolating duct tape, just in case.
Now it fits nicely into the Voom case. ( Hey, it still works, I checked, so don’t tease me! )
As for the board connectors, I used only the two internal USBs. One of them connects to the GPS receiver and the other to the IBUS adapter. This setup frees the easy access back-panel usb connectors for other tasks such as USB keyboard/mouse/stick or a USB cable to the front of the vehicle. I am not planning on using any USB hubs.
The M1 power source sits nicely over the two CF-IDE adapters. I set it up in the 4/45 configuration, that is 5 sec start delay (after key on) and 45 sec shutdown delay (after key off). This leaves me enough time to start the engine before the PC starts to boot. Anyway, I find the M1 PSU very tolerant, as it manages to survive the crank of my 3000cmc diesel with the PC running perfectly. I really like that!
One final thing: power requirements. First of all, let me tell you that the connector/cables Voom case came with are a total crap. The jiggle a little in the connector and are pretty short. So I manufactured my own cables, with crimped and soldered connectors and decent length.
A final word goes to power consumption: idle state – 1,65A (~20W) and full action (playing a movie full screen) – 2,5A (~30W). That’s pretty cool I guess, almost half of a low beam headlight bulb!



























June 15th, 2009 at 3:07
The article is ver good. Write please more