C4 Tech/Performance L98 Corvette and LT1 Corvette Technical Info, Internal Engine, External Engine

Lean and Poor Idle Troubleshooting

Thread Tools
 
Search this Thread
 
Old 11-20-2014, 10:13 PM
  #1  
smallblock87
Advanced
Thread Starter
 
smallblock87's Avatar
 
Member Since: Aug 2010
Location: Apex NC
Posts: 88
Likes: 0
Received 1 Like on 1 Post
Default Lean and Poor Idle Troubleshooting

I've been having idle issues recently with my '86 Coupe. The car will not idle without the ALDL link plugged in. So I took to datalogging with ALDLDroid (fantastic app!). I've noticed some patterns and things that don't look quite right but I'm far from experienced with this sort of thing. I was hoping to get some help pinpointing some things to try out.

I've gone through the Code 33 troubleshooting from the service manual. It led me to bad MAF. I replaced the MAF to no avail. Same numbers show up in logging and same issues persist. My most recent logs have sown a peculiar pattern after a certain point of warming up.

At about 105*F the ECM enters closed loop and the IAC will begin to drop. But as it does so, the engine speed drops too far nearly stalling out. IAC then opens up causing engine speed to go back up. It does this several times fluctuating further and further down in IAC counts. Base Pulse Width and Correction values fluctuate in response to this (or is it vice versa?). After this period, the BLM sky rockets and maxes out at 160.

This whole time the ECM lean/rich value is lean and O2 values rise from ~40 to an average of about 60. Those O2 values seem low compared to what I've seen on other forum discussions. Also, the O2 crosscount was sitting constant at 252 the entire time.

I've attached some pictures of the plots. All three are the same run with different values. The landscape picture is zoomed in on the area I discussed with the fluctuating IAC. I've got the .CSV file but I'm not sure of the best way to share it.

Issues:
Car will not idle normally on its own. Slowly dies out
Car will idle while setting minimum idle (IAC extended and unplugged)
Car will idle fine (aside from the issue described above) with the ALDL cable plugged in.
Its currently throwing a Code 33

Recent maintenance:
Biggest thing is that I've swapped in a T56 for the old 700R4.
Replaced MAF, MAF relays, and TPS
Reset minimum idle and TPS

I'm currently grasping at straws just searching for vacuum leaks... Thanks for any help!










zoomed in
Old 11-21-2014, 01:17 AM
  #2  
Cliff Harris
Race Director
 
Cliff Harris's Avatar
 
Member Since: Apr 2002
Location: Anaheim CA
Posts: 10,036
Likes: 0
Received 341 Likes on 312 Posts

Default

You are in 10K mode because of the cable. That fixes the idle at 1000 RPM among other things. Is there a way to remove the 10K resistor on your cable (some have a switch)? Some cars require that resistor or they will not put out any data. Corvettes should NOT have that resistor in the circuit.

From the BLM of 128 I would guess that you are in open loop mode. Can ALDLdroid display open/closed loop status? Maybe that's a side effect of 10K mode. I'm not sure exactly what happens in that mode except for the vague description in the shop manual.

I don't understand the "Base Pulse Correction" and "Base Pulse Width" values. Do you know what the units are? I would expect those values to be in milliseconds (ms). My car idles at about 2.2ms, for example. Your values don't make sense related to what I know about pulse width.

The O2 output should range from about 0.200 volts (200 millivolts) to about 0.800 volts. If your cross counts are not changing then either the engine is cold and the O2 sensor is not yet hot enough to operate (open loop mode). Or you're stuck in either a rich or lean condition. When you're in closed loop mode the cross counts should increment about once per second. They start at zero and count up to 255 (maximum value of an 8 bit number) and then reset to zero and start over. The main concept here is that they should be continuously changing.

Last edited by Cliff Harris; 11-21-2014 at 01:21 AM.
Old 11-21-2014, 11:02 AM
  #3  
smallblock87
Advanced
Thread Starter
 
smallblock87's Avatar
 
Member Since: Aug 2010
Location: Apex NC
Posts: 88
Likes: 0
Received 1 Like on 1 Post
Default

Thanks for responding!

Originally Posted by Cliff Harris
You are in 10K mode because of the cable. That fixes the idle at 1000 RPM among other things. Is there a way to remove the 10K resistor on your cable (some have a switch)? Some cars require that resistor or they will not put out any data. Corvettes should NOT have that resistor in the circuit.
If I switch 10K mode off, the data is no longer accurate. The numbers just jump all over the place randomly. I think that's just how the early cars work from my research. You have to use 10K mode with these cars while datalogging.

