Go Down

Topic: EMI from small engine freezing up the arduino (Read 613 times) previous topic - next topic

ray1331

Jan 11, 2021, 02:21 am Last Edit: Jan 13, 2021, 03:22 am by ray1331
Hi,

I'm building a remote control snow blower using a 10 channel RC controller and a mega 2560.

I have everything working but as soon as I start the engine the Arduino freezes up.

I believe the EMI from the coil or magneto is interrupting the signals.

It's all wired with shielded wire with only one end ( at GPIO pin) to battery ground.

Since I have it in a plastic container I tried wrapping the inside and lid with foil.

Do I have to install low pass filters (capacitor & resistor) on every wire?

 3 servos that run direct from the receiver to run my throttle, choke and steering are unaffected and still work fine. Only the Arduino freezes up.

I finally uploaded a photo on my reply to Pal.

Any suggestion would be appreciated

ray1331

The picture I tried to load with my post  didn't upload. here it is

Paul_KD7HB

A quick way to limit the EMI from the engine ignition is to put all the engine wiring in copper tubing for shielding, Grounding one end of the tubing to the engine metal. That includes the spark plug wire.

Paul

ray1331

#3
Jan 11, 2021, 06:12 am Last Edit: Jan 11, 2021, 06:17 am by ray1331
Hi Paul,

I'm thinking that most of the EMI is coming from the pulse of the ignition coil and/or the rotating magnets on the magneto that energizes the coil and small 8watt alternator windings that powers the headlight.




Paul__B

Presuming that the electronics container is not anywhere near the ignition wiring, it is probably more important how you route all your sensor and control wiring.  It is particularly important to run all control and/ or supply wires bundled tightly with their respective ground returns, so as not to form any open loops.

Keeping wires tightly bound to the ground returns also provides basic shielding against capacitive pickup.

sevenoutpinball

I have the same problem with a pinball machine in controlling 48 volt AC coils.  the Arduino simply resets itself. I have not yet figured out an answer.  The same system works fine with 24 volt AC coils, but this game is a Bally not a Gottlieb.  It'll drive you crazy.
The smartest person can make the dumbest mistake.

MarkT

You definitely need a metal box and to ground all the shields for the cables to this box - until you
do this your circuit is far too efficient a receiving antenna for interference.  Spark ignition systems are
_horrendously_ noisy unless the plug leads are shielded (its a real nuisance that this is rarely done).

The only thing worse than spark ignition is an electric welder I believe.
[ I DO NOT respond to personal messages, I WILL delete them unread, use the forum please ]

Paul_KD7HB

Get your Ohmmeter out and set it for the lowest reading. Then press the tips of the two leads together until you get the lowest reading you can on the meter. Write this number down somewhere because you need to find this same number or close to it in the following tests. Be sure the points of the test lead probes are sharp!

Use the engine spark plug metal base as common for all tests.
Measure the resistance between your Arduino ground and the spark plug. Should be near zero. If not, make it zero by connecting more wires between the Arduino ground and the machine frame.
Measure the resistance between the spark plug and the foil in the pan you show in the picture. The resistance should be near zero. If not, fix it! Aluminum foil is covered with insulating oxide.
You mention you used shielded wire. At the Arduino end, are all the shields connected together and connected to the Arduino ground? If not, make it so.
Are the far ends of the shielded wires NOT connected to anything? If they are, you do not have a shield.
Remember ALL the spark current going to the spark plug return to the ignition system through the engine head, block, etc. So they can radiate just as well as the wire.

Paul

sevenoutpinball

the only shielded wire I know of is coax.  is there something else ?
The smartest person can make the dumbest mistake.

MarkT

STP, shielded multicore, USB cable, microphone cable (shielded twin), shielded CAT6, many sorts are available.

Time to look at the products available from an electronics supplier I think...  There's a plethora of connector
types too to worry about.
[ I DO NOT respond to personal messages, I WILL delete them unread, use the forum please ]

raschemmel

FYI, a standard Ground loop test can be done using a 24Vdc power supply with current limit set to 100mA.
Identify all the GND locations relative to a CENTRAL GND, 
Place the Negative PS lead on the CENTRAL GND and the Positive PS lead on each of the other GND locations
and record the voltage across the nodes. 
V=I*R
Let I = 0
.100A (100mA)
R = V/I = V/0.100A
Record all the "R" values to see if any are above the average.
ie: 
For a node with a resistance of 0.1 ohm,
V = I*R = 0.1A * 0.1 ohm = 0.10V (10mV)
Obviously, this measurement becomes more accurate if you use a non-inverting amplifier with a gain of
20 to 100 to amplify the measured voltage across the nodes .

Also, I believe someone already mentioned this ,but you would get much better results with a NEMA enclosure
with GND lugs mounted on locations that have had the paint rubbed off with a wire brush drill bit and a cover 
on the enclosure. The enclosure should be grounded to the automotive GND. (I believe that's usually the frame)

sevenoutpinball

STP, shielded multicore, USB cable, microphone cable (shielded twin), shielded CAT6, many sorts are available.

Time to look at the products available from an electronics supplier I think...  There's a plethora of connector
types too to worry about.
How does EMF cause these problems in the first place and would it help to put the Arduino in a lead lined box and to that solder the shielded cable that goes to the Arduino?
The smartest person can make the dumbest mistake.

raschemmel

Quote
How does EMF cause these problems in the first place and would it help to put the Arduino in a lead lined box and to that solder the shielded cable that goes to the Arduino?
Standard industry practice is a soft steel NEMA enclosure with the paint wire brushed off with a wire brush drill bit at the mounting location of the machine screw that secures the ring terminal for the Earth
GND. (GRE with Yel stripe) In your case solid green is fine. There is no advantage to lead over soft steel
as any metal will basically block the RF.  If you can't afford a NEMA enclosure an aluminum box would
probably work.

Paul_KD7HB

How does EMF cause these problems in the first place and would it help to put the Arduino in a lead lined box and to that solder the shielded cable that goes to the Arduino?
EMF is "Electro Motive Force", or voltage. EMI is what is causing your problem, "Electro Magnetic Interference". The Arduino and ALL processors of all types rely on timing signals as well as data signals. Whenever the timing signal is missing or occurs early, the processor becomes confused. EMI pulses either add their voltage to the timing signal or they reduce it to zero. A missing timing pulse, or an additional timing pulse means the processor can no longer work properly.
Paul

sevenoutpinball

A missing timing pulse, or an additional timing pulse means the processor can no longer work properly.
Paul
Is it even known how these extra signals get in the Arduino?  Should I be looking at the ground pins or the other pins?  I've tried those iron clamp on things they didn't do any good.
The smartest person can make the dumbest mistake.

Go Up