[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4752: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4754: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4755: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4756: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
Tractorsport Flowbench Forum Archive • View topic - RPM reading
Page 1 of 2

PostPosted: Tue Apr 15, 2008 1:07 pm
by Sandra
I have a rolling road and are now trying to get the engine rpm numbers to the computer. I have tried to build a inductive rpm sensing circuit from the sketch on Sportdevices homepage (the second sketch). But I cannot get it working. Is there anyone who has an idea about what to do? Schould I use another sketch?

PostPosted: Tue Apr 15, 2008 5:40 pm
by Tony
Are you using the Sport Devices circuit board and inductive pickup as shown in the article, or are you copying this circuit from scratch with something you have built up yourself?

PostPosted: Wed Apr 16, 2008 3:30 pm
by Sandra
I have copy it. I am using an inductive pickup and I have connect the output signal with an interface board that I have connected to the computer. I have a program written with C++. The program is working it is the signal to the interface board that is the problem. Do you think I should do it another way? Or do you have any suggestions on what to do?

PostPosted: Wed Apr 16, 2008 4:55 pm
by Tony
What are you using for an inductive pickup?
Do you have access to an oscilloscope?
Are you sure your software can recognize the fairly narrow ignition pulses produced?

PostPosted: Mon Apr 21, 2008 3:59 pm
by Sandra
I am using inductive pickup from a ignition lamp. I do not have an oscilloscope. I don't know if the computer card recognize the pulses. I think the software is ok. Is there any other way to do this?

PostPosted: Mon Apr 21, 2008 5:03 pm
by Tony
It is difficult to diagnose a problem without knowing exactly what you have there. But my first thoughts are that the computer hardware or software may not be recognizing the input signals properly.

How are these signals fed into the computer? Is it an input port, an interrupt, or does it go direct into some type of internal hardware counter or period timer?

Is this input edge sensitive or logic level sensitive? And how does the software program actually work to detect and count these pulses?

If you can tell me the chip type and pin number that the ignition input signal goes into, that might help too.

PostPosted: Tue Apr 22, 2008 3:08 pm
by Sandra
I am using a USB experience interface board from velleman and the ignition input signal goes into "digital input number 2" on the board. Is that helping at all?
I am open for all type of solutions to this problem, so if you can help me in any way I would be very pleased!

PostPosted: Tue Apr 22, 2008 7:03 pm
by Tony
O/k I have the user manual open at page ten, which has details of input pulse counter number two. This has limitations that are going to make it very difficult to use for directly reading engine rpm.

It can certainly count up individual input pulses, provided they are each greater than 2mS wide, and arrive no faster than 2 KHz.

There are two problems.

The first is that the inductive pickup circuit does have a pulse stretcher, but the pulses will still be far too narrow to be detected by your K8055 interface board. This can be fixed by replacing the 47nF capacitor with something much larger, 470nF should work. That should at least get the pulse counter counting individual ignition pulses. For this to work the "debounce" setting for counter two will need to be set to zero.

Now suppose the engine is running at 6,000 rpm, and you clip your inductive pickup onto a spark plug lead. There will be 3,000 plug firings per minute.

If you reset your counter to zero and wait six seconds before reading the result, the counter will have counted up to 300 (at 6,000 rpm). You can then multiply that 300 x 20 in software to get 6,000. That will give an rpm resolution of 20 rpm, but you can only take a new rpm reading every six seconds, which is far too slow.

Speeding up the readings, so you reset, and then measure every 0.6 seconds, will produce a count of only 30 in the counter (at 6,000 rpm). That will give nice fast readings, but the rpm resolution will only be 200 rpm, and it will jump backwards and forwards one count, with an uncertainty of 200 rpm. That is going to produce some very lumpy rpm readings.

If you clip onto the ignition coil wire, that will multiply the resolution by the number of cylinders, and will certainly help. But the software multiplication factor will need to change for different numbers of cylinders. If your engine has no distributor and multi ignition coils, this will not be possible.

Anyhow Sandra, try increasing that 47nF capacitor first, and see if that helps. You will also need to set the "debounce" factor in software to zero from the original default value.

PostPosted: Fri May 02, 2008 3:02 am
by Sandra
I have finelly had time to try out your suggestion about the stronger capacitor. I used a capacitor with 330nF, I also put the debouncer on 0. And as you said the signal started to show but the signal was VERY jumpy. So I measured the Hz and it was also very jumpy. Why is that? Is the capacitor still to small?

Another problem was that it didn't allways work, sometime when I started up, there were no signal at all and the next time it was a signal. What may be the problem here?

PostPosted: Fri May 02, 2008 6:16 am
by Tony
Difficult to say, but try an even larger capacitor and see if that helps. It probably will not, but try it anyway.

The rpm reading will still always jump around a certain amount, because there will always be a one count uncertainty at every reading. The longer the time period you accumulate total counts (for each rpm reading), the smaller the jumps will be. But you can never eliminate jumps totally in the raw readings.

What time interval period are you actually using to measure the frequency?

For instance, at 6,000 rpm there will be 3,000 firings per minute or 50Hz. If you count incoming pulses for each one second interval, the frequency will display either as 49 or 50, or maybe 50 and 51. It will jump erratically between 49 and 50, or maybe between 50 and 51 every second. That is perfectly normal and to be expected. That would be a 2% random jump.

If you then converted those readings back to rpm, the random jump would still be 2% or 120 rpm.
The reading might jump erratically between 5,880 and 6,000 or between 6,000 and 6,120 rpm every second. That would be quite normal too,

At engine speeds lower than 6,000 rpm, the random jumps will still be 120 rpm, but proportionally they will appear much worse.

PostPosted: Sat May 03, 2008 1:49 am
by Sandra
Yes I understand that the freqency of the reading can make it jump on the computerscreen. But what I meant was that the Hz is jumping when I measure it with a multimetre, at that point no program is connected, so how come it jumps?

The Hz at that point should be constant as I understand it?

PostPosted: Sat May 03, 2008 2:26 am
by Tony
No real way of knowing if there is something wrong with the signal itself, or it is just the way it is being measured.
To be sure that the signal itself is o/k, it really needs to be checked with an oscilloscope.

There are two distinctly different ways to measure very low frequencies.

If the frequency is measured directly, the readings always jump one digit.
If the time PERIOD is measured between incoming cycles, and the actual frequency is then calculated in software from the time interval. This is called "reciprocal counting" and extremely high resolution can be obtained with very fast readings, and without the jumping problem. Not knowing how your multimeter actually works it is difficult to say.

PostPosted: Wed May 21, 2008 3:26 pm
by Sandra
Now I have tried to run it with an oscilloscope, and as we thought there were no clean wave. I have tried all different ways of connecting it, changed all capacitor and resistors but it did not help. I have also tested the precision timer so I know that it is working. Can you think of anything else that can be the problem??

Or maybe there is whole another way to do this, with other parts?? I'm going crazy over this.

PostPosted: Wed May 21, 2008 5:48 pm
by Tony
It is not easy to guess what the problem might be, without actually being there myself, and seeing everything as you have it hooked up.

Have you tried grounding the circuit to the metal frame of the car?

PostPosted: Thu May 22, 2008 1:21 pm
by Sandra
I understand that it is not easy to sit on the other side of the world and guess what the problem is, but you really have helped me a lot so far.

I was thinking about the problem and was reading on the precisions timer's datasheet and I realized that the precision timer should have a negative pulse but according to my measurements it is a positive pulse from the thyristor. Can this be what is causing my problems, you think? Is there any easy way to test the thyristor to know that it is ok?

Another question, totally off topic, do you know how much a rolling road "normally" accelerate?