what PROM? factory 1227170 ECM (86-88 V6), 1985 V6 ECM, or something else?
factory Fiero PROMs will be a bit lean for a 3.4L, but it's probably within the adjustment range. The BLM and/or INT values should come up and the mixture would get corrected. Still it's better to tune the PROM to match the engine. ECM "learning" is very simple and limited, that's why car companies have a different tune for everything, not one generic one.
I'm not even sure the "learned" fuel adjustment sticks between restarts. It might idle lean every time you start it until it starts measuring the O2 sensor feedback.
If this is a factory narrowband O2 sensor, then once it has warmed up enough to enter "closed loop", the sensor reading will rapidly fluctuate between 0V-1.0V. It bounces back and forth in that range. Closer to 0V is lean, closer to 1V is rich. Normally the reading is too erratic to be meaningful, you just want to see it swinging back and forth.
If it's staying constantly in the low end of that range, not moving around, then the ECM might not be entering closed loop.
Closed loop means that the ECM has started paying attention to the O2 sensor and is modulating the mixture to make the O2 reading bounce up and down between 0V-1.0V. The O2 sensor doesn't work until it gets hot, that's why the ECM ignores it until it thinks it's ready to work. It also ignores the O2 whenever it doesn't want to run at stoich (~14.3-14.7:1, depending on ethanol).
One reason for not going into closed loop is if it thinks the engine is cold. On the FBA1819 for example the Minimum Coolant Temperature for closed loop is 24.5C (and it also has to run for at least 60 seconds).
If the ECM is going into closed loop but it can't get the O2 sensor reading to cross between Rich and Lean, then you should get a Check Engine code.
This is all assuming you're using a factory Fiero PROM, not something custom.
The scan tool might tell you "cross counts" - that's counting how many times the O2 sensor has crossed between Lean and Rich readings. Watching how quickly the number increases tells you how quickly the sensor is responding and how quickly the ECM is modulating the mixture.
You get something similar if you start the engine while shorting the A-B terminals of the ALDL connector (same way you check ignition timing). If you do that then the Check Engine light will flash. The light turns on when the O2 sensor says rich, and off when the O2 sensor shows lean. It should keep blinking steadily to show that the sensor is bouncing the way it should. From memory, on my car I think it blinks on-off-on a little faster than once per second.
Only problem with that test is that the timing is abnormally retarded while you're doing it, because that mode is also used for setting timing.
The diagnostic mode used by the scan tool might force the idle to 1000rpm. When running normally without any jumpers or tools, it should drop to 900rpm when warm. Is the idle dropping down like that when the car runs by itself, or is it still stuck on a high idle normally?
[This message has been edited by armos (edited 09-30-2024).]