Hey guys I’m new here actually new to programming in general… and I drive a classic truck that has the typical classic car issues. I’d like to make a system that monitors intake air temp, throttle position, water temp, oil pressure, rpm, o2, fuel pressure, voltage, and amp draws whiteout getting rid of my simple to work on carburetor and distributor. I don’t want to move to a modern engine management system I only want to build a monitoring system with no outputs only inputs. In my head I feel that it wouldn’t be hard to map these inputs and graft them over time so I can fine tune my engine. I already know of all the sensors I’d use MoTeC makes a plethora of sensors and connectors… my question is, is it possible to configure a arduino in that way, with that many inputs, or is it too much? Like I said I don’t know a whole lot about programming or anything I just figured this would be a cool intro project. Also if possible what would be the best model arduino?
It is certainly possible. You will need to create a list of the specific sensors and the type of signal each one provides. That will help determine what other electronics will be needed and which processor to use.
Do you have the technical data for the sensors.... What voltage they put-out, or what kind of digital data, etc.? If you buy a "replacement sensor" for a particular car, those details may not be published.
The "basic" Arduino Uno has 14 digital I/O pins and 6 analog-input pins (0-5V). If you have a 0-12V analog signal you'll need a voltage divider (2 resistors) and possibly a "protection diode".
And you'll need some output pins for some kind of display, unless you are just going to plug-into the USB port for occasional monitoring.
Awesome that’s exactly what I wanted to hear! What exactly do you mean what type of signal? Some will be similar but others will be different. For instance position sensors are essentially potentiometers whereas o2 sensors make or pull vintage based on readings ect. Or is there more in-depth signal that i should look for?
I can find those specs out 100% motec is all aftermarket custom build electronics… they specialize in engine management systems but their sensors are sold individually as well I’d assume for applications such as this. In regards to the readout I do plan on simply “plugging into” my laptop via usb. I’d like the interior of the cab to stay as classic in appearance as possible with the system I’m building to be mainly a maintenance system.
I will take a SWAG and say you do not have much experience in designing automotive electronics. Are you aware it is one of the nastiest electronic environments you can work in. Do you know about transients that can reach hundreds of volts. The 12V power can be upto 24V in some fault conditions. etc.
There is a good app note AN2689 by ST on automotive electronics. reading it will help you a lot. https://www.st.com/resource/en/application_note/cd00181783-protection-of-automotive-electronics-from-electrical-hazards-guidelines-for-design-and-component-selection-stmicroelectronics.pdf With the classic cards these are much worse than in modern automobiles and trucks. Good luck and have fun!
I reposted, the link disappeared.
If you measure the throttle position, do you mean the throttle plate on the carb or the accelerator pedal? On the old carbureted cars they may not be the same because of automatic chokes, etc.
So the sensor I’ve looked at and have installed before connects directly to the cable and moves with the butterfly valve. It doesn’t take into account the choke, it’s intended purpose is for a transmission stand alone computer that provides info for the passing gear/kick down. However I’ve also installed the same sensor used as a position sensor for a paddle shift actuator sensor so I know it is not a simple on/off switch.
You’re correct. I don’t have much experience at all with automotive electronics. I build manual shift automatic transmissions for trophy trucks for a living. However my electrical experience pretty much ends at plugging harnesses together as our th400s are full manual shift and don’t rely on electronics. I do know that voltages aren’t the “standard” 12v that is commonly believed in regards to automotive electronics. Is that info you referenced on this site or is it another site because I do want to learn more about it.
I have done something similar. I have a older boat with two diesel engines. I am using an Arduino compatible Automation Direct P1000 series PLC module. They are industrial and very robust devices. It has the micro-controller module Arduino zero compatible that can have many different types of modules plugged to it. One of the modules is a thermistor module four 10k type II or III thermistor inputs. I use one of these on each engine to measure many different temperatures. I also use voltage input module with some 5vdc pressure transducers to measure various pressures. It has an Ethernet module that I connect to a PC at the helm and use XOJO to communicate with the module to display the data with gauges. I would like to add RPM and even maybe some LIDAR for safety. You can get buck and boost DC to DC power supplies for the different voltages. It has been up and running for a couple of years now. It is fun and looks cool too.
It can all be done with many Arduino boards. The AD modules do a lot of the hard work so all you have to do is connect the wires. It also adds many protections to the hazards that can happen in that environment.
Cool cool I’m happy to hear I’m not the only one who’s wanted to do this. Was it fairly plug and play, did you run into any issues and what brands of sensors do you run? Also when you add RPM do you plan on tying into the ignition or going off of a position sensor?
Thank you for the AN2689 suggestion… very useful knowledge there!
Hi Sean,
I've done some of this for an old car, but I was replacing a previous digital LED gauge attempt (that worked Ok but stopped eventually) with more up-to-date Arduinos and LCD TFT screens. The old digital displays had replaced the standard gauges entirely due to an engine and gearbox swap rendering the originals entirely useless.
There is some interface circuit diagrams there too, I've probably overdone those too but wanted to be sure about interference and voltage issues after losing the old digital gauges.
Much of it probably only makes sense to me, so feel free to ask questions or DM me if you think anything there is usable for you.
I've used separate Arduinos each for speedometer, tachometer and a central one for volts, Oil pressure, fuel and temperature. The reason is to keep the responsiveness high for speedo and tacho. The central fuel/temperature gauge runs some timed updates as you dont need to see fuel sloshing or 0.5 degree temperature variations.
Without the displays you could easily log everything via one Arduino, most likely.
I even have an ATtiny just for making the warning sounds, so other functions are not blocked for the sake of some sounds.
I have calibrated my fuel and temperature inputs to work with the old standard senders, and in particular the fuel gauge requires an op amp to provide a usable voltage range to measure. The stock temperature sender was VERY non-linear since it was for an old style gauge. Best if you can use a modern NTC or a DS18B20 for temperature measurements.
I've tried formulas based on lots of manual calibration, but more recently I added a calibration mode so I can see raw values, and use multimap to simplify things.
I've added in DS18B20 support too, which you'll see in the code and you just set a bool value to enable it.
The speedo and tacho should be adaptable to any vehicle since I tried to keep them as universal as possible, but the speedo is metric. It should be easy enough to modify the code.
One of the things I thought is notable is I've used pulseIn for speedo and tacho inputs. I've tried interrupts and just about everything else, but pulseIn just works. PulseIn is in microseconds which most people seem to forget, so it can be highly accurate.
I also knocked up a tester/calibration arduino for the speedo and tacho functions, and was able to use standard digital writes and conventional "if" timing loops to get both independent frequencies at once. I tried timers and some fancy code, but couldnt make the Arduino output an independent speedo and tacho frequency both at the same time. That might say more about my poor C++ skills than arduino capabilities - but anyway the unit works for calbrating the speedo and tacho out of the vehicle.
Another thing you might find useful is saving of odometer values too wear-levelled EEPROM, and periodically saving to SD Card (when the vehicle is stationary and it's been more than 10 minutes)
I've probably gone crazy on the odometer section and saving and checking redundant values, but it was a mountain to climb
Hopefully there's some things there you can use.
It is not quite plug and play. You make-up all of the cables. The pressure sensors do come with nice environmental 'proof' plugs. The sensors are available on Amazon, The pressure transducers come in different ranges, 0 - 30, 0 - 100, 0 - 500, etc, all stainless. All types of thermistors are available. I use a 0 - 5vdc out 0 - 30 vdc input board to get the battery voltages. They are reasonably priced and have been working well for a couple of years. I have about 50 hours of programming to get it how I want. The boat is drive by wire and the position sensor is used by the throttle control which is all electronic, old, and 'priceless' I would like to be able to connect to that but it is not well documented so i don't want to mess with that. I am going to have to find an alternative to get the RPM. Since they are diesels there is no ignition so that is not an option. From what I have read getting accurate RPM with an Arduino adds a whole new set of challenges so for now I will rely on the standard rpm gauges.
Something useful I found was using a separate +5vdc supply for sensors and such, so any bypassing of spikes via schottky diodes or zeners was feeding back into the separate supply, where I used a suitable regulator and big zener to handle that situation. Plus I used tranzorbs on some particularly noisy inputs, like headlights where relays and coils were involved.
Here's a list of them, I didnt use all these but kept the list handy anyway. The "normal" voltage is listed in brackets. The tranzorb is just like a normal zener but handles serious spikes.
EDIT:
I used a few of BTZ03C18 for the ability to handle 15volts continuous without conducting (significantly). That's what I meant by "normal" voltage, more correctly termed the "Standoff Voltage"
Understood I have no problem making a harness I guess plug and play wasn’t the right term. It all came together and was fairly straight forward correct?
Wow dude your response was thorough… and it’s pretty clear to me that this is more of an in depth topic than I initially thought… your system that you configured is set to use gauges? I have gauges myself in my truck all air core auto meter stuff, I only want this computer system to be in the background so when I have issues I can map it on a laptop and compare readouts and situations. Would your configuration work in that place? Or is there any way I can adapt that to my needs?
Yes it did. I contemplated using the existing pressure and temperature sensors which I could have done, but I wanted to simplify the process. One advantage of using new sensors is that I was able to build and test most of it on my bench. Also using the separate off the shelf power supplies solves all of the voltage problems introduced with automotive electronics.
Now for a automotive vehicle you would probably want a different display. You could connect the unit to an lcd or tft, or you could have a tablet similar to the display in a Tesla. On my boat it is no problem to have a pc on the helm with a couple monitors mounted in the dash. Xojo has a lot of different types of 'gauges' to use. I have mine set up like some I saw in a lear jet.
Another thing I am going to do is add another module to control all of the lights, winch, etc. There is an AD module that has 8 or 16 12 vdc outputs. I will use dc to dc solid state relays to actually switch the devices on and off which eliminate any noise or spike issues. I will get that done before I get the to the RPM.
It definitely costs more to go this route, but you save a lot of time and trouble.
No, the Arduinos with TFT's are the new gauges.
WOW you have clearly done a lot of work. I will have a look at it to get some ideas. Thanks.