From owner-diy_efi  Thu Oct 27 15:38:02 1994
Received: by coulomb.eng.ohio-state.edu (920330.SGI/920502.SGI)
	 id AA05810; Thu, 27 Oct 94 15:38:02 GMT
Received: from NYU.EDU by coulomb.eng.ohio-state.edu via SMTP (920330.SGI/920502.SGI)
	for /usr/local/mail/majordomo-1.92/wrapper resend -p bulk -M 10000        -l Diy_Efi -f Diy_Efi-Owner -h coulomb.eng.ohio-state.edu -s        -r DIY_EFI diy_efi-outgoing id AA05805; Thu, 27 Oct 94 11:37:58 -0400
Received: by cmcl2.NYU.EDU (5.61/1.34)
	id AA11112; Thu, 27 Oct 94 11:37:56 -0400
Received: from george4.bsnet by bear.com (4.1/SMI-4.0/JMD+AR+DJS)
	id AA09478; Thu, 27 Oct 94 11:14:27 EDT
Received: from block15.bsnet by george4.bsnet (4.1/SMI-4.1)
	id AA07262; Thu, 27 Oct 94 11:12:35 EDT
Date: Thu, 27 Oct 94 11:12:35 EDT
From: solar@george4.bear.com (Wm del Solar)
Message-Id: <9410271512.AA07262@george4.bsnet>
To: DIY_EFI%coulomb.eng.ohio-state.edu@ursa.bear.com
Subject: Re: Answer to: What is a kernel?
Sender: owner-diy_efi
Precedence: bulk
Reply-To: DIY_EFI

> Jonathan R. Lusky (lusky@knuth.mtsu.edu) wrote:

> ....  We were "told" that semaphore operations (P & V) are pretty
> expensive respect to cpu cycles.

Semaphores are not expensive when a "test and set" instruction is part
of the target's instruction set.  With a test and set instruction, it
is easy to protect the semaphore counter, and the rest of the
semaphore's implementation is easy.  Without test and set, it is not
impossible to implement a semaphore, but it will be more difficult and
probably slower than a test and set implementation.

> Is that a problem in the real world,

No.

> or is it insiginificant compred to the number of spare CPU cycles
> we've got nowadays (with respect to EFI controllers :)?

It is insignificant.  You will wait for tens of microseconds on a
semaphore operation, and you will wait for tens or hundreds of
milliseconds for various engine related events to occur.

Bill del Solar (solar@bear.com)
-- My opinions are mine only.

From owner-diy_efi  Thu Oct 27 15:56:19 1994
Received: by coulomb.eng.ohio-state.edu (920330.SGI/920502.SGI)
	 id AA05867; Thu, 27 Oct 94 15:56:19 GMT
Received: from localhost.eng.ohio-state.edu by coulomb.eng.ohio-state.edu via SMTP (920330.SGI/920502.SGI)
	for /usr/local/mail/majordomo-1.92/wrapper resend -p bulk -M 10000        -l Diy_Efi -f Diy_Efi-Owner -h coulomb.eng.ohio-state.edu -s        -r DIY_EFI diy_efi-outgoing id AA05862; Thu, 27 Oct 94 11:56:17 -0400
Message-Id: <9410271556.AA05862@coulomb.eng.ohio-state.edu>
To: DIY_EFI
Subject: Re: Answer to: What is a kernel? 
In-Reply-To: Your message of "Thu, 27 Oct 94 09:24:11 CDT."
             <m0r0W3r-000uKkC@twisto.eng.hou.compaq.com> 
Date: Thu, 27 Oct 94 11:56:17 -0400
From: John S Gwynne <jsg>
Sender: owner-diy_efi
Precedence: bulk
Reply-To: DIY_EFI

--------

