FIG. REF: SIG-TYPE-01 · SUBJECT: SIGNAL TYPES · READ: 7 MIN
Why Coil Negative, Coil Positive, and Square Wave Aren't Interchangeable
Ask three people where to tap a tach signal and you'll get three different answers: coil negative, coil positive, or "just use the ECU's tach output." All three names get used like they're interchangeable sources of the same thing. They aren't.
They're three genuinely different electrical signals, and the device sitting between them and your gauge has to treat them differently. A circuit built around one will only ever half-work on the other two, which is exactly the complaint behind most "I bought a universal tach adapter and it still doesn't read right" threads.
Three families, not one signal
Coil negative. The classic tap point: the coil's primary negative terminal, the side that switches to ground. Every time the primary current collapses to fire a spark, that collapse shows up as a sharp negative-going voltage spike at the coil, with some ringing as the field decays. It's an analog byproduct of the ignition event, not a signal designed to be read by anything.
Coil positive. The same primary winding, tapped from the battery-feed side instead. You're looking at the same event, but referenced differently: the spike now rides on top of system voltage and appears positive-going rather than negative-going. It carries the same timing information, but the polarity, baseline, and noise it picks up from the supply rail are all different from coil negative.
ECU / ignition box square wave. A dedicated tach output from an ECU, MSD box, or similar, built specifically to drive a tach. It's already a clean digital pulse train, usually a fixed 0-5V or 0-12V swing with hard edges, generated in software or by a shaping circuit rather than tapped off a raw ignition event. There's no ringing to filter and no amplitude that drifts with RPM. It needs level matching, not noise rejection.
Three different voltage ranges, three different polarities, three different noise profiles, and two of them are analog while one is already digital. "Tach signal" is really a family name, not a spec.
Why a fixed threshold can't serve all three
Every circuit that reads a tach signal has to decide, at some single voltage, "that's a pulse" versus "that's noise." That decision point is a trigger threshold, and it has to be chosen relative to the signal it expects.
- Set it high, to reject noise on a coil signal, and a clean but modest-amplitude ECU square wave sits below the threshold. Nothing triggers. The tach reads zero even though the ECU is outputting a textbook signal.
- Set it low, to catch a weak square wave, and the ringing on a coil signal crosses it multiple times per actual pulse. The tach reads double, triple, or just jumps around.
- Get the polarity backwards by wiring a coil-negative circuit to a coil-positive tap, and the trigger edge the circuit is looking for may never cleanly happen at all, or only happens on noise riding the supply rail.
This is the real reason a "universal" adapter marketed to work with "any ignition system" so often means, in practice, "works great on coil-negative, mostly works on coil-positive if you're lucky, and doesn't work at all on a square wave ECU output." One fixed threshold cannot simultaneously be tight enough to reject coil ringing and loose enough to catch a logic-level pulse.
Pulse count is a separate problem, stacked on top
Signal family is about shape and voltage. Pulse count is about how many of those pulses happen per revolution, and it's a completely separate mismatch that stacks on top of the first one. A coil-negative signal on a V8 with a traditional distributor fires once per cylinder per revolution. An LS-generation ECU commonly outputs a 2-pulse-per-revolution tach pattern regardless of cylinder count, which is why an LS swap into a V8 dash reads exactly half RPM even once the signal itself is read correctly. We cover that specific mismatch, and why a bare pull-up resistor doesn't fix it, in our write-up on LS swap tach signals.
Fixing the signal family without fixing the pulse count gets you a clean, stable tach reading of the wrong number. Fixing pulse count without fixing signal family gets you the right number, intermittently. Both problems have to be solved for the gauge to be both correct and reliable.
Why engine swaps make this worse
On a factory vehicle, the engine and the gauge were designed together, so whoever built the car already matched the signal family and pulse count once, at the factory. A swap breaks that match on purpose: an LS or a Coyote dropped into a chassis built around a completely different ignition system puts a signal source the gauge was never designed for on the other end of the tach wire.
That's also why the advice you find online is so inconsistent. Someone running an HEI distributor into an aftermarket tach had a coil-negative problem and a resistor fixed it. Someone running a Holley Terminator ECU has a square-wave-at-low-voltage problem that the same resistor does nothing for. Both posted in the same "LS swap tach not working" thread, with opposite root causes and the same symptom.
What a real translator does differently
Solving this for one signal family is a known problem with known fixes. Solving it for all three, from a single box, without the installer having to know which family they have, means the device has to do more than apply one threshold:
- Identify the input type. Distinguish a high-voltage ringing analog signal from a clean low-voltage digital one before deciding how to trigger on it.
- Adapt the trigger point to the signal present, rather than applying one fixed threshold to every input.
- Accept the actual polarity instead of assuming coil-negative is the only option.
- Scale pulse count independently of signal family, so a correct number of pulses per revolution comes out regardless of which input type came in.
- Drive a clean, fixed-amplitude output to the tach, shift light, or anything downstream, so whatever oddities existed on the input side never reach the gauge.
That's the job Puca is built around: one input stage that reads whichever of the three families is actually present and translates it to whatever the destination device expects, instead of asking the installer to figure out which adapter matches their ignition system. If your swap doesn't fit neatly into the LS-specific case, Puca is the broader answer; Hob is the narrower, lower-cost one built specifically around the LS mismatch.
Puca is in PCB development now. If you're staring at an ignition system and a tach that were never meant to talk to each other, get on the list below.
Get notified when Puca is available
One email when it ships. No spam, no drip campaign.
References
- Marshall Instruments, "How do I hook up my tachometer?" — coil negative, ignition box, ECU, and HEI/coil-pack tap points, and why each needs different handling.
- El Camino Central, "What polarity is tach signal wire — positive or negative?" — forum discussion of coil-negative vs. coil-positive confusion in the field.
- AutoMeter, "Tachometer does not work with my LS Engine Swap Application. Why?" — LS 2-pulse-per-revolution tach pattern vs. V8 gauge expectations.