I have a temperature controller (Chino DB1000) which has a PID output of 4-20 mA. With this, I want to control the current going to a Peltier thermoelectric module (15V, 6A).

I am doing this via an ON-OFF circuit with a DC solid state relay, a 15 VDC power supply, and a temperature controller for SSR. But I don't want to keep doing this since the ON-OFF is not good for the thermal control or for the Peltier itself.

Is there any simple circuit to convert the 4-20 mA from controller to a regulated current to the Peltier? The 4-20 mA are not the sensor signal, but the processed PID control signal from the controller

After searching similar questions, I think that the answer might be towards PWM or MOSFETs.

Thanks a lot!

  • \$\begingroup\$ Why not use voltage output instead? \$\endgroup\$
    – Eugene Sh.
    May 12, 2017 at 15:49
  • \$\begingroup\$ PWM and PID time-proportioning on/off control are very similar. The main difference is the timebase. A good controller will let you set the timebase to a second or two. \$\endgroup\$ May 12, 2017 at 15:50
  • \$\begingroup\$ the thing is, I only have that controller with the 4-20 mA output. Perhaps some power controller that takes the 4-20 mA and drives a larger power supply is needed. \$\endgroup\$
    – Nando
    May 16, 2017 at 11:23
  • \$\begingroup\$ Do you need to drive the peltier in both directions or only one direction? \$\endgroup\$ May 16, 2017 at 16:35
  • \$\begingroup\$ How much compliance voltage can your current source supply? \$\endgroup\$
    – winny
    Sep 22, 2017 at 8:05

3 Answers 3


When you PWM a peltier you run an already relatively low-efficiency device at an even lower efficiency. The heat pumped across the peltier is \$\propto I_p\$, while the losses due to joule heating are \$ \propto I_p^2\$, namely (\$ I^2R\$).

If you don't need to run your peltier at its peak efficiency for your application PWM is a much simpler approach.

You will have to decide if you wish to have a bi-polar output, namely source/sink current or uni-polar where it just sources current in one direction proportional to your 4-20 mA control signal.

A 4-quadrant programmable power supply like some of the Kepcos is one approach.

An LED constant current driver with a dimming input would be a lower cost approach.

Of course you can design a full custom amplifier with a bipolar output stage, or run the peltier as a bridge-tied-load.


If you go the pwm route, a sample PWM modulator LTC6992 simulates directly in LTSpice, and has a component configuration to make life easy.

  • \$\begingroup\$ Yeah, I don't need to run the peltier at peak efficiency, also, better is if I can make a simple circuit instead of getting a commercial solution. How about driving the power output from a switching power supply with the 4-20 mA? Should be some (hopefully simple) circuit to do that. Also, I was considering just installing some large capacitors to smooth the SSR ON-OFF driving power signal. This should be no problem since the peltier controls the temperature or a vessel with water, which has very slow response. \$\endgroup\$
    – Nando
    May 16, 2017 at 11:26
  • \$\begingroup\$ A SSR is typically designed for AC applications with triacs doing the actual switching and require a zero crossing to turn off. So you would need to find a mosfet based SSR. It is easy enough to low side switch the peltier with a fet or darlington. PWM directly into an output cap will yield high ripple current and little improvement. Look up LC output filter for class-d (PWM) amplifiers for more info. \$\endgroup\$
    – sstobbe
    May 16, 2017 at 13:18
  • \$\begingroup\$ Its up to you if you want to do a complete homebrew from ramp generator and up or go for a PWM modulator IC like the linear.com/product/LTC6992-1 \$\endgroup\$
    – sstobbe
    May 16, 2017 at 13:30
  • \$\begingroup\$ Thank you for your comments and answer! I am currently running it with a this DC SSR. But of course is very bad because it always turns full ON and full OFF the peltier, I can see that the surface temperatures raises ±10 ºC on each cycle, so it will not last. I like your PWM solution and the link you sent me, but I am afraid that it cannot take the load of the peltier: currently I drive it with a 16V - 2.5A power supply from an old laptop and the peltier eats all the power. \$\endgroup\$
    – Nando
    May 19, 2017 at 6:17

