Honda / Acura B Series Engine

Technical Library › Engine Information › HondaUpdated Sep 2026

The Honda B-series is one of the most common engines we see on a Haltech Elite, and it rewards getting the basics right. Here is our practical guide to the trigger, ignition, sensors and factory solenoids, with the Elite pin assignments you need to wire it up.

A quick decoder for B-series engine codes

Honda used the B-series across a long list of cars: Civic, CRX, Del Sol, Integra, Prelude, Accord and CR-V. There are 28 distinct codes, and they all follow the same pattern. After the B come two digits for displacement (B16, B18, B20), then a letter for the version. US-market engines add one more digit on the end, and most Japanese-market engines don't. So a B18C5 is the US-spec Integra Type R engine, while a plain B18C is its JDM counterpart. Knowing the exact code matters when you're looking up injector size, cam specs or which sensors your engine actually has.

Base settings for a Haltech Elite

These are the values we start from on a stock B-series. Displacement ranges from 1.6 to 2.0 liters depending on the code.

SettingTypical B-series valueNotes
Cylinders / engine type4, piston 4-stroke
Firing order1-3-4-2
Injection modeSequential, 4 injectorsFactory injectors are about 235-240cc, low current setting
Ignition modeDistributorChange to Direct if you convert to K-series coils
Ignition edgeRising (distributor)Falling if you run K-coils
Dwell modeConstant ChargeThe ECU controls dwell time for the distributor igniter
Trigger teeth24 on most engines, 16 on early onesHome is 1 tooth
ESP trigger patternHonda - B EngineSame setup for B16A and B18C
Trigger / home sensor typeReluctor, falling edgeFilter level 0, ground reference disabled
TDC angleAround 445Distributor can be rotated, so always confirm with a timing light
Quick startDisabled
Always verify timing

Because the distributor housing can move, the TDC angle is only a starting number. Lock the timing in the software, put a light on the crank pulley and adjust until the two agree before you tune anything else.

How the trigger system is laid out

On a B-series, the distributor carries the crank reference, cam reference and ignition parts all in one housing. Inside it are three separate pickups, and all of them are reluctor (variable reluctance) sensors:

  • CKP: the main crank position signal. Most engines have 24 teeth here, early ones 16. This goes to the Haltech trigger input.
  • CYP: a single-tooth cylinder position signal. This is your home (sync) input.
  • TDC: a 4-tooth signal Honda uses during cranking. The Haltech doesn't need it, so leave it unconnected.

Some B-series engines also have a CKF (crank fluctuation) sensor at the crank pulley with 12 teeth. If yours has one, we strongly suggest using it instead of the 24-tooth distributor signal. It reads straight off the crankshaft, so it isn't affected by timing belt stretch or distributor play, and your ignition timing will be more accurate. The trigger configuration settings don't change.

A popular upgrade is a T1-style trigger kit, which puts 12 crank magnets plus 1 home magnet on the exhaust cam gear and reads them with a dual-channel Hall effect sensor. That setup uses the Generic - Multi-tooth - Single Tooth Home pattern on cam, with a TDC angle of roughly 490.

Distributor wiring for the Elite

This is where most B-series swaps go wrong, so take your time. The columns show the Elite 550/750 pin and the Elite 1000-2500 pin for each circuit.

Distributor pinCircuitHaltech wireHaltech functionElite 550/750Elite 1000-2500
1Igniter inputYellow/BlackIgnition output 13A3
2CKP +YellowTrigger (+)31B1
5CKP -GreenTrigger (-)33B5
4CYP +YellowHome (+)32B2
6CYP -GreenHome (-)34B6
3 and 7TDC + / --Not used--
8Tacho (engine speed)-Factory tach circuit--
9Switched 12VRed/YellowFrom the ignition relay in the fuse box--

The ignition coil and igniter live inside the distributor too. The igniter wants a rising edge from the ECU, which catches people out because most modern coils fire on a falling edge. If you have spark at cranking but it's erratic or at the wrong time, check that edge setting first.

Sensor pinouts

Each sensor below uses the Elite 5V supply and signal ground. Ground pins on the Elite 1000-2500 can be any of B14, B15 or B16.

SensorSignal pin (550/750 / 1000-2500)5V supplyGroundNotes
TPSWhite, 14 / A14Orange, 9 / A9Black/White, 11 / B14-B16Sensor pin 1 ground, 2 signal, 3 supply
MAPYellow, 15 / A15Orange, 9 / A9Black/White, 11 / B14-B16Sensor pin 1 supply, 2 signal, 3 ground
Coolant (TW)Violet, 30 / B4Pull-upBlack/White, 11 / B14-B16Not polarity sensitive
Air tempGray, 29 / B3Pull-upBlack/White, 11 / B14-B16Not polarity sensitive
Vehicle speedAny free SPI or DPISwitched 12VGround3-wire sensor

