EMI filter circuit using common mode inductors and capacitors

Circuit published here is a dual stage EMI filter. EMI Filters are widely used in applications such as Appliances, Military systems, Aerospace systems , SMPS, VFD drives, AC Servo drives,  Energy Management Systems, Computers, Factory Automation Equipment, Industrial Equipment, Medical Equipment, Automotive Battery Charger.

The EMI circuit normally consists of passive components, including capacitors and common mode inductors, connected together to form LC circuits. 

The common mode inductor(s) allow DC or low frequency currents to pass through, while blocking the harmful unwanted high frequency currents.   The capacitors provide a low impedance path to divert the high frequency noise away from the input of the filter, either back into the device, or into the ground connection. In addition to assisting to meet EMI regulations, the filter also has to meet safety standards. 

The inductor temperature rise is measured and for mains operation, the minimum electrical spacing between line, neutral and ground are controlled.  This reduces the risk of fire and electrical shock.

Note : Project has been design for multipupose, few components can be omited or mount as per application requirmnet, R1 NTC, R3 MOV,  R2 resistors are optional. Value of inductors and capacitors can be selected as per power requirment.

  1. CN1 AC 100V to 250V AC Input Single Phase
  2. Maximum Load current up to 10Amps
  3. CN2 AC Output


  • Capacitor C4, C5, C6, C7 : 1K PF 1KV ( 1000V)
  • Capacitor C1, C2, C3 : 0.47uF 270V AC X2
  • R1 NTC  : 10D-20 ( 20MM NTC) for Inrush Current Protection  ( Link)
  • Common Mode Inductor ( Choke) : T1, T2 : 1MH 10Amps  Wurth Part No 744824101
  • R3 Metal Oxide Veristor Optional 
  • F1 Fuse holder and Glass fuse 10Amps

Across-the-line capacitors C1, C2, C3 (X-capacitor) Suppresses differential mode noise
Line bypass capacitors C4, C5, C6, C7 (Y-capacitor) Suppresses common mode noise
Common mode choke coil  T1, T2 Suppresses common mode noise
R3 MOV Optional  Can be selected as per application requirement
R2 Optional Not Used
R1 NTC to protect inrush current ( Optional Can be directly short using jumper wire)


What is the common mode inductor?

Common mode chokes are specialized inductors designed specifically for common mode EMI filters?  The common mode choke consists of two identical windings wound such that the magnetic fields caused by differential mode currents cancel.  EMI filter is essential elements.

What is a Common Mode working
A common mode choke is an electrical filter that blocks high frequency noise common to two or more data or power lines while allowing the desired DC or low-frequency signal to pass. Common mode (CM) noise current is typically radiated from sources such as unwanted radio signals, unshielded electronics, inverters and motors. Left unfiltered, this noise presents interference problems in electronics and electrical circuits.

How do Common Mode Chokes Work? (Link)
In normal or differential mode (single choke), current travels on one line in one direction from the source to the load, and in the opposite direction on the return line that completes the circuit. In common mode, the noise current travels on both lines in the same direction.
Common mode chokes have the two or more windings arranged such that the common mode current creates a magnetic field that opposes any increase in common mode current. This is similar to how single line (differential) inductors function. Inductors create magnetic fields that oppose changes in current.

In common mode, the current in a group of lines travels in the same direction so the combined magnetic flux adds to create an opposing field to block the noise, as illustrated by the red and green arrows in the toroid core shown in Figure 1. In differential mode, the current travels in opposite directions and the flux subtracts or cancels out so that the field does not oppose the normal mode signal.

How do I Choose a Common Mode Choke?
The main criteria for selecting a common mode choke are:

Required impedance: How much attenuation of noise is needed?
Required frequency range: Over what frequency bandwidth is the noise?
Required current-handling: How much differential mode current must it handle?

Read More at CoilCraft

EMI/EMC Information

EMC/EMI Filter Design Application Note Download  ( schaffner )

Texas Intruments Application

Biricha Application

EMC and Noise Regulation TDK  Application

What is EMI Electromagnetic interference?

A broad term covering a wide range of electrical disturbances, natural and man-made, from dc to GHz frequencies and beyond.  Sources of disturbance may include radar transmitters, motors, computer clocks, lightning, electrostatic discharge and many other phenomena.

What is EMC Electromagnetic compatibility?

A situation wherein two pieces of electrical or electronic equipment are able to function in the same environment without adversely affecting, or being affected by, each other.

EMI Electromagnetic interference.

A broad term covering a wide range of electrical disturbances, natural and man-made, from dc to GHz frequencies and beyond.  Sources of disturbance may include radar transmitters, motors, computer clocks, lightning, electrostatic discharge and many other phenomena.


Circuit described here is a four channel audio distribution amplifier. The input and all four outputs may be connected through the XLR jacks. The input accepts a balanced. Each of the four outputs provides line level balanced signal. On board Trimport provided to adjust the gain of each output channel and also Master gain adjust for input signal, Trim-pot can be replaced with 16mm Potententiometer, circuit required dual15 V DC supply (+/-15V DC). Circuit designed using low noise BA4560 Op-amp from ROHM.

