1) Have you polled the ECU with an analog meter to check for stored codes? If not, do that next.

2) How old is the o2 sensor? The system goes into closed loop after warmup and may be throwing a bad voltage. You can monitor it with a meter, but if it's old it should be replaced on principle.

3) Is the ECT sensor ok? It's also used in closed loop calculations. You can test with a meter.

4) This is a long shot, but possible - since you say the issue is worse (or only) at/near idle, the distributor crank angle sensor could be bad. The distributor is an optical reader with 2 sets of slots. Below ~1000 rpms or so, the ECU uses the fine set of slots for idle control ignition advance adjustment - above the cut in/out point, it reverts to the coarse set for ignition control. The easy way to test it is to swap in a known good distributor, but make sure you get a '90/'91 distributor - they may be different from the '89.

5) Mounted on the coil bracket is a small round capacitor and an LC filter that passes a conditioned signal to the tach. I'm not sure what, if anything, happens to ECU calculations if those go bad, but if you can get the engine to idle erratically for testing, try moving those little pigtail wires around and see if anything changes - the wires get brittle with heat and age, so don't get too aggressive. If you have a junk yard nearby, replacing that assembly is one thing to try...... some Diamantes have the same coil assembly and are easier to find than the trucks.

5) You've replaced the ECU, right? If so, that shouldn't be the problem, but you should still poll it for codes.

There's a pony in there somewhere.

Frank


'89 [color:"white"]G-Raider[color:"white"] [color:"black"]Supercharged 3.0L, MegaSquirt 2, lockup A/T, 2.5" exhaust, 172k, Cibie H4s/Oscar SCs, Hella Micro DE fogs, Cobra CB, Superwinch hubs, LSD rear/Aussie Locker front, Bilsteins, Lifeline AGM, Rust-Oleum