NRF24L01 real life range test

Today I was working on a project using NRF24L01 chipset and I decided to verify the test range of this small device that you can buy as a breakboard on ebay.

I bought a pair some time ago and bought recently another for my new projects. The modules are different but have the same pinout so it is easy to change them for testing. Both modules are new version, NRF24L01+ and not the old version NRF24L01. The new version is capable of doing 250KBPS low speed and the old not.

The newest is the black on the left of the picture, seems better quality and a little shorter. So I tried this one first on two Arduino powered by lipo battery. 1st Arduino act as client sending payload (8 bytes) with ACK enabled. The 2nd Arduino just display the payload received but do not send back anything (except the ACK but the module doing this in hardware, so nothing to do execpt enable this mode).





Of course I used the same module on both Arduino. The RF module config is the following (used modified version of Stanley NRF24 Arduino Library)

Then, I went outside in a clean area. Leaving the receiver at one point and starting moving with the client in my hand until it started to display that it was loosing ACK on the OLED display.

Quite surprised, It started to loose ACK from about 30 meters and modules vendors claims it work until 100 meters. Well as usual in IT, theorical performance never reached.

So I decided to try with the 2nd modules (the green on the right of the picture). That was better I succeded to go for about 50 meters. The bad thing is that I do not remember where I bought these modules, shame on me.

This conclusion to says that every module do not have the same range and performance. If you can choose, take the green one, about 30% better, just good to know.

To test further, I decided to buy the same modules with Antenna so I can see the range difference. And I also bought the new modules with Power Amplifier and Noise Suppression (PA-LNA) that claimed range to 1KM, wooooh, need to test that !!!!!

Edit of September 8th : I succeded to improve the range with a Payload size of about 8 bytes (I had 12 before), this gave me about 80 meters range in open air, I’m quite happy with this range. This is very interesting that lower payload size = higher range, but that make senses. So if you need range and more data to send, the idea could be sending two packets, if power is not a issue of course.

By the way, in house with walls or other will decrease the range.

Edit of September 12th : I received the new modules. Excited, so I plugged them onto my range test boards, put a lipo on boards and give it up. The NRF24L01-antenna module gave me excellent results in house, no more “dead zone” and testing outside gave me good results too. But my road is now not enough “long” to do real tests in open air, I can’t have more than 100 meters in open view, so going far from 100 meters put other houses on the way and the test is different, I need to find a huge field around for testing open air ;-). I will update this post as soon I will have tested.

