Serial Data Connection EMI protection / process data from Techedge WBO Wideband

Hello everyone,

I've build an prototype with the aim to read, display and save data to SD card from a Techedge wideband O2 controller. The controller sends serial data to the arduino (the technical description can be found here: WBo2 Logging technical Information and Specification (Tech Edge))

Techedge provides a Windows Software with an emulator that sends serial data to the Arduino. My setup works for hours on the desk. Now I've tried it in the car and it worked (read, display and save) at the beginning and then stopped. I suspect EMI noise to be the problem.

The WBO output includes a checksum that i use to verify everything has been transmitted ok. I count erroneous packages and after 150 I write out an error message.

Now with the device in the car, it shows 0 for all values most of the time but from time to time I see my error message. The car is known to have EMI issues, only 1 out of three laptops work for logging. I guess it's the ignition, which is a custom built GM HEI ignition on a Ford 302 V8 Engine with a magnetic pickup distributor. Its a kit car and it has power issue with all power consumers on. With headlights, fan and NOS bottle heater on, the voltage drops to ~ 12.7V (engine on). Without these devices it has 13-14V.

I do this as a hobby and although I have some coding understanding I do not code for a living. Electronics-wise I'm a total noob. Everything I know I learned from the internet. So please bear with me ;D ::slight_smile: I was hoping I can get some guidance on how to improve my project against EMI noise.

In case required, attached please find a schematic on the setup and the code as well.

The Arduino is an Ebay Nano version.

I use this step down converter as the power source:

The serial-ttl converter is similar to this one:
http://www.ebay.com/itm/5PCS-Mini-RS232-To-TTL-MAX3232-Converter-Adaptor-Module-Serial-Port-Board-/131700206049?hash=item1ea9f1a9e1:g:qLQAAOSwdzVXiFJm

Other than that the project consist of an MAX2719 driven 8digit 7-segment display, a LC Studio SD Card shield, two buttons and two LEDs (not in the schematic). The whole project sits in one of those plastic boxes.

From what I read over the internet I was thinking about the following options:

Power Source: Not sure if the step down converter has any noise protection. I understand a resistor and a capacitor is generally used as a filter. Would this improve the situation? Where to put it? on the 12V input or the 5V output?

Arduino: The ATMEL Note #40 mentions the Reset pin is unprotected. I do not have a "sudden reset" - issue, but can EMI introduced to the reset pin cause erratic behavior / issues with the serial data stream? I understand one should implement a filter for the reset pin OR just connect it to 5V to keep the line high. Is that a correct interpretation?

Serial line: I do not know if the Techedge device has any protection/filtering but I would assume it does. On the Arduino side I think there isn't any filtering on the ttl converter. Can a filter applied here?

Any hint will be highly appreciated, in case I can provide further information - please let me know.

Many thanks!

wbo_readout_code.txt (24.2 KB)

First off see if you still get the same problem running from batteries? That will give you a clue as to how the interference is getting into your system.
I doubt it is anything to do with the serial connection.

Grumpy_Mike:
First off see if you still get the same problem running from batteries? That will give you a clue as to how the interference is getting into your system.
I doubt it is anything to do with the serial connection.

I agree with "Grumpy Mike". But the key to solving your problem is to eliminate the EMI at the source. The most probable problem is the "ground" return for all you electric components. Is the chassis painted? Be sure to clean the paint away and use toothed washers at all ground return points. Bet your car has an electric fuel pump. Try using shielded, twisted wires to the pump and ground the shield at one end, only.

Use a portable AM radio to listen for your EMI noise and see if you can detect sources and reduce the emission as much as possible from each source.

How long is the car's exhaust system? Are all joints bonded or are you just using clamps.

Do you have an oscilloscope to look at the 12 volt line going to the Arduino? See any stray pulses or dropouts on the line?

Paul

I was hoping I can get some guidance on how to improve my project against EMI noise.

  • Use a cable shielding ferrite for your power supply output wires
  • For all unused pins on the Arduino, configure with INPUT_PULLUP so they aren't floating and acting like antennae and easily influenced by emissive RF energy.

Many thanks for the replies. I will give your hints a try, unfortunately the car is an hour away from me (not my car) and the job sends me around the world next week. Anyway, I'll keep you posted.

The car is equipped with mechanical fuel pump and it has a clamped exhaust system header -> muffler -> sidepipe (lots of bends). Compared to regular cars I'd say it's rather short (Shelby Cobra).

I will give the ground a check. When testing the setup we used the ground cable from another device, guess that was the bottle heater. It is connected to a dedicated ground junction on the chassis. Will check the connection beween chassis and battery next time i'm at the car.

As for the suggestions, I need to find one of these radios. How would I do that, just switch to AM, move it around and listen for non-withe-noise noise?
There is one thing that I suspect to be the source and thats the capacitor of the HEI ignition module which is missing. Its there on the stock configuration but it has been left out on this particular setup. Here is a diagram: http://www.junkyardgenius.com/images/heirelay.gif - I'm talking about the "Condensor". It is my understanding this is intended to surpress radion interference but it is often left out when people upgrade their points ignition to HEI modules.

Today I read a post saying the Step-down converter create a lot of EMI. Right now its with the other components in the box. Would it be wise to move it physically away from the arduino?

Would I put the ferrite on the + line only or on both?

Can I follow up on you guy's thinking the serial connection itself isn't he issue? I'm asking because all other functions of my device (e.g. switching display modes) are working. I have a similar project in my personal car and, when I get some (what i think is) EMI issues, the 7-Segments display weired characters and the device is unresponsive until a power cycle. Can there be EMI that leaves the Arduino and the Display in working order but only affects the serial line? I.E. is the serial data communication easier affected by noise?

Any battery operated radio that can receive AM stations will work. Find a spot on the dial with NO station and listen for noise and noise level changes as you move it close to various electrical parts.

You are looking for non-continuous noise pulses.

The capacitor is not necessary for the Hei ignition. They are built into the control box. But a capacitor from the 12v power to the box and grounded close by will certainly help.

Paul

Would I put the ferrite on the + line only or on both?

Both ... could wrap them with a few turns through the hole if there's room.

is the serial data communication easier affected by noise?

No more so than any other digital signal like the I2C and SPI.

Thanks! I'll try my luck and report back.