I'm forwarding this from: Steve=Ravet%Prj=Eng%PCPD=Hou@bangate.compaq.com
  --jsg

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
 lusky@knuth.mtsu.edu (Jonathan R. Lusky) Wrote:
 | 
 | 
 | John S Gwynne writes:
 | > hardware. By the use of semaphores, the resource of an ADC can 
 | be
 | > allocated to the coolant measurement task, air temp measurement 
 | task, O2
 | > sensor measurement task, etc. All of which can run at different 
 | rates and be
 | > unaware of the others. Bottom line: a large problem like EFI 
 | can be broken up
 | > into several smaller tasks that may only need a few lines of 
 | C-code!
 | > 
 | > It's an alternative to writing one long "loop" of software that 
 | must keep
 | > track of timing and on which loops to measure what and when to 
 | do this or
 | > that. The kernel will do all that for you. Ok... It's a 
 | luxury... :)
 | 
 | I'm taking Operating Systems right now, just went over semaphores a few
 | weeks ago.  We were "told" that semaphore operations (P & V) are pretty
 | expensive respect to cpu cycles.  Is that a problem in the real world,
 | or is it insiginificant compred to the number of spare CPU cycles
 | we've got nowadays (with respect to EFI controllers :)?
 | 
 | 
 
 Semaphore operations on modern processors are not expensive, since
 they are a single instruction.  on x86 architecture, a semaphore is:
 
 	lock	btr	x,y
 
 where x is the semaphore, y is the bit number.  The key is that it
 has to be a single locked instruction (note the lock prefix).  That
 way a context switch cannot happen while you are trying to grab the
 semaphore.  Note that this also safe for multiple processor systems.
 There is an algorithm to implement semaphores on processors that do
 not support a locked instruction for test/reset.  It involves an array
 of semaphores that you have to loop through.  Now that is expensive.
 Of course, waiting on a locked semaphore is also expensive, but that
 doesn't really count.
 
 What I don't understand is where the names for 'p' and 'v' came from....
 
 --steve
 

From owner-diy_efi  Thu Oct 27 18:38:11 1994
Received: by coulomb.eng.ohio-state.edu (920330.SGI/920502.SGI)
	 id AA06646; Thu, 27 Oct 94 18:38:11 GMT
Received: from NYU.EDU by coulomb.eng.ohio-state.edu via SMTP (920330.SGI/920502.SGI)
	for /usr/local/mail/majordomo-1.92/wrapper resend -p bulk -M 10000        -l Diy_Efi -f Diy_Efi-Owner -h coulomb.eng.ohio-state.edu -s        -r DIY_EFI diy_efi-outgoing id AA06641; Thu, 27 Oct 94 14:38:08 -0400
Received: by cmcl2.NYU.EDU (5.61/1.34)
	id AA06387; Thu, 27 Oct 94 14:38:02 -0400
Received: from george4.bsnet by bear.com (4.1/SMI-4.0/JMD+AR+DJS)
	id AA16496; Thu, 27 Oct 94 13:57:43 EDT
Received: from block15.bsnet by george4.bsnet (4.1/SMI-4.1)
	id AA10810; Thu, 27 Oct 94 13:55:52 EDT
Date: Thu, 27 Oct 94 13:55:52 EDT
From: solar@george4.bear.com (Wm del Solar)
Message-Id: <9410271755.AA10810@george4.bsnet>
To: DIY_EFI%coulomb.eng.ohio-state.edu@ursa.bear.com
Subject: Semaphores
Sender: owner-diy_efi
Precedence: bulk
Reply-To: DIY_EFI

From a message forwarded by lusky@knuth.mtsu.edu (Jonathan R. Lusky):

>  What I don't understand is where the names for 'p' and 'v' came from....

I remember reading that "p" and "v" the  initial letters of the Dutch
words for "increment" and "decrement" which is reasonable because Dutch
is Edsger Dijkstra's native language.  However, I don't recall which is
which.

Bill del Solar (solar@bear.com)
-- My opinions are mine only.

From owner-diy_efi  Thu Oct 27 19:20:49 1994
Received: by coulomb.eng.ohio-state.edu (920330.SGI/920502.SGI)
	 id AA06845; Thu, 27 Oct 94 19:20:49 GMT
Received: from localhost.eng.ohio-state.edu by coulomb.eng.ohio-state.edu via SMTP (920330.SGI/920502.SGI)
	for /usr/local/mail/majordomo-1.92/wrapper resend -p bulk -M 10000        -l Diy_Efi -f Diy_Efi-Owner -h coulomb.eng.ohio-state.edu -s        -r DIY_EFI diy_efi-outgoing id AA06839; Thu, 27 Oct 94 15:20:46 -0400
