Car Multi Display
Since I turbocharged my car, I had to add a bunch of gauges for the boost/vacuum and oil temperature along with the air/fuel ratio meter. Perviously, there was only one - air pressure for the onboard air system.
Since it was getting crowded, and having different kinds of gauges for the displays, I decided to combine them into one (except for the AFR)
Bought some senders and made an arduino based gauge display for it. Let's start with the hardware pics.
Carved the case from solid blocks of polycarbonate.
After sanding and painting the case, the atmega328 breakout board and LCD are mounted and wired into the display module.
I forgot about the backlight dimming feature and did not put an extra line on the umbilical for the illumination dimmer input so I hacked it and added a photodiode instead and connected it to the unused ADC input.
The resistance vs temperature table of the temp sender. I plotted it in excel and computed everything from there including the 1K pull up resistor which basically meant I had an equation that takes the ADC output and converts it directly to temperature. Nice!
Completed display module.
Right side has the buttons.
Left side has the cable and the light sensor below it.
I decided to drill the case and let the sensor poke out the side for better sensitivity.
The powersupply/switching module. Underneath is a row of pin headers simply used as a solder point for the wires. The whole circuitry is powered by a micro buck module set to 5V. Some resistors for the voltage divider, and a bigger resistor for the oil temperature sender pull up. There is a PCB mounted on top (not shown) that contains mosfets and snubbing diodes for the output load switching.
Powersupply/switching module fully assembled.
It is just several layers of PCB and acrylic. Side is open but is not a problem.
Bottom with the perf board.
Sender modules tucked under the dash.
Back of the module has holes for ICSP so I can update the code without having to disassemble everything.
It can display both in metric and imperial mix and match.
Here, it displays Oil temp in Celsius and pressure in Bar.
Top left is oil temp, top right is manifold boost/vacuum, bottom left is battery voltage, bottom right is air tank pressure.
Can be set to Celsius and psi. vacuum is in inches mercury.
Farenheit - Bar
Farenheit - psi
Bar graph mode.
Bottom right is oil temp, bottom left is tank pressure. Manifold boost/vacuum is just the bar graph above.
Now for the fun part. Programmable settings stored in non volatile memory.
Voltmeter calibration value
Over boost alarm output - turns an output on when manifold pressure is greater than set value.
Over temp alarm - turns output on when oil temp is greater than set value.
Injector on - turns 5th injector on when manifold pressure excees set value.
Injector off - turns injector off when manifold pressure drops below set value.
Air compressor off - turns onboard air compressor off when tank pressure exceeds set value.
Air compressor on - turns onboard air compressor on when tank pressure drops below set value.
pressure sender zero - sets the displays to zero at zero gauge pressure on either senders. Must be used with care as I caused the engine to flood when I accidentally pressed it while the engine was running.
Manifold sender cal value - computed from the pressure range of the sender divided by the 0.5V-4.5V output. This was a 0.5V to 4.5V output, -14.5 to +30psi 3-wire sender.
Same as above but with a 0-200psi sender.
Bargraph top - the maximum value of the rightmost bargraph segment.
The over boost output also turns on when manifold pressure is greater than this value.
Bar graph bottom - the minimum value of the leftmost bargraph segment.
The over boost output also turns on when manifold vacuum is lower than this value.
This was the "before" pic.
Now there is just the AFR gauge and the multi display LCD.
A connector was necessary so I cut the umbilical near the display module.
Found this from the scrapper and are nice solid connectors. 12 pins exactly as the number of wires in the umbilical.
Since the female side is a panel mount, I just shrink wrapped it with some hotmelt glue.
I also changed the LCD backlight from yellow-green to a warm white LED to better match the interior lighting of my car.
If you are adventurous enough and wanted to build a similar device, here is the link for the firmware for this. Sorry, no complete schematics for now. The pins used can be derived from the sketch. It simply used a Mega328 on a breakout board and basically programmed as an Arduino UNO.
Pardon for some missing pics of the senders and misc stuff as I forgot to take pictures and wanted to complete this today as it was in the back-burner for a long time. Here are some links for the oil temperature sender and manifold pressure sender. The tank pressure sender is similar but with a 200psi range and I bought it many years ago so the link is long gone.
There is a new firmware that now includes progressive fuel enrichment via boost. It starts adding fuel once there is positive pressure in the manifold and stops to a preset pressure and max duty cycle.
Shown here is the set pressure where the duty cycle stops increasing and stays the same even with increasing boost pressure after this point.
This is the max duty cycle of the injector to be able to tune it and not run too rich. PWM frequency is 122Hz (I would have prefer 50-60Hz but I had to choose between 31Hz - too slow, and 122Hz).
I also switched the locations of the displays. We shall see if this arrangement is better for viewing the readings.
Update: I have test driven the progressive injector control and it works really well. Before, I could feel the jerk in acceleration when the injector opens at 3psi. Now, acceleration is smooth and AFR sits at 12.0 from 0psi to 5psi.
15 Nov 2017:
Went on a WOT run on the expressway and managed to get the oil temp cooking to 111degC (was not able to take a pic of that, this one was while stopped on the toll gate).
Also got some orange LEDs from china and replaced the one in the LCD. Why not get an orange backlit display? It was easier for me to change the backlight LED than resolder all those wires for a new display.
14 Dec 2017:
The old mechanical pressure sender I was using for the onboard air pressure switch is now installed as it is intended. An oil pressure sender.
I removed the voltmeter on the lower left corner and used it to display oil pressure.
As with the thermistor, I plotted the measured resistance vs pressure and used curve fitting in Excel to get an equation and derived it from there. A pullup resistor of 270ohms from the 5V supply was used.
This meant that less bits of the ADC are used resulting to lower precision but accuracy is better as there is less offset drift introduced by a preamp or similar input stage. Besides, it displays only in 1psi steps. A much simpler circuit (just 1 resistor vs op amps and supporting circuitry!) is a no brainer in this decision.
Also works in imperial units.
I also added a settable low oil pressure warning output.
Oil pressure dropped as the engine warmed up and the oil thinned out.
Page created and copyright R.Quan ©05 Oct 2017.