I had a vision a little over a year ago to design an auxiliary dashboard to provide reliable time, compass heading & temperature info to my wife's car (which is otherwise rather spartan, being an ex-police cruiser we bought from a local dealer...) and I'm pleased to show off my progress--yesterday I ran the cabling and got the bulk of the system working and installed.
Uses I2C and OneWire, with I2C being most of the communication
Makes use of a "long distance" buffered I2C network employing NXP P82B715 chips on each board to help the devices use the long-distance bus
LCD display is a large 16x2 by Newhaven, and I designed my own "I2C backpack" for the board which includes PWM on the LED backlight, ability to cut power to the LCD completely and go into deep sleep (SLEEP_MODE_PWR_DOWN). The I2C commandset is built around a virtual 8-bit "memory map" implemented by a 256-byte char array on the LCD backpack's ATmega328 firmware, with the upper 16 bytes implemented as special "strobe registers" to carry out actions/configuration updates.
I incorporated a DS18B20 temp sensor into every board ... Because I can (and I have a ton of them)
ATmega328 used in the LCD backpack, ATmega1284P (Bobuino) currently used for the controller before I can build something permanent for that. Arduino IDE used for both firmwares.
Future plans for this system include a Keyless entry system based on the nRF24L01+ and Sparkfun's nordic keyfobs.
Still need to run a cable under the hood/behind the bumper for proper ambient temperature, which is my next task before designing a control box w/rotary encoder for the dashboard.
Nicely done! You have put a lot of work and thought into that project for sure! The fact that you have your project in place and working is a great accomplishment!
Humm, weird, went outside this morning and found it in key-off mode (as expected) but with the time 22 minutes slow. I figured maybe the arduino crashed or something, so I disconnected & reconnected it and it updated--time advanced by 1 minute, but still 21 minutes slow. I ran that system in my basement with the ChronoDot supplying the time for weeks without a hitch so I'm very curious what's gone wrong. The ChronoDot (Maxim DS3231 breakout board w/ coin cell battery) is supposed to lose no more than 1 minute per year.
Alas, didn't have time to troubleshoot beyond that. Will have to pick this up later in the evening.
On second thought, I think it's condensation. I noticed lots of condensation on the rear window so it's a good likelihood there is condensation in the trunk. Didn't even think about that when I designed everything. The paint "soldermask" on the boards should help prevent some shorts, but I suspect I should stick a packet of dessicant in the sensor board housing or maybe apply paint to the pins of the DS3231 chip and exposed header solder joints to shore that up a bit more. Better than trying to pot the whole thing...
FWIW, suspecting condensation in the morning had something to do with the time lapse, I took the sensor board out last night and applied silicone dielectric tune-up grease to the SMD RTC chip's leads (the DS3231) and various other solder joints on the sensor board. This morning the time was spot-on (with plenty of condensation all over the car, didn't check the trunk but it was probably there too.)