Message-Id: <9410271920.AA06839@coulomb.eng.ohio-state.edu>
To: DIY_EFI
Subject: Re: Answer to: What is a kernel? 
In-Reply-To: Your message of "Thu, 27 Oct 94 07:54:41 CDT."
             <m0r0ULp-000CwuC@knuth.mtsu.edu> 
Date: Thu, 27 Oct 94 15:20:45 -0400
From: John S Gwynne <jsg>
Sender: owner-diy_efi
Precedence: bulk
Reply-To: DIY_EFI

--------

   In message <m0r0ULp-000CwuC@knuth.mtsu.edu> , you write:
 
| I'm taking Operating Systems right now, just went over semaphores a few
| weeks ago.  We were "told" that semaphore operations (P & V) are pretty
| expensive respect to cpu cycles.  Is that a problem in the real world,
| or is it insiginificant compred to the number of spare CPU cycles
| we've got nowadays (with respect to EFI controllers :)?


ok, I just wanted to use the ADC and semaphore as an example of what the
kernel could do for you. It's one approach I'm considering. Another approach
is to have a remote 68hc8111e2 that will fire data back to the EFI86k over a
serial line. It would be used for the slower changing parameters like air temp,
coolant temp, etc.. My motivation here is the reduction of wires; put the
68hc811 under the hood and the EFI68k in the passenger compartment or trunk
(some place not as hostile). Just another thought to kick around.


As far as semaphores go, the file fact-c020.ps on the server has all 
the timing information for RTEMS.

for the 68020 at 20MHz (time in micro-sec): (EFI69k is 20/12 longer)

semaphore_create		38
semaphore_ident			77
semaphore_delete		49
semaphore_obtain
  available			33
  not available - no_wait 	33
  not available -- block 	85
semaphore release
  no waiting task		35
  task readied - returns to caller 56
  task readied - preempts caller 75

I will incorporate a timer in my version of EFI69k to measure execution times
of the EFI software. From this we can due a scheduling analysis.

                                       John S Gwynne
                                          Gwynne.1@osu.edu
_______________________________________________________________________________
               T h e   O h i o - S t a t e   U n i v e r s i t y
    ElectroScience Laboratory, 1320 Kinnear Road, Columbus, Ohio 43212, USA
                Telephone: (614) 292-7981 * Fax: (614) 292-7292
-------------------------------------------------------------------------------

From owner-diy_efi  Thu Oct 27 19:48:51 1994
Received: by coulomb.eng.ohio-state.edu (920330.SGI/920502.SGI)
	 id AA07052; Thu, 27 Oct 94 19:48:51 GMT
Received: from fsa.cpsc.ucalgary.ca by coulomb.eng.ohio-state.edu via SMTP (920330.SGI/920502.SGI)
	for /usr/local/mail/majordomo-1.92/wrapper resend -p bulk -M 10000        -l Diy_Efi -f Diy_Efi-Owner -h coulomb.eng.ohio-state.edu -s        -r DIY_EFI diy_efi-outgoing id AA07047; Thu, 27 Oct 94 15:48:47 -0400
Received: from aa.cpsc.ucalgary.ca (aa.cpsc.ucalgary.ca [136.159.4.5])
	by fsa.cpsc.ucalgary.ca (1.8) id <NAA19432@fsa.cpsc.ucalgary.ca>;
	Thu, 27 Oct 1994 13:47:46 -0600
From: fridman@cpsc.ucalgary.ca (Robert Fridman)
Received: by aa.cpsc.ucalgary.ca (1.2; from fridman@localhost)
	id <NAA27505@aa.cpsc.ucalgary.ca>; Thu, 27 Oct 1994 13:47:48 -0600