Coolant sensors: there are two

The ECU sensor is the two-wire TW sensor at the end of the head. The single-wire sender near the distributor only drives the factory dash gauge, so don't connect the Haltech to it. There's also a two-wire fan switch at the thermostat that grounds the fan relay somewhere around 196-203°F and releases it again around 181-189°F. You can keep it, or remove it and let the Haltech thermofan function run the fan with your own on and off points.

Air temp: watch the connector

The factory intake air temp sensor on the manifold shares its plug style with the idle air control valve. Plug the IAC harness into the air temp sensor and the sensor fails. The factory sensor also reacts slowly, so we usually swap to an open-element sensor like the Haltech 1/4 NPT air temp sensor.

Factory solenoids and switches

DeviceHow the ECU drives itWhat to know
VTEC solenoidCam Control Switched on a high-side capable output (stepper or DBW)Engaging VTEC costs oil pressure, so keep the switch point up in the rev range
VTEC pressure switchAny AVI or SPI with pull-up, switch grounds when activeOptional. The Haltech doesn't need it to engage VTEC
Intake air bypass (GSR and H22)Any output, active highFactory switches to the short path at 5,750 rpm
EVAP purge solenoidAny output, active lowFactory blocks purge until coolant passes 163°F (73°C)
Idle air control valveAny low-side output, 12V ignition on the other pinTwo-wire valve
Power steering switchAny input, pull-up recommendedGrounds under steering load, useful for an idle bump

VTEC, and why the switch point matters

VTEC isn't cam phasing. The head has more than one cam lobe profile per valve, and oil pressure pushes a locking pin that ties the high-lift rocker to the others. That oil path acts like a small leak, and oil pressure typically falls by around 15 psi when VTEC engages. That's why you should never let VTEC switch in at low rpm, where oil pressure is already lowest. Most setups engage above about 4,500 rpm. For the switching logic in ESP, see Cam Control Switched, and for the dual runner output see Dual Intake Runner.

Charging system and electrical load

B-series alternators are ECU-controlled. The ECU picks between a low-output mode of roughly 12.4-12.9V and a high-output mode of about 14.4-14.9V, using an electrical load detector (ELD) as one of its inputs.

Alternator terminalPurpose
B (large stud)Charge output to battery positive
IGKey-on power
C (control)Command from the ECU: held high (about 8V) for high output, pulled low for low output
FR (field reference)Feedback to the ECU: the regulator pulls a 5V signal down while the field is on
L (lamp)Warning light circuit. Early and late models drive it differently

The factory ECU only drops to low-output mode during starting, or when every one of these is true: electrical load under about 15 amps, speed between 10 and 45 mph (or idling in drive), under 3,000 rpm, coolant above 167°F (75°C), intake air above 68°F (20°C) and A/C off. Otherwise it charges at the higher voltage. You can recreate that logic in ESP with conditions if you want to keep factory-style charging. The ELD itself reads about 2-4V at light load and 1-2V at heavy load. More on the ESP side in Alternator Control.

Plug-in adapter option

If you'd rather not rewire, the Elite 1000/1500 Honda OBD-I B-Series adaptor harness plugs into the factory ECU connector, and there's a kit version with an Elite 1500. It suits 1992-95 cars with OBD-I ECUs, including codes such as P28 (Civic Si/EX), P30 (Del Sol Si), P61 and P72 (Integra GSR), P74/P75 (Integra LS/GS), and P13/P14 (Prelude). Check the middle three characters on your factory ECU label. A few of the listed ECU codes come from non-B-series engines that share the connector.

Troubleshooting

SymptomUsually
Cranks with no RPM signalCKP pair on the wrong pins, or trigger and home swapped
RPM but no sparkIgnition edge set to falling on a stock distributor, or no 12V on distributor pin 9
Air temp reads open or shortedIAC plug fitted to the air temp sensor by mistake
Timing drifts as rpm risesDistributor play. Consider the 12-tooth CKF or a cam gear trigger
Oil pressure dips at low rpm under loadVTEC switching in too early

B-series FAQ

Do I need the VTEC pressure switch with a Haltech?

No. The Haltech can engage VTEC without it. You can still wire it to an input and log it, which is a handy check that the solenoid is working.

Can I run K-series coils on a B-series?

Yes. You change ignition mode to Direct and the edge to Falling, and wire one output per coil. It's a common reliability upgrade over the distributor igniter.

Where can I compare other Honda engines?

See our notes on the Honda K-series, F20C and what makes the K-series special. Not sure how to wire your specific car? Book a free consultation and we'll talk it through.