There are quite a number of integrated chips, which can implement bang-bang thermostat - heater is on where temperature is below threshold. But this is quite rough method.

Are there any chips / known simple solutions to do it with PI controller (i.e. smooth heating) without using lots of opamps?

Target application is mini-oven for electronic circuit (i.e. something like OCXO) with slow behavior (i.e. full PID is unnecessary).

  • \$\begingroup\$ A PI controller only requires one opamp. But, you probably want a PWM, that is a few more. Why not use an MCU? \$\endgroup\$
    – Mattman944
    Nov 27, 2022 at 23:19
  • \$\begingroup\$ @Mattman944 Ideally no PWM - full analog sensing & heating. PWM = noise. \$\endgroup\$ Nov 29, 2022 at 0:36
  • \$\begingroup\$ Opamp PI controller: electronics.stackexchange.com/q/193860/237061 \$\endgroup\$
    – tobalt
    Dec 23, 2022 at 17:07
  • \$\begingroup\$ Will the control circuit be near the heating element? Without PWM, the control circuit (mostly the series transistor) will dissipate heat also. The heat dissipated can be as much as the heating element. They must be far enough apart so they don't interact very much. \$\endgroup\$
    – Mattman944
    Dec 23, 2022 at 17:43
  • \$\begingroup\$ PWM = noise With a time constant of many mains full waves, one option is zero crossing control: on at 0 voltage, off at 0 current. \$\endgroup\$
    – greybeard
    Dec 24, 2022 at 15:31

3 Answers 3


A PI regulator can be made with an opamp. You provide the setpoint to the non-inverting input and the feedback provides the control mechanism.

The P and I gains are set by resistor/capacitor ratios, so they can be tuned easily with potentiometers. For a slow heater control, the RC time constants should be rather large, so a large non-polar capacitor is likely needed.

E.g. for the input of 2 V as shown below, the circuit would ramp the output high (firing the heater), until the Pt100 reaches sufficient resistance to produce 2V from the voltage divider with R4.

If the feedback resistance R1 is very large, the opamp can become prone to oscillating. In this case, a small capacitor across R1-C1 like 100 pF should remedy it, at the cost of some bandwidth, which you amyway don't need.

As pointed out by @Mattman94 in the comment, M1 can dissipate up to 25% of the maximum heater power, so a heatsink might be necessary. This can be alleviated if you place a PWM modulator between OA1 and M1. The latter can be also easily implemented using one comparator (relaxation oscillator).


simulate this circuit – Schematic created using CircuitLab

Error sources

If you use a FET opamp, the large resistors are basically inconsequential to the accuracy. One error source is the opamp's input offset voltage, especially if you use a low voltage as V2 , like 3.3 V. Another error source is the set voltage V1: the DAC used to generate it will be inaccurate to some extent. V2/R4 (or the current source) should be far away from the heater, ideally in a temperature stable environment, because any change to their value will affect the voltage produced by the Pt100. A smart approach is to use the same supply voltage for V2 and the reference voltage for the DAC that generates V1. That way, the drift of this supply becomes essentially meaningless. The dominant error would then likely be the stability of the DAC and of R4.

The relation of V1 is nonlinear in temperature, because the Pt100 voltage is given by a voltage divider with a fixed resistor in the example. To linearize the V1-temperature relationship, V2/R4 should be a current source instead, which can be made with two transistors. However, that makes it less feasible to compensate the drift of V2 as described before.

Finally a large error can appear if the Pt100 is not well attached to your oven.

Other than that, the exact values or drift of the gain setting components are not critical as the essential control mechanism is the opamp feedback, which will force the Pt100 to yield the same voltage as V1.

  • \$\begingroup\$ You will probably need to provide a schematic, including the driving transistor, to get the bounty. \$\endgroup\$
    – Mattman944
    Dec 23, 2022 at 17:57
  • \$\begingroup\$ @Mattman944 You are right. Did that now \$\endgroup\$
    – tobalt
    Dec 23, 2022 at 18:01
  • \$\begingroup\$ @tobalt This is indeed very close to what I need! M1 heat might be part of the heater, so not a concern in my application. Definitely better than PWM noise. I assume in this application non-ideal, real opamp might deviate significantly from simulation? Which are key factors needed to make it work in reality? \$\endgroup\$ Dec 23, 2022 at 18:19
  • 1
    \$\begingroup\$ @BarsMonster added some error discussion \$\endgroup\$
    – tobalt
    Dec 23, 2022 at 18:30

An analog PID would be the simplest as suggested. A 16bit ADC with a digital PID might be worth considering.

Another off the shelf option which you are probably aware of which is worth mentioning (which had been used in a product at the company I worked for, that I later replaced with a digital PID) would be PID heater controllers. Some can be found in the 10's of dollars (USD). But they are great if you need to implement a controller quickly and have a temperature output. Some even have RS232 or RS485 controls so they can be programmed.

enter image description here


There are boutique chips which are designed for that sort of thing, for example the LTC1923, but it is unavailable and very costly. Also has a lot of pins. And it won't necessarily do a better job than a cheap MCU or an LM358 or LM324 with a bunch of passives.

In any case you'll have to tune the P and I constant (or what Linear Technology called (thermal) 'loop compensation') components to your particular system or you'll likely get worse control than if you used a simple P controller.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.