Arduino causing noise through T2_L4A_8650C FM module, suspect it's power related


I'm making up a project based on a T2_L4A_8650C module (which is a FM & DAB radio decoder). For prototyping, I have made a simple PCB to mount the module, along with some LDO's to deliver 3.3, 1.8, and 1.2v. Each LDO has a handful of capacitors across their output power rails and ground. The PCB also includes 3.3v pull-ups for UART serial communications, some filter caps on the audio output, and some RF stuff.

The prototype has this custom PCB, an Arduino Nano, a 20x4 LCD with I2C interface, and a level converter for the UART comms. There's also a couple of rotary encoders with hardware debouncing. The project is mounted in a couple of breadboards, with some wires going over to the PCB. Power is provided through a phone charger and a Frankenstein power cord.

Admittedly my current antenna setup isn't the best (it's a paperclip) as I stuffed up the RF Tee components on the PCB and can't drive an active antenna. I'm in the process of fixing that.

But OMG, the noise that's coming out of the FM module.. Some of it is "snow" courtesy of a poor antenna, but there's a crap load of digital noise in there too. Anyway, not content to sook about it, these are the results of my troubleshooting steps:

  1. I noticed that on local, close-by FM stations, there is no noise. No "snow" and no digital noise.

  2. When tuning to a more distant FM station, there's snow that can be minimised by holding the antenna while touching your nose and performing the usual ritual to try and improve the radio clarity. But there's also heaps of digital noise that is not helped in this way.

  3. When I turn off the LCD backlight, about half of the digital noise goes away.

  4. If I turn off the Arduino by disconnecting the +5v line, all the digital noise goes away... Even if the LCD backlight is still on.

  5. I have tried using some capacitors between the +5v and Gnd to provide some filtering - a 0.1uF ceramic helped a little, and a 47uF electrolytic didn't do anything.

The only lines between the arduino side of things, and the prototype PCB are +5v, Gnd, UART Rx & Tx, and a enable signal to the LDO regulators.

There is a smallish ground loop on the PCB, however since I can mitigate the noise by tuning to a close station, or disabling the Arduino, I'm discounting that as a cause.

I'm not sure where I should go from here. I'm fairly sure that the noise is coming along either power or ground, but have no access to a scope and can't verify this. I would have expected the caps on the other side of the LDO's to filter out noise on the power rails. I suppose it's also possible that noise is coming along the LDO enable line (it's tied high on +5v to enable the LDO's, but I will eventually move it to an Arduino digital pin), or even the UART lines..

Use a Pi filter where the 5V has to pass through an inductor, like the last one on this page.De-coupling

Ok, I'll try that tonight. I have a couple of 57nh smd inductors I can solder leads on

Unfortunately adding an inductor didn't have an effect.

For additional testing, I disconnected the UART lines, and no change.

Unfortunately adding an inductor didn't have an effect.

Yes it did have an effect just not the one you were looking for.

Those inductors you used are very small, maybe too small.

You should really have screening cans separating the RF from the microcontroller sections.

I think a screened antenna lead and move the antenna as far from the Arduino as you can would be good.

Heh, you’re right - it did have an effect - the reset button on the Arduino was no longer reliable!

I have some 270nH inductors coming to support powering the active antenna. The active antenna I have has a shielded cable… I might be able to use one of these instead, but I have to do the sums to make sure they can carry the required current…

Oh, I should have realised - the tutorial was mentioning milli-Henry’s and I’m using nano-Henry… >_<; Note to self - check the units next time

Heh, you’re right - it did have an effect - the reset button on the Arduino was no longer reliable!

It can’t possibly have done that.

So as follow-up, I installed a 1mH inductor. That cleaned up the noise and improved the radio performance. After fixing the active antenna, the dab performance is better than anything else I have in the house.

Thanks for the help here.

On the other side, I hit the memory limit on the arduino nano. It was working great on a mega, but currently in the process on changing over to an atmega 1284p. I'm sure with proper optimisation, I could fit it just fine in the nano..

Glad to hear its working. As for optimizing the size you know about PSTR ?

Yeah I do. Admittedly I could optimize better, but the largest memory use is caching station names for responsive use of the rotary encoder controls. Reading from the module as I go is a little laggy if your scrolling through quickly.

Having a second uart helps during the debugging process too as I don’t have to use a software serial implementation.

Out of interest, what antenna are you using ?


Just a cheap car one off ebay… e.g.

The only thing I was looking for was an SMA connector, and it could operate at 5v delivered on the antenna wire.

Thanks for the info.

I'm using the same module, and don't get very good DAB reception, and absolutely nothing on FM. My current antenna is a Philex non amplified version, so may try an amplified version or inline amplifier.