I think you are at the answer already. You need to convert your 4-20 mA analog signal to a PWM signal to run the Peltier. The Peltier is not affected by running PWM providing you keep the frame rate high, anything over 1 KHz should be just fine.

There are professional solutions for 20 mA to PWM or of course you could convert to voltage and go from voltage to PWM.

While the battle between those for/against PWM of the peltier modules rages, I tend to believe those professionals such as TE, who almost exclusively produce PWM controllers. This paper shows tests of the Peltier modules at differing PWM frequencies. Notice particularly that in these tests you CAN see changes over the control unit with time, but the effect is below 2% in 2500 hours of operation.
Also this rather interesting Masters paper shows one reason to use DC control for low noise (which is an exception to most requirements).

TE have a range of controllers (all PWM drive) with lots of technical info on the site

  • 2
    \$\begingroup\$ PWM on a Peltier is not efficient, particularly at low duty cycle. Resistive losses in the material go as the square of the current, and so a DC level is much better. \$\endgroup\$ May 12, 2017 at 18:40
  • \$\begingroup\$ I totally agree, but it depends on your design requirements. If efficiency is high on your needs....then you are right, but if you are more interested in simplicity of accuracy then PWM may be more suitable. meerstetter.ch/compendium/pwm-vs-direct-current \$\endgroup\$ May 12, 2017 at 21:37
  • \$\begingroup\$ A gentle warning- Peltier efficiency when cooling is horrible even under ideal conditions. If your efficiency is bad enough you may get the control loop latching. To avoid that you have to limit output current. It's not just about wasted energy. The tuning is going to be quite different when cooling and heating. If you have the budget you might want to consider buying a TEC controller, or at least review old app notes written by the likes of Jim Williams (RIP). \$\endgroup\$ May 19, 2017 at 11:15
  • \$\begingroup\$ @SpehroPefhany. Why would low efficiency result in latchup ...you need to explain that further. \$\endgroup\$ May 19, 2017 at 16:56
  • \$\begingroup\$ @JackCreasey When an increase in current (while cooling) results in the temperature rising, then that results in more current and so on. It won't latch up in the heating direction because more current always results in more heating, but the opposite is not always true. A colleague just discovered this for himself (after not listening to another gentle warning). \$\endgroup\$ May 19, 2017 at 16:57

As to efficiency concerns, other posters are right. You want to drive the Peltier with a constant DC voltage. To accomplish that we need some kind of switch mode power supply to supply that DC voltage.

Switching power supplies and Class D audio amplifiers are available cheaply in the target voltage and current range. They have the power handling capability to drive the Peltier, the question is how to get them to provide an electronically controlled DC voltage.

While the audio amplifiers have the right topology do drive the peltier in both directions, they would be harder to modify for DC operation. Take a look at this one for instance. Somewhere in there are some capacitors which if short circuited would turn it into a controllable DC voltage source. I personally wouldn't want to have to find them. The power supplies, with some external control circuitry are the easiest to make work.

Take a look at this module. It uses the LT3800 DC-DC step down controller. It's well suited for what I have in mind. The blue multi-turn trim pot near the input side. The one with the little brass screw you turn to change the output voltage. This terminal will be the feedback input.

The output voltage of the converter is fed to a resistor divider. The resulting feedback voltage is fed to the switching controller. The controller tries to keep the feedback voltage at 1.23 volts in the case of the LTC3800. IT does this by varying the PWM duty cycle. This produces a stable DC voltage at the output, which is what we want to drive the peltier.

enter image description here

Flip the board over and you'll see the trimpot terminals exposed. It's easy enough to trace out the layout and tell which one connects to the Vfb pin. when the converter is operating it'll have the reference voltage listed on the datasheet. Solder a wire onto that terminal and connect that to an external circuit through a resistor. This lets you vary the power supply voltage electronically. Be careful not to apply more than the rated absolute maximum(5v) to that pin though.

