I have a 98 Mazda 626 GF 2L with a 2 pin camshaft position sensor.

I hooked up to the ecu to monitor it and was wondering how often it should be switching from Low to High.

The scan tool is returning a data sample approximately every 75 milliseconds ( I was logging 6 pid's ) and it was almost always returning low. Very rarely it would show a burst of high readings for about 450 milliseconds.

On a dohc engine I'm assuming the cam rotates at half the crank speed, so if it's idling at 600 rpm lets say then the cam will rotate 4 or 5 times per second. So if the crank has say 34 teeth and the cam gear 68 then a tooth would pass about 340 times per second or every 3 milliseconds?

So the signal would switch every 3ms?

The thing is there is no DTC code relating to the camshaft sensor.

Should I try logging again with just the one pid to try and get more frequent data samples? Or is my only option to backprobe the wire with an oscilloscope?


So I took off the valve cover, and apparently the cam sensor reads a bump on the camshaft gear:

enter image description here

OK, so at 600 rpm idle and camshaft running half speed, I should see the bump go by on a scan tool or oscilloscope about 5 times per second - i.e. the signal should go high about every 200 milliseconds? So even if I'm getting a data sample every 75ms I should see it with no problem I think.

  • I realized that your Mazda's sensor employs a permanent magnetic coil, not a Hall sensor, so updated my answer accordingly.
    – Zaid
    Nov 9 '15 at 19:05
  • The camshaft position sensor should be right next to the notch if that is the case, literally a few mm apart. I don't see the sensor in the picture, could you point out where it is supposed to be?
    – Zaid
    Nov 15 '15 at 20:37
  • It's on the valve cover, which I removed, but yeah, I verified that the bump passes exactly under the sensor. Nov 15 '15 at 20:40
  • 1
    Also, the blip in signal will have a very short duration if it is using just one notch to measure position. It's like a few degrees out of every 360 degrees. Imagine trying to ask your scan tool to hit that signal with a 75 ms poll. Can you see how it is more likely to miss it more than hit it? You'll need a lot higher resolution to capture it.
    – Zaid
    Nov 15 '15 at 20:43
  • 1
    I've updated my answer. Based on my calculations, even 5 ms won't cut it.
    – Zaid
    Nov 16 '15 at 11:14

From the repair link provided:

The Camshaft Position (CMP) Sensor is a permanent magnet output coil device that operates within a 5 volt DC reference range, and monitors the speed and position of the camshaft. A reluctor is attached directly to the camshaft, and is used to generate a digital signal as it passes the magnetic coil; the alternating lines of magnetic flux are used by the sensor to produce a digital pulse. The CMP signal is used by the Powertrain Control Module (PCM) to calculate ignition timing, firing order, fuel injector timing, and misfire diagnostics.

The number of teeth on the reluctor will play a role in determining the frequency of the sensor's signal and not the number of teeth on the camshaft gear.

Your Mazda's CPS relies on a single notch that has a angle duration of around 5° per revolution, or 360°. At idle (600 crank rpm), the camshaft will be spinning at 300 rpm, or 5 rps.

This means that the camshaft gear will complete one revolution once every 200 ms, of which the notch will pass by the camshaft sensor in less than 3 ms.

According to the Nyquist theorem, for your scan tool to be able to pick up the change in signal as the notch passes by, it would have to poll the device every 1 ms (more than double the expected signal frequency, 1 kHz in this case). Using a frequency lower than the Nyquist frequency will remove the guarantee that the sampling rate will be able to capture changes in the signal from the CPS.

Remember that this is at idle; the higher the crank rpm, the higher your sampling rate needs to be. Given the inherent latencies of most scan tools, I think your best option would be to backprobe the sensor.

  • Shouldn't the scan tool need to be capable of a refresh rate of the maximum amount of rpm of the engine times the number of teeth? I think I read somewhere the scan tool needs to be able to read at twice the rate of the cam shaft ... if I were to guess why it would be to cover both ends of the tooth: the on and then the off. Just throwing it out there and correct me if I'm wrong. Nov 9 '15 at 22:31
  • @Paulster2 : the sample calculation in my answer is at 600 rpm but the same principle applies if you have 6000 rpm (need 10x higher sampling rate). The reason it needs to be at least doubled is where the Nyquist theorem comes into play; you can imagine that a square waveform wouldn't look square if it was sampled at the frequency of the wave itself, which is what Robert appears to be facing.
    – Zaid
    Nov 10 '15 at 7:33
  • Works for me ... Like I said in chat, I'm not an EE guy and this falls directly into that realm. Nov 10 '15 at 18:26
  • I took my valve cover off today and there is no reluctor. There is just a single raised notch which passes by the sensor once per revolution. I thought maybe someone took the reluctor off, but looking at the pictures in the haynes manual they don't show a reluctor attached to the cam gear either. Nov 11 '15 at 20:22
  • @RobertS.Barnes whatever is effecting the signal will be right next to the head of the camshaft position sensor. Do you have a picture?
    – Zaid
    Nov 12 '15 at 7:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.