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.
| Setting | Typical B-series value | Notes |
|---|---|---|
| Cylinders / engine type | 4, piston 4-stroke | |
| Firing order | 1-3-4-2 | |
| Injection mode | Sequential, 4 injectors | Factory injectors are about 235-240cc, low current setting |
| Ignition mode | Distributor | Change to Direct if you convert to K-series coils |
| Ignition edge | Rising (distributor) | Falling if you run K-coils |
| Dwell mode | Constant Charge | The ECU controls dwell time for the distributor igniter |
| Trigger teeth | 24 on most engines, 16 on early ones | Home is 1 tooth |
| ESP trigger pattern | Honda - B Engine | Same setup for B16A and B18C |
| Trigger / home sensor type | Reluctor, falling edge | Filter level 0, ground reference disabled |
| TDC angle | Around 445 | Distributor can be rotated, so always confirm with a timing light |
| Quick start | Disabled |
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 pin | Circuit | Haltech wire | Haltech function | Elite 550/750 | Elite 1000-2500 |
|---|---|---|---|---|---|
| 1 | Igniter input | Yellow/Black | Ignition output 1 | 3 | A3 |
| 2 | CKP + | Yellow | Trigger (+) | 31 | B1 |
| 5 | CKP - | Green | Trigger (-) | 33 | B5 |
| 4 | CYP + | Yellow | Home (+) | 32 | B2 |
| 6 | CYP - | Green | Home (-) | 34 | B6 |
| 3 and 7 | TDC + / - | - | Not used | - | - |
| 8 | Tacho (engine speed) | - | Factory tach circuit | - | - |
| 9 | Switched 12V | Red/Yellow | From 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.
| Sensor | Signal pin (550/750 / 1000-2500) | 5V supply | Ground | Notes |
|---|---|---|---|---|
| TPS | White, 14 / A14 | Orange, 9 / A9 | Black/White, 11 / B14-B16 | Sensor pin 1 ground, 2 signal, 3 supply |
| MAP | Yellow, 15 / A15 | Orange, 9 / A9 | Black/White, 11 / B14-B16 | Sensor pin 1 supply, 2 signal, 3 ground |
| Coolant (TW) | Violet, 30 / B4 | Pull-up | Black/White, 11 / B14-B16 | Not polarity sensitive |
| Air temp | Gray, 29 / B3 | Pull-up | Black/White, 11 / B14-B16 | Not polarity sensitive |
| Vehicle speed | Any free SPI or DPI | Switched 12V | Ground | 3-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
| Device | How the ECU drives it | What to know |
|---|---|---|
| VTEC solenoid | Cam 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 switch | Any AVI or SPI with pull-up, switch grounds when active | Optional. The Haltech doesn't need it to engage VTEC |
| Intake air bypass (GSR and H22) | Any output, active high | Factory switches to the short path at 5,750 rpm |
| EVAP purge solenoid | Any output, active low | Factory blocks purge until coolant passes 163°F (73°C) |
| Idle air control valve | Any low-side output, 12V ignition on the other pin | Two-wire valve |
| Power steering switch | Any input, pull-up recommended | Grounds 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 terminal | Purpose |
|---|---|
| B (large stud) | Charge output to battery positive |
| IG | Key-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
| Symptom | Usually |
|---|---|
| Cranks with no RPM signal | CKP pair on the wrong pins, or trigger and home swapped |
| RPM but no spark | Ignition edge set to falling on a stock distributor, or no 12V on distributor pin 9 |
| Air temp reads open or shorted | IAC plug fitted to the air temp sensor by mistake |
| Timing drifts as rpm rises | Distributor play. Consider the 12-tooth CKF or a cam gear trigger |
| Oil pressure dips at low rpm under load | VTEC 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.