For driving in one direction, (Only heating/Only cooling), Connect one terminal of the Peltier to the power supply and the other to ground. The power supply acts as it was designed and provides a varying DC voltage which varies the amount of heating or cooling supplied. An external control circuit would be connected as described before. You'd just need an op amp some resistors and a potentiometer.

For driving the Peltier bidirectionally, you'll need two of them, Essentially, the control circuit would set one power supply at Vx and the other at (Vsupply-Vx). The converters would have to be modified since they're set to be non-reversible. To fix this, tie the burst enable pin to Vcc rather than Vfb (The manufacturer just copied the datasheet example layout). You can see it in the image on the Ebay page. The third and fourth IC pins from the right are shorted together, Cut the trace going to the Vburst pin and solder in a wire connecting it to the Vcc pin on the other side of the chip.

wiring diagram

The control circuit would just be a 5v regulator, an op amp and some resistors, a capacitor, and a trimpot for the set point. 5V is chosen so the voltage on the converter feedback pin stays below the absolute maximum voltage.

Components are chosen to give the integral component a 10 second time constant.

The disadvantage with this is that you need to change the component values to tune the circuit. Using a microcontroller (EG:Arduino). to read the 4-20ma value, read a potentiometer to get the set point and produce an analog voltage would make the controller easier to tune. Just change the constants in the program. The code would be very simple and this would allow a computer to control the set point. Here's what that would look like:

enter image description here

You write some code for the Arduino. It reads the analog voltage coming in, converts that to a temperature, feeds that into a control loop and writes some analog value out that sets the voltage going to the peltier. You can even get another library to tune the control loop for you.

  • \$\begingroup\$ Thank you for such a complete answer! Your solution(s) sound very good. I want to go for it. In your first solution, audio amplifier, how about a simpler one like this? I this need to shortcut those capacitors?. Second solution seems more complicated for me (just a beginner) because I don't understand that about the op amp circuit. (BTW, I just need cooling control). Regarding your drawing, it is the output of the PID controller that gives 4-20 mA, not the sensor. \$\endgroup\$
    – Nando
    May 19, 2017 at 7:28
  • \$\begingroup\$ I mentioned audio amplifiers only because they have the power rating to work in this application. Both audio amplifiers and switching power supplies can be turned into electronically controllable DC power supplies. The DC-DC converters are easier to convert since every one of them has a feedback node. Connecting a resistor gives a control input. Audio amplifiers are tricky, cost more, and don't have any real advantages in this application. Connecting the finished controllable DC power supply to the peltier gives a simple system where the voltage input controls the cooling or heating supplied. \$\endgroup\$ May 19, 2017 at 17:42
  • \$\begingroup\$ Once that is accomplished, you need a controller that feeds in a control signal so that the output temperature stays where you want it. That's a completely separate problem. The op-amp circuit is not a good idea because it isn't easy to change its response. I recommend getting rid of everything in the box marked "control circuit". Replace it with a micro controller. It will make your job much simpler. \$\endgroup\$ May 19, 2017 at 17:42
  • \$\begingroup\$ The micro controller reads the 4-20ma signal by turning it into a voltage with a 220 ohm resistor. It generates a control voltage with PWM and an averaging circuit to control the peltier cooling. A control algorithm is written to set the control voltage so the temperature stays where it needs to be. I recommend using an Arduino. Getting this done is very easy and will be much easier to get right than an analog control circuit with op-amps and other components. If you need more specifics we should probably take this discussion to chat. \$\endgroup\$ May 19, 2017 at 17:42
  • \$\begingroup\$ Now I am having some partial success using this DC motor controller which accepts 0-5V as input connected to this 0-20mA to 0-5V converter. Now I can convert the 5-20 mA coming from the controller with the converter to 0-5V and then to the motor controller connected to the peltier and a power supply. Now I have the problem that the currrent to V converter gives me 2.5V when the input is 4 mA and 16V when the input is 20 mA, even after adjusting the included burden resistor to the minimum level. \$\endgroup\$
    – Nando
    Oct 5, 2017 at 1:05

Your Answer

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

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