Here are the picture of the modules below, I will do more test with them and keep blogging on it.









  1. Hi Charles, thanks for sharing use full information. I have a doubt,   i was working with nrf24l01+ module which are working fine. Recently i bought nrf24l01 pa lna long range modules, will this modules work with the same nrf24l01+ code? or any changes i need to do in the code? when i tried pa lna modules with same code it was working but distance is not even 5mtrs, i was surprised with this range as it suppose to give 1000mts in open area.

    Forgive me for my english.


    • Hi,

      Yes, the code is the same for PA + LNA, such as the connector. I’have done some test with all the different modules, and what I noticed so far is that module with integrated antenna on PCB can reach about 50 meters, the modules with external antenna rocks, I can achieve about 150 meters without any problem, my other surprise (bad) was the PA + LNA, it was about 250 meters, so from my point of view, use the modules with external antenna, it is the best price/distance.

      I would be happy if someone can confirm my tests, it should be very interesting to see other users real distance.

      For my tests, I used payload of 2 bytes at 250KBPS speed, in outside open clean area.


  2. Thanks for your reply Charles, i did a test in Indore with nrf24l01+ with out antenna module, with one concrete wall in between, it reached 8 – 10mtrs with out packet loss.  I will reply with open area test with in a day or 2.  i though nrf24l01+pa+lna will give me at least 30mtrs in Indore but no success.

  3. Hi Charles Today i performed open area test with nrf24l01+ module with integrated antenna, got 45 to 50mtr with around 5% packet loss while moving. if i am not moving and facing the receiver then no packet loss.

    I am not able to find this module with external antenna in my country.


    • Hi,

      Yes, I have exactly the same results, sounds good and correct if we have both the same.

      Thank you for the head up.

      I’m wondering if cutting the PCB antenna and replace it with small wire antenna could improve the range, now that I have test board and firmware file http://hallard.me/arduiled/ I will try to do more testing.


  4. Hi Charles,

    Believe the green version have 10 pins (including 2VCC & 2 GND instead of 1) so do we need to supply the power to both pins or just 1?



    • Hi Lakfvn

      Good point, I took a picture from ebay vendor and did not notice that.

      The one I really have does not have 10 pins but 8 so it didn’t came to my mind. But looking the picture I can see that the 2 new pins are for gnd, but probably not mandatory to connect them since GND already present.

      I think the best answer could be, “testing” 😉


  5. I have tested both modules, the black and the green, and found the green module (with the ‘question mark’ PCB antenna, as opposed to the ‘zig zag’ PCB antenna) to be much more reliable. In fact, I found it almost impossible to get any reliable packets at all through the black modules.

    Indoor range for the green module, however, is quite limited (<5 meters) and quite sensitive to position. I would love to know if attaching a wire antenna to the PCB would improve the range. And if so, is the best result on the sending, or on the receiving end? If I find anything from my tests, I will post them here.



    • Chris,

      Exact, the green module is far better, but I’m really surprised for the 5M indoor range, I’ve got more than this.

      What speed do you use and what is your playload size for transmissions ?

      I did not tested yet with soldered cable instead of PCB antenna.


  6. Hi Charles,

    Thanks for this information, it is very helpful.

    What would the effect on the range be if a 24l01+ module with an antenna  is used on the master unit and normal 24l01+ modules (without antenna) are used on the slave units? Have you done any tests using this configuration?

    Will the range increase or must the slave units also use the module that includes an antenna for noticeable results? In my case, the slave units would send data to the master unit most of the time.

    If the range is efficient, this could reduce the cost even more. I would like to know if it would work before I decide which modules to buy.

    Thanks and kind regards



    • Egon,

      Yes I’ve done this kind of test (but very quickly so this information could not be accurate) and as far as I remember what I noticed was:

      For example, let admin simple module No Antenna get 100% range.
      Receiver And Emitter with Antenna get about 200% range (so twice of no antenna) the best choice.
      Receiver with antenna and Emitter without antenna get about 130% range (so 30% on increasing distance)
      Receiver without antenna and Emitter with antenna get about 130% range (so 30% on increasing distance)

      So we can conclude that one antenna increase range, whatever on the Emitter or Transmitter

      If someone done same tests, I’d like to share.



  7. I also have both the black and green styles of nRF24l01 transceivers, and have had similar issues where the green seems to be a bit more reliable.  My bigger problem with testing these isn’t how far they reach, but how close they can get without failing.  While testing I have to have one on my desk, and the other in another room on a long cable.  If they are too close to each other they don’t work.

    Another proximity problem is with all of the other 2.4Ghz transmitters in the area, including my neighbors houses.  One of my testing schemes was to have the remote transmitter on the other end of my house, and use a bluetooth serial transmitter to get the feedback from the nRF24l01 at that end.  Oops!  The bluetooth transmitter interfered with the nRF until I put it on a long cable about 5 feet away.  The WIFI router at the end of my desk also interferes with this, as does my neighbors.  I have to be picky about channel selection so I don’t get stomped on by the WIFI routers using the same basic frequencies.  The scanner example is quite illuminating, and goes pretty well with a testing app I’ve used for WIFI signal strength on my tablet.

    It is a challenge testing when discovering that there are a lot more 2.4Ghz signals floating around than just what the nRF24l01 is transmitting.  And that all the other devices interfere with what I’m trying to receive.

    Distance-wise I have found that the green transceivers are good for about 100 feet through the walls of my house, and the black for about 70 feet.  FYI – I got both styles through EBay.

    • Hi Lakfvn,

      Thank you for your comment, I just discovered the site you are talking about, this is a great site for buyers like me, I think I Will order soon 😉

      Correct on 10 pins modules the wiring is different and I was not aware of that. The adapter seems the good solution and quite cheap.

      Let us Know of this module has better range than the others. Could be interesting.


  8. Hello Charles,

    I wanted to build a project and I have found on the website the item “MK NRF24L01+ SI24R01 power enhanced version 2.4G wireless module” ( http://www.wayengineer.com/index.php?main_page=product_info&cPath=75_80&products_id=3442 ). Any idea what MK stands for? And SI24R01? I couldn’t reach much through the web however. Is it the same one you got, the black, supposedly longer range one?

    And if that’s the case, how different is it from this one? http://www.wayengineer.com/index.php?main_page=product_info&cPath=75_80&products_id=865 Idea is they have so many choices and I am looking for low power, high range and most probably available in high volume. Could you direct me from you ordered from?

    Thanks for the post and your comments by the way, it answered a lot of the questions I had.


  9. Sherif,

    Humm, it seems that the 1st module you describe is the new one, I was not aware that there was new model. I do not know the difference but seems to need take care to drive it. May be you can achieve more distance with it, need to be tested.

    So as special “driving” is needed I suggest you use the 2nd one, that way you will be sure that existing libraries are working well.

    May be testing the 2nd then when all is working try with the 1st one to test if it continue to work. Sure that is the way I will process if I need to test the 1st one.


  10. Thanks Charles for your answer. I will go ahead with that plan and see how it works, I will have to wait till they arrive though.

    Thanks again.


  11. Careful, the two have different pinouts. The Gnd and Vcc
    are not in the same place.

  12. Hi Charles,

    very interesting post. I’m also testing the range of the black modules at this moment and at the beginning I had many problems with lost packages. This is solved now, but the maximum distance seems to be only about 5m, which is pretty sad… Any idea, what might be the problem? Would it be possible, that you post the full code?

    I just ordered four green versions and hope to get better results. I also have some modules with an external antenna. In the end I want to have one module with external antenna working as a receiver and four small modules in a range of 50m around it

    Thanks in advance!

    Best regards

    • Andreas,
      What is important is also the size of the payload and the speed. I was able to reach 50 meter with speed about 250kbps with a payload of 8 bytes.
      I Will post my test code size if you want, no problem.

  13. hello

    we can use wire to increase range .

    and use 2 modul nrf24l01 + pa + la range far ?

    or only 1 modul nrf24l01 + pa + la and 1 modul nrf24l01 not pa + la

    • Hi Fantasy,

      I did not tried using wire to increase modules because for my current projects I choose RFM12B modules, I wanted to avoid 2.4GHz band.

      But from the tests I’ve done, I was asking myself the same quetion, so I tried, changing just one of the both modules to PA + LA increase range. Not as far as changing 2 modules at the same time, but range increased.


    • Hi John,

      Thank you for the head up, I just checked this point, when I connect my NRF24 onto arduiPi board and launch scanner application it works fine.

      In scanner.cpp I have

      // Setup for GPIO 22 CE and CE1 CSN with SPI Speed @ 8Mhz
      RF24 radio(RPI_V2_GPIO_P1_15, RPI_V2_GPIO_P1_26, BCM2835_SPI_SPEED_8MHZ);

      and launching give

      root@pi02:~/github/RF24/librf24-rpi/librf24-bcm/examples# ./scanner
      ================ RASPBERRY PI SPI Configuration ================
      CSN Pin = Custom GPIO7 (CE1) Software Driven
      CE Pin = Custom GPIO22
      Clock Speed = 8 Mhz
      ==================== NRF24L01 Configuration ====================
      STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
      RX_ADDR_P0-1 = 0xe7e7e7e7e7 0xc2c2c2c2c2
      RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
      TX_ADDR = 0xe7e7e7e7e7
      RX_PW_P0-6 = 0x00 0x00 0x00 0x00 0x00 0x00
      EN_AA = 0x00
      EN_RXADDR = 0x03
      RF_CH = 0x4c
      RF_SETUP = 0x07
      CONFIG = 0x0f
      DYNPD/FEATURE = 0x00 0x00
      Retries = 15 * 1250 us
      Data Rate = 1MBPS
      Model = nRF24L01+
      CRC Length = 16 bits
      PA Power = PA_MAX

      Could you describe me how did you connected the NRF24 to Raspberry ? And also what repo did you used, there so much repo that even me I’m confused. I’ve got all working samples on my raspberry with ArduiPi board, I wanted to launch a new repo for my lib version to avoid confusion, did not done it yet.


  14. Hi Charly,

    So this may be caused by the different GPIO definition between raspberry and arduiPi board. In http://elinux.org/Rpi_Low-level_peripherals , raspberry pi defined P1_15/GPIO22 as normal pin(I used as csn), and P1_26/GPIO7 as CE1. Although in the lib there is no difference to use CE or GPIO, but maybe adding a description of the PINs define in the readme is better.

    For me I’m using librf24-bcm on the raspberry pi board. And the gpio version works fine, too; just need to change the csn and ce pins. I thought the origanal version RF24 is for Arduino; and librf24/librf24-bcm are both for Pi.

    Best wishes.

  15. Hello Charles,

    I’ve been having some reliability issue with the “new” black pcb model. After a copious amount of research, it works perfectly with a (big) cap between vcc and gnd as close as possible to the module as they’re very sensible.
    Some people even use an LC filter because your power probably comes from a switching power supply, meaning there might be some ripple left. I’m using several LM2596 modules and TI’s datasheet says that adding a 20uH 100uF LC filter is a good idea get a cleaner signal, but I havent tested that yet.

    Anyway, maybe this will help someone !


    • Hi Kevin,
      Good point, makes sense, I will try this, may be I did not had too much problem because during my tests, module where powered by Lipo Battery, so more stable power.
      Indeed, thank you for sharing.

  16. Hello
    I’m testing transceiver-nRF24L01-PIC18F USB-PC. NRF is kind nRF24L01 + pa + la. Achieving operating range of 500 meters. Achieved bit rate is 150kbps in the range of 50 meters with 32 byte load, much smaller than advertised manufacturer. I measured code in VB. How to measure your like?

  17. Comment utiliser le code ? Il est vraiment très étrange, j’ai essayé de le mettre betement dans l’ide mais j’ai plain d’erreur de ce type: sketch_may14a:2: error: expected constructor, destructor, or type conversion before ‘(‘ token
    J’ai l’impression d’être dans un autre monde, tous on l’aire de comprendre des truc depuis longtemps alors je suis complètement a l’ouest avec ces discussions. J’ai pourtant les bonnes bibliothèques, j’ai même les anciennes, mais je me casse les dents a trouver un topic qui explique comment utiliser les nrf24L01 a peut près clairement pour qu’un noob comme moi puisse comprendre.

    J’ai les deux type de mondule (long avec antenne et court sans antenne externe) les bibliothèques marchent parfaitement(j’ai fais les test basiques).

  18. Raoul,

    Bonne question, pour les NRF il y a pas mal de librairies et j’ai bien galéré aussi. Peux tu indiquer quelle librairie tu utilises et ou tu l’as prise, sur quel device (arduino, raspberry) et le cablage que tu as utilisé  afin qu’on puisse te renseigner ?


  19. Slt,

    Le message que je viens de posté est une erreur lié à la vérification.

    Merci pour la reponse.
    Sinon pour les questions; j’utilise la library que tu as proposé et pour le hardware j’ai essayé sur le uno et le mini pro, mais le problème doit venir de l’ide(1.0.5 et 1.5.6), vue que lors de la verification j’ai déjà les messages d’erreur. J’ai essayé les autres codes proposé en exemples(de la même library) et ils fonctionnent sans problème.
    Je pense que le problème viens de moi, j’ai l’impression que code n’est pas fait pour être juste copié collé, on est surement sensé compléter avec les paramètres basiques, comme déjà inclure la library, nn ? Je connaissais rien en programmation avant de commencer la semaine avec l’arduino donc je suis un peut dépassé sur ce coup.
    Ce type de module peu utiliser des intermédiaires ? Par exemple, les esclaves(avec des nRF24L01 de courte distance) envoient des donnés au maître et qui une fois regroupé envoi à un autre nRF24L01(de longue distance) beaucoup plus loin qui est relié a un raspberry par exemple et permet donc de lire les données sur un ordi de bureau.
    Avec la même idée, c’est possible d’utiliser un module qu’on planque a mi-chemin pour augmenter la distance ?

    • Raoul,

      Tu utilises la librairie que je propose mais laquelle ? celle dans le repo pour Arduino ou celle du Rasberry ? Parce que rien que pour celle du raspberry tu as 2 versions (nrf24-bcm) qui est la mienne et une autre de Stanley (je sais c’est le bronx ce repo mais je l’ai forké j’ai pas eu la main sur sa structure). Oui le code doit être modifié a minima pour le “pining” de comment est branché ton NRF24, les parametres de com doivent aussi être les mêmes de tous les cotés pour que ça fonctionne. Je te conseille dans un premier temps de faire fonctionner entre 2 arduinos (ou 2 raspberry) histoire que voir que tout est ok déjà. ensuite passe à un Arduino + 1 Raspberry.
      Pour répondre à ta question, oui c’est tout a fait possible de faire un “relais”, je te conseille l’article de manicbug, c’est le créateur d’origine de la librairie pour Arduino


  20. Hi Charles and thank you a lot due to your effort on running real life test for nordic RF modules.
    if you really want to experience the maximum range you should consider tips below:

    //*pages 58,59 from datasheet saying that:

    //note that if “payload bytes are set more than 15 bytes” and “Speed set to 2Mbps”
    //ARD(Auto Retransmition Delay) should be 500uS or more

    //note that if “payload bytes are set more than 5 bytes” and “Speed set to 1Mbps”
    //ARD(Auto Retransmition Delay) should be 500uS or more

    //note that if “Speed set to 250Kbps”
    //ARD(Auto Retransmition Delay) should be 500uS or more even when the payload is not //in acknowledge mode!

    That way you can take the advantage of long range with 250Kbps which is still very high speed.

    I hope this could be used as a small contribution in paving the way of Radio Frequency Projects.

    • Hi Iman,
      thanks for the tip, it could help for sure. For my projects I now use RFM12B and RFM69 so there is a long time now I’ve not played with NRF modules.

  21. hi
    I am working on nrf24l01+. I am using atmega32 controller on both side.I got data at receiver side but it take too much time receive. Plz help me to solve this problem.

  22. Hi Anny, have you first checked the status and config registers?

    this is the first step.
    then you have to check whether the payload has the true data in receiver or not?
    after that it might be a good idea to consider this important tip:
    “even when you’re writing code for Transmitter, you should consider setting both RX_ADDR0 and TX_ADDR for it” but for receiver it’s only sufficient to set the RX_ADDR0.

    RX_ADDR0 is and example of using pipe0 you can change it to RX_ADDRn which n can vary from 0 to 5 but both Transmitter & Receiver should have the same ADDRESS(e.g 0x12 0x12 0x12 0x12 0x12 which are 5 bytes array pointed to ADDRESS)

    also my region of interest is here:
    2)Image Processing
    3)C# Visual Studio Design
    4)C and C++ embedded programming
    5)PIC, dsPIC, AVR
    6)Control Designs
    7)Mathematics and Physics

    if you had any problem in the subjects above, I would be glad if I could help!

  23. the only way you will get longer range is setting baud rate way lower…
    you need to go down to 9600 bps (maximum value), 1200 or even lower…
    with this baud rates you will get way more than 200-300 meters…
    (I used to get 150 mtrs easily with tucws 433 rx&tx at those baud rates)

  24. Hello Charles i have the black nrf24l01+ module without the antenna on it and i did a range test line of sight i got 220 ft range i couldn’t test no more because buildings was in the way i did a youtube video https://www.youtube.com/watch?v=T83wWl5V6lE indoors in my apartment i got 50 ft in one direction and 60 ft from the bedroom to the hallway through brick and doors but that’s all i just did a pin test using a blink led to see the range of it. i just order the one with the external antenna and higher range from what i have seen they should do a better range test. i post a update when ready.


    • Hi Joseph,
      Thank you very much for your head up. Excellent video by the way I appreciate your share there and your interest for these modules. I’m excited to see your new tests.

  25. Hi Guys,

    I use the integrated antenna Black modules, and found that range was GREATLY effected by orientation (as with most RF products). I found the best range was obtained by orienting them so that the resonator was up and the +/- pins were bottom, AND that the copper face antennae from each module are facing each other.

    Test done with sending 1 Character, I get about 40m max through light garden bushes from my house window @ 1Mbps. I can’t get my NRF24L01+ to set to 250Kbps, would be great if anyone could help with that?


    • Hi Peter,
      Thank you for the tip, I’m sure it will help some of us 😉

      Are you sure you got one “+” version ? Because 250KBPS are available only on these modules if I remember correctly. May be it could be why.


  26. If you want to learn what you can do with this puppy please visit: http://www.mysensors.org

    The MySensors Arduino library is easy to use and allows relaying of messages to increase the range of your sensors.

    During the last year the MySensors forum has gathered much valuable information on how to use the NRF24L01 optimally.

  27. can anyone please tell me how to find the distance between 2 nrf24l01+ ,or any link to support.

  28. Hi Charles,

    Thanks for posting this information, very useful read.  I have a question which has been mentioned before back 2013, but wondering if you have made any further tests in this area.  I am interested in the approximate range if the Master is a PA+LNA module and the a Slave is a basic cheap PCB antenna module, then used in uni-directional mode with the ACKnowldge function turned off.  If you have any ideas of approximate range (open air)?

    I have some on order from China so will be making the tests myself but curious if this is something you have an idea on.



    • Hi Ant,
      Thank for your comment. Well I’m not using these modules anymore, I switched over RFM69 so I do not have test boards on hands. But as far as I remember I tested this configuration, and I obtained about 10% better range than with no PA+LNA. Seems close to the less performance module which makes sense.

      Of course both with PA+LNA was far better (and most expensive)


      • I’ve seen analyses that suggest that the noise floor is often the limiting factor for the nRF24L01+ modules, and that the PA+LNA variation gains you very little in terms of reception, tho it does substantially increase transmission. (ie: The PA really helps transmission, but the LNA doesn’t help reception much because it’s more noise limited).

        However the external antenna (with or without PA+LNA) does give you some gain for both reception and transmission, at least when the target is closer to right angles with the axis of the external antenna (do NOT point the external antenna at the other unit, that’s the worst direction).

        What this means: You get good advantage going from a PA+LNA unit to a plain (PCB antenna) unit, but much less improvement for sending from plan to PA+LNA. If you are sending with ACK (which makes it bidirectional) then the latter direction is your limiting factor – either the main packet or the ACK is going to drop out first with increasing distance.

        And from PA+LNA to PA+LNA gets major range increase (taking advantage of the PA both ways, as well as the antennas).

        The other factor is the power supply – most of the units from China are very sensitive to even small amounts of noise on the power supply. That can vary from no reception at all, to reduced range. A cap across the power supply leads helps.

  29. Hi Charles, i am new to nrf24l01+ module using with arduino ide….can you please tell me . how can i set different speed as 250kbps, 1mbps in an arduino code or how it can depend upon payload size, plz clear me that thing.

  30. Hi Rishabh,
    Well to be honest that’s a long time I didn’t played with NRF module since I’ve migrated to RFM69. When I was playing with NRF24 I used and contributed to this NRF24 library You should find some documentation on this site and Arduino examples sketchs

    The layload size is just the size of the data you want to send, no more voodo 😉 and to set the speed to 250kbps you need to call someting like this
    rf24.setDataRate( RF24_250KBPS )

    Hope this help


    • Hi Charles, thanks for replying me, charles i have doubt please clear me . if i have nrf24l01+(at 250kbps 100m range) module if cut it integrated pcb antenna and join with it connection to homemade biquard antenna does it give me 2km of ranges .. it is true….(i heard about this on others blogs) did you know about it if you know please clear me about that.

      • Rishabh,

        I don’t know the answer, but I would like to know 😉 What I’m sure is that for this kind of distance, may be you could try LORA modules.


  31. is it a better solution to use 433MHz RF modeule instead of nrlf24l01 ?

    for range and easyness.

    i want to use RF module for home automation.please suggest me good RF module.i’m using it with arduino controller

    • Ankush,
      from the tests I made, RFM69 really beat the NFR24, no dead zone in my house even from the end of the garden. With NRF24 over 10 meters in the house and I was in dead zone.
      But I see so much people using NRF24 so that may be it depends and it can’t be so short in range. It would be interesting to have someone else testing both modules


  32. Hi Charles,

    What my experience says is “Decrease data rate to further increase range” with these wireless modules. Since the average power consumed is higher in Low data rate signals, the signal is stronger and range is better.

Comments on this topic in community Forums.