I’ve always felt that the best human-computer interfaces are those which are as transparent as possible. The user shouldn’t have to think about the interface; interaction should come naturally after an short and intuitive learning curve. I find that creating such an interface requires generous application of Occam’s Razor – a principle applied to problem solving that says to choose the simplest solution. This somewhat minimalistic approach generally results in simple understandable answers, and simple usable tools.
I find that a lot of things I deal with every day could use some simplification. Take the car dashboard for example. Most of the time, you’re using one gauge: the speedometer. Wouldn’t it be nice to make all that other stuff invisible when you dont need it? It sure would reduce the clutter of the dashboard.
I created ScanDash as an experiment to see how minimal the dashboard could get. By default, only four items are displayed on the screen: a large digital speedometer, alongside small fuel level, oil pressure, and water temperature indicators. When a turn signal is activated, indicators blink on the screen. When the emergency brake has been set, the word “BRAKE” flashes.
A text-to-speech module is on-board for audible warnings such as “low oil pressure” and “overheating”. This can be connected to the car’s audio system or to an auxiliary speaker. Perhaps Bluetooth headset support could be added later (just an idea ;-)).
ScanDash’s most interesting functionality comes from the way it obtains vehicle and engine information. Hooking it up to all of the various engine sensors would be a wiring nightmare. Instead, ScanDash requests the diagnostic serial data stream from the engine control unit, and interprets this data stream to get vehicle speed, coolant temperature, and engine diagnostic trouble codes. Oil pressure and fuel level are read from electronic sensors. Thus ScanDash can conceivable double as a scan tool. With current software, it only generates alerts for certain trouble codes, but a simple software enhancement can improve this functionality.
ScanDash uses a Parallax Stamp microcontroller, but I would use an Atmel AVR or ARM-based controller for a future version. The Stamp is easy to use but too much development time was spent finding workarounds for its shortcomings in speed, especially when it came to implementing real-time serial communication.
I used FreePCB for the circuit board layout. It’s easy to use and is open-source under the GNU GPL. I would recommend it for any small-scale projects like this. For larger projects, go with a professional circuit design suite.