H-bridge design: 25A, infrequent polarity switching

Thread Starter


Joined Aug 16, 2012
Apologies for the long post, I’ve tried to give all the necessary info in a single post (plus a little extra for folks who have similar questions in the future). Thanks in advance to all the contributors here, your help is very much appreciated.

TLDR: Can you help me validate the attached H-bridge circuit? It will rarely switch polarity and feeds a peltier device.

I've been struggling to complete a project where I'm using peliter devices to cool the temperature inside an insulated box. I need to be able to change the polarity to both heat and cool. I'm still pretty much a noob at this, and have learned from multiple failures on other projects that I won't be successful on datasheets alone. I definitely could use help validating my design. I've attempted to design an h-bridge that could handle 25A around 16V and switch polarity switching on a timescale of minutes or hours (this is not an h-bridge for PWM). There is more detail about the circuit below, along with some specific questions I would appreciate feedback on.

A little more context before I talk about the schematic. I've also attached a high level layout of how the peltiers are controlled. A description of how it's wired in order:
Simplifed high level schematic.png
  1. Meanwell DC PSU
  2. DC SSR, used to control the power to a buck converter, this is how the micro-controller turns on heating/cooling
  3. Buck converter, I purchased something off ebay to get me started, once the H-bridge is resolved I will develop my own buck converter (and learn how to use ltspice) to control the buck directly with the micro-controller
  4. Attopilot current and voltage sensor, so I can log current and voltage to the pelitiers
  5. 2 SPDT relays with a control circuit used to switch polarity (select heat or cool)
  6. fuses
  7. Peltier devices wired in parallel
The goal of the H-bridge is to replace #5 and #4 in the list above (the dashed green box), because I need more current handling capability for both polarities than the SPDT relays offer. I know relays are a great way to control things that don't get switched very often, but I haven't found any DPDT or SPDT relays that will handle around 25A at 20V on both the NO and NC legs. I think I can do an h-bridge at a comparable cost of a 4 SPST relays with a control circuit, and it will be more compact. I decided to integrate #4 into the H-bridge with an INA219 to measure current and voltage to try and consolidate things.

About my H-bridge circuit:
I’m using Fairchild FAN3268 to drive a p-channel MOSFET on the high side and an p-channel on the low-side. I think I need a p on the high-side, even though they typically have worse rds_on, because I'm not using PWM and can't easily boot-strap an n MOSFET on the high-side. I chose MOSFETs on rds_on values, since the “frequency” will be something like 0.0001 Hz. HCNTL is the logic signal from my arduino to change polarity.

As noted above I’ve also added an INA219 to track current and voltage through the h-bridge. I’ll be logging data from this with my arduino. I've never done surface mount, but hope the electric skillet technique isn't too tricky.
Draft hbridge polarity.png

My questions:
  1. Current limiting resistors for the MOSFET gates?
    There is no discussion of these in the driver datasheet. The more detailed MOSFET driver circuits I've found online all have them, but I'm under the impression they are for switching frequency issues. I don't know if it matters, but the code will only allow the polarity to change when the DC SSR is open and no current is flowing to the buck converter from the PSU. Do I need current limiting resistors for the MOSFET gates?

  2. Decoupling capacitor(s)?
    From what I have read online, it sounds like peltier devices are basically just resistive loads. I know the wires have some inductance, but since I'm hardly switching the MOSFETs will I still need decoupling capacitors? Can I depend on the output capacitors on the buck converter alone? If I do need them, pointers on how much capacitance is appropriate and if the capacitor(s) should be placed above or below the INA219 sense resistor would be very helpful.

  3. Catch diodes?
    Are these needed given the infrequent switching and my assumption that it’s okay to ignore any inductive kick for the peltiers? I know the catch diodes matter for motors, but I’m guessing for my application the body diodes on the MOSFETs are sufficient. Is that a bad assumption?

  4. Anything else?
    It’s my first time trying to figure out an H-bridge, and only my 3rd time trying to create a circuit. I fully recognize there is a lot I don’t know, and I may not be asking some important questions.

Again, any feedback would be much appreciated. In case it matters and it’s not legible in the schematic the p-channels are Infineon Technologies IPB180P04P4L02ATMA1 and the n-channels are NXP PSMN1R4-40YLDX.


Joined Jun 19, 2012
The relay idea is good, you can make this thing way simpler.

Use a beefy automotive DPDT relay to reverse the polarity and a single low-side N-CH FET to do the power switching.
No gate driver chips necessary, you don't need the speed.

Switch the power off before changing the relay state- no contact wear via cold switching.

Thread Starter


Joined Aug 16, 2012
Thanks for the suggestion on the automotive relays. I was looking to narrowly on digikey, and I totally missed the automotive spdt relays with that high of current ratings. I like the improved relay idea, but I will still need to do some leg work to figure out how I could make the connections and fit it in my enclosure. I can also punt the INA219 for when I build my own buck converter. Overall the H-bridge might actually come close on cost, as I'll be able to have a smaller PCB and the parts are relatively cheap (the drivers are for convenience/cost not switching speed), but laying out the PCB for the h-bridge would take me a while. I agree if relays work it will be much simpler.

One more question:
I currently have this set up running, but am too nervous about the current levels with relays to do anything other than test for a few minutes at a time. One quirk I have noticed, and am hoping to fix, is that when I turn off the DC SSR the voltage on the attopilot sensor drops but the current spikes. Is there somewhere I should be adding a diode or some other projection against this? Or is this normal? I can't log data very quickly, and I don't have an oscilloscope, but here are some data points I pulled that show the current spike:
pelt amp volts.png

thanks again
A comment that might help you out is that the TC cooler is acting as generator when turned off.

The device can both produce power (delta T) as well as provide heating/cooling.

I'd suggest a series diode on the output of your converter. The same deal manufacturer's recommend when charging batteries.


Joined Jun 19, 2012
Relays are big pigs...

Since your switching speed is so glacially slow, you could implement a simple charge-pump referenced to your V+ rail to generate a higher voltage to drive an N-CH FET for the high side- N-CH FETs always seem to have better characteristics.

I'll bet that spike is not really current, more of a voltage artifact from your current sensor- ignore it blissfully.