Generate output emulating a variable reluctance sensor

I have an early 1980's marine diesel tachometer, and I'm trying to get the needle to move. Eventually I'll want to actually use it as a tachometer, but one step at a time.

In the original engine, this tachometer was using input from a variable reluctance sensor (inductive pickup?). This sensor was isolated from the rest of the electrical system and AFAIK it essentially consisted of a coil that would generate a pulse every time a crankshaft tooth passed it. The tachometer hence has four pins: + and - for supply voltage (12VDC), and W and G for the signal. When I hook the tach up to a 12V supply I see approximately 2VDC across W and G (open circuit, W is positive). I believe the tachometer works by effectively counting polarity reversals (zero crossings) on these pins.

What I'd like to try to do is emulate the output of the original sensor using an Arduino. One stumbling block here is that I don't actually have any technical details about the original sensor, nor do I actually have one, so I'm left guessing based on other similar sensors from the era, but that's also a problem for later. For now I'd be happy if I could make the needle move at all, to at least prove that the thing works. I've already tried some simple experiments with tone(), hooking up the Arduino to the tach via a 1kohm resistor and a 0.1uF capacitor in series, but no dice - while that removed most of the DC bias when open circuit, hooking it up to the tach instead gave me a signal where low was ~2V and high ~7V.

So, what's the simplest way to emulate a variable reluctance sensor? I've seen a few references to using an op-amp with a voltage follower hooked up to a 1:1 transformer, but perhaps there is an even simpler way? Any input appreciated. I'm pretty good at programming (although unexperienced with microcontrollers) but my electrical engineering fundamentals are incredibly shaky at best.

As I understand it these sensors consist of a coil wound on a permanent magnet that juts out towards the passing teeth - as the metal teeth come past they vary the magnetic circuit (changing the magnetic "resistance" aka reluctance), and this changes the flux through the coil.

So you should see pulses in the coil, but their amplitude will increase with speed as coils respond to rate of change of flux.

Thus the signal is small at low speeds and larger at high speeds. The inductance of the coil is designed to be loaded with a particular resistance value so that the amplitude levels off as the speed increases (basically acts as a low-pass filter to counteract the rising amplitude with speed).

The device you describe sounds more complex - perhaps it already does some signal conditioning internally? Or perhaps the power is only needed to generate the magnetic field?

So I wonder if there's a way you can check the output waveform from it in operation?

Thanks @MarkT for the input, and sorry for not responding for so long - I was on vacation and out of town.

Your understanding of the sensor doesn't quite match mine - my understanding is similar to yours, but it's the frequency of the signal that changes as the rotational speed of the gear increases. I found this bachelors' thesis paper from a couple of guys doing almost exactly what I want to do, and in there it's mentioned in passing that the devices relying on these sensors basically count zero crossings in the signal and don't care so much about anything else.

I don't have an original sensor to look at (they're nonsensically expensive for what they are) so I can't look at the signal that way, but that paper gave me some confidence I'm not completely off my rocker here. What they did in that paper was basically what I described above - use an 1:1 audio transformer to create an inductive source that's sufficiently similar to the original sensor. Looking around some more I also found this GitHub repo where someone took that idea and simplified it a bit for a similar automotive application (this time some kind of wheel rotation sensor, I think?).

Both of these do some pretty sophisticated stuff on the Arduino side to generate a 2-bit digital output (interleaving two PWM signals, basically), but I figured for this application I might not need that - the tach is very unsophisticated compared to the ECU's those guys are trying to talk to.

So, stealing ideas from those two sources, I went and bought a 600 ohm inductance 1:1 audio transformer and an op-amp, and I built essentially this circuit:

F_IN is the 5V PWM input from the Arduino, and TACH_OUT is where I plug in the W lead to the tachometer. The tachometer is marked "165000 imp/min" and the max reading is 5000 rpm, which I understand to mean it wants 165000 impulses (zero crossings?) per minute to show a 5000 rpm reading. That's 2750 Hz. So, to test it out, I tried to get it to show 2500 rpm by using tone(8, 1375) on the Arduino, and lo and behold, that actually worked!

On the scope the waveform ends up looking like this:

Now that I know the tach works and that I can control it in this manner I have a bunch of other problems to solve (like getting an input from the alternator and generating a signal from that) but those are a lot more tractable to me.

This might still very well be wrong in some way though; for example I notice the transistor getting very hot. Trying to simulate it in LTSpice also gives nonsensical results and the simulation grinds to a halt after 2ms but that's most likely me doing something wrong, because I don't know anything about LTSpice.

TRy using one phase of your automobile alternator, to ground. It's AC and low voltage.
I had a 1981 Chevy V8 Diesel and added an aftermarket tachometer that was connected exactly that way.

That's what I'm planning to use as an input for this, yep, but the vintage tach can't use that input directly (wrong frequency and it's not adjustable).

If I just wanted a tachometer I could just buy a cheap one that runs directly off of the alternator, but this project is more about learning something and maybe getting a vintage thing to work.

Is the old tach sealed so you can't make a schematic of the innerds?

I've tried to pry it open but with no success. It's probably possible to open it but I don't know how without damaging it. But now I don't need to do that, because I got a working solution to power it with anyway.

Brief addendum for the possible benefit of whoever might encounter this thread via search engine at some point in the future: I noticed the transistor Q1 getting quite hot, and a friend pointed out that there's nothing limiting the current through it other than the series resistance of the transformer. On their advice I modified the circuit slightly by adding an 1uF capacitor and an 1k resistor, like so:

This solves the problem with the transistor getting hot but makes the falling edges gentle slopes instead of sharp transitions. In my case that's not an issue at all though, the tach doesn't seem to care. So, I'm happy with how this works.

(Both the caps are MLCC's, for the record.)