Making a Color LCD Dashboard Replacement?
DarkHand asks: "I've recently begun a project that would allow me to replace the analog gauges in my cars dash with a TFT LCD screen displaying a digital representation of the same. A number of animated analog-looking gauges would display the same information the physical gauges display, based on info from the ECU, as well as any other information the ECU has access to, such as intake air and coolant temperatures, throttle position, pop-ups for any warnings or error codes, etc. I'm looking to be able to add, remove, and customize the positions of the individual gauges, and possibly even make the background skinnable. Stability is crucial, so I'm leaning toward a Linux-based system. I have a few software friends who are willing to help on that end, but finding the proper hardware for such a project has proven difficult."
"I need something that either boots within a few seconds, or draws very little power when idle so as to remain active and run off the cars battery. A laptop or small computer boots too slowly, and draws too much power to stay on all the time. A high powered PDA with a larger screen would be perfect, but as far as I know it's not possible (or at least not easily doable, both in hardware and software) to change out to a larger display. The best option I've found so far is the venerable Gumstix board, but as far as I can tell, LCD support is still shaky. Has a similar homebrew project been done before, where I could go for wisdom? What kind of hardware would the Slashdot crowd use in such a situation?"
I suggest getting a Toyota Prius if you want to drive a space ship. Check this picture out.
http://www.thelung.org
Wouldn't this kind of things have to be certified first? I mean, I can imagine a scenario where the driver would say to the police: I didn't know I was going 120 /h, look, my gauge pnly says 20 :-)
I'll do the stupid thing first and then you shy people follow...
I would not advice to replace it, but if it is just for fun I would say that real-time OS is needed.
The only person who is capable of killing my karma, is me, do not even try to help me.
You may want to check the refresh rate on the LCD you choose to use, as I remember reading that LCD tachometers were not common as the numbers changed way to fast for the refresh on the screen. Of course that was 5-10 years ago, so they may be of a much? faster refresh rate now.
i hate pansy republicans
what you want is an RTOS. Look around at various embedded sites, such as www.circuitcellar.com or www.embedded.com to find similar projects that us an RTOS or no OS at all.
Do not for the love of God make your speedometer be a PC.
--buddy
Check out mp3car.com. They have lots of usefull stuff in their forum for all kinds of carpc related projects.
If they can do it in F1 with telemetry and a bank of fairly modest hardware, then a car shouldn't be that hard one would think.
Mind you, as others have suggested, it's probably a good idea to run it side by side with the original stuff. A larger 'custom' dash - maybe monster garage could do it. (Though it'd have to be along with a V-12 powered apple juicer or something.)
I don't think your car would be road-legal with a software speedometer. What you might be able to do is use an FPGA as that does not strictly count as software (sometimes). Use an FPGA and an LVDS driver chip and not much else, and you might be able to get away with it.
If you don't know how to do that I would *seriously* reconsider your idea of replacing a piece of hardware that you trust with your LIFE.
Let's be honest, you don't want your eulogy to be "Well, he wanted his car to play the Back To The Future music when he got to 88 mph."
I googled 'OBD II' a while back and found these:
t m
http://www.obd-2.com/
http://www.ghg.net/dharrison/obdscan.html
http://www.obdii.com/ubb/Forum1/HTML/000359.html
http://www.andywhittaker.com/ecu/obdii_software.h
http://www.elmelectronics.com/obdindex.html
http://www.dynahud.com/default.asp
They should get you started...
Leaving a computer in the cold weather might also be a problem, and LCD's have a noticably slower refresh rate in the cold.
Make your computer faster: rm -rf
http://www.arcom.com/pc104-xscale-viper.htm
Some of those thingies running embedded Linux might do the trick. Just attach it to the car's computer via USB or serial cable. It has its own LCD controller and can run embedded X windows even. Then writing the software is relatively simple.
The GeekNights podcast is going strong. Listen!
Well, it strikes me that the obviously wisest choice here is to leave well enough alone. Mechanical components are so much more reliable, there's no comparison.
Plus, I'm not sure what the regulations are in your country/state, but here in in Australia it is an offence to reset an odometer unless an engine has been replaced (in which case the vehicle has to pass an inspection by agents for the authorities). I'm pretty sure that kind of modification, where the gadget could be easily reset without trace would be illegal.
I'm sure there must be more useful avenues to apply geeky talents.
You won't be able to see it in the sun, this is a bad idea...
that sounds like a fun project. you're probably right that an lcd (while hard to read in the sun) is probably the most versitile way to display all the gauges and dtc's and everything, you might also want to consider going analog. i'm in the middle of a project on my old '89 toyota which predated obd-ii. but i still can get a bunch of information from the outputs of the ecu. i don't have the cool obd-ii plug that you'll have access to, so i need to splice in the actual wires coming out of the ecu, but that's not hard. what i'm working on is building circuts that measure things like the average voltage being sent to the injectors, or reading the voltage coming from the AFM or the O2S and things like that. then i'm displaying them on analog gauges. my original goal was to create a gauge that would show me real time fuel milage (easy with obd-ii), i just do it by measuring rpm, and the average voltage going to the injectors. then knowing the cc/min of the injector and what gear i'm in (i put a little sensor on my gear shift) i can calculate the fuel milage and output a voltage proportional to it. it's really cool to have an analog gauge that sweeps around as you drive. i think it looks much better than having digital readouts.
You might consider one of these
From the site:
SIS 55x processor (x86 compatible)
3 USB ports
2 Serial (RS-232) / 1 Parallel port
Built in AC97 audio - Audio in/out
2 VGA out ports
ATA-33/66/100 support
1 or 2 RJ45 for 10/100 MBit Lan
PS/2 Keyboard/Mouse connector
Single 5 Volts DC @ 1.8 A support
128 MB RAM
20 GB 2.5" hard disk
1 NTSC or PAL video in (frame grabber)
1 NTSC or PAL TV out
Support for two VGA displays
I've been looking at doing a project like this for a while now, so I'd be interested to see how you go about some things.
Like in John Carmack Testarossa, why don't you just manage to wire a plug on the dashboard to connect your laptop when you are bored ? Then you can have all the information you want, without making your car too illegal at first look. On the top side, you could change motor management "on the fly", when you want performance or economy, etc...A friend of mine is modifying previous models for export to Iran, where the fuel is of low quality, and test-drives the car this way. With certain settings he can outaccelerate Porsches at the red lights (which is obviously not very good for the engine...)
Google passes Turing test : see my journal
There would be legal and safety issues with modifying your car by ripping out the dash. And while you probably have a workable design in mind, your mention of "popup warnings" brings back scary reminders of Bonzi Buddy.
Instead, "extend" your dashboard display by using a pocket PC or Sharp Zaurus to the side, displaying you what you want. This should be completely legal - people who use GPS maps do the same thing.
Perhaps... perhaps the PDA could even be mounted above a non-essential display guage - say, the RPM meter if you're driving an automatic car. I am not sure if this is legal or not.
You know, the more I think about this, the more I think it's probably better that you don't modify your dash or stick to a voice based interaction system (audible messages spoken out when predefined trigger points are crossed... plus perhaps some voice recognition for your spoken commands... some PDAs do voice recognition)
Most manufacturers deliberately have their speedometers read high by several miles per hour (my MINI Cooper reads about 3mph high at low speeds - going up to 5mph high at 80 to 100mph).
They do this for liability reasons. If for some reason the gauge is off by a little bit and you get a speeding ticket (or worse, you get into a wreck) - then they don't want you to sue them claiming that the speedometer was reading too low. By making them read a little high - then even if they get mis-calibrated (eg due to tyre wear, higher-then-recommended tyre pressures, etc) they still won't be reading *LOW*.
So - if your LCD speedometer is off by a bit, you won't really be that much
worse off than with the stock speedo.
As someone previously suggested, you might want to look at the OBD-II specification. All cars sold in the USA in the last 10 or so years have a port located down under the steering wheel somewhere which delivers a wealth of interesting information in a more or less standard format. You can certainly read RPM for your tachometer - along with the rotational speed of each wheel independently and a bunch of other fun stuff. You could probably interpret the error code readouts it gives you to light up warning lights in a meaningful way.
www.sjbaker.org
I've chosen to install analog speedo, tach, H2O temp and oil pressure. This allows the LCD screen to be less expensive and less important so I don't mind as much when it's unreadable (say, a cold start at 0 degrees).
:)
Even with a good (transflective or super-bright backlit) screen, you'll need to ensure that it is shaded well against light from an oblique angle. Depending on your dashboard, that might be easy or it might be hideous.
Right now I'm thinking I'll gut an IPAQ H3950 running Linux to supply the display and controller. Apparently it has a good screen, and I'm sure it's rugged enough for automotive use. The battery will help a lot too. The one drawback that I can see is the screen is only 320x240. I yearn for 640x480, but I've been unable to find aything daylight readable in that resolution for less than a few thousand dollars.
How to interface to it? Wifi!
Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant "?" lights up in the center of the dashboard. "The experienced driver," says Thompson, "will usually know what's wrong."
--Anonymous (from The Unix-Haters Handbook)
Be sure to check out mp3car.com. I'm currently installing a PC in my car that will have an OBD-II interface. The forums there will probably be able to help you with your hardware and software selections.
I'm doing this myself now. I'm still in the early stages but have most of the parts. Just need to pick the computer itself and the power supply. (Probably go Opus with a ITPS)
;)
:)
It's definitely going to be linux. I think I'm going to just put a half tower in the trunk as I'm going to need a lot of expansion cards.
I'm leaving the gauges in place and putting the monitor (lilliput 8" touchscreen) in front of it and wrapping it up in custom fiberglass cowel.
My wiring passes through the gauges into other systems, for instance the battery charger so it's easier to leave everything in place and easier to just remove screen and replace with stock cowel for inspection time.
For the harddrive, I'm using a ruggidized harddrive designed for automotive use. Slow but it's got a great temperature range and shock rating.
The keyboard I'm using is a tiny one I found on ebay. I cut it down to fit in a 1 DIN position. It fits between the stock radio and AC controls. You don't know it's there when retracted.
Most of the inputs will come from OBD-II (elmscan that I embedded inside floor) but it's not fast enough for the tach and speedo. (4 samples a sec at beast ISO) I'm tapping the tach, speedo and a few other input signals directly and processing them with a PIC. The PIC will then communicate with the PC via serial.
I'm thinking later, I'll add a large commodity drive for other non essentials that will be activated via a temperature controlled relay. So if it's under 40F in the trunk, it won't power the harddrive until it is hot enough or maybe I'll just use a USB drive.
My first advice is to buy the factory service manuals on ebay. They are invaluable. I got mine for $40 US. Three phone book size volumes with schematics as well.
You might find the factory training books for the electrical and whatnot as well. I did. It was nice to have the whole ECU protocol detalied. (Though not planning to tap into it at this point)
If possible, buy extras of whatever your going to mod on ebay. For most parts I'm fooling with, I have 2 or 3 extras that I've amassed over time. If your patient, you can get stuff cheap.
For instance, in my spare room, I have a spare dashboard, gauges and most everything else on the dash. I'm using this to work on the fabrication so I don't have any downtime (or screw up my car)
$1700 dollars worth of stuff righ there. $240 shipped in mint condition. Patience is the key.
As far as the legality, I'm not concerned. If I had a massive failure, the only thing that I would be missing are my current speed, engine rpm, fuel and oil temperature. Nothing that would ever cause a crash. I can estimate the first 3 fairly accurately. Certainly enough to safely pull over and remove the screen and use the OEM gauges. A fuse could do the same thing to the OEM gauges (and has to me before)
Besides the fact that I'll have more readings on my car (which will actually improve safety), In phase 2, I'm going (try) to tap the ABS wheel speed sensors. By using the four sensors, I've now added differential tire pressure monitoring to my car.
My whole design goal is to have something integrated, yet I want it stealth. If you walked by, you'd have no idea it was anything special. You might if you were astute, notice the monitor, but you would probably just mistake it for a regular an OEM readout.
A great site (Australian cars though) for technical car info and ideas is Autospeed.com.
There is some other stuff, but I'm not going into detail until it's done
-William Shatner can be neither created nor destroyed.
However, the GPS LCD as well as other LCDs in the car today seem to do fine.
Shouldn't be shaky -- if you get one of the breakout boards you can just solder the LCD wires right to the correct lines, then use the pxa framebuffer driver which is in the kernel. A number of people have done this, and seem to have had success with everything from eInk screens to boring-old color TFT screens. All the configuration that's needed on the software side is to plug a couple parameters into the kernel boot args.
Free RTOS has an open source RT kernel as well as some handy dandy how-tos and technical resources.
R(k)
Response time has already been pointed out, but I think contrast ratio is much more important. LCD technology is not suitable for this application. Consider how bright the glowing needle of a modern gauge is, compared to the dead black of the face behind it. Or vice-versa, for the white-face gauges with thick black needles. An LCD has a continuous backlight and relies on each pixel to block light in its region. A little bit inevitably leaks through, resulting in the mottled gray that LCD makers euphemistically call "black".
If the contrast ratio weren't bad enough, you have significant temperature and response time issues. Most affordable screens will go nearly blank in extreme hot or cold, as the controller's adjustment ratio hits its limits. Wide-thermal-range LCDs are expensive and have their own tradeoffs. At least you don't have to worry about viewing angle.
Plasma displays would be better suited for this. By actually generating the light at each pixel, they solve the contrast problem pretty neatly. Their mechanism is also fairly temperature hardy. Interfacing color plasma displays is even more arcane than LCD though, so I wish you luck. If large OLED displays were available, I'd suggest them.
Did you say skinnable interface? Watch out for cock-shaped soundwaves. Holy shit, as if the usability of modern vehicles wasn't already bad enough.
Anyway, a replacement for the stock cluster sounds a bit ambitious. Try an add-on panel for now. Actually using a PDA like you suggested sounds like a good way to start. Get your software worked out, for pulling the values off the bus and drawing gauges with low latency.
One more thing just occurred to me: Have you ever watched the display of an LED clock jump around while chewing, or walking, or anything that makes your eyes wiggle a bit? Each segment is only lit for a small fraction of each second. LCDs don't suffer as much from this problem because the crystals in each pixel are slow to respond, but you still might get shimmer or wiggle as you go over bumps in the road. The refresh cycle of your display's controller will determine how obvious this is.
Next issue: Getting the data from the ECM. OBD-II doesn't allow high refresh rates, last I checked. It's fine for watching parameters like throttle position and temperature, but a tach might not be practical unless you're reading straight off the CANbus. Alternately, try to get the data that the computer's already sending to the gauge cluster, in whatever custom format that is. The problem here is that this high-refresh-rate data is only sending the parameters that your existing gauge cluster needs to know about.
I don't want to sound like a killjoy, but from the questions you're asking, this project sounds a little complicated. There's no harm in trying, but don't be disappointed if you end up with a marginally useful system. Publish your findings so that others can benefit.
How about either doing it as a HUD (like on jet fighters) or even better as an optic overlay (like on the AH-64).
... dream big.
I mean the Corvette had digital readouts back in 1985 - if you are going to dream
Something like this
Glonoinha the MebiByte Slayer
We can provide you with hardware in exchange for writing the software.
We've been in this space for quite some time now and we're very familiar with it.
Our site: www.dashwerks.com
We're linux and RTOS embedded...
Don't think that a small group of dedicated individuals can't change the world. It's the only thing that ever has.
I think a reverse camera linked up the LCD would be great for parking as well...
The friendliest digital photography forums on the net!
"Stability is crucial, so I'm leaning toward a Linux-based system"
You should be looking at embedded operating systems, such as VxWorks which is what some of the real car manufacturers actually use
I would consider the display of a car a fairly mission critical application, and you want a system that's designed for these kinds of tasks. This isn't something you can bodge up and whack on a small PC with an operating environment that hasn't been designed to do such things.
Linux is far too complex for something like running your car's display, there is simply too much that can go wrong.
It would also be well worth checking out what the laws are like in your part of the world, I know that where I am, if I replace my (airbag equipped) steering wheel with an aftermarket one that doesn't have airbags, my car is no longer roadworthy.
I sure hope you've got some deep pockets if you truly want to get this project rolling
Kai
Specialist Mac support for creative pros, Melbourne
Why not to buy some complete spare parts lcd gauge panel assembly for some existing korean/japanese car, and mod it?
There you are, staring at me again.
But I wanted to use a couple of IR cameras; one to display what's directly behind me and one pointed to the right front of the car to look for hidden cop cars. A bright IR illuminator should make that reflective paint on cop cars stand out quite nicely.
LK
"Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
Just a FYI; but LCDs will wash out very badly in sunlight, and you want to be able to read your gauges in the daytime. Try using a PDA on a bright day in the car and you'll see the problem.
This is the primary reason that the old-style gauges are still the standard. You can even get "digital" analog gauges driven by servomotors.
..don't panic
OBD wouldn't make a great choice for this; the update speed is much to slow for a really meaningful speedo or tach. You'd be better off reading the coil drive and Vss sensor directly.
..don't panic
Remember that automotive manufacturers go to a great length in research and engineering, to design user interfaces that are easy to read and provide useful information quickly and efficiently. That said, looking at a variety of cool user interfaces might provide you with interesting ways of communicating Status [GOOD] . Status [Warning] . Status [Danger] ...
You could come up with an ALCARs type interface, of as you mentioned skins...
One of the big problems with automotive environments is that they are filthy, dusty, full of everything that get's spilled or tracked into the car. The temperature extremes are nothing less the mind numbing (from refrigerator to oven depending on month.) That, and depending where you put the display in the car, it has to be bright enough to overcome full daylight, while not frying out in too short a lifespan. That's above and beyond being exposed to the bleaching effects of heat and solar radiation for hours a day every day. The hardware will have to be robust indeed.
Have you considered a heads up type display? Having a superbright display the overlays the visible world on the windshield works for fighter pilots. You could even get slick and superimpose images on real world objects, including data points, and like the Cadillacs, IR imaging to see better at night, and through the fog.
There are some interesting display panels with touch capability used in industrial applications. You should check them out, it might be just what the doctor ordered.
Genda
This site has some relevant information about implementing PCs in a car environment, as well as links to LCD vendors. It's a wiki, so you can add information to it!
http://www.carputer.org/
the Prank Institute Because a reason why never beats a why n
unless you plan on driving this car until you can no longer fix it or selling it to another geek, I wouldn't recommend doing it.
Lets not forget, other people are at risk too. It's not enough that the driver trusts his car, the other road users must trust it too, so any changes to such vital systems probably would have to be officially approved and certified. I think that you'll have great difficulty convincing someone that this is safe for general road usage - if they'll even listen.
What would you be using as fixed storage? A unix would seem to make a fixed disc necessary; there are some pretty stable ones around, for sure, but I'd feel wary about trusting one to perform continuously for hundreds of thousands of miles in a vibrating car.
love: @echo "Not war?"
out of one of these?
I have a girlfriend whose name doesn't end in
Your right to choose whether or not to install and use seatbelts ends where my money pays for your hospital bills.
I don't really care if you drive your car off a cliff and you win a darwin award in the process - particularly if the car is paid for, and the cliff is on property that you own free and clear.
When your Darwin-award attempts fail, and
you hurt other people, or
you manage to fail to kill yourself quickly,
you go into the hospital, and then I and every other responsible person end up paying for your choices.
Want to build a speedway on a small portion of your huge plot of land and kill yourself in the process of driving whatever homebrewed vehicle you can assemble as fast as you can? I don't care as long as you leave no debts behind.
Want to take that thing on the public roads? Get it safety certified, and while you're at it, wear a seatbelt!
If you're on a motorcycle, wear a helmet!
I don't want to pay for your misplaced sense of machismo.
But Herr Heisenberg, how does the electron know when I'm looking?
I used to have an '86 Chrysler with a completely computer-controlled LED Dashboard. If that's legal, (it was factory-stock), I don't see why an LCD dashboard would be illegal, as long as you run some sort of backlight to make sure you can see it in direct sunlight. Even the LED Dash in direct sun was hard to see...had to turn on the fog-lights on occassion to get the lED's bright enough to see the digital spedometer. You can always look around on allpar.com, see if there's any info on the stock LED dash's; might give you some ideas or at least some help.
I didn't attack your character, why must you attack mine?
I end up paying for your choices even if I don't use your insurance company.
You think it costs your company nothing to self-insure? Of course not. Don't you think that your company budgets medical expenses into the costs of the products and services that your company produces?
You may argue that your medical costs are borne only by the consumers of your company's products. They are the primary ones who fund medical care resulting from irresponsible behavior, but anyone in the supply chain using your company's products or services bears a bit of those costs as well.
We really lose perspective when we think in terms of the 'big insurance companies' or 'the big, fat cat employers' bearing the burden of our personal medical care without understanding that WE should pay our own freight, and not expect others to do that for us.
If you're insured, the insurance industry bases it's rates on the average costs in the world. When people make poor choices, it is reflected in the actuarial tables. Those tables are created by looking at what people typically do.
When we as a culture accept irresponsible behavior because we don't want to judge others, we start down a slippery slope.
Your right to be irresponsible stops when you expect someone else to pay for your choices.
But Herr Heisenberg, how does the electron know when I'm looking?