Mosfet Based SPDT Solid State DC Relay (SSR)

In this post we'll study a simple high current mosfet based solid state relay, which can be used in place conventional bulky SPDT mechanical relays. The idea was requested by Mr. Abu-Hafss.

The Design

A simple high current SPDT solid state relay or an SSR can be constructed using a couple of mosfets and an optocoupler, as shown in the digaram above.

The idea looks self explanatory.

In an absence of an external trigger, the lower mosfet stays switched OFF allowing the upper mosfet to conduct through the 10k resistor connected across the positive and the gate of the mosfet.

This enables the N/C contact to get active, and a DC load connected across the supply positive and the N/C gets activated in this situation and vice versa.

Conversely in the presence of an input trigger, the mosfet connected with the opto emitter gets an opportunity to switch ON, switching OFF the upper mosfet.

In this situation a load connected between positive and N/O points gets activated or vice versa.

The Circuit Diagram

Need Help? Please send your queries through Comments for quick replies!


rahul chhallare said…
Hi swagatam
i want to use relay for on & off motor as per water level in tank .
current approx.10-12 amp.
so 10amp 230 vac,10 amp120 vac,which relay use ?
transistor bc547 or sl 100 which is suitable?
plaese reply me.
rahul chhallare said…
I want to use relay to on & off motor as per level of water tank.current 10-12 amp.
10amp 120vac or 10 230 vac which relay use?
bc547 or sl100 ehich transistr use
Swagatam said…
Hi Rahul, BC547 will do, make sure the coil current is not rated above 60mA
Hi Swagatam, nice to see that there are people like you in this world. And, more, thanks for your precious work.

It should be interesting to publish an DPDT shouldn't be so different from an SPDT: in the end a DPDT is a twin-SPDT!

In addition, it could be interesting to evaluate the possibility to add the optional "stepper" characteristic (at first pulse, the switch takes place and remains unchanged until a next pulse will be issued, see "stepping relay" on Wikipedia).

What I'm talking about is a full conversion of a mechanical "Form C" contact (break-before-make) DPDT into a perfect Solid-State equivalent, with 6 (3+3 independent each other) switching contacts (of which power & voltage can be easily adjusted by changing the components's values) plus the 2 low-voltage terminals to which apply the voltage needed to operate the switch.

There are already, on the market, devices like the one proposed but these are very expensive and often unavailable for tailor-made needs so it will be very useful for many people to learn how to build one by ourselves.

Many thanks in advance.

Fabrizio, Rome - Italy (
Swagatam said…
Thank you so much Fabrizio,

The first two specifications that you have mentioned looks feasible to me and could be designed.

However I am not so sure about the "form C" counterpart specs, I'll try to investigate it though, and see whether or not I am able to transform it into the solid state version.

I'll try to include the idea in my blog, possibly soon.
Tested and working! Thanks a lot Swagatam..
Swagatam said…
My pleasure Vasilis! keep up the good work
Aaron said…
I am currently using an automotive SPDT relay to simply switch a 0 ohm ground signal that my cruise control unit is looking for. This is the trigger that shuts the cruise control off when you tap the brake pedal.

I am currently using a relay and it works fine but that the relay is loud and click every time I tap the brake pedal drives me crazy. I see in your above diagram and write-up you use the word "load" for both the N/C and N/O terminals so that tells me this design would work for situations where the relay is being used to switch circuits drawing current. My question is whether or not the same circuit can be used for a near-zero load (ground signal wire switching) or if I'd need to stick with something like the mechanical relay to accomplish this?
Swagatam said…
You can effectively use the above solid state relay as long as the "load" current rating does not exceed the current specs of the mosfets, as long as this is maintained the circuit would serve the purpose well....however the above SSR will require a positive signal for activation, a ground signal will not work with the above design.
Cypherbuster said…
Amazing work! Wanted to know how do i modify the circuit to switch 230v AC?
Swagatam said…
thanks cypher, that's a good suggestion I'll try to post it soon in this website.
Cypherbuster said…
Thanks a lot! Looking forward to it. :)
Swagatam said…
it's done, here's the link:
Usa Juana said…
Hello sir thank you for this circuit now I can implement the over load protection circuit,relay have being my problem. Please may I ask.Q1 to achieve high amps I just need to use high amp to handle 200amps I use like irfp2907 right? Q2 will the mosfets need heat sink as I plan to use it for up to 150amps inverter.Q3 how do I modify it to handle higher volts , say 24-48 volts. Q4 if I use 4 mosfet to make it DPDT will it work. Can the optocoupler handle it? Q5 what will be the recommended mosfet gate volts .Lastly Q6 what will be the trigger volts. Also is it ac or dc? I look forward to your reply is very important to me . Am Shedrach proudly your Student.
Swagatam said…
Hello Sherach, here are the answers:

