Problem driving a Peltier (TEC) module with low voltage vIN (0.8v)

this is my first post, I wrote in the Arduino forum and they suggested me to write here. :slight_smile:

For a project I have to: drive one (several if it works) Peltier (TEC) element. Running the same face hot or cold, according to user selection. Also with the ability to set the desired temperature (hot or cold).

Therefore my objective is: to drive a TEC element, maintaining the ability to inverse the polarity. Using cost-effective components because it’s a really low budget project.

Components: for a technical reason, I need to use this very small peltier. Rated 0.8v 3.2A.

Looking for a cost-effective solution for driving a TEC with Arduino, I found several posts on google, suggesting a motor h-bridge.
The problem is that usually the motor drivers are rated for higher VmotorIn voltage, >3 volts.
The only viable and cost-effective solution I found is this small driver from Pololu.

I built the circuit, and it actually worked. (diagram attached)
But there are several problems:

  1. I have to turn up the voltage from 0.8v to 1.5v at the driver V motor In. Otherwise, I have no response from the TEC at all.
  2. Nonetheless, I have a significant voltage drop on the TEC. I supply to the driver 1.5v but I measure 0.4v on the TEC terminals.

The TEC works, it reaches the temperature, I can switch the polarity and so on.
But I do not understand the voltage drop, and the driver runs very hot.
I would also like to find a different solution because right now I’m driving the TEC only a 1.7A (driver internal limit)
While I could safely push up to 75% of the power (let’s say 2.5A).

So my question are:

  1. how can I drive a TEC element rated at 0.8v?
  2. How can I improve my circuit with low-cost components?
  3. Can I use PID and PWM with this TEC/circuit? In other h-bridge solution, I found PID and PWM a 200khz is usually implemented.

In the Arduino forum, they suggested me to use two drivers in parallel. I run this solution and it works more stable, nonetheless, I still have the voltage drop and the overheating.

I saw your DRV8835 Dual Motor Driver Carrier, can it work better in substitution for the two parallel drivers I have now?
will it avoid overheating?

Otherwise would you please suggest me a better a solution to drive these TECs?

Thank you all very much,

Hi, Paula.

Since you are running your DRV8838 carrier at its maximum current rating, It is normal for it to run very hot. It sounds like you are not currently seeing any issues, but we generally do not recommend running two motor drivers in parallel unless the datasheet for the chip has documentation about doing so. Even when things seems to be working, there is the possibility that the timing between the two drivers is off which could cause the high side FET from one and the low-side FET from the other to briefly be on at the same time which briefly causes a short between power and ground.

I suspect the voltage drop you see is either happening across the wires in your system or caused because your regulator cannot handle the load of your peltier device. If you measure the voltage at the output of your regulator and it is the full 1.5V, the issue is with the wiring and you could try using thicker, shorter connections.

We have seen our motor drivers used to control peltier devices with a PWM output before, but we do not have any specific advice about doing that or how it would affect the device. We have a 2-channel DRV8835 carrier that is similar to driver you are using, that is designed to let you use its channels in parallel, but that would only get you to around 2.4A total. Unfortunately, we don’t have any recommendations for a driver that can handle more current at voltages that low.


Dear Claire,
thank you for your message :slight_smile:
The regulator should be fine, it is rated 3A (continuous) 5A (peak). I use thicker cables for the power lines, but some connections are through the breadboard, therefore you might very be right!

Anyway, I think that the issue is that the single drv8838 is underpowered and that I cannot run them efficiently in parallel. I noticed strange behaviours after some minutes of continuous running in parallel (i.e. a decreasing of efficiency). Maybe is the timing issue you were mentioning.

However, I bought a couple of DRV8835 carrier following your suggestion. 2.4A should be more than fine for my purpose.

Nonetheless, I have one problem. To run the drv8835 in parallel I connected in parallel the motor outputs and the logic input pins, following this map:

MODE: high (pullup resistor 100k to 5v)

and then
BOUT2 <----> AOUT2
BOUT1 <----> AOUT1

Therefore, I control this with only two Arduino pin. (enable and phase).
I’ am able to switch on and off the Peltier, and it works fine. Quite efficiently too.
But I cannot change phase.
Code should be fine, It worked with the drv8838 both for enable both for the phase.

Do you have any wiring diagram or suggestion to use the 8835 to run a single motor with the two drivers in parallel?

Thank you

Your connections sound correct, but the MODE pin is internally pulled low by the DRV8835 chip with a 100k resistance, so you should probably use a stronger pull-up (around 10k) or just connect your MODE pin directly to 5V. If you still have issues after that, could you give more details about that happens when you try changing the phase signal? Can you also post pictures of the setup that show all connections including any soldering?