Issue:"arduino nano every" board with NRF24L01

We are finalizing a project prototype where we use an "arduino nano every" board with NRF24L01 module for RF communication. Everything works well as designed and programmed while supplying power via the computer USB port to the arduino board, however when we connect an external power (9V DC) to the Vin pin the 2-way RF communication fails. (RF Module transmit only and stops receiving). if we replace the "Nano Every board" with a "Nano board" with external power at Vin everything works well.

The NRF24L01 is powered via a dedicated 3.3V converter with input from the arduino 5V pin.

Wonder why this strange behavior happens.. appreciate any input on this matter.

Powering the NRF24L01 from the Arduino is asking for problems. If I were to take a SWAG your 3.3V regulator is shutting down on thermal. Use a seperate power supply for the NRF24L01 and see if that solves the problem.

1 Like

Hello ,
I followed your suggestion and used a separate power supply to power the 3.3v Regulator and this made everything works as expected, however this will require two power supplies to run the project. the question that comes to mind is why everything works well when the nano every board is powered via the computer USB port and why it fails when powered via the Vin (9V DC , 5A). in both cases the 3.3V regulator has the VIN connected to the 5V pin. I assume there is a H.W design issue on the Nano Every Board VIN power supply and what supports my assumption is the fact that if i simply take the Nano Every board and replace it with a Nano board , everything works perfectly no matter what power source is used.
I contacted Arduino tech support , but they seem not interested in looking into this issue due to the presence of a module (NRF24L01) that they don't manufacture.

Try posting a schematic, not a frizzy thing. They have linear regulators and the voltage drop times the current is the wattage it has to dissipate. These devices do not have the ability to dissipate an infinite amount of power. You can add a buck converter to the 9V power supply to get your 3.3 volts then you only need one power supply. You were lucky the first iteration worked.

this is the schematic.

Where is the 5V regulator, it is powering everything when you supply 9V via the Vin, when you supply 5V it is not in the circuit. Measure the temperature of the 5V regulator on those that work and those that don't with 9V supplied.

the 5V regulator is on the arduino nano board i am not using a separate one.
the output voltage on the 5V pin is steady (4.99 v) when either powered by the USB port or the VIN with 9V DC. I did not feel any overheating on the arduino board when touched with my finger.
what makes the case more complex is the fact that the RF module TX keeps running normal , but the RX stops. I suspected the interrupt not working and tested with polling mode , but got the same behavior.

I don't follow that comment. The NRF24L01 is a transceiver. When it is not transmitting, it is receiving.

the NRF24L01 transmit a message and then switch to listening mode to receive reply from other nodes on the network.

The transmission likely takes a millisecond or less, So how do you know it keeps running?

i meant by keeps running that the module operates normally in TX mode. it sends the message every time the program requests a TX but fails to receive.
we have a second NRF module running on a separate MC that shows the message received from the transmitting node and prints it on serial monitor.

Does the second node ever send anything back to the first?

yes ,
the second node sends a reply message to every message it receives from the main node.
as i mentioned earlier, the 2 way communication works perfectly when the board is powered from the computer USB port. so there is nothing wrong with the NFR module or code running on the micro controllers.

I'm actually working on a project right now with the Nano Every and nRF24L01 transceivers.
It's really important to know that in transmit mode, these nRF24 can take over 150mA!
That's way too much for the Nano Every to handle.

If you don't have them, you should get some adapter boards that are designed for the nRF24 boards.

With those, you can connect directly to your 9V supply and it has a regulator to provide a solid 3.3V to the nRF24.

I have added 2 capacitors directly to the nRF24 boards.
1 is a 100mF, 16V
the other is a ceramic (round brown) #272 (4.7nF)

This really helps to stabilize the voltage when spikes happen.

I had a very hard time to get these working with the Nano EVERY boards. VERY HARD TIME.

It finally worked on the Rx when the Tx was on a reg. Nano board.
Once working, I then started the code conversion to work on the Nano EVERY board.
It just wouldn't work then all of a sudden, it just started to work.

But like your issue, the Tx just stopped again and now won't work.

It's so danged unstable on the EVERY boards.
And I'm even using the latest libraries that are SUPPOSEDLY able to work with the Every.

Oh well.

check post#3
that was the only scenario where i had the module to work properly with the Nano Every board.
Finally , i dumped the Nano Every board and using the standard Nano board as everything works perfectly with it and i wasted enough time on the Nano Every board without reaching a satisfying result.

It figures. After my post i got it working both Rx and Tx on the EVERY boards. I'll see if now they'll stay stable. Last year, i had the nRF24 brds working perfectly and stable. But I had to move away from the EVERY at that time due to serial communications with the Nextion displays sending garbage. I now have that working well to.

