Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. NRF24L01+: bad range of few meters

NRF24L01+: bad range of few meters

Scheduled Pinned Locked Moved Troubleshooting
10 Posts 3 Posters 4.5k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • vgaV Offline
    vgaV Offline
    vga
    wrote on last edited by
    #1

    Hi everyone,

    i´m using the following setup:

    Controller:
    Raspberry Pi 2 B, powered with an USB- Power-Supply Max. 2A

    Serial Gateway (v1.5):
    Arduino Nano 5V directly connected via USB,
    NRF24L01+ with SMA Antenna direct soldered to the Arduino, capacitor 0,47uF between GND and Vin

    Sensor-Node (v1.5):
    Arduino Pro Mini 3,3V, powered with new a battery: (one "SAFT" AA-Format cell, 3,6V 2000mAh)
    NRF24L01+ without external Antenna (and also tried the mod with soldered 83,3mm wire antenna), capacitor 0,47uF between GND and Vin

    Environment:
    Controller and gateway indoor directly behind a window (double shielded), sensor outside:
    5m away from window: connection OK.
    7m away from window: connection FAIL.

    What can i do, for better range:?

    • Is there a better way for powering the gateway or the battery sensor (but sensor needs to by battery powered, and power efficient)?
    • Any other hardware mods?
    • I´ve read in another post something about NRF24-library settings:
      radio.setPALevel(RF24_PA_MAX);
      radio.setDataRate(RF24_250KBPS);
      radio.setPayloadSize(4);
      radio.setChannel(2);
      radio.setRetries(15, 15);
    

    Is there a way to set these parameters via MySensors Library?

    YveauxY 1 Reply Last reply
    0
    • vgaV vga

      Hi everyone,

      i´m using the following setup:

      Controller:
      Raspberry Pi 2 B, powered with an USB- Power-Supply Max. 2A

      Serial Gateway (v1.5):
      Arduino Nano 5V directly connected via USB,
      NRF24L01+ with SMA Antenna direct soldered to the Arduino, capacitor 0,47uF between GND and Vin

      Sensor-Node (v1.5):
      Arduino Pro Mini 3,3V, powered with new a battery: (one "SAFT" AA-Format cell, 3,6V 2000mAh)
      NRF24L01+ without external Antenna (and also tried the mod with soldered 83,3mm wire antenna), capacitor 0,47uF between GND and Vin

      Environment:
      Controller and gateway indoor directly behind a window (double shielded), sensor outside:
      5m away from window: connection OK.
      7m away from window: connection FAIL.

      What can i do, for better range:?

      • Is there a better way for powering the gateway or the battery sensor (but sensor needs to by battery powered, and power efficient)?
      • Any other hardware mods?
      • I´ve read in another post something about NRF24-library settings:
        radio.setPALevel(RF24_PA_MAX);
        radio.setDataRate(RF24_250KBPS);
        radio.setPayloadSize(4);
        radio.setChannel(2);
        radio.setRetries(15, 15);
      

      Is there a way to set these parameters via MySensors Library?

      YveauxY Offline
      YveauxY Offline
      Yveaux
      Mod
      wrote on last edited by
      #2

      @vga said:

      radio.setChannel(2);

      This channel could possibly overlap with WiFi channels. Better use high channel numbers, like default 76.

      http://yveaux.blogspot.nl

      1 Reply Last reply
      0
      • vgaV Offline
        vgaV Offline
        vga
        wrote on last edited by
        #3

        thanks, i would take channel 76, but how can i set these parameters, also the other ones?

        in MyConfig.h i see the following:

        #define MY_RF24_CHANNEL	76
        #define MY_RF24_DATARATE RF24_250KBPS
        #define MY_RF24_PA_LEVEL RF24_PA_MAX
        

        ...but what about the PayloadSize? can i set this too?

        YveauxY 1 Reply Last reply
        0
        • vgaV vga

          thanks, i would take channel 76, but how can i set these parameters, also the other ones?

          in MyConfig.h i see the following:

          #define MY_RF24_CHANNEL	76
          #define MY_RF24_DATARATE RF24_250KBPS
          #define MY_RF24_PA_LEVEL RF24_PA_MAX
          

          ...but what about the PayloadSize? can i set this too?

          YveauxY Offline
          YveauxY Offline
          Yveaux
          Mod
          wrote on last edited by
          #4

          @vga if you don't change the channel it will default to 76.
          Why are you configuring the nRF directly by calling the driver methods? Are you using the mysensors library at all?

          http://yveaux.blogspot.nl

          vgaV 1 Reply Last reply
          0
          • YveauxY Yveaux

            @vga if you don't change the channel it will default to 76.
            Why are you configuring the nRF directly by calling the driver methods? Are you using the mysensors library at all?

            vgaV Offline
            vgaV Offline
            vga
            wrote on last edited by
            #5

            @Yveaux said:

            @vga if you don't change the channel it will default to 76.
            Why are you configuring the nRF directly by calling the driver methods? Are you using the mysensors library at all?

            do you mean the radio.set lines?
            this is only a quote from another post. i don't do it this way.
            i´m using My Sensors library v2.0 beta.

            I´ve found 3 parameters in the MyConfig.h, and they all set by default, as i see.
            But ni can´t find the payload size. Can i set it anywhere, or see what value it is set to?

            YveauxY 1 Reply Last reply
            0
            • vgaV vga

              @Yveaux said:

              @vga if you don't change the channel it will default to 76.
              Why are you configuring the nRF directly by calling the driver methods? Are you using the mysensors library at all?

              do you mean the radio.set lines?
              this is only a quote from another post. i don't do it this way.
              i´m using My Sensors library v2.0 beta.

              I´ve found 3 parameters in the MyConfig.h, and they all set by default, as i see.
              But ni can´t find the payload size. Can i set it anywhere, or see what value it is set to?

              YveauxY Offline
              YveauxY Offline
              Yveaux
              Mod
              wrote on last edited by
              #6

              @vga when using the library you should not have to call any of the radio.xxx methods. The #defines are sufficient.
              The size of the payload is automatically determined by the library, and depends on what you transmit in the message.

              http://yveaux.blogspot.nl

              1 Reply Last reply
              0
              • vgaV Offline
                vgaV Offline
                vga
                wrote on last edited by
                #7

                sure, as i said, i don´t use the radio.set methods.

                So are there any other hardware tipps?

                1 Reply Last reply
                0
                • NickBuilderN Offline
                  NickBuilderN Offline
                  NickBuilder
                  wrote on last edited by
                  #8

                  Hi @vga!

                  This thread presents a lot of hardware considerations related to the nrf24l01 module.

                  The nrf24 should then perhaps be supplied separately instead of through a Pi or Arduino supply pin. I will go for this approach myself. Even though your USB supply provides 2A the 3V pin is of course limited to perhaps 50 mA?!

                  1 Reply Last reply
                  0
                  • vgaV Offline
                    vgaV Offline
                    vga
                    wrote on last edited by
                    #9

                    i´ve got the solution!

                    in MyConfig.h i have set:

                    #define RF24_PA_LEVEL_GW   RF24_PA_MAX
                    

                    befor it it was LOW! :smirk:

                    1 Reply Last reply
                    0
                    • NickBuilderN Offline
                      NickBuilderN Offline
                      NickBuilder
                      wrote on last edited by
                      #10

                      Ok, so you see an improvement?

                      In the referenced thread Korttoma actually mentioned that one could expect a lower range if you set the power to max as the Arduino is not able to supply enough power.

                      Good to know, learning by doing. 😊

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      24

                      Online

                      11.7k

                      Users

                      11.2k

                      Topics

                      113.1k

                      Posts


                      Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • MySensors
                      • OpenHardware.io
                      • Categories
                      • Recent
                      • Tags
                      • Popular