1) yes you just need to upgrade the mosfet current (or voltage) specs for achieving higher wattage at the output
2) heatsink will be strictly required, may be with fan cooling also.
3)For higher voltage make sure the mosfets are rated above that limit...for 48V it should 60V and so on.
4) 4 mosfets can be used for getting DPDT operations.
5) 10V minimum and 15V max
6) the trigger voltage can eb anywhere from 2V to 15V but make sure to add a roughly calculated limiting resistor in series accordingly for safeguarding the opto LED.
Aslesh Shetty said…
Very nicely written. Thanks for your precious work. One question though. In absence of an external trigger, what is the input at gate for the lower MOSFET? SHould it be connected to ground or to a supply voltage?
Swagatam said…
I am glad you liked it, the mosfet gate of the lower mosfet is connected to ground via a 10K resistor.
Johny Radio said…
Great circuit! But, why is the optocoupler needed? Why can't control the switches directly from the trigger input? thx!
Johny Radio said…
Can i simply duplicate the whole circuit for a DPDT? THX!
Swagatam said…
yes opto coupler can be avoided and the input directly connected with the trigger point, an opto may be used only if the trigger source needs to be isolated from the relay
Swagatam said…
yes that can be done.
Vinicius Senna said…
Very nice tutorial.
I would like know how many current this circuit can flow with it mosfet of schematic?
Swag said…
Thank you, however I am not sure regarding the specs of the shown mosfets, please refer to the datasheet for the answer, or you can replace the same with any other known n-channel mofet.
Vinicius Senna said…
Thank you for your quick answer. I'm admiring your work.
I have a doubt maybe you could tell me about MOSFET. how transistor BJT have a drop voltage fixe or nearly 0,7V, i would like know if mosfet, have a drop voltage fixe how transistor BJT of 0,7V? Or only drop voltage MOSFET is calculed on your RdsOn?
I am createing a system of backup energy with battery for my circuit, when supply power main is cut, my battery begin work, I am use battery lipo 3.7V and doing a step-up for 5V just when power main is cut. when main power is cut, i have MOSFET P that begin work, flowing current for my circuit main again. I cant to lost nothing voltage when this mosfet switch. In my simulator everything work normaly, but still do not a real circuit for test, maybe your experience can anwser my doubt about mosfet have some lost voltage how transistor
Swag said…

0.6V is the BJTs base triggering voltage, for mosfets it is over 6V,... ideally 10V.

you can try the concept which is shown in the following article, and check the response
Peter B said…
Hi Swagatam,
I would like to do something similar, but maybe you can help me how to do it.
I have many 4.2V ION cells in series and would like to either couple the cell in or bypass the cell.
I would like to control each cell by a MCU (Arduino Mega) and select if the cell needs to be i serial with the other cells, or needs to be bypassed.
Thanks for your work, really appreciate it.
Swag said…
Thank you Peter,

However Arduino is not within the range of my expertise so it can be difficult for me to program it for you, if it's without Arduino then may be I can help!
Peter B said…
I was only the analog MOSFET circuit i would like you help with. Actually it's a OPTO isolated MOSFET SPDT switch, good for 20A, i would like help with.
Swag said…
you could probably try the following idea:

only one transistor can be ON at a time.

 Follow on G+  Follow on Facebook   Follow on Tweeter  Follow on G+  Follow on G+