The version with ELM is pretty stable now, you can have more info there:
OBDuino - opengauge - Google Code - OBDuino Description
I made the interface for CAN only, like described and pictured at the bottom half of this page:
OBDuinoInterface - opengauge - Google Code - OBDuino OBD2 cable and Interface adapter
It's very small and easy to do. If your car use another protocol, you can build the interface for it, see end of
http://www.elmelectronics.com/DSheets/ELM327DS.pdf
It displays all kind of PIDs and also real-time fuel consumption and average on a trip. You can set it for imperial (miles, gallon, fahrenheit) or SI (metres, litres, celsius).
It can detect MIL code and display them, I will add the code to clear them too.
My car has a MAF but I put the code to emulate the MAF using the MAP and IAT, however I didn't test it.
There is virtual screen, menu, etc. You can configure the 4 PIDs on each virtual screen.
All of this in 14k of code so you can use standard or clone Arduino board and their IDE to compile/upload.
The connection for LCD and buttons are the same as the MPGuino.
If you know how to solder, to do the little ELM327 interface, do it!