Date: Thu, 27 Oct 1994 13:47:48 -0600
Message-Id: <199410271947.NAA27505@aa.cpsc.ucalgary.ca>
To: DIY_EFI
In-Reply-To: John S Gwynne's message of Thu, 27 Oct 94 15:20:45 -0400 <9410271920.AA06839@coulomb.eng.ohio-state.edu>
Subject: Re: Answer to: What is a kernel? 
Sender: owner-diy_efi
Precedence: bulk
Reply-To: DIY_EFI


> kernel could do for you. It's one approach I'm considering. Another approach
> is to have a remote 68hc8111e2 that will fire data back to the EFI86k over a
> serial line. It would be used for the slower changing parameters like air temp,
> coolant temp, etc.. My motivation here is the reduction of wires; put the
> 68hc811 under the hood and the EFI68k in the passenger compartment or trunk
> (some place not as hostile). Just another thought to kick around.

For a large unit like a car, finding room for multiple boxes might not be
a problem.  But on a motorcycle, this might cause difficulties.

Is there no way to have a single (preferably small;) enclosure?


	RF.

-------------------------------------------------------------------------
83 R100			DoD 749			Robert Fridman
71 Super Beetle					fridman@cpsc.ucalgary.ca
84 320i

From owner-diy_efi  Fri Oct 28 00:52:45 1994
Received: by coulomb.eng.ohio-state.edu (920330.SGI/920502.SGI)
	 id AA18874; Fri, 28 Oct 94 00:52:45 GMT
Received: from knuth.mtsu.edu by coulomb.eng.ohio-state.edu via SMTP (920330.SGI/920502.SGI)
	for /usr/local/mail/majordomo-1.92/wrapper resend -p bulk -M 10000        -l Diy_Efi -f Diy_Efi-Owner -h coulomb.eng.ohio-state.edu -s        -r DIY_EFI diy_efi-outgoing id AA18869; Thu, 27 Oct 94 20:52:42 -0400
