ESD protection for Aruduino Input Pins.

Submitted by karan on Wed, 04/08/2020 - 03:29

Dear all,
          I am designing an project for automobile application , I which I require to protect my circuit from all possible type of practical failure.

For this project I have decided to build my own arduino board .

I will be taking 4 field digital input into my board , Fields input voltage will be in 20-28VDC(For logic 1) and 0 for logic 0.

To protect the circuit from high input voltage I have used optocoupler PC847 , and to protect the Inputs from ESD i have used TVS diode array SP0505BAJT. ( 5 diode array ,4+1 spare i have kept for future)

As  I am designing this type of circuit for the first time , I require your view whether the selected circuit is okay or not, The value of resistance that I have used is okay or not and the most important TVS diode that I have selected is okay or not .

Kindly also provide if any additional type of protection will be needed for input

Arduino ESD protection_0.PNG


Arduino ESD protection.PNG

  Joined April 08, 2020      3
Wednesday at 03:20 AM



First define the valid voltage levels: V_IH, and V_IL, not the arduino levels, but the 20/24V levels.
And define the valid timings.
Then the maximum erroneous signals. In volts, time, energy, or capacitance.
If you don't know how, then read through ESD, EMI/EMC documents..
Many members may say: "I don't know" ... but you can't design a circuit without electrical specifications.
(There is a good chance that you design either the protection level too high, too low, or may have unwanted influence on the usual signals)
 This is not related to arduino, indeed you need the same for every 3.3V/5V digital system.
An optocoupler connected both sides to the same potential is a waste of money.
Optocouplers are for galvanic isolation .... which you don't use.

Use: R, D and C only.

But the part selection is only one part. Additionally you need a useful schematic ... and you need a suitable PCB layout.
Without a suitable PCB layout ... all the parts may be useless.

  Joined November 07, 2019      124
Thursday at 04:25 PM


In reply to by jaksonlee



Input is coming through electromechanical relay when the relay is open I am taking that as 0 V(Logic 0) condition ,  and when the Relay is close I am taking it as logic 1 condition.

Definitely to solve the problem of floating pin I will be making arduino pin pull up high.


As mentioned above the input is coming through  electromechanical relay hence the input won't be high frequency input , actually it would be like hardly once in a minute.

PCB layout I have already done many time in the past , and also did the PCB layout for this project and I thing I won't be facing any problem in it.


Regarding Optocoupler , can you kinldy elaborate furhter on R D C circuit.







  Joined April 08, 2020      3
Wednesday at 03:20 AM

First of all, why you need ESD protection for PC847?
Why you break the resistors into two series part?

1. Esd protection should be connected at starting of the input. It needs to be before the R30,R31, and so on.

2. When you are using optocoupler, you need two grounds. Isolated from each other. Your circuit will be useless if you do not have it. For example, the led side of the optocoupler need to be connected with the input ground, the circuit ground from where you are taking the input. On the other hand, the transistor side of the OC is need to be the Arduino gnd. Arduino gnd and the input circuit gnd should be isolated completely.

3. Your intentions is to protect the optocoupler. Then the esd should terminate the transient into the input circuit ground. So the tvs gnd should be the input circuit gnd.

Again why you need resistors in series?

  Joined February 12, 2018      696
Monday at 02:11 PM

Thanks sourav for reply.

1) why you need ESD protection for PC847 :- My said project is for automobile application , hence the ESD protection required and I think PC847 is susceptible to ESD.

2) ESD protection should be connected at starting :- you are very right , but the connected TVS Diode array sp0505BAJT has Reverse Standoff Voltage of 5.5 V and my input signal is of 24V that's why to create the voltage divider I have used the array. 

3) I don't have isolated power supply in my module , therefore i am using common ground. actually I have heard it everywhere if I am using common ground than it's wastage of money . So I have decided not to use optocoupler .

Now I  could think of two option 1) Use NPN transistor 2N3904 with base resistor of 20K ohm , and connect emitter to ground and collector to pull up high pin of arduino.

2) To directly connect the input to arduino using 20K ohm series resistor ,tvs diode to ground , 1 x 0.01 uf capacitance to ground , 1 x  5.1V  zener to ground , 1 x 100k pull down resistor to ground.


again in this schematic I have used 10K + 10K resistor instead of 20K single resistor to reduce the energy of ESD , so that TVS Diode can work better.

Kindly check both the schematic and suggest which one would be better considering the automotive environment. my input signal is simple on and off signal.


Regarding g pin to ground error pointed by you in my last schematic :- Actually I used EAGLE software to draw that schematic and in that I didnot had the liberary for SP0505BAJT TVS Diode array , so I  used the liberay of other IC with similar foot print that's why that mismatch is showing. Pin 2 of SP0505BAJT is ground only. I should have mentioned it in the schematic my mistake sorry.


esd protection.PNG

  Joined April 08, 2020      3
Wednesday at 03:20 AM

Connect the g pin to ground. Connect the s pin to input circuit vcc. Rest pins are need to be connected in the to be protected lines before any components i.e before r30,31 and so on.

  Joined February 12, 2018      696
Monday at 02:11 PM

Connect the g pin to ground. Connect the s pin to input circuit vcc. Rest pins are need to be connected in the to be protected lines before any components i.e before r30,31 and so on.

  Joined February 12, 2018      696
Monday at 02:11 PM

What is the final result of this topic ?
Could you share your progress ?

I'm interested in the final circuit design and the result of the tests.


Have a nice day

  Joined March 13, 2022      1
Sunday at 11:28 PM