Hey guys,
I've got an old Ford Festiva project car, and I want to build a digital tach for it.
Right now there's no tach at all, so i'm wondering where is best to get a signal for motor RPM.
Thanks,
Panici
Hey guys,
I've got an old Ford Festiva project car, and I want to build a digital tach for it.
Right now there's no tach at all, so i'm wondering where is best to get a signal for motor RPM.
Thanks,
Panici
If your model has an OBD port you can buy a USB or Bluetooth OBD dongle and read the RPM from that. Googling for Arduino and OBD should give you a few hits.
If it's a gasoline engine, then a common way of doing this is to pick up the ignition pulse using a wire close to one of the ignition leads, assuming it has ignition leads.
Chagrin:
If your model has an OBD port you can buy a USB or Bluetooth OBD dongle and read the RPM from that. Googling for Arduino and OBD should give you a few hits.I wish it had an OBD port. It's older then that.
dc42:
If it's a gasoline engine, then a common way of doing this is to pick up the ignition pulse using a wire close to one of the ignition leads, assuming it has ignition leads.
There's a distributor, yes. I could use the main wire off of the coil.
But what kind of circuit would I need to not fry the arduino?!
Don't use the coil wire just use a plug wire. Number one cylinder usually. Remember that the plug fires once every two revolutions on a four cycle motor. You may find that there is actually a tach signal available from the distributor or somewhere. Check the vehicle's wiring diagram.
I'll bet that the pickup from an old timing light could be used.
One circuit I have seen used is a 555 timer IC wired as a monostable. A wire is wrapped around the HT lead of one of the spark plugs, and the wire goes to the base of an NPN transistor whose collector drives the reset input of the 555. The 555 cleans up the signal and makes sure you only get one pulse per ignition.
Don't make this too complicated. Most cars have a tach signal (0-5V or 0-12V square wave) somewhere on the car. EEC-IV Fords with EDIS had a signal that could be tapped straight from the ignition module. For a 6-cylinder, you would see 3 pulses/rev. Many cars have a conventional tach drive signal outputted from the MCU as well because most models had a tach or at least an option for one. A typical repair manual wiring diagram can help you identify that wire, usually with a color code or pin# from the main computer.
Sniffing from the CAN bus is overly complicated unless you want to utilize over CAN bus functions.
What year is your car?
Digger:
Don't make this too complicated. Most cars have a tach signal (0-5V or 0-12V square wave) somewhere on the car. EEC-IV Fords with EDIS had a signal that could be tapped straight from the ignition module. For a 6-cylinder, you would see 3 pulses/rev. Many cars have a conventional tach drive signal outputted from the MCU as well because most models had a tach or at least an option for one. A typical repair manual wiring diagram can help you identify that wire, usually with a color code or pin# from the main computer.Sniffing from the CAN bus is overly complicated unless you want to utilize over CAN bus functions.
What year is your car?
Car is ~1994 Ford Festiva. 1.3L Mazda engine.
Some hunting on FordFestiva.com forums says that there is a green/yellow wire fed into the gauge cluster with Tach signal on it. (Despite the cluster not having a tach)
How do I figure out if it's 0-5v or 0-12v without a 'scope?
Will a multimeter on AC mode work if I keep my revs approximately constant?
Panici:
How do I figure out if it's 0-5v or 0-12v without a 'scope?
Will a multimeter on AC mode work if I keep my revs approximately constant?
It's a bit of a kludge, but since there should be only two possibilities it could work. Keep in mind though that the multimeter will be displaying VRMS, or the Root Square Mean and your output will be a PWM signal. So you should use the information found on the table at this page to calculate the peak value.
Far-seeker:
your output will be a PWM signal.
Are you sure it's variable duty cycle and not variable frequency?
PeterH:
Far-seeker:
your output will be a PWM signal.Are you sure it's variable duty cycle and not variable frequency?
Well I probably was implying more certainy than warrented. Yet even if the signal is a variable frequency signal the PWM formulas should, over a range of RPMs, yield results good enough to distinguish between 0 to 5 V and 0 to 12 V pulses. As previously stated this is a kludge.
I have some more details.
Car is a first generation 1993 Ford Festiva with the fuel injected Mazda B3 motor.
I haven't had a chance to throw a multimeter on there yet. Going to try to today.
A 1993 Ford should have a EEC-IV computer. (Although you mentioned the engine is actually Mazda built)
This book would be helpful if you plan to continue modding you car
I have a copy at home I can look at and see if there is some more information I can provide you with.
Digger:
A 1993 Ford should have a EEC-IV computer. (Although you mentioned the engine is actually Mazda built)This book would be helpful if you plan to continue modding you car
Ford Fuel Injection & Electronic Engine Control: All Ford/Lincoln-Mercury ... - Charles O. Probst - Google BooksI have a copy at home I can look at and see if there is some more information I can provide you with.
Thanks for the link.
I've actually got limited access to a scope now. I'm going to test the tach signal tomorrow, and i'll let you guys know what I find.
Well I didn't come up with anything useful. Your car is Kia built with a Mazda engine and a Ford nameplate. There just isn't much info out there.
OK, so I was able to borrow a 'scope from the ECE department at school.
Here's what I found.
Zero volts, drop to -1.20v, brief spike to 50v, plateau to 2.40v, drop back to zero volts.
I believe the logic high voltage for an arduino is 3v so my voltage is too low? I'll also have to filter out that 50v spike I'm assuming. Possibly get rid of the negative as well?
Thoughts?
According to the ATmega328's datasheet the threshold for HIGH on digital I/O pins is 0.6*VCC. So for an Uno powered at exactly 5 VDC you are correct. To raise the voltage you could use a level shifting circuit, which really only needs one transistor (since you are interested in voltage a MOSFET is the obvious choice, but it can be done with a BJT) and biasing resistors since you have +5 VDC avialable from the Arduino.
However, if you used an Arduino board that runs at 3.3 VDC a +2.4 VDC pulse would work, presuming you got ride of the negative pulse and the spike.
Were you measuring a yellow wire with a green stripe? Looking at this diagram, your scope reading makes sense
http://www.justanswer.com/ford/5l25v-ford-festiva-gl-93-ford-festiva-1-3-no.html
As you can see the Y/GN wire runs between the coil and the ignition module. Exactly where you would tie in an aftermarket tachometer. The tach usually will trigger on a rising/falling edge or a zero-cross. The dip in signal is probably the coil being charged and the spike and rise in signal is the inductive flyback from the coil. Try probing the SPOUT wire (Black w/ Orange stripe) going from the ignition module to the PCM. The SPOUT (spark output) has to do with spark advance/duration and might yield some useful signal. (Like a consistent rising or falling edge that can be correlated to a timing event.)
You could also take the existing signal and clamp it with a Zener diode and use an opto-coupler to isolate it from the microcontroller.
Far-seeker:
To raise the voltage you could use a level shifting circuit, which really only needs one transistor
Do you have an example of such circuit? I've never built one before.
Digger:
Were you measuring a yellow wire with a green stripe? Looking at this diagram, your scope reading makes sense.
You could also take the existing signal and clamp it with a Zener diode and use an opto-coupler to isolate it from the microcontroller.
Yes, I was measuring the Y/GN wire. I don't have access to the 'scope anymore to check the SPOUT wire.
I can't quite visualize the circuit you're talking about. Why a Zener diode? Wouldn't a flyback diode work better?
I only suggested the Zener as a means of keeping the voltage under 5 volts, but really you just need to protect the micro's input pins which need to be kept between 0 - 5VDC by whatever means are easiest and robust. Good luck!