Received: by knuth.mtsu.edu (Smail3.1.28.1 #21)
	id m0r0fXy-000CyaC; Thu, 27 Oct 94 19:51 CDT
Message-Id: <m0r0fXy-000CyaC@knuth.mtsu.edu>
From: lusky@knuth.mtsu.edu (Jonathan R. Lusky)
Subject: Re: Answer to: What is a kernel?
To: DIY_EFI
Date: Thu, 27 Oct 1994 19:51:58 -0500 (CDT)
In-Reply-To: <9410271556.AA05862@coulomb.eng.ohio-state.edu> from "John S Gwynne" at Oct 27, 94 11:56:17 am
X-Mailer: ELM [version 2.4 PL24alpha3]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 699       
Sender: owner-diy_efi
Precedence: bulk
Reply-To: DIY_EFI

>  Of course, waiting on a locked semaphore is also expensive, but that
>  doesn't really count.
 
Actually, that was what I was talking about.

>  What I don't understand is where the names for 'p' and 'v' came from....

Ugh, I used to know exactly...  basically the person who invented 'p' and 'v'
was not a native enlish speaker, those are the first letters of the
words for "wait" and "signal" in the language where he lived.


-- 
Jonathan R. Lusky                        lusky@knuth.mtsu.edu
http://frank.mtsu.edu:8001/~lusky/          (615) 455-9915
-------------------------------------   ------------------------------
68 Camaro Convertible - 350 / TH350  \_/ 80 Toyota Celica - 20R / 5spd

From owner-diy_efi  Fri Oct 28 01:24:32 1994
Received: by coulomb.eng.ohio-state.edu (920330.SGI/920502.SGI)
	 id AA18915; Fri, 28 Oct 94 01:24:32 GMT
Received: from shiva.trl.OZ.AU by coulomb.eng.ohio-state.edu via SMTP (920330.SGI/920502.SGI)
	for /usr/local/mail/majordomo-1.92/wrapper resend -p bulk -M 10000        -l Diy_Efi -f Diy_Efi-Owner -h coulomb.eng.ohio-state.edu -s        -r DIY_EFI diy_efi-outgoing id AA18910; Thu, 27 Oct 94 21:24:24 -0400
Received: by shiva.trl.OZ.AU id AA14850
  (5.65c/IDA-1.4.4 for DIY_EFI@coulomb.eng.ohio-state.edu); Fri, 28 Oct 1994 11:24:17 +1000
From: Craig Pugsley <c.pugsley@trl.oz.au>
Message-Id: <199410280124.AA14850@shiva.trl.OZ.AU>
Subject: Re: EGO clogging.
To: DIY_EFI
Date: Fri, 28 Oct 1994 11:24:16 +1000 (EST)
In-Reply-To: <9410271342.AA05119@coulomb.eng.ohio-state.edu> from "Dale Ulan" at Oct 27, 94 07:42:34 am
X-Mailer: ELM [version 2.4 PL20]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 1692      
Sender: owner-diy_efi
Precedence: bulk
Reply-To: DIY_EFI

> 
> > 
> > i/  We all know the 'characteristic curve' of an O2 sensor, but how much
> >     effect does the actual exhaust temperature have on it's accuracy,
> >     and also does a HEGO have some way of regulating it's temperature?
> 
> Most HEGO's I've seen hook up to +12v, and they use the positive temperature
> coefficient of the heating element to regulate the temperature.

Aaahh!! Neat!

> EGO sensors aren't affected by temperature much for its real 'trip point',
> but temperature is the largest contributor to voltage variations in the
> sensor. GM tends to use the voltage level out of the sensor for more
> than just 'RICH/LEAN', so they use various compensations to predict
> the O2 sensor temperature.

So the 'trip point' is much the same but the overall voltage is lower at
lower temperatures.. The curve is 'squashed down' if you will.
So, with a thermocouple and an EGO you could (with some processing) find
out the A/F ratio.

How does a UEGO work?

> > ii/ What about electrical effects changing the sensor's voltage? eg
> >     thermocouple effects between the exhaust and the engine. Should
> >     the sensor be used in a 'balanced' set-up.
> 
> Normally, between the block and manifold there's little difference. GM
> attaches one end of the diff amp (- end) to the engine ground. The
> other end goes to the O2 sensor. The - end should go to a good engine
> block ground.
> The LM1964 is an amplifier designed especially for amplifying O2 sensor
> signals. It's in National's special purpose devices book (Linear 3).

That's what I thought might happen - obviously any thermocouple effects
would be minimal, but it doesn't hurt to ask.

Craig.

pugsley@trl.oz.au


From owner-diy_efi  Fri Oct 28 02:24:07 1994
Received: by coulomb.eng.ohio-state.edu (920330.SGI/920502.SGI)
	 id AA19358; Fri, 28 Oct 94 02:24:07 GMT
Received: from tomcat.al.noaa.gov by coulomb.eng.ohio-state.edu via SMTP (920330.SGI/920502.SGI)
	for /usr/local/mail/majordomo-1.92/wrapper resend -p bulk -M 10000        -l Diy_Efi -f Diy_Efi-Owner -h coulomb.eng.ohio-state.edu -s        -r DIY_EFI diy_efi-outgoing id AA19353; Thu, 27 Oct 94 22:23:59 -0400
Received: from aztec.al.noaa.gov by tomcat.al.noaa.gov with SMTP id AA01317
  (5.65c/IDA-1.4.4 for <DIY_EFI@coulomb.eng.ohio-state.edu>); Thu, 27 Oct 1994 20:30:35 -0600
Message-Id: <199410280230.AA01317@tomcat.al.noaa.gov>
Date: 27 Oct 1994 20:25:11 -0700
From: "Ciciora Steve" <sciciora@al.noaa.gov>
Subject: FW: Re: EGO clogging.
To: DIY_EFI
Sender: owner-diy_efi
Precedence: bulk
Reply-To: DIY_EFI

> >     and also does a HEGO have some way of regulating it's temperature?
> 
> Most HEGO's I've seen hook up to +12v, and they use the positive temperature
> coefficient of the heating element to regulate the temperature.

  I have thought about measuring the current to the O2 sensor heater to get a
rough idea of the exhaust temperature.  Never had a chance to 'calibrate' it,
though.  
-Steven Ciciora

From owner-diy_efi  Fri Oct 28 05:22:09 1994
Received: by coulomb.eng.ohio-state.edu (920330.SGI/920502.SGI)
	 id AA19555; Fri, 28 Oct 94 05:22:09 GMT
Received: from eigen.ee.ualberta.ca by coulomb.eng.ohio-state.edu via SMTP (920330.SGI/920502.SGI)
	for /usr/local/mail/majordomo-1.92/wrapper resend -p bulk -M 10000        -l Diy_Efi -f Diy_Efi-Owner -h coulomb.eng.ohio-state.edu -s        -r DIY_EFI diy_efi-outgoing id AA19549; Fri, 28 Oct 94 01:22:06 -0400
Message-Id: <9410280522.AA19549@coulomb.eng.ohio-state.edu>
Received: by eigen.ee.ualberta.ca
	(1.37.109.4/15.6) id AA16450; Thu, 27 Oct 94 23:21:59 -0600
From: Dale Ulan <ulan@ee.ualberta.ca>
Subject: Re: EGO clogging.
To: DIY_EFI
Date: Thu, 27 Oct 94 23:21:57 MDT
In-Reply-To: <199410280124.AA14850@shiva.trl.OZ.AU>; from "Craig Pugsley" at Oct 28, 94 11:24 am
Mailer: Elm [revision: 70.85]
Sender: owner-diy_efi
Precedence: bulk
Reply-To: DIY_EFI

> Aaahh!! Neat!

Note I said 'most'. Some ECM's actually control the temperature,
notably cars using UEGO sensors...

> So the 'trip point' is much the same but the overall voltage is lower at
> lower temperatures.. The curve is 'squashed down' if you will.
> So, with a thermocouple and an EGO you could (with some processing) find
> out the A/F ratio.

Yes and no. You could find it out right around stoich. Generally, an O2
sensor doesn't like sitting at one voltage very much. That's why the O2
sensing algorithms always oscillate the sensor a bit.

> How does a UEGO work?

It contains an additional 'pump' cell. Since the normal O2 sensor
responds to hydrogen and other gasses (except oxygen, of course),
the reverse process (applying current to the cell) will move these
same ions through the ceramic.
By combining an O2 sensor and a 'pump' cell, the O2 sensor will operate
with a shifted centre point. By pumping, say, 10 mA of current through
the cell in one direction, the trip point will go from, say, 14.7:1 to
10:1. etc. With some creative electronics, the sensor can be made to
read out the actual A:F ratio.

After a bit of testing, people have found that the O2 sensor does not
actually respond to oxygen ions until the cell reaches 800-900 deg. C.
Few exhaust systems run that hot, but at the lower temperature of
400-500 deg. C., the cell responds to other gasses, such as hydrogen.
The net result is correct, but the cell doesn't actually respond to
oxygen.

-Dale

From owner-diy_efi  Fri Oct 28 16:47:48 1994
Received: by coulomb.eng.ohio-state.edu (920330.SGI/920502.SGI)
	 id AA21563; Fri, 28 Oct 94 16:47:48 GMT
Received: from wotan.compaq.com by coulomb.eng.ohio-state.edu via SMTP (920330.SGI/920502.SGI)
	for /usr/local/mail/majordomo-1.92/wrapper resend -p bulk -M 10000        -l Diy_Efi -f Diy_Efi-Owner -h coulomb.eng.ohio-state.edu -s        -r DIY_EFI diy_efi-outgoing id AA21558; Fri, 28 Oct 94 12:47:43 -0400
Received: from twisto.eng.hou.compaq.com by wotan.compaq.com with smtp
	(Smail3.1.28.1 #12) id m0r0uLw-000vJcC; Fri, 28 Oct 94 11:40 CDT
Received: from bangate.compaq.com by twisto.eng.hou.compaq.com with smtp
	(Smail3.1.28.1 #10) id m0r0uKU-000uITC; Fri, 28 Oct 94 11:39 CDT
Message-Id: <m0r0uKU-000uITC@twisto.eng.hou.compaq.com>
Received: by bangate.compaq.com with VINES ; Fri, 28 Oct 94 11:06:53 CDT
Date: Fri, 28 Oct 94 10:47:34 CDT
From: Steve=Ravet%Prj=Eng%PCPD=Hou@bangate.compaq.com
Subject: re: Re: EGO clogging. (long)
To: diy_efi
Cc: 
Sender: owner-diy_efi
Precedence: bulk
Reply-To: DIY_EFI

I didn't understand a lot of this post.  Can someone enlighten me?
Maybe someone (me?) should put together a digest with common accronyms,
the difference between SD, MAP, MAF, etc.


Dale Ulan <ulan@ee.ualberta.ca> Wrote:
| 
| 
| > Aaahh!! Neat!
| 
| Note I said 'most'. Some ECM's actually control the temperature,
| notably cars using UEGO sensors...
EGO=oxygen sensor
UEGO=?????


| 
| > So the 'trip point' is much the same but the overall voltage is 
| lower at
| > lower temperatures.. The curve is 'squashed down' if you will.
| > So, with a thermocouple and an EGO you could (with some 
| processing) find
| > out the A/F ratio.
| 
| Yes and no. You could find it out right around stoich. Generally, an O2
| sensor doesn't like sitting at one voltage very much. That's why the O2
| sensing algorithms always oscillate the sensor a bit.

I thought the O2 sensor generated voltage depending on amount of O2 in the 
exhaust.  sort of an exponential curve with stoich somewhere around where it 
starts to rise.  Does it need to be driven externally after warm-up?

| 
| > How does a UEGO work?
| 
| It contains an additional 'pump' cell. Since the normal O2 sensor
| responds to hydrogen and other gasses (except oxygen, of course),
| the reverse process (applying current to the cell) will move these
| same ions through the ceramic.
| By combining an O2 sensor and a 'pump' cell, the O2 sensor will operate
| with a shifted centre point. By pumping, say, 10 mA of current through
| the cell in one direction, the trip point will go from, say, 14.7:1 to
| 10:1. etc. With some creative electronics, the sensor can be made to
| read out the actual A:F ratio.

I thought it already read out the A/F ratio.  What exactly are you saying 
above?  Is the "pump" a constant current source?

| 
| After a bit of testing, people have found that the O2 sensor does not
| actually respond to oxygen ions until the cell reaches 800-900 deg. C.
| Few exhaust systems run that hot, but at the lower temperature of
| 400-500 deg. C., the cell responds to other gasses, such as hydrogen.
| The net result is correct, but the cell doesn't actually respond to oxygen.

Below is a post I got off r.a.t explaining O2 sensors.  The poster seems to 
know what he is talking about, and is the first real explanation that I've 
seen:



>Please excuse a question from a novice...

>Just exactly what does the oxygen sensor do (please don't say it's senses
>the oxygen level), i.e. what is done with the info it produces.  Also,
>why should it be replaced every 30,000 miles?  What's wearing out?

>Thanks!



This guy obviously sounds like he wants some insight into the oxygen sensor 
so......strap yourselves in........it's gonna be a long one.....

Well.........from my knowledge the oxygen 
sensor is a device made of zinc oxide or titanium oxide mostly, that tends 
to attract oxygen ions and accumulate them on its surface. Now the thing is 
oxygen ions have a net negative charge and the sensor material has a net 
positive charge thus the attraction. However the magnitude of oxygen ionic 
charge concentration is slightly higher than that of the sensor material. 
Now the sensor is mounted half in and half out of the exhaust manifold. 
Obviously the nose is exposed to exhaust gases and the boot is open to the 
atmosphere. The atmospheric oxygen ions (of which air is made up of 21% O2) 
are accumulated on that end of the ZnO2 wafer. Any oxygen present in the 
exhaust gas accumulate on the other side of the ZnO2 wafer. When the sensor 
achieves > 300 degrees celcius, the wafer becomes conductive and the 
ionic difference in oxygen concentrations between outside air and exhaust 
oxygen produce an electric field across the wafer, current flows and a 
potential difference or voltage is measured across the platinum terminals of 
the sensor. 

Now if you think about it......if your engine is running lean, then the 
excess oxygen which is unburnt in the combustion chamber appears as part of 
the exhaust gas. This oxygen concentration (usually 2% of exhaust gas for 
lean conditions) is collected at the sensor and the difference in its 
concentration with respect to atmospheric oxygen concentration produces a 
small voltage which gets smaller as fuel mix becomes leaner, since for very 
lean conditions more oxygen appears in the exhaust and the difference 
between concentrations of exhaust oxygen and air oxygen is smaller thus 
sensor output falls. Typically values are around 0.1 - 0.3 volts DC for very 
lean to slightly lean, respectively. Alternatively a slightly rich mix 
reduces oxygen present in exhaust and concentration difference is larger 
thus output voltage increases right up until a very rich mix with no oxygen 
in exhaust and maximum voltage is produced from the sensor. Typically 0.6 to 
0.9 volts for slightly rich to very rich mix.........Now, when air/fuel 
ratio is correct (14.7 parts airmass to 1 part mass of fuel) combustion is 
fully completed with (theoretically) very little or no air AND fuel left. 
Exhaust gas is at its cleanest when this ratio is achieved, pollutants are 
minimised (check your chemistry on this one) and power and torque are 
maximised, which is what the controller in your engine management system is 
trying to achive. An optimum Air Fuel Ratio (AFR) produces about 0.45 volts 
from the sensor.

	Now what does the controller do with this sensor input I hear you 
ask. Well the Electronic Control Unit (ECU) accepts the sensor voltage and 
it knows from the voltage it recieves whether AFR is too lean, too rich or 
just right. If AFR is too lean then the ECU knows it has to supply more fuel 
to bring the mixture to 14.7:1 AFR. Thus the ECU opens the injectors for 
slightly longer in this case. If the sensor supplies a voltage which 
indicates too rich then the ECU will open the injectors for a shorter time 
allowing less fuel to balance the mix back to 14.7:1. Now the ECU will 
always react to the oxygen sensors DC output and adjust injector open time 
to keep the sensor voltage output around 0.4 - 0.45 volts which indicates 
the optimum mixture. Simple really! This feedback goes on continuously with 
sensor checks and injector open time adjustments SO LONG AS THE OXYGEN 
SENSOR TEMPERATURE IS ABOVE 300 DEGREES CELCIUS. If its lower than this the 
ECU will disregard the sensor until it warms up and becomes conductive 
enough to supply valid results. A cold or cool sensor will NOT work properly.

	Now why does it have to be replaced regularly I hear you ask. That's 
because for a number of reasons. Firstly exhaust gas contains a lot of shit 
in it. Pollution, contaminants and stuff all exist in this gas which tends 
to accumulate on the oxygen sensor ZnO2 wafer. Now accurate measurements in 
oxygen difference between air and exhaust cannot be made if the exhaust end 
is covered in muck. This stops most of the oxygen in the exhaust 
accumulating on the wafer surface thus output signal from the sensor does 
not indicate the true exhaust gas oxygen concentration from which the ECU 
can base its adjustments. Sometimes you can clean the crap off the 
device by deliberately running the engine lean at high speeds for 
an hour or two and then RESET AFR to its proper value afterwards. Lean 
running tends to burn and blow off the contaminants restoring sensor life 
and keeping it clean. However if your car runs really shit or burns 
oil then you can't save the sensor and you'll have to replace it 
regularly. Secondly (not as critical) operating at temperatures of more than 
300 degress usually about 450 degress every time you drive your car for a 
number of years takes its toll on the poor sensor. All the cooling down at 
night heated the next morning stresses the material, although this should 
not be an immediate problem since nowadays they are built to take it. But 
after many years you never know. Changing one every 30,000 miles is not 
something I would do. I'd check it at regular intervals, keep it clean and 
replace when it is REALLY at the end of its life. I'd be wary of service 
technicians who immediately tell you that they have to replace the oxygen 
sensor without having tried to clean it using a lean mixture for a while or 
without explaining what EXACTLY is going on. In Australia Oxygen sensors 
sell for about 200 dollars a pop not the sort of device you change on a 
technicians hunch or whim without getting a second opinion, just like 
visiting the doctor.......

........Sorry about the length of the explanation....hope you guys are still 
awake.......

Anyway.........hope this helps..........

			Keep Drivin'............

				The Metallian.



