text: embodiment ( s ) of the invention will now be described more fully with reference to the accompanying drawings . the invention may , however , be embodied in many different forms and should not be construed as limited to the embodiment ( s ) set forth herein . the invention should only be considered limited by the claims as they now exist and the equivalents thereof . a problem exists with the prior approach described above , in view of the low level of current flow . if the inverter or the second capacitor develops too much leakage current to ground , an indication of the presence of a flame can occur even at times when , in fact , no flame is present . this can happen because of age , static damage , faulty components or the like . sensing presence of a flame is important for safety and effectively controlling operation of furnaces and other apparatuses using natural gas or another combustible fluid as a flame fuel source . for example , an absence or loss of the flame while fuel is being delivered causes a safety risk . conversely , avoiding unnecessary shut - down of the furnace and other apparatus is important for continued , effective operation . it is desirable to reduce or eliminate the risk of erroneously sensing the presence of the flame in furnaces and the resulting delivery of fuel to burners without the fuel being burned . accumulating unburned fuel is hazardous , in addition to being wasteful and inefficient . exemplary embodiments disclose a method of and system for detecting presence or absence of the flame in furnaces and other apparatuses where a flame is generated . fig1 illustrates an exemplary hvac system 100 employing a heating system 101 . the heating system 101 is , for example , a gas fired combustible fuel - air burning furnace . the furnace may be for a residence or for a commercial building ( i . e ., a residential or commercial unit ), for example a rooftop unit ( rtu ). the heating system 101 includes a burner assembly 112 having at least one burner 114 , a heat exchanger 116 , an air circulation fan 118 , a combustion air - inducer or combustion air - blower ( cab ) 120 , a gas valve 122 , and a furnace controller 126 . the furnace controller 126 is operationally connected for example to the cab 120 , the gas valve 122 , a thermostat 128 , and a discharge air sensor ( das ) 130 . the heating system 101 may be utilized in single or multiple zoned systems . portions of the heating system 101 may be contained within a cabinet 132 . in some embodiments , the furnace controller 126 may be included in the cabinet 132 . one skilled in the art will also understand that the heating system 101 disclosed herein may include additional components and devices that are not presently illustrated or discussed . the furnace controller 126 may include a memory section 103 having a series of operating instructions stored therein that direct the operation of the furnace controller 126 ( e . g ., the processor ) when initiated thereby . the series of operating instructions may represent algorithms that are used to prevent or reduce temperature overshooting in the conditioned space . the furnace controller 126 also includes a printed circuit board ( pcb ) 104 . as illustrated in fig1 , the furnace controller 126 is coupled to the das 130 , the thermostat 128 and components of the heating system 101 . the controller 126 may also be connected to other elements and systems , such as a zone controller . in some embodiments , the connections are through a wired - connection . a conventional cable and contacts may be used to couple the furnace controller 126 to the various components of the heating system 101 . in some embodiments , a wireless connection may also be employed to provide at least some of the connections . the burner assembly 112 includes the at least one burner 114 that is configured for burning a combustible fuel - air mixture ( e . g ., gas - air mixture ) and to provide a combustion product to the heat exchanger 116 . the heat exchanger 116 includes a plurality of tubes 117 , for example a tube corresponding to each of the at least one burner 114 . the heat exchanger 116 is configured to receive the combustion product from the burner assembly 112 and use the combustion product to heat air that is blown across the heat exchanger 116 by the air circulation fan 118 . the air circulation fan 118 is configured to circulate air through the cabinet 132 , whereby the circulated air is heated by the heat exchanger 116 and supplied to the conditioned space . the cab 120 is configured to supply combustion air to the burner assembly 112 ( i . e ., the at least one burner 114 ) by an induced draft and is also used to exhaust waste products of combustion from the furnace through a vent 134 . the burner assembly 112 also includes a flame sensing rod 106 . the flame sensing rod 106 is configured to determine presence or absence of the flame . in some embodiments , the flame sensing rod 106 is positioned in the burner assembly 112 in front of the at least one burner 114 . when an ignition source lights the at least one burner 114 , the flame sensing rod 106 being in the path of the flame energizes circuitry that detects presence or absence of the flame . fig2 a is an exemplary simulator diagram of a circuit 200 for flame detection . for illustrative purposes , the circuit 200 will be described relative to fig1 . in a typical embodiment , the circuit 200 is utilized in the printed circuit board ( pcb ) 104 of the hvac system 100 or another apparatus requiring flame detection and control . the circuit 200 is configured to monitor the burner assembly 112 to determine presence or absence of the flame during on and off cycles . the circuit 200 includes an lc circuit 210 , also referred to herein as a tank circuit . in the exemplary embodiment shown , the tank circuit 210 includes an inductor ( l 1 ) and a capacitor ( c 1 ) connected in parallel . in some embodiments , a voltage of the tank circuit 210 is adjusted by , for example , varying the inductor ( l 1 ) and capacitor ( c 1 ) values of the tank circuit 210 , as well as a duty cycle of a processor signal ( g ). in some embodiments , the tank circuit 210 may be tuned to approximately 20 khz and may be periodically recharged from a 20 - 25v dc power supply ( not explicitly illustrated ). in a typical embodiment , the processor signal ( g ) is configured to gate a photovoltaic field - effect transistor ( fet ) 220 to allow a direct - current ( dc ) input signal to feed the tank circuit 210 from the 20 - 25v dc power supply at predefined intervals such as , for example , every 1 ms . the circuit 200 further includes a flame detect circuit 230 , a flame simulation circuit 232 , a relay circuit 240 , a first comparator 260 , and a second comparator 270 . in a typical embodiment , the flame detect circuit 230 is configured to determine presence or absence of the flame . in some embodiments , the flame sensing rod 106 is positioned in the burner assembly 112 in front of the at least one burner 114 . when an ignition source lights the at least one burner 114 , the flame sensing rod 106 is in the path of the flame and energizes the flame detect circuit 230 . in some embodiments , the photovoltaic fet 220 within the relay circuit 240 is configured to decouple the voltage of the processor signal ( g ) from the input dc signal ( vpump ) to enhance an accuracy of voltage control at a rate of g control pulses . in some embodiments , the tank circuit 210 may be pumped to a peak voltage of approximately 60v and may rapidly decay as the tank circuit 210 discharges through the flame detect circuit 230 when a flame is present . the circuit 200 utilizes a plurality of input control signals and a plurality of output - detect signals to determine presence or absence of the flame . for example , the plurality of input control signals include the processor signal ( g ) and a flame - test input control signal ( flmtst ). the plurality of output - detect signals include a first - output - detect signal ( flmsns_cmp 1 ), which is an output signal of the first comparator 260 , and a second - output - detect signal ( flmsns_cmp 2 ), which is an output signal of the second comparator 270 . in various embodiments , a voltage of the tank circuit 210 is adjusted , for example , by varying the inductor ( l 1 ) and capacitor ( c 1 ) values of the tank circuit 210 , as well as a duty cycle of the processor signal ( g ). in some embodiments , a peak current through the relay circuit 240 may be adjusted , for example , by varying a value of a series resistor 204 between the relay circuit 240 and the tank circuit 210 so that the peak current remains below a peak current rating of the relay circuit 240 . in a typical embodiment , the tank circuit 210 generates an alternating current ( ac ) signal of approximately 120 volts peak to peak . in a typical embodiment , when a flame is present , the tank circuit 210 and a test pulse capacitor 250 within the flame detect circuit 230 discharge through the flame via the flame detect circuit 230 . in various embodiments , the rate of discharge depends on the strength of the flame . for example , the stronger the flame , the faster is the rate of discharge . in a typical embodiment , the flame - test input control signal ( flmtst ) may be used to inject , for example , a 5v pulse to charge the test pulse capacitor 250 so that the first comparator 260 may sense , for example , the flame strength . this may be done by a processor ( e . g ., furnace controller 126 ) measuring a time period from a time of removal of the flame - test input control signal ( flmtst ) to a rising edge of a first comparator output signal ( flmsns_cmp 1 ) as a first comparator input signal ( flmub ) decays to 3v from the fully charged 5v of the test pulse capacitor 250 . a second comparator 270 generates a second comparator output signal ( flmsns_cmp 2 ), which serves as a functionality check of the circuit 200 to determine a component failure . the functionality check may avoid an indication that a flame is sensed , and present , when no flame is present . in various embodiments , a functionality check of the circuit 200 performed by , for example , the furnace controller 126 , may be as follows : upon proper detection of a flame and prior to assertion of the flame - test input control signal ( flmtst ), the first comparator output signal ( flmsns_cmp 1 ) is high while the second comparator output signal ( flmsns_cmp 2 ) is low . upon assertion of the flame - test input control signal ( flmtst ), the first comparator output signal ( flmsns_cmp 1 ) goes low while the second input signal ( flmsns_cmp 2 ) goes high then flip states again after a delay proportional to the flame strength . when the tank circuit 210 is not actively running such as , for example , when the processor signal ( g ) is low , the first comparator output signal ( flmsns_cmp 1 ) and the second comparator output signal ( flmsns_cmp 2 ) are both high prior to the flame - test input control signal ( flmtst ) being asserted . upon assertion of the flame - test input control signal ( flmtst ), the first comparator output signal ( flmsns_cmp 1 ) goes low while the second comparator output signal ( flmsns_cmp 2 ) remains high . the first comparator output signal ( flmsns_cmp 1 ) flips state back to high after a short delay . when no flame is detected , the first comparator output signal ( flmsns_cmp 1 ) is low and the second comparator output signal ( flmsns_cmp 2 ) is high regardless of the action of the flame - test input control signal ( flmtst ). if both the first comparator output signal ( flmsns_cmp 1 ) and the second comparator output signal ( flmsns_cmp 2 ) are low , a problem with the comparator circuit exists . appendix a of u . s . provisional application no . 62 / 112 , 300 illustrates a number of flame - sense simulations , including simulations of various potential problem conditions . if the flame sensing rod 106 is shorted to ground , the first comparator output signal ( flmsns_cmp 1 ) and the second comparator output signal ( flmsns_cmp 2 ) behaves similar to when the processor signal ( g ) is active ( e . g ., high ). when the processor signal ( g ) is inactive ( e . g ., low ), the second comparator output signal ( flmsns_cmp 2 ) does not remain high as it did before under normal operating conditions but changes state upon assertion of the flame - test input control signal ( flmtst ). as stated above , the flame - test input control signal ( flmtst ) is configured to charge the test pulse capacitor 250 by injecting , for example , a 5v pulse , so that the first comparator 260 may sense the flame strength . this may be done by the furnace controller 126 measuring the time period from a time of removal of the flame - test input control signal ( flmtst ) to a rising edge of a first comparator output signal ( flmsns_cmp 1 ) as a first comparator input signal ( flmub ) decays to 3v from the fully charged 5v of the test pulse capacitor 250 . fig2 b is an exemplary circuit 280 for flame detection . in fig2 b , like reference numerals are used to indicate like components . in fig2 b , the flame simulation circuit 232 is not shown because an actual flame condition would be sensed . fig3 a illustrates a signal v [ tank ] generated by the tank circuit 210 , when the processor signal g causes the relay circuit 240 to pump the tank circuit 210 to a peak voltage of approximately 60v . fig3 b illustrates a signal v [ g ] of the processor signal g , which causes the relay circuit 240 to pump the tank circuit 210 . fig3 c and 3d illustrate signal v [ flmtst ] ( in solid lines ) charging the capacitor 250 within the flame detect circuit 230 and signal v [ flmub ] ( in wavy lines ) from the capacitor 250 during charge and during decay in the presence of a flame when signal v [ flmst ] drops to zero . fig3 e illustrates signal v [ flmsns_cmp_ 1 ] from the first comparator 260 , as signal v [ flmub ] from the capacitor 250 varies during charge and during decay in the presence of a flame . in some embodiments , the first comparator 260 may be set to output a signal v [ flmsns_cmp_ 1 ] when signal v [ flmub ] indicates that the capacitor 250 has discharged to a predetermined level or value . fig3 f illustrates signal v [ flmsns_cmp 2 ] from the second comparator 270 , as signal v [ flmub ] from the capacitor 250 varies during charge and during decay in the presence of a flame . in some embodiments , the second comparator 270 may be set inversely to the first comparator 260 to discontinue signal v [ flmsns_cmp 2 ] output when signal v [ flmub ] indicates that the capacitor 250 has discharged to a predetermined level or value . referring now to fig1 - 2b and 3c - 3e , in various embodiments , the furnace controller 126 is configured to determine the strength of the flame in an absolute sense and relative to other flame settings and other flame operations , by measuring a time lapse between flame test signal v [ flmtst ] dropping to zero and the first comparator 260 signal v [ flmsns_cmp_ 1 ] output . this results in the capacitor 250 discharging more rapidly in the presence of a stronger flame . accordingly , a shorter time lapse would indicate a stronger flame , and a longer time lapse would indicate a weaker flame . referring again to fig1 - 2a and 3e - 3f , the first and second comparators 260 and 270 may be set to output and discontinue output of their respective signals ( v [ flmsns_cmp_ 1 ], v [ flmsns_cmp 2 ]) at different charge levels or values of the capacitor 250 . in various embodiments , the furnace controller 126 is configured to measure the time lapse between such events to determine the rate of discharge of the capacitor 250 and thereby determine the strength or weakness of the flame . furthermore , setting of the first and second comparators 260 and 270 at different charge levels of the capacitor 250 causes their respective signals to change at different times , thus providing a further indication to , for example , the furnace controller 126 that the first and second comparators 260 and 270 are operating correctly . fig4 is a flow chart illustrating an exemplary process 400 for detecting presence of a flame . for illustrative purposes , the process 400 will be described relative to fig1 - 3f . the process 400 starts at step 402 . at step 404 , the furnace controller 126 determines whether the processor signal ( g ) is active ( e . g ., high ) or inactive ( e . g ., low ). if it is determined at step 404 that the processor signal ( g ) is active , the process 400 proceeds to step 406 . at step 406 , the furnace controller 126 determines , prior to assertion of a flame - test input control signal ( flmtst ), whether an output of the first comparator 260 is low or high . if it is determined at step 406 that the output of the first comparator 260 is low , the process 400 proceeds to step 408 . at step 408 , the furnace controller 126 determines , prior to assertion of the flame - test input control signal ( flmtst ), whether an output of the second comparator 270 is low or high . if it is determined at step 408 that the output of the second comparator 270 is low , the process 400 proceeds to step 420 . at step 420 , the furnace controller 126 provides an indication that a problem exists in the circuit 200 . however , if it is determined at step 408 that the output of the second comparator 270 is high , the process 400 proceeds to step 410 . at step 410 , the furnace controller 126 provides an indication that no flame is present . as described above , the flame - test input control signal ( flmtst ) may be used to inject , for example , a 5v pulse to charge the test pulse capacitor 250 so that the first comparator 260 may sense , for example , the flame strength . this may be done by the processor ( e . g ., furnace controller 126 ) measuring a time period from the time of removal of the flame - test input control signal ( flmtst ) to the rising edge of the first comparator output signal ( flmsns_cmp 1 ) as the first comparator input signal ( flmub ) decays to 3v from the fully charged 5v of the test pulse capacitor 250 . from step 410 , the process proceeds to step 412 . at step 412 , the flame - test input control signal ( flmtst ) is asserted . from step 412 , the process 400 proceeds to step 416 . at step 416 , the furnace controller 126 determines whether the output of the first comparator 260 flips from low to high and the output of the second comparator 270 flips from high to low . if it is determined at step 416 that the output of the first comparator 260 flips from low to high or the output of the second comparator 270 flips from high to low , the process 400 proceeds to step 420 indicating that a problem exists in the circuit 200 . however , if it is determined at step 416 that neither condition described in step 416 is true , the process 400 proceeds to step 418 . at step 418 , the furnace controller 126 provides an indication that flame is not present and the circuit 200 is working correctly . however , if it is determined at step 406 that the output of the first comparator 260 is high , the process 400 proceeds to step 422 . at step 422 , the furnace controller 126 determines , prior to assertion of the flame - test input control signal ( flmtst ), whether the output of the second comparator 270 is low or high . if it is determined at step 422 that the output of the second comparator 270 is high , the process 400 proceeds to step 420 indicating that a problem exists in the circuit 200 . however , if it is determined at step 422 that the output of the second comparator 270 is low , the process 400 proceeds to step 424 . at step 424 , the furnace controller 126 provides an indication that flame is present . from step 424 , the process 400 proceeds to step 426 . at step 426 , the flame - test input control signal ( flmtst ) is asserted . from step 426 , the process 400 proceeds to step 428 . at step 428 , the furnace controller 126 determines whether the output of the first comparator 260 flips from high to low and the output of the second comparator 270 flips from low to high . if it is determined at step 428 that the output of the first comparator 260 flips from high to low and the output of the second comparator 270 flips from low to high , the process 400 proceeds to step 430 . however , if it is determined at step 428 that the at least one condition described in step 428 is not true , the process 400 proceeds to step 420 indicating that a problem exists in the circuit 200 . at step 430 , the flame - test input control signal ( flmtst ) is deasserted . from step 430 , the process proceeds to step 432 . at step 432 , the furnace controller 126 determines whether the outputs of the first comparator 260 and second comparator 270 return to the original state . if it is determined at step 432 that the at least one condition described in step 432 is not true , the process 400 proceeds to step 420 indicating that a problem exists in the circuit 200 . however , if it is determined at step 432 that the outputs of the first comparator 260 and second comparator 270 return to the original state , the process 400 proceeds to step 434 . at step 434 , the furnace controller 126 provides an indication that flame is present and the circuit 200 is working correctly . from steps 418 and 434 , the process 400 returns to step 402 . however , if it is determined at step 404 that the processor signal ( g ) is inactive , the process 400 proceeds to step 438 . at step 438 , the furnace controller 126 determines , prior to assertion of a flame - test input control signal ( flmtst ), whether an output of the first comparator 260 is low or high . if it is determined at step 438 that the output of the first comparator 260 is low , the process 400 proceeds to step 440 . at step 440 , the furnace controller 126 determines , prior to assertion of the flame - test input control signal ( flmtst ), whether an output of the second comparator 270 is low or high . if it is determined at step 440 that the output of the second comparator 270 is low , the process 400 proceeds to step 420 . at step 420 , the furnace controller 126 provides an indication that a problem exists in the circuit 200 . however , if it is determined at step 440 that the output of the second comparator 270 is high , the process 400 proceeds to step 442 . at step 442 , the furnace controller 126 provides an indication that no flame is present . from step 442 , the process 400 proceeds to step 444 . at step 444 , the flame - test input control signal ( flmtst ) is asserted . from step 444 , the process 400 proceeds to step 446 . at step 446 , the furnace controller 126 determines whether the output of the first comparator 260 flips from low to high and the output of the second comparator 270 flips from high to low . if it is determined at step 446 that the output of the first comparator 260 flips from low to high or the output of the second comparator 270 flips from high to low , the process 400 proceeds to step 420 indicating that a problem exists in the circuit 200 . however , if it is determined at step 446 that the both conditions described in step 446 are not true , the process 400 proceeds to step 448 . at step 448 , the furnace controller 126 provides an indication that flame is not present and the circuit 200 is working correctly . from step 448 , the process 400 proceeds to step 464 . at step 464 , the processor signal ( g ) is active ( e . g ., high ). however , if it is determined at step 438 that the output of the first comparator 260 is high , the process 400 proceeds to step 452 . at step 452 , the furnace controller 126 determines , prior to assertion of the flame - test input control signal ( flmtst ), whether the output of the second comparator 270 is low or high . if it is determined at step 452 that the output of the second comparator 270 is low , the process 400 proceeds to step 420 indicating that a problem exists in the circuit 200 . however , if it is determined at step 452 that the output of the second comparator 270 is high , the process 400 proceeds to step 454 . at step 454 , the furnace controller 126 provides an indication that flame is present . from step 454 , the process 400 proceeds to step 456 . at step 456 , the flame - test input control signal ( flmtst ) is asserted . from step 456 , the process 400 proceeds to step 458 . at step 458 , the furnace controller 126 determines whether the output of the first comparator 260 flips from high to low . if it is determined at step 458 that the output of the first comparator 260 does not flip from high to low , the process 400 proceeds to step 420 indicating that a problem exists in the circuit 200 . however , if it is determined at step 458 that the output of the first comparator 260 flips from high to low , the process 400 proceeds to step 460 . at step 460 , the furnace controller 126 determines whether the output of the second comparator 270 remains high . if it is determined at step 460 that the output of the second comparator 270 flips from high to low , the process 400 proceeds to step 420 indicating that a problem exists in the circuit 200 . however , if it is determined at step 460 that the output of the second comparator 270 remains high , the process 400 proceeds to step 462 . at step 462 , the furnace controller 126 provides an indication that flame is present and the circuit 200 is working correctly . from step 424 , the process 400 proceeds to step 464 . for purposes of this patent application , the term computer - readable storage medium encompasses one or more tangible computer - readable storage media possessing structures . as an example and not by way of limitation , a computer - readable storage medium may include a semiconductor - based or other integrated circuit ( ic ) ( such as , for example , a field - programmable gate array ( fpga ) or an application - specific ic ( asic )), a hard disk , an hdd , a hybrid hard drive ( hhd ), an optical disc , an optical disc drive ( odd ), a magneto - optical disc , a magneto - optical drive , a floppy disk , a floppy disk drive ( fdd ), magnetic tape , a holographic storage medium , a solid - state drive ( ssd ), a ram - drive , a secure digital card , a secure digital drive , a flash memory card , a flash memory drive , or any other suitable tangible computer - readable storage medium or a combination of two or more of these , where appropriate . particular embodiments may include one or more computer - readable storage media implementing any suitable storage . in particular embodiments , a computer - readable storage medium implements one or more portions of the furnace controller 126 , one or more portions of the system memory , or a combination of these , where appropriate . in particular embodiments , a computer - readable storage medium implements ram or rom . in particular embodiments , a computer - readable storage medium implements volatile or persistent memory . in particular embodiments , one or more computer - readable storage media embody encoded software . in this patent application , reference to encoded software may encompass one or more applications , bytecode , one or more computer programs , one or more executables , one or more instructions , logic , machine code , one or more scripts , or source code , and vice versa , where appropriate , that have been stored or encoded in a computer - readable storage medium . in particular embodiments , encoded software includes one or more application programming interfaces ( apis ) stored or encoded in a computer - readable storage medium . particular embodiments may use any suitable encoded software written or otherwise expressed in any suitable programming language or combination of programming languages stored or encoded in any suitable type or number of computer - readable storage media . in particular embodiments , encoded software may be expressed as source code or object code . in particular embodiments , encoded software is expressed in a higher - level programming language , such as , for example , c , python , java , or a suitable extension thereof . in particular embodiments , encoded software is expressed in a lower - level programming language , such as assembly language ( or machine code ). in particular embodiments , encoded software is expressed in java . in particular embodiments , encoded software is expressed in hyper text markup language ( html ), extensible markup language ( xml ), or other suitable markup language . depending on the embodiment , certain acts , events , or functions of any of the algorithms described herein can be performed in a different sequence , can be added , merged , or left out altogether ( e . g ., not all described acts or events are necessary for the practice of the algorithms ). moreover , in certain embodiments , acts or events can be performed concurrently , e . g ., through multi - threaded processing , interrupt processing , or multiple processors or processor cores or on other parallel architectures , rather than sequentially . although certain computer - implemented tasks are described as being performed by a particular entity , other embodiments are possible in which these tasks are performed by a different entity . conditional language used herein , such as , among others , “ can ,” “ might ,” “ may ,” “ e . g .,” and the like , unless specifically stated otherwise , or otherwise understood within the context as used , is generally intended to convey that certain embodiments include , while other embodiments do not include , certain features , elements and / or states . thus , such conditional language is not generally intended to imply that features , elements and / or states are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding , with or without author input or prompting , whether these features , elements and / or states are included or are to be performed in any particular embodiment . while the above detailed description has shown , described , and pointed out novel features as applied to various embodiments , it will be understood that various omissions , substitutions , and changes in the form and details of the devices or algorithms illustrated can be made without departing from the spirit of the disclosure . as will be recognized , the processes described herein can be embodied within a form that does not provide all of the features and benefits set forth herein , as some features can be used or practiced separately from others . the scope of protection is defined by the appended claims rather than by the foregoing description . all changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope .