REAPER·CONTROLS

FIG. REF: SIG-TYPE-01  ·  SUBJECT: SIGNAL TYPES  ·  READ: 7 MIN

Why Coil Negative, Coil Positive, and Square Wave Aren't Interchangeable

■ coil-based — rounded, ringing, voltage varies with RPM ■ ECU square wave — fixed amplitude, sharp edges

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.

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:

coil negative / coil positive / square wave in → input identification + adaptive threshold + pulse scaling → one clean 12V square wave out, to tach, shift light, or Wraith

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.

NOT YET SHIPPING

Get notified when Puca is available

One email when it ships. No spam, no drip campaign.

References