raspberry pi gauges/ displays/ tools

CMS-GT4

Active member
Has anyone made an attempt into this? It seems like the parts are fairly inexpensive, where the coding might be the hard part.

I think one possible solution would be to read the speed signal and multiply it to something that would be accurate when using larger tires etc.. Might be possible to develop a personal HUD or even a digital dash. Debating if the time and cost outweighs what is already on the market.
 

underscore

Well-known member
I wanted to do this to run a small screen for guages instead of getting standard guages, for things like temps, pressures, along with warnings for high/low. In the background I wanted to add boost control that would be tied to the readings so it would instantly alarm and cut boost if something got too high/low.

From the research I did it would be fairly inexpensive to do (RPi, analog input board, sensors) compared to existing setups and as a bonus you could make the graphics completely to your liking, the coding would be very basic and easy to do but building the graphics was where I started to get stuck. I do logic controller programming and graphics for a living so I could do the coding and graphics easily enough if I could find software for the RPi that let you build graphics linked to the code.
 

CMS-GT4

Active member
Could you just use some python to handle your graphics or can the RP not handle that? I was wondering if you could make some changes for it to handle other languages.
 

bajallama

New member
MWP":10giwn61 said:
Im on my way to doing it with one of these: https://www.crystalfontz.com/product/CFA921TS
Im trying to make the software quite configurable via XML, so its taking some time to write :(

If you want a real cheap gauge, pick up one of these:
[url=http://www.ebay.com/itm/CRIUS...w.ebay.com/itm/CRIUS-CO-16-OLE ... 1c3d561c92
[/url]

and an Arduino Nano for $9

for under $20 you can have a pretty cool OLED gauge as long as you can make the housing. I had just posted a clock replacement in the forum of one I did and if you want I can give you some sample code to get it working.

My next project is gonna be using one of these:

http://www.ebay.com/itm/200939222521?_trksid=p2059210.m2749.l2649&ssPageName=STRK:MEBIDX:IT

and an Arduino with an accelerometer. It will be a graphical inclinometer with an RTC and a barometric sensor to give me time and altitude w/temp to put in my 1st gen 4Runner.
 

thespen

New member
Just an FYI to you guys looking to work with microcontrollers integrated with gauges and key engine operations/functions. While the Pi is very useful in certain application (I built a GPS logger for data mining on the track a while back), there are huge downfalls to using an OS based computer to manage functions. Linux can be fairly stable under normal usage but I find with Python going it can be a bit unpredictable; coupled with the excessive boot time and the need for a proper shutdown, you can end up having something that from an automotive perspective can leave you stranded if it fails. I worked in startup procedures to collect data as soon as it came on, but if you were relying on the data in real time a crash could be, needless to say devastating. If you just want to use it for data display then by all means. I suggest coding in python and transmitting to an android tablet. Programming android apps in basic is fairly easy and quick to do. You can overlay a bunch of gauges.

As for arduino, stay away from it at all costs. Arduino is a toy, pure and simple. It doesn't have the speed, memory, or inputs/outputs to handle anything automotive related unless you're running a pile of them in tandem. Depending how you transfer data that could pose problems as well given limits of I2C interfacing and the lengths you have to run in a car. I have built an electronic thermostat control with one before and even that was taxing it pretty good. They're great for education but not for practical use. Skip the middle man and just program the ATMega chip an arduino uses on its own in C. They're very powerful chips, the arduino interface puts huge handicaps on them.
 

bajallama

New member
thespen":1ah7w60t said:
As for arduino, stay away from it at all costs. Arduino is a toy, pure and simple. It doesn't have the speed, memory, or inputs/outputs to handle anything automotive related unless you're running a pile of them in tandem. Depending how you transfer data that could pose problems as well given limits of I2C interfacing and the lengths you have to run in a car. I have built an electronic thermostat control with one before and even that was taxing it pretty good. They're great for education but not for practical use. Skip the middle man and just program the ATMega chip an arduino uses on its own in C. They're very powerful chips, the arduino interface puts huge handicaps on them.

So do you just make your own PCB? Or do you just use a different compiler on the Arduino? I've always wanted to make my own PCB but I'm new to programming and microcontrollers in general. Is it fairly inexpensive? As far as the i2c bus, I had three devices using one on a Nano with one of them having over 5 feet of wire and the refresh was far more than sufficient for a simple gauge.
 

thespen

New member
I personally make my own boards. There are plenty of free board developing software packages around as well as a bunch of good places that will print double sided boards cheap in low number runs. That may not be an option for a lot of people so certainly you can go for another ATMega board that has more input/output options than the arduino. Failing that you can always just write over the arduino bootloader. The arduino bootloader is a complete resource hog.

I2C isn't designed for long runs, in most cases under 6" max. It is highly susceptible to noise and expects data pulses in specific times. If you have a 5 foot wire you're very lucky to be getting any signal through at all really. If you start to add more slave addresses then you'll likely see a lot of data corruption. The arduino can manage a few gauges on it's own ok; but it is severely limited in what you can access register wise. Plus the USART is not as accessible as one might like. If you want to start moving into areas where you have multiple sensors and gauges, as well as some kind of display you will quickly run out of room on the arduino. If you know any C it's not too hard to pick up AVR studio. The ATMega family of chips are almost all programmed through it.
 

CMS-GT4

Active member
Awesome info guys. I may look into this ATMega chip option. For me I have been kicking around the idea of something that can take the speed info and add a multiplier for those with different rolling diameter than stock. The only decent option I know of is the GPS speedos you can mount in the pillar.
Another thing I considered is using something to get my AEM wideband to connect to some sort of display. I bought the laptop only one. If we could somehow log the oem RPM signal, and afr's then that just might be a nice useful tool for occasionally making sure things are staying in the safe zones. Not sure if any of those items are fast enough to capture all that data though.
 

bajallama

New member
CMS-GT4":5dmz9mk5 said:
Awesome info guys. I may look into this ATMega chip option. For me I have been kicking around the idea of something that can take the speed info and add a multiplier for those with different rolling diameter than stock. The only decent option I know of is the GPS speedos you can mount in the pillar.
Another thing I considered is using something to get my AEM wideband to connect to some sort of display. I bought the laptop only one. If we could somehow log the oem RPM signal, and afr's then that just might be a nice useful tool for occasionally making sure things are staying in the safe zones. Not sure if any of those items are fast enough to capture all that data though.

I think any micro controller could do that, but you would want something that can data log to some sort of large memory bank. All it is is converting the incoming signal to a display or recordable data. I looked into using an Arduino as a cheap DAQ but after what thespen said, I might do just the Atmel route.

A speedo would be easy with a basic micontroller. Since the stock speed sensor pulses I believe 4 RPM, the microcontroller would sense that pulses. Then it would just be a multiplier on top of that for the speed.That multiplier would be a product of your Final Drive Ratio and Tire Diameter.
 

thespen

New member
There are plenty of micro controllers around, I just prefer the Atmel ones as I'm used to working with them. Once you've got a grip on the 500+ page manual you don't really want to move to something else, hah. The Ardunino Uno uses an ATMega328 of some variety, other ardunios use more or less powerful chips as needed.
You could totally program an arduino to be a rudimentary oscilloscope and count RPM then output to a tach or something. I don't mean to shoot down the arduino entirely, it's just that you will be limited. Keep experimenting with the gauges, I had planned to work on something for that later on as well.
 

CMS-GT4

Active member
I was working on my alignment today and now I am wondering if we might make a tool out of a RPi that might make toe easier than using the strong method.
 

MWP

New member
thespen":2bir3ub9 said:
While the Pi is very useful in certain application (I built a GPS logger for data mining on the track a while back), there are huge downfalls to using an OS based computer to manage functions. Linux can be fairly stable under normal usage but I find with Python going it can be a bit unpredictable; coupled with the excessive boot time and the need for a proper shutdown, you can end up having something that from an automotive perspective can leave you stranded if it fails. I worked in startup procedures to collect data as soon as it came on, but if you were relying on the data in real time a crash could be, needless to say devastating.

Youre not doing it properly if any of that is a problem :doh:
Python for this application? Seriously?

Yes, a dedicated micro (i like STM32F41x) will almost always do the job better, but Linux is super easy to develop on, and platforms like the one i linked to make hardware devel super easy.
 
Top