With the turbo and intercooler now waiting for some new engine and fuel parts before I start the install, I went looking for a way to read sensor data from 2 EGTs, a boost gauge, and a temp sensor for the intake. A good set of analogue gauges can be had for approximately $1,000 and about 220mm (9") to 300mm (12") of dash space (if lined up next to each other).
This is a lot of real estate and a lot of holes to put in the dash. Despite the size of the truck the dash space is actually really limited.
I didn't get any responses to my previous query about digital gauges, but after researching them further, most only really support OBDII unless you buy a bunch of other stuff to get analogue data converted to digital signals. Which is costly and boring.
I'd already bought a raspberry pi to monitor the tanks and solar for the camper, so decided to try building a digital dashboard with it.
My requirements for the dash are that it:
- is readable day or night
- is able to show data for at least 4 sensors
- is powered by the cab electrical circuit
- turns on when the ignition is switched to Acc or On
- turns off when the ignition is switched to off without killing it
- logs all data coming in, and saves to an externally accessible drive
- be updatable/upgradable
- be repairable and have reasonable component support/availability
- not be insanely expensive
In relation to the requirements above:
- getting a real time graph to display data was randomly difficult to find, examples exist but they are generally developed by individuals for their race cars, and most also use OBDII because that is what people are playing with: result - I've written my own in Python (after relearning Python) and using the Matplotlib and Numpy libraries, which are both open source. The image above is the test dial.
- I'm not sure yet if I'm going to use a small ultrawide screen that is made specifically for raspberry pi, or something else, but am tentatively looking at a 7.9 inch Waveshare capacitive touchscreen.
- I need a 24v-5v dc-dc converter to power the Raspi
- I found a project done by Everlanders on youtube, which you should look at if this is something you are interested in, they have a video on controlling the starting and shutting down the Raspi. I'll be doing something similar using an Optocoupler.
- there needs to be either a direct connection to the battery, or an inline battery capable of powering the Raspi until it shuts down, otherwise it is likely that simply turning off the Raspi will cause it to fail. There are RAID controller backup batteries for servers, and I'm trying to find one of these to see if I can use that, unfortunately it looks like most operate on 12v.
- I bought an SD reader breakout board and 32Gb SD card for the Raspi to save log data to.
- I've bought some ADC (analogue to digital controllers) to test, and some EGT amplifiers, as EGT voltage is produced by the elements in the thermocouple when heated, unlike other sensors that commonly act as a variable resistor that operate between 0 and 5v. The voltage from the thermocouple is very small and the magnitude of difference between a temperature of 100 degrees versus 800 degrees is less than 1v (4mV to 34mV). Testing these to destruction/failure is going to be interesting.
- The components for the Raspi are available in every state and territory, so waiting for a part should not be as bad as for some of the other options. The downside of course, is that if you make it you have to maintain it.
- So far the costs are looking like AU$450 to AU$650 depending on options. It is worth noting that you can get the people at Onegauge.com to make a custom board, or there are units that can read analogue sensors available from Powertune (Australia) and from Just Race parts (Australia) but the latter is the JRP 14 in 1, and the screen on this is very small (and I'm too old for that). I priced up a full set up with Onegauge and it was in excess of $4k. It was awesome, but for that price, buying a second as a backup makes it really expensive as an option.
As you can see most of the above is not that difficult, but it does take time and you have to be willing to burn some components to test that everything works as expected. I hope that at the end of this I can help you to avoid some of that cost.
The biggest question I had was whether I could build a digital dash that updated in real time, and showed the graphs with useful data. Here is where it is a presently - the dials move around randomly because I have a sensor emulator running that simply generates random numbers.
Daytime Screen:
Night time screen (I know the numbers and dial don't match on this):
You will see on the bottom of the above image that the CPU usage is shown for Python. The original concept that I coded was only capable of 1-2 second intervals (refresh) because it was rendering the whole screen each time. It maxed out the Raspi's processor and crashed at full noise. The program now uses blitting, so the only data being updated on the screen is the needle, and the digital readout, the remainder is set at initial start-up.
If you are wondering why the two different screens, the red readout can be on at full brightness at night and only marginally reduce your night vision, but it is harder to see during the day, especially with sunlight on the screen. The daytime screen uses blue with light grey to give a high contrast image without unnecessary glare (such as from white background). There is an interesting discussion here if you want some more information:
https://ux.stackexchange.com/questi...sitivity,produces the highest visual contrast. I tried the black with yellow, but where you have a screen that reflects light from its surroundings, yellow seems to be affected more than the grey.
I'll post an update once I get some sensors connected, and some physical buttons and a potentiometer connected to control dash functions and screen brightness respectively.