Download PDF Document


  • Supply +/-15V DC (Dual 15V DC)
  • 4 Balanced Outputs Male XLR Connectors
  • 1 Balanced Input Female XLR Connector
  • 4 Trimmer-Pots (Output Gain Adjust)
  • 1 Trimmer-Pot (Master Input Gain Adjust)

Low Noise Dual Supply Voltage Operational Amplifier – BA4560

General-purpose BA4560 op-amp is suitable for any audio applications due to low noise and low distortion characteristics and are usable for other many applications by wide operating supply voltage range. BA4560R is high-reliability products with extended operating temperature range and high ESD tolerance.

Arduino 4 Channel Infra-Red Remote Controlled ON/OFF Switch

The project published here allows turning ON and OFF  lights fans using infra red remote.  Project consist 4 channel Nano relay shield, low cost infra-red remote.  The project can control Fan, AC lamps AC230V/AC110V or DC load upto 7Amps.


  • Supply 12V DC
  • Current consumtion 250mAmps ( When All Relays are in On State)
  • Relay Switch Load 7Amps AC /DC

Arduino Pins

  • 4 Relay: Arduino Pin D2, D3, D4, D5
  • Infra-Red Receiver TSOP1838: Arduino Pin D6

Arduino Code Github

Download Arduino Code

Download PDF Schematic

Download Infra Red Library

Decoding the IR code is important to pair any Infra-Red transmitter with the receiver, check bellow link to understand the decoding of IR signal from various infra-red remote protocols.

How to Setup the IR Remote ( Link)

Adafruit Receving and Decoding Infra Red Code (Link)

Infra-Red Code Decoder (Arduino Code)

#include <IRremote.h>

int IRPIN = 6;

IRrecv irrecv(IRPIN);

decode_results result;

void setup()
Serial.println(“Enabling IRin”);
Serial.println(“Enabled IRin”);

void loop()
if (irrecv.decode(&result))
Serial.println(result.value, HEX);

Arduino Code – 4 Channel IR Remote Controlled  On/Off Switch

* 4 Channel Arduino Infra Red Remote Controller with Relay
* Circuit diagram, PCB Layout and Arduino Code available on our website www.twovolt.com
* Code Author Ken Shirriff


#include <IRremote.h>

int RECV_PIN = 6;
String IRButton1 = “FD20DF”;//SWITCH 1
String IRButton2 = “FDA05F”;//SWITCH 2
String IRButton3 = “FD609F”;//SWITCH 3
String IRButton4 = “FD10EF”;//SWITCH 4
const int ledPin1 = 2;// Relay 1
const int ledPin2 = 3;// Relay 2
const int ledPin3 = 4;// Relay 3
const int ledPin4 = 5;// Relay 4

IRrecv irrecv(RECV_PIN);

decode_results results;
int button1 = 0;
int button2 = 0;
int button3 = 0;
int button4 = 0;

void setup()
irrecv.enableIRIn(); // Start the receiver
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
BUTTONPRESSED = String(results.value, HEX);
Serial.print(“BUTTONPRESSED “);