Originally Posted by Cliff Harris
From the BLM of 128 I would guess that you are in open loop mode. Can ALDLdroid display open/closed loop status? Maybe that's a side effect of 10K mode. I'm not sure exactly what happens in that mode except for the vague description in the shop manual.
You got it. It does display open/closed status. I'm in open loop until just about the 60 mark on the x-axis of the plots I posted. As soon as it jumps into closed loop that's when the weird oscillations start happening and my O2 readings start climbing.

Originally Posted by Cliff Harris
I don't understand the "Base Pulse Correction" and "Base Pulse Width" values. Do you know what the units are? I would expect those values to be in milliseconds (ms). My car idles at about 2.2ms, for example. Your values don't make sense related to what I know about pulse width.
I wish I could explain the values. I've never in the history of datalogging this car seen the BPW and BPC in the single digits. My MAF readings fluctuate in the 2k to 4k range sometimes. Still haven't figured out how to convert that to g/s or anything useful. I think that's just a function of the .ads/.adx file I'm using. I'm using the 1227165_160.ads file off of tunerpro's website. I've never found a reference that spelled out all the units for this .ads file.

Originally Posted by Cliff Harris
The O2 output should range from about 0.200 volts (200 millivolts) to about 0.800 volts. If your cross counts are not changing then either the engine is cold and the O2 sensor is not yet hot enough to operate (open loop mode). Or you're stuck in either a rich or lean condition. When you're in closed loop mode the cross counts should increment about once per second. They start at zero and count up to 255 (maximum value of an 8 bit number) and then reset to zero and start over. The main concept here is that they should be continuously changing.
Crosscounts don't change even when it jumps into closed loop mode. My assumption right now is that this is because its running so freaking lean that its never crossing over into the rich side of the voltage range. I always assumed it was reading in millivolts. If its consistently reading 40-70mV wouldn't that indicate a lean condition? Maybe, I have a bad O2 sensor? I replaced it around a year ago. Could it go bad that quickly?

Thangs again for this help.
Old 11-22-2014, 03:10 AM
  #4  
Cliff Harris
Race Director
 
Cliff Harris's Avatar
 
Member Since: Apr 2002
Location: Anaheim CA
Posts: 10,036
Likes: 0
Received 341 Likes on 312 Posts

Default

See my avatar on the left. I know a little bit about '86 Corvettes. They do NOT need the 10K resistor for the ALDL to work correctly. On some cars you have to put in the 10K resistor and then the ECM puts out data on pin M of the ALDL connector. That position is empty on Corvettes. Maybe it's a quirk of your cable or the ALDLdroid software.

Your IAC counts jumping all over the place seems weird to me. I graphed the IAC counts of one of my Diacom runs from where I live to the post office that is about 1-1/2 miles away (it went into closed loop mode at frame number 1151):



My variations seem much less rapid than yours. I think it's because I was running at 8192 baud instead of 160 baud (see below). One thing to keep in mind about IAC counts is that the ECM uses "throttle follower" mode. It opens the IAC in sync with the TPS so that the engine does not stall when you take your foot off the gas pedal and the throttle blades slam shut. The IAC closes pretty rapidly so the engine idle won't be high when you come to a stop.

The best way to see IAC in action would be to start a cold engine and just let it idle. The IAC counts should start out pretty high (around 120, as seen in my graph) and then drop off gradually as the coolant comes up in temperature. I made the graphed run several years ago, so I don't know what I was doing with the car back then, but it looks like the frames from 0 to about 800 were just idling.

I have a copy of the 1227165_160.ads file. It's just a text file, so you can open it in any text editor. You might need to change the extension to .txt to do that. I use a Mac so I don't have those limitations.

According to the .ADS file, the Base Pulse Correction units are "Counts". I don't know what that means. It has no units defined for Base Pulse Width or Airflow. The O2 sensor reading is in mV. I checked the .ADS file against my disassembly of the ECM code and most of it checks out. The MAF units should be grams/second, but I don't know what the "dFactor" should be to make that work. There is a weird quirk in the 1227165 ECM: The original MAF was an AC Delco unit that put out a frequency that was proportional to air flow. When the Bosch MAF is used the output is a voltage from 0 to 5 volts that is proportional to air flow. The code translates the 0 to 5 volts into a frequency value and uses that.

