Very odd DBW PID P term behaviour - could it be a bug?

I am trying to get a solid DBW crank/cold/ase/warm up config using PID on a Honda J37 DBW TB.

When the engine cranks I see odd fluctuations in Debug PID P term which are causing issues with the DBW butterfly and is preventing catch and idle. If you look at the photo you can see DBW target drop from 6.0 to 0.50, then it goes to 7.50, then back to 0.50 this is over a two second period. I can’t figure out why its doing this.

Has anyone got any ideas why this might happen - it seems odd, I would appreciate others thoughts on this…

DBW-DIPINANDOUT-20250602_1620.emublog (5.2 KB)
MONDAY-pid.emub (145.4 KB)

Resolved: DBW Idle Control and Trigger Errors on K20A + J37 TB (EMU Black)

After very long days of troubleshooting intermittent idle inconsistencies and anomalous trigger errors, I wanted to document what I found in case it helps someone else running a similar setup.

:pushpin: Background

Platform is a high-comp K20A running an EMU Black with a Honda J37 drive-by-wire throttle body. The goal was a stable cold start, clean afterstart behavior, and proper idle control using DBW only — no IACV, Alpha-N fueling, and all ignition-based idle corrections disabled for this test phase.

:wrench: Step 1: DBW Setup Validation

To eliminate any potential issues in the DBW control path, I loaded a fresh blank base map and ran the EMU Black DBW Wizard. This auto-calibrates the throttle min/max voltages and confirms actuator function. In my case, the result was a perfect voltage sweep and blade control range, which ruled out hardware or calibration faults on the DBW side.

:warning: Step 2: Unexpected Trigger Errors

While monitoring logs during cold starts, I noticed repeated ‘unexpected missing tooth’ errors in the trigger diagnostics. This caused erratic behavior in crank sync during cranking and early idle — sometimes even disrupting idle mode activation logic.

I traced the issue to a subtle but critical misconfiguration:
In Ignition > Triggers > Primary Trigger, the Trigger Filtering was set to ‘High’.

:police_car_light: Important Note: All K20A cam and crank sensors are Hall effect (square-wave digital) sensors. They generate clean edges and do not require signal filtering in most aftermarket ECUs.

By leaving the filter on ‘High’, the ECU was likely seeing missing valid tooth transitions, interpreting them as sync loss. This explained the missing tooth errors and intermittent idle dropout (well that’s my theory!!!)

:soap: Step 3: Filter Correction

I set both Primary and Secondary Trigger Filters to ‘None’, rebooted the ECU, and re-logged cold starts. Result:
:white_check_mark: No further missing tooth errors
:white_check_mark: Stable sync state from cranking to idle
:white_check_mark: Cleaner idle activation behavior

:bullseye: Current DBW Behavior

With triggers clean and DBW fully mapped:

  • The engine now starts instantly on the button VERY NICE!
  • DBW target tracks warmup, ASE, and idle stages smoothly
  • RPM is stable within ±200–300 RPM of target (need to look into why this is happening)
  • Light throttle ‘blips’ sometimes hang momentarily (likely PID over-damping or feedback scaling), but harder blips are crisp and decay predictably

I’m now ~95% happy with the overall idle and warmup behavior. Some fine-tuning remains around PID loop damping and virtual target transitions, but the core logic is solid.


:end_arrow: Conclusion & Lessons Learned

This one came down to a misapplied trigger filter on a setup that didn’t need it. If you’re running Honda Hall sensors on EMU Black (or any standalone), don’t enable filtering unless absolutely necessary. Especially not ‘High’. The cleaner the signal, the less help the ECU needs.

It’s a small config detail that cost me hours of log review and idle control confusion. Hopefully, this saves someone else the same rabbit hole.

Forged HiComp pistons/ported head/aggresive cams K20A, DBW-only idle, EMU Black, J37 TB*