Suppressing EMI noise produced by a VFD

Thread Starter

cmartinez

Joined Jan 17, 2007
8,276
About a year and a half ago, I bought a small CNC milling machine that is controlled by an Arduino UNO with Grbl firmware. The machine's spindle is three phase 110VAC and is controlled by a VFD that I believe is well-suited for the task.

Well, a few weeks ago, the Arduino began to detect false triggering of the machine's limit switches and would therefore stop at certain unpredictable moments. I noticed that if I were to lower the spindle's speed, the false triggering would diminish dramatically. The problem is that I can't run the spindle at above 60% of its total speed or the Arduino will detect a false limit switch trigger and flag an error.

After much testing, I arrived at the conclusion that the culprits are not:
  • the limit switches themselves
  • the otpoisolators that interface the limit switches with the Arduino's inputs
  • the Arduino's inputs themselves

I know this because:
  • I tested the limit switches' states with an oscilloscope and didn't find any transient anomalies
  • I installed a well filtered regulated power supply exclusively for the Arduino
  • I changed the optos' resistors so that more current (well within their specs) would flow through them
  • I installed external 10k pull up resistors at the Arduino's pins used to detect the limit switches' states, to make sure that they were being pulled up strongly enough and not completely rely in the Arduino's weak internal pull-ups.

None of the adjustments made any difference in the machine's behavior. Even though it worked fine for a year or so.

Finally, it occurred to me that maybe the VFD was producing EMI that was being sent back through the mains 110VAC and affecting the Arduino in some way. And I remembered that I had a line filter laying around that I normally use to filter stepper motor drives that I use in some of my projects. Here's its datasheet.

So I connected said filter between mains and the VFD and voilá! ... the machine performed much, much better. But not perfectly. That is, I am now able to run the spindle at up to 85% without a false limit switch detection.

My conclusion is then that the culprit must be back-EMI that the VFD is producing and affecting the Arduino when it's run above certain speeds. Or rather, when the VFD draws current above a certain limit. Why it started happening recently and not from the very beginning is beyond my knowledge. Perhaps some components in the VFD have been degrading with time and use. I suspect it might be a couple of big fat capacitors that I noticed.

By the way, I am trying to avoid installing RC filters at the limit switches' inputs because that could possibly affect the machine's home position calibration.

QUESTION: Any suggestions as what would be the best EMI filter I could use to completely get rid of this problem? And I mean other than the expensive alternative of using an isolation transformer. I know that the EMI filter I used is rated at 10A, whilst the VFD itself is rated at 17.5A, perhaps that is why my filter only partially worked?

This is the chinese-co VFD that my machine is using, btw.

1712186766428.png
 

LowQCab

Joined Nov 6, 2012
4,196
You have several RF-Broadcasting-Antennas hanging out of the bottom of the VFD.

All Mains-Voltage-Wiring should be protected by Flexible-Metallic-Conduit, or Standard EMT-Conduit/Pipe,
or contained within a Grounded-Metal-Box.

Is your Micro-Controller installed in a Metal-Box ?, it should be.
.
.
.
 

Thread Starter

cmartinez

Joined Jan 17, 2007
8,276
Is your Micro-Controller installed in a Metal-Box ?, it should be.
It should, but it's installed in a crappy plastic box. The same with the VFD. Again, it draws my attention that the arrangement worked fine for more than a year before this glitch began to be a headache
 

Thread Starter

cmartinez

Joined Jan 17, 2007
8,276
Did you try different (separate) main's outlets for either the Arduino power or the VFD power?
Yes, I did. Used a 5m extension and plugged the VFD in a different part of the room. But of course, I was using the same mains circuit with only about 20m of separation sharing the same wires to which the Arduino's power supply was connected.

I'm to try and install a big fat cap in the Arduino itself and see if that makes a difference.

My theory is that a couple of big capacitors in the VFD have somehow been degradation over time and that's what's letting the noise out. So I might try to change those as well.
 