For this project, i really need to use the EVERY brds due to the extra memory space. The reg Nano doesn't have enough for the features in my code.

But if these EVERY brds do remain stable, ill have to use a MEFGA 2560 R3 for the Rx side, at least.

make sure you test the project on all possible power sources.
the issues i faced happened when i started testing the board using a 9V DC adaptor (2A).
the NRF24 stopped receiving RF signals. while when the board was powered by the computer USB port , everything worked perfectly.

I'm a little confused. I thought you first said that you gave up on the
Nano Every board because the nRF24 was just too unstable?

Or are you saying that it was ONLY unstable when you applied 9V to it? Also, did you apply 9V DIRECTLY to the nRF24 or do you mean through the little adapter that regulates input voltage to the 3.3 that it actually requires?

The nRF24 boards don't like high voltage (over 3.3) and can actually burn out the chips.
?????

As an Electronics designer, for testing, I use a dual, programmable Lab power supply.
With this, I can set the max voltage as well as the max current allowed. As things work, it will display what actual current is being used.

For the nRF24, I do use the little adapter, where I can connect 5V to the adapter and it has a 3.3V regulator that the nRF24 requires.

I believe too that not all nRF24 boards are made the same.

The ones I bought claim that while they are 3.3V, that they "tolerate' 5V, so I tested 2 of them, Rx and Tx on 5V and they both failed after a while.
That's why I bought some new ones.

When my projects are completed, I run them all on power supplies that I build. There is zero ripple and they are 5.2V at 1amp, which is more than enough.

The ONLY problem, right now, seems to be the Nano EVERY boards.
When my other projects, using the nRF24s on normal Nano boards, there was no problem at all.

I had an Rx/Tx running solidly for over 2 years.

So yesterday, the current test, using 2 EVERY boars (Rx/Tx) all was working perfectly as I just let them run, having the Tx sending every 1 second for the test, sending out a random number plus actual Temperature and Humidity.

But after about 7 hours or so, the communications broke, with no error messages at all!

It did do that near the beginning of the day, on the Rx module.
A simple power cycle of the nRF24 and reset the Nano EVERY worked.

But after the 7 hours, it was the Tx that stopped transmitting!
Again, a simple power cycle of the nRF24 and reset of the Nano Every got it working again.

It's now been working fine again for about 10 hours.

So today, I'm going to try an experiment. Since power cycling it seems to work, IF the problem is the nRF24 module itself, then I'm going to connect it to the 5V rail, but through a transistor so that I can use a digital pin on the Nano EVERY to power cycle the nRf24.

I'll first have this test triggered by touching a button on the Nextion display.
What I hope will work, is on touch, first the nRF24 will power down.
Then, I'll re-run the code to initialize it and see if this is enough to get the nRF24 working again.

But I do have my doubts. I highly suspect that the problem is with the libraries. I suspect that there is a possible stack overflow happening and/or perhaps something building up in memory after hours.

I'm also going to add the code that displays active memory available on the Nano EVERY board. This way, I can see if memory is being chewed up.

I don't write libraries, but I wish that someone would write a GOOD LIBRARY that will work perfectly on the EVERY board and without having to use the emulator option.

Oh well. Fun times. LOL :grinning:

AN UPDATE TO THE NANO EVERY SITUATION

So, the short story is, that I now have the Nano Every boards working perfectly with the
NRF24L01+PA+LNA+Antenna
devices.
I now know why it was not stable on the Nano Every board (or just stopped working completely).

The main issues where:

  • the wires I used where cheap, crappy thin wires with the DuPont connectors.
    I made new cables that are 6-conductor shielded. The ground wire is the 7th wire. On one end, is a Dupont connector that fits the little "adapter board" that the nRF24 modules plug into (those have the 3.3V regulator built on so this can be powered by 5-6V). On the other end, just pins to connect to the Nano adapter board that uses screw terminals.

  • The other big thing was changing the power from MIN to LOW.
    I also wrote an "radio initialization" routine that flips the radios to HIGH, then back down to LOW. Apparently, this resets registers or something. I also have the routing power down and power back up the radios. THIS WORKS NICELY!

On my Nextion display, I have a touch that sends a code to Arduino, which when received, calls that radio init routine. IF the radio crashes or has any problems, just disconnecting the power, reconnecting again and touching the screen, resets it and it just works.
I'm going to design a MOSFET circuit to control actual power to the radio and have code in Arduino that when any fail is found, it will physically power cycle the radios and run that radio init routine.

But right now, with the shielded wires with Ferrite cores, the 3 units are running perfectly for 24 hours and not a single drop or disconnect. And that's on 2 Nano Every and 1 Nano.

IT DOES WORK!

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