RF receiver loses range when LED strip plugged in

Hello all. I have a project that’s supposed to control 5V addressable LED strips with an RF receiver (see image). When I run an RF receiver test (see code) with the LED strips unplugged, the RF receiver has decent range and reads transmissions fine.

However as soon as I plug in the lights, the range drops to near zero, even with the lights off. It still reads transmissions, but the transmitter has to be almost touching the receiver. I’ve tried plugging in external power to Vin to verify that it’s not a power limitation, but that doesn’t help.

So what’s going wrong? Thanks in advance.

/*
  Simple example for receiving
  
  http://code.google.com/p/rc-switch/
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
  mySwitch.enableReceive(0);  // Receiver on interrupt 0 = D2
}

void loop() {
  if (mySwitch.available()) {
    
    int value = mySwitch.getReceivedValue();
    
    if (value == 0) {
      Serial.print("Unknown encoding");
    } else {
      Serial.print("Received ");
      Serial.print( mySwitch.getReceivedValue() );
      Serial.print(" / ");
      Serial.print( mySwitch.getReceivedBitlength() );
      Serial.print("bit ");
      Serial.print("Protocol: ");
      Serial.println( mySwitch.getReceivedProtocol() );
    }

    mySwitch.resetAvailable();
  }
}

I would suspect the signals to control the addressable LED's is interfering with the reception of the RF signal or causing ripples/noise on the power/data lines.

What is the supply voltage with the LED strip powered and unpowered?

groundFungus:
What is the supply voltage with the LED strip powered and unpowered?

5v off USB from my PC to start, then with a 12v wall wart to the Nano's Vin for simultaneous external power.

Wall wart and Vin.... That sounds like a recipe for trouble.
Post a real wiring diagram, not a painting.

Do it for both alternatives.

then with a 12v wall wart to the Nano's Vin for simultaneous external power

That does not answer my question. I meant, what is the voltage of Vcc (5V) measured with your DMM? With the strip not powered and powered?

The 5V supply from the onboard 5V regulator is severely limited in current capability. Powering through Vin or the power jack means that the Arduino and all peripherals that are on the 5V rail are powered by the onboard 5V regulator. The on board 5V regulator is not heat sinked so will supply limited current before it overheats and shuts down. The recommend max power dissipation for the regulator is 1 Watt. With 12V into the regulator the max current is about 140 mA (1W / (12V - 5V)). The Arduino uses around 50ma of that leaving less than 90mA (max) for everything else. I would use a buck converter to drop the 12V to 5V and connect that to the 5V on the Arduino, bypassing the, weak, 5V regulator. Then the rated current of the DC DC converter is available on the 5V line.

4.5 meters of LED strip is going to need a lot of current. We do not know which exact LED strip that you have, but WS2812 strips can take 60mA per pixel. So, my conclusion is that you need a substantial enough external 5V supply for the LED strip. How much that is depends on what strip you have and how it is used.

The 433MHz receiver is swamped by digital noise from the strip. You need to shield it from the LED circuitry. Unfortunately, that is a very complex subject. The best way to get help troubleshooting this, is to post clear, complete close up images of all the wiring. There are two ways it can happen, sometimes both at once - through the connecting wires, and through space by EM waves (radio).

More caps?

A few more things.

2 feet is way too long for a 433MHz wire antenna. It isn't a case of "the longer the better". Go for about 7 inches or 16cm.

Interrupts are turned off by the strip update routine. That can play havoc with an interrupt driven interface like IR or 433MHz bit banged OOK radio. But, if it works with the strip disconnected and running the same sketch, then you are somehow getting away with it.

A dipole requires a differential (180 degrees out of phase) connection to the driving circuit. Neither the transmitters nor the receivers of 433MHz have that, they only offer single ended ground referenced outputs. If there is no balun to convert single ended to differential signals, the dipole connection to PCB ground, will conduct a significant amount of RF energy. This has at least 3 effects, it makes the entire ground system of the device radiate RF, and it upsets the conditions that are required to achieve maximum energy transfer to the environment (in other words, it creates a high standing wave ratio) which can decrease the efficiency of the transmitter, leading to signal attenuation. It also creates a situation where any change in the orientation or connection to other devices, will change the transmit output because the ground system is unpredictable, unlike the fine perfectly measured dipole in free space.

Thus, it is not profitable to obsess over millimeter deviations from theoretical properties of some antenna model. It is only necessary to be relatively close, as both the unbalanced feed and the proximity of nearby metallic components will predictably affect the output anyway.

Receive antennas have similar properties, except that the SWR is not as much of an issue.

In a typical application, a 433MHz RX/TX module uses its circuit board, and any connecting wires or devices, as a counterpoise to a monopole antenna. The result is an antenna match that is not ever great, just "good enough". The only way to make it work as-is is to provide a ground plane for the monopole. In that case, a textbook calculation can be used to find an element length that will actually work in reality. The circuit won't be affected because it's shielded by the ground plane. However, few projects have any place where such an antenna could be located.

Another "dirty secret" is that some simple transmitters will stop oscillating if they are connected to a real resistive 72 ohm (dipole) load. That is because their resonant circuit become over-critically damped. In such case, a terrible antenna will outperform a really good one.

By the way, still waiting for images of the wiring...

The project is on a solderless breadboard for testing, the wiring is jumpers so they're a mess. Good to know about the EM interference, not sure if I'll be able to get away with this project due to how compact it was supposed to be.

groundFungus:
That does not answer my question. I meant, what is the voltage of Vcc (5V) measured with your DMM? With the strip not powered and powered?

The 5V supply from the onboard 5V regulator is severely limited in current capability. Powering through Vin or the power jack means that the Arduino and all peripherals that are on the 5V rail are powered by the onboard 5V regulator. The on board 5V regulator is not heat sinked so will supply limited current before it overheats and shuts down. The recommend max power dissipation for the regulator is 1 Watt. With 12V into the regulator the max current is about 140 mA (1W / (12V - 5V)). The Arduino uses around 50ma of that leaving less than 90mA (max) for everything else. I would use a buck converter to drop the 12V to 5V and connect that to the 5V on the Arduino, bypassing the, weak, 5V regulator. Then the rated current of the DC DC converter is available on the 5V line.

4.5 meters of LED strip is going to need a lot of current. We do not know which exact LED strip that you have, but WS2812 strips can take 60mA per pixel. So, my conclusion is that you need a substantial enough external 5V supply for the LED strip. How much that is depends on what strip you have and how it is used.

Thanks for the tip. I hooked up a 12V-5V buck converter to independently power the LED strips and hooked up that to the 5V line of the Nano as well as you suggested. The range seems to be better, I'll test more later when I have some time.
Is there a way to safely power the Arduino that doesn't require USB? I'd rather just have one cable (or pair of black/red) going to the project, rather than two (power to buck converter + Nano USB).

You can power the Nano with regulated 5V into the 5V pin. Don't connect USB while powering through the 5V pin.

I suspect interference. Build a separate breadboard with the receiver and discrete LEDS to indicate that it is receiving commands. Then see how far you have to be to not be swamped with noise from the LED strips.

"However as soon as I plug in the lights, the range drops to near zero, even with the lights off. "

The LEDs are not off, they are set to black. The WS2811 controller in each LED is still running.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.