One thing I think is weird is that one of the comments at the beginning says "160 Baud - No command". 160 baud is the default baud rate for the 1227165 ECM, but it will switch to 8192 baud if the scan software does the correct handshake with the ECM. Apparently this .ADS file doesn't support that.

Several years ago I measured my O2 sensor output while my car was idling. This oscilloscope screen shot shows what the O2 sensor output should look like. It varies between about 200 and 800mV. Each time it crosses a value I don't remember (but I believe is 450mV), the cross count is incremented (the arrow on the left points to zero volts and the vertical divisions are 200mV - the horizontal divisions are 500ms):


Last edited by Cliff Harris; 11-22-2014 at 03:14 AM.
Old 11-22-2014, 09:53 AM
  #5  
smallblock87
Advanced
Thread Starter
 
smallblock87's Avatar
 
Member Since: Aug 2010
Location: Apex NC
Posts: 88
Likes: 0
Received 1 Like on 1 Post
Default

Wow, great stuff, Cliff. Thanks for setting me straight. I didn't mean to come off as a know-it-all. Just regurgitating crap I've read. That's some great info on the .ads file. I would LOVE to be able to sample at 8192 baud. I'll have to search around and see if any better versions exist for sampling at 8192.

So it looks like my IAC is responding as it should by decreasing as the coolant warms. The issue seems to be as it does decrease, something causes the car to stutter so it has to open up again to keep the car from stalling. Who knows if this has anything to do with the fact that the car won't idle without the ALDL plug connected... Maybe this is a better question for the Tech/Performance section?
Old 11-24-2014, 07:02 PM
  #6  
smallblock87
Advanced
Thread Starter
 
smallblock87's Avatar
 
Member Since: Aug 2010
Location: Apex NC
Posts: 88
Likes: 0
Received 1 Like on 1 Post
Default

Regarding the 8192 baud, according to Mark Mansur it sounds like the '86 prom isn't capable of 8192 baud until you burn it with an updated .bin file such as $32B or $6E. Cliff, if you see this, does this line up with your experience?

http://tunerpro.net/forum/viewtopic.php?p=13715#13715
Old 11-25-2014, 01:22 AM
  #7  
Cliff Harris
Race Director
 
Cliff Harris's Avatar
 
Member Since: Apr 2002
Location: Anaheim CA
Posts: 10,036
Likes: 0
Received 341 Likes on 312 Posts

Default

Originally Posted by smallblock87
Regarding the 8192 baud, according to Mark Mansur it sounds like the '86 prom isn't capable of 8192 baud until you burn it with an updated .bin file such as $32B or $6E. Cliff, if you see this, does this line up with your experience?

http://tunerpro.net/forum/viewtopic.php?p=13715#13715
That is NOT true. 8192 baud mode works just fine with Diacom software.

It's actually spelled out in the code. This is directly from the original BUA "hac" file by Ward Spoonemore:

Code:
* The ECM will listen for 50 ms after completion of the 160 baud ALDL list for an
* inbound test device originated 8192 (polling) message.
*
* If the 8192 polling message is accepted, 8192 communications will continue until power down.
Here's the port configuration code:

Code:
      ;----------------------------------------------------------
      ; BIT 7 = Not Used
      ; BIT 6 = Match enable
      ;
      ; BIT 5 = SS1
      ; BIT 4 = SSO
      ;           SS1 SS0 BAUD RATE
      ;           0   1   8192  <--
      ;           1   0   1024
      ;           1   1    256
      ;
      ; BIT 3 = PORT43 - TxENABLE, 1 = chip select U2, SXR
      ; BIT 2 = PORT42 - IACEN,    1 = chip select U7
      ; BIT 1 = PORT41 - FAN,      1 = turn on fan
      ; BIT 0 = Input is Sync from Rx
      ;
          LDAA    #$90              ; 1001 0000
          STAA    L4004             ; Set Baud = 8192

Last edited by Cliff Harris; 11-25-2014 at 01:41 AM.
Old 11-25-2014, 12:03 PM
  #8  
smallblock87
Advanced
Thread Starter
 
smallblock87's Avatar
 
Member Since: Aug 2010
Location: Apex NC
Posts: 88
Likes: 0
Received 1 Like on 1 Post
Default

Interesting. Since it keeps transmitting until power off, could I initiate 8192 communication using the $6E or $32B datastreams then switch back to the $32?

Get notified of new replies

To Lean and Poor Idle Troubleshooting




Quick Reply: Lean and Poor Idle Troubleshooting



All times are GMT -4. The time now is 11:38 AM.