Hymie

Joined Mar 30, 2018
1,285
Although the VFD is rated at 17.5A, the actual current draw will be dependent on the power requirements of the milling machine, so the 10A rating of the filter maybe adequate.

Given that adding the filter improved things, adding a second in series may fix the problem; alternatively consider adding an X capacitor between live and neutral, and Y capacitors between both live & neutral to earth/ground (as C1 and C2 shown within the filter).
 

Thread Starter

cmartinez

Joined Jan 17, 2007
8,276
Here's a little bit of a back story that might help in understanding the problem better.

I bought and installed the Spindle and VFD package almost two years ago, but during the first week of use, I got a little impatient and modified its parameters to make the spindle decelerate and stop in two seconds, instead of the 10 seconds that were preprogrammed in it.

The immediate result was that the thing blew up in my face ... one if its internal capacitors exploded and made a very pretty and colorful bright flame, and then it puffed out a rather generous amount of magic smoke (which I wasn't able to put back in), making my shop look like some sort of wizard's lair for a moment ... pretty cool, except for the acrid odor left in my hair and that took a couple of showers to dissipate... the spindle did stop in two seconds, though, if that's any consolation.

Here's a picture of one of its four identical capacitors connected in parallel:

1712268796244.png

It took me a while to find a replacement capacitor with the exact specs and dimensions, but I was able to repair the thing and make it run again ... but not before reprogramming it to the original deceleration value of 10 seconds. 'Cause, you know, after that experience, the virtue of patience seemed more appealing.

As I've already said, all was nice and well until a few weeks ago, when the Arduino controller began to experience glitches that I was able to trace to the VFD. My theory now, is that the aforementioned infamous pyrotechnic event must have stressed all of the capacitors, and not just damaged one.

So my plan is simple: I'm going to remove the four internal capacitors, and make an external capacitor bank totaling 6,000 µF (which is 50% larger than the original total 4,000 µF) and I'm going to use capacitors rated at 300V or above. Also, I'm going to install a 20A, two stage line filter. It'll probably take me some time to find a suitable enclosure and connectors, but it'll be worth it I'm sure.

That oughta take care of things.
 

panic mode

Joined Oct 10, 2011
2,796
how is the spindle wired to VFD? are you using shielded cable? Is the cable shield grounded?
what are connections between arduino and VFD? did you route the sensitive cables away from sources of noise (VFD, VFD power, spindle cable).

is the culprit MCU power or IO wiring? you mention having limit switches. they are likely routed along the machine, probably not too far from spindle cable.

what is the current through limit switches? impedance of the circuit makes difference - if you are only using internal weak pullup resistors, that is likely to be a problem. try low value resistors (220 or 100 Ohm for example). low impedance circuit is 'stiffer' due larger current and therefore harder to overcome by interference.

where did you add filter? i guess you placed it between mains and VFD (that is noisy area). and i hope your Ardino is powered from PSU that gets fed from mains before that filter. but while the mains is noisy, it is not the real problem. problem is the output of the VFD because you have high frequency and large enough voltage/current to be a problem. so i would either replace cable or run it through conduit if possible (limited flexibility even if you go with flexible one).
 
Last edited:

MisterBill2

Joined Jan 23, 2018
18,943
The last fair sized machine O worked on was a tester for diesel fuel injector pumps, which used a 3-phase VS motor of a few HP. The power leads from the drive to the motor were very well shielded, which prevented the noise from getting back into the rest of the electronics. AND all of the wiring to the various switches and sensors was also well shielded, with the shields terminated at the steel electronics enclosure. The VS drive had an output filter and a mains power filter.
My point being that both shields and filters are needed to avoid the effects of radiated noise.
 

Thread Starter

cmartinez

Joined Jan 17, 2007
8,276
Thanks Panic and Bill for chiming in. To answer your questions: The crappy machine that I have does not use shielded wire between the spindle and the VFD. But I'm going to change it tomorrow and let you know how it went.
 

MaxHeadRoom

Joined Jul 18, 2013
28,759
I have retrofitted many CNC machines and have ensured the 3phase conductors are twisted, apart from the GND which ran alongside.
Usually conduit, or metalic flexible conduit was used in the feed to the motor.
I generally used the inline choke to the motor, although not in every case.
Never had any problems over the years.
 

Thread Starter

cmartinez

Joined Jan 17, 2007
8,276
I have retrofitted many CNC machines and have ensured the 3phase conductors are twisted, apart from the GND which ran alongside.
Usually conduit, or metalic flexible conduit was used in the feed to the motor.
I generally used the inline choke to the motor, although not in every case.
Never had any problems over the years.
And an inline choke for the motor usually goes between the motor and the VFD, or between mains and the VFD?

OTH, what's your take about the scenario I described? About the blown capacitor and the possibly damaged other three?
 

MisterBill2

Joined Jan 23, 2018
18,943
Certainly some bypass capacitors may lose value as they age. But what will blow up the DC drive supply capacitor is sudden dynamic braking that leads to over voltage. That happens when the Zener diode clamping that drive bus voltage fails. The same thing happened with some modular stepper drivers that required a large value electrolytic cap to snub the inductive spikes from the PWM circuit. Cost cutting that used lower voltage rated devices in the driver section.
 

MaxHeadRoom

Joined Jul 18, 2013
28,759
And an inline choke for the motor usually goes between the motor and the VFD, or between mains and the VFD?
OTH, what's your take about the scenario I described? About the blown capacitor and the possibly damaged other three?
The ones I use go between VFD & motor.
I have retrofitted quite a few M/C's that use a PC based controller and which posses the basic virtue of a earth grounded controller supply, in keeping with this, I always earth GND all PS that a capable of being operated this way, all power commons are earth grounded to the star point GND.
Also per the Siemens publication on grounding, including equi-potential bonding to avoid ground loops etc.
I have yet to experienced any of the problems that regularly come up on DIY PC based CNC sites such as CNCzone etc. regarding random tripping of LS inputs etc.
As to the blown cap in the VFD, the only comment I would make is the Chinese units do not seem to have the same level of internal technology as even some of the cheaper versions of EU & N.A. origins.
 

Thread Starter

cmartinez

Joined Jan 17, 2007
8,276
The ones I use go between VFD & motor.
I have retrofitted quite a few M/C's that use a PC based controller and which posses the basic virtue of a earth grounded controller supply, in keeping with this, I always earth GND all PS that a capable of being operated this way, all power commons are earth grounded to the star point GND.
Also per the Siemens publication on grounding, including equi-potential bonding to avoid ground loops etc.
I have yet to experienced any of the problems that regularly come up on DIY PC based CNC sites such as CNCzone etc. regarding random tripping of LS inputs etc.
As to the blown cap in the VFD, the only comment I would make is the Chinese units do not seem to have the same level of internal technology as even some of the cheaper versions of EU & N.A. origins.
One thing that draws my attention of the Spindle/VFD that I'm using, is that the VFD's output is three-phase 110 VAC, Which is something I had never seen before.
 

MisterBill2

Joined Jan 23, 2018
18,943
As far as 120 volt three phase, consider that the common 208 volts is because of it being three phases of 120 volts relative to the neutral.
That is to say that 208 volts DELTA is based on 120 volts STAR connected. Likewise 480 volts DELTA comes from 277 volts STAR connected. A bit confusing until you consider the 120 degree phase difference. (Vectors are our friends.)
 

MaxHeadRoom

Joined Jul 18, 2013
28,759
110v 3ph VFD's are Very rare.
The 120v VFD for 1ph motor has been tried, but not successful due to dropping out of run at low RPM or high load.
 
Top