//button 1
if (BUTTONPRESSED == IRButton1) {
if (button1 == 0) {
button1 = 1;
button1 = 0;
if (button1 == 1) {
digitalWrite(ledPin1, HIGH);

digitalWrite(ledPin1, LOW);

//button 2
if (BUTTONPRESSED == IRButton2) {
if (button2 == 0) {
button2 = 1;
button2 = 0;
if (button2 == 1) {
digitalWrite(ledPin2, HIGH);

digitalWrite(ledPin2, LOW);

//button 3
if (BUTTONPRESSED == IRButton3) {
if (button3 == 0) {
button3 = 1;
button3 = 0;
if (button3 == 1) {
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin3, LOW);

//button 4
if (BUTTONPRESSED == IRButton4) {
if (button4 == 0) {
button4 = 1;
button4 = 0;
if (button4 == 1) {
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin4, LOW);

irrecv.resume(); // Receive the next value


Arduino 4 channel on-off (toggle) switch

Arduino based 4 channel toggle switch using 4 relays, 4 tactile switches, an Arduino Nano, the circuit required 12V DC, the relay can handle load up to 7Amps 230V DC or 7Amps/30V DC.

Download Arduino Code

Download PDF Schematic

Download Code>>>> Github




int SWITCH1 = A3;
int SWITCH2 = A4;
int SWITCH3 = A5;
int SWITCH4 = 7;

int RELAY1 = 5;
int RELAY2 = 4;
int RELAY3 = 3;
int RELAY4 = 2;

//States for RELAY-1 and SWITCH-1

int state1 = HIGH; // the current state of the output pin
int reading1; // the current reading from the input pin
int previous1 = LOW; // the previous reading from the input pin

//States for RELAY-2 and SWITCH-2

int state2 = HIGH; // the current state of the output pin
int reading2; // the current reading from the input pin
int previous2 = LOW; // the previous reading from the input pin

//States for RELAY-3 and SWITCH-3

int state3 = HIGH; // the current state of the output pin
int reading3; // the current reading from the input pin
int previous3 = LOW; // the previous reading from the input pin

//States for RELAY-4 and SWITCH-4

int state4 = HIGH; // the current state of the output pin
int reading4; // the current reading from the input pin
int previous4 = LOW; // the previous reading from the input pin

// the follow variables are long’s because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long time1 = 0; // the last time the output pin was toggled
long time2 = 0;
long time3 = 0;
long time4 = 0;

long debounce1 = 200; // the debounce time, increase if the output flickers
long debounce2 = 200;
long debounce3 = 200;
long debounce4 = 200;

void setup()
pinMode(SWITCH1, INPUT);
pinMode(SWITCH2, INPUT);
pinMode(SWITCH3, INPUT);
pinMode(SWITCH4, INPUT);

pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);


void loop() {

reading1 = digitalRead(SWITCH1);
reading2 = digitalRead(SWITCH2);
reading3 = digitalRead(SWITCH3);
reading4 = digitalRead(SWITCH4);

// if the input just went from LOW and HIGH and we’ve waited long enough
// to ignore any noise on the circuit, toggle the output pin and remember
// the time
//Condition Relay 1
if (reading1 == HIGH && previous1 == LOW && millis() – time1 > debounce1) {
if (state1 == HIGH)
state1 = LOW;
state1 = HIGH;

time1 = millis();

//Condition Relay 2
if (reading2 == HIGH && previous2 == LOW && millis() – time2 > debounce2) {
if (state2 == HIGH)
state2 = LOW;
state2 = HIGH;

time2 = millis();

//Condition Relay 3
if (reading3 == HIGH && previous3 == LOW && millis() – time3 > debounce3) {
if (state3 == HIGH)
state3 = LOW;
state3 = HIGH;

time3 = millis();

//Condition Relay 4
if (reading4 == HIGH && previous4 == LOW && millis() – time4 > debounce4) {
if (state4 == HIGH)
state4 = LOW;
state4 = HIGH;

time4 = millis();

digitalWrite(RELAY1, state1);
digitalWrite(RELAY2, state2);
digitalWrite(RELAY3, state3);
digitalWrite(RELAY4, state4);

previous1 = reading1;
previous2 = reading2;
previous3 = reading3;
previous4 = reading4;

Multi-Output Power Supply (Output 12V, 5V, 3.3V, 1.2V to 10V)

The multi-output power supply is a very useful project for hobbyist, the small module provides 12V, 5V, 3.3V, and 1.2 V to 10V adjustable from 15V  to 30V 3A DC input. If you have a spare laptop power adapter can help as an input power source. Can power many Arduino projects. The project has been designed using LM2576ADJ, LM317-ADJ Regulator.


  • Output 1:  12V 1.5Amp
  • Output 2:  5V-500mA
  • Output 3  3.3V-500mA
  • Output 4:  1.2V-10V 500mA
  • Input 15V-30V DC OR DC Jack for Laptop SMPS 19V DC (3Amps)

Download PDF PCB Layout

Gerber File for This Project Available On Request

Schematic LM2576ADJ, LM317-ADJ

Arduino Nano 4 Channel Relay Shield

The Relay Shield is a module with 4 mechanical relays that provides you an easy way to control high voltage using Arduino Nano. 4 Channel Relay Arduino Nano shield contains onboard 4 relays, TSOP1838 Infra-Red Sensor, NRF24L01 RF transceiver module, 4tactile switches.  The circuit described here can be used for many applications like the infra-red remote controller, RF remote controller, 4 channel toggle switch.

Download PDF Document


  • Supply 12V DC
  • 4 Relay with Normally Open/ Normally Closed Switch
  • The relay can handle 7Amps 230V AC or 30V DC
  • On-Board TSOP1838 Infra-Red Receiver
  • On Board 4 Tactile Switches
  • On-Board NRF24L01 RF Module



Hi-End Headphone Amplifier for DACs Differential Signal input

Simple stereo headphone amplifier for audio DACs required a differential signal. The circuit works with dual +/-5V DC supply, the project can drive load 16 Ohms to 600 Ohms. Headphone amplifier provides output 50mW into 32 Ohms. Signal for the right channel and left channel input is applied to the amplifier through connectors CN1and CN3, respectively. The source such as an audio analyzer or audio digital-to-analog converts (DAC). The positive input from the source connects to the pin labeled I1+/I2+, the negative input from the source connects to the pin labeled I1-/I2-, and the ground connection from the source connects to the center pin of CN1 and CN3, labeled GND. Output connections are provided through the use of the CN2, CN4 provided to power up the board, D1 power LED. OPA1688 or OPA1622 op-amps are good for the applications.

Download PDF Document


  • Supply Input +/-5V DC
  • Load 16 Ohms to 600 Ohms (32 Ohms Ideal)
  • Output Load 50mW into 32 Ohms Headphone
  • Frequency Response 20 Hz to 20 kHz

1 2 3 55