Crank Signal Circuit

I have a vehicle with and engine swap and I'm developing a device to keep the factory function of the tachometer.

Boards tested
Arduino Uno
Arduino Due

The tachometer receives it's signal of XXXXrpm via can-bus from the original engine computer. The factory ECU uses a reluctor wheel on the crankshaft to calculate rpm, and position. It uses a total of 36 teeth, with 2 teeth missing on one side and 2 valleys filled on the other side. It uses a +5V ref sensor. This makes a sequence of highs and lows that the ECU recognizes and synchronizes with to calculate said data.

I have written a program that has the "sequence" as one rotation and then via serial I can input a number and it will output that manys "sequences" (rotations) per minute continuously.

It was rocky at first, because I had the sequence backwards. Now I can view live data over OBDII and see that the ECU is in and out of sync with the signal every few seconds. A drop down resistor of 1Kohm helped this, but it still won't stay in sync.

I'm wondering if this is out of the resolution possible on the Arduino. At 1000rpm, your spinning 16.66~revs per sec, multiplied by 72 switches in the sequence makes 1200 high to lows ect per second.

Any input?

Got code?

1 Like

Why not use the CANBUS RPM signal for the tacho?

Because everything is already filtered and calculated by the manufacturer.
You could use a MCP2515, but you need to know what CANID the RPM is send on, and how the calculation is performed.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.