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. Hardware
  3. Where to get legit nRF24L01+ modules?

Where to get legit nRF24L01+ modules?

Scheduled Pinned Locked Moved Hardware
counterfeitnrf24l01+nrf24l01+pa+lna
85 Posts 9 Posters 24.3k Views 12 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.
  • NeverDieN NeverDie

    @Nca78
    In that case you could get the job done using one of the ARM chips that comes with a fast sampling AD converter and, preferably, lots of RAM. You could get it on one of the cheap demo boards to make the project easier. Fortunately, the fake nrf24's are different enough from the genuine in their Tx and Rx current draws that you won't need to split hairs on your measurements to tell them apart.

    I did something similar once for capturing and decoding RF signals using an Arduino Due, so I'm sure it can be done. In fact, you could probably use a Due for this if you wanted to, but no doubt there are better options available now.

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

    @NeverDie said in Where to get legit nRF24L01+ modules?:

    Fortunately, the fake nrf24's are different enough from the genuine in their Tx and Rx current draws that you won't need to split hairs on your measurements to tell them apart.

    Nope. Some of them might be, but certainly not all of them...

    http://yveaux.blogspot.nl

    NeverDieN 1 Reply Last reply
    0
    • YveauxY Yveaux

      @NeverDie said in Where to get legit nRF24L01+ modules?:

      Fortunately, the fake nrf24's are different enough from the genuine in their Tx and Rx current draws that you won't need to split hairs on your measurements to tell them apart.

      Nope. Some of them might be, but certainly not all of them...

      NeverDieN Offline
      NeverDieN Offline
      NeverDie
      Hero Member
      wrote on last edited by NeverDie
      #32

      @Yveaux said in Where to get legit nRF24L01+ modules?:

      @NeverDie said in Where to get legit nRF24L01+ modules?:

      Fortunately, the fake nrf24's are different enough from the genuine in their Tx and Rx current draws that you won't need to split hairs on your measurements to tell them apart.

      Nope. Some of them might be, but certainly not all of them...

      Which ones? Even the fakes have names and datasheets. The datasheet tells the tale. The ones I tested (see other thread for the details) were pretty noticeably different.

      YveauxY 1 Reply Last reply
      0
      • NeverDieN NeverDie

        @Yveaux said in Where to get legit nRF24L01+ modules?:

        @NeverDie said in Where to get legit nRF24L01+ modules?:

        Fortunately, the fake nrf24's are different enough from the genuine in their Tx and Rx current draws that you won't need to split hairs on your measurements to tell them apart.

        Nope. Some of them might be, but certainly not all of them...

        Which ones? Even the fakes have names and datasheets. The datasheet tells the tale. The ones I tested (see other thread for the details) were pretty noticeably different.

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

        @NeverDie said in Where to get legit nRF24L01+ modules?:

        Which ones? Even the fakes have names and datasheets. The datasheet tells the tale.

        I've ordered many nameless modules (regular black ones) through Ali express the past years, which didn't come with a datasheet or any specs. A number of them are proven fakes (some even x-rayed by Nordic), but I've not seen any of them having a current consumption significantly different from original Nordic modules.
        I just want to stress again that although some fake modules have a higher current consumption, this certainly isn't true for all fake modules.
        A module with regular consumption still could be fake. X-ray is the only way to be 100% certain.

        http://yveaux.blogspot.nl

        NeverDieN 1 Reply Last reply
        0
        • YveauxY Yveaux

          @NeverDie said in Where to get legit nRF24L01+ modules?:

          Which ones? Even the fakes have names and datasheets. The datasheet tells the tale.

          I've ordered many nameless modules (regular black ones) through Ali express the past years, which didn't come with a datasheet or any specs. A number of them are proven fakes (some even x-rayed by Nordic), but I've not seen any of them having a current consumption significantly different from original Nordic modules.
          I just want to stress again that although some fake modules have a higher current consumption, this certainly isn't true for all fake modules.
          A module with regular consumption still could be fake. X-ray is the only way to be 100% certain.

          NeverDieN Offline
          NeverDieN Offline
          NeverDie
          Hero Member
          wrote on last edited by NeverDie
          #34

          @Yveaux

          What was it about the chips (the ones that had identical current draws to the real thing) that you sent to Nordic for x-ray that motivated you to send them?

          If your requirement is 100% certainty, then you may just have to make your own modules with chips procured either direct from Nordic or from a trusted supplier, like Digikey.

          YveauxY 1 Reply Last reply
          0
          • NeverDieN NeverDie

            @Yveaux

            What was it about the chips (the ones that had identical current draws to the real thing) that you sent to Nordic for x-ray that motivated you to send them?

            If your requirement is 100% certainty, then you may just have to make your own modules with chips procured either direct from Nordic or from a trusted supplier, like Digikey.

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

            @NeverDie said in Where to get legit nRF24L01+ modules?:

            If your requirement is 100% certainty

            That's not my requirement; I didn't start this thread :laughing:
            I only have (presumably) fakes deployed around the house and they've never failed me. I won't bother getting 100% genuine ones.

            http://yveaux.blogspot.nl

            1 Reply Last reply
            0
            • d00616D Offline
              d00616D Offline
              d00616
              Contest Winner
              wrote on last edited by
              #36

              I have received two of the red modules. This is an X-Ray image of the chip (montage)
              0_1500731806314_upload-666b869a-0a72-4e85-9575-5e96bf143cee

              NeverDieN YveauxY Bogus ExceptionB 3 Replies Last reply
              0
              • d00616D d00616

                I have received two of the red modules. This is an X-Ray image of the chip (montage)
                0_1500731806314_upload-666b869a-0a72-4e85-9575-5e96bf143cee

                NeverDieN Offline
                NeverDieN Offline
                NeverDie
                Hero Member
                wrote on last edited by
                #37

                @d00616 said in Where to get legit nRF24L01+ modules?:

                I have received two of the red modules. This is an X-Ray image of the chip (montage)
                0_1500731806314_upload-666b869a-0a72-4e85-9575-5e96bf143cee

                Meaning?

                d00616D 1 Reply Last reply
                0
                • NeverDieN NeverDie

                  @d00616 said in Where to get legit nRF24L01+ modules?:

                  I have received two of the red modules. This is an X-Ray image of the chip (montage)
                  0_1500731806314_upload-666b869a-0a72-4e85-9575-5e96bf143cee

                  Meaning?

                  d00616D Offline
                  d00616D Offline
                  d00616
                  Contest Winner
                  wrote on last edited by
                  #38

                  @NeverDie @Yveaux said in Where to get legit nRF24L01+ modules?:

                  Could be that different clones of the nRF exist of which some have an increased power consumption, but currently the only way to know for sure (also for Nordic ) is to x-ray them.

                  I hope somebody can say if this looks like an original.

                  1 Reply Last reply
                  0
                  • d00616D d00616

                    I have received two of the red modules. This is an X-Ray image of the chip (montage)
                    0_1500731806314_upload-666b869a-0a72-4e85-9575-5e96bf143cee

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

                    @d00616 the xray is rather vague.
                    Here are die shots of the original and a fake: https://zeptobars.com/en/read/Nordic-NRF24L01P-SI24R1-real-fake-copy

                    Maybe you can match them.

                    http://yveaux.blogspot.nl

                    d00616D 1 Reply Last reply
                    0
                    • YveauxY Yveaux

                      @d00616 the xray is rather vague.
                      Here are die shots of the original and a fake: https://zeptobars.com/en/read/Nordic-NRF24L01P-SI24R1-real-fake-copy

                      Maybe you can match them.

                      d00616D Offline
                      d00616D Offline
                      d00616
                      Contest Winner
                      wrote on last edited by
                      #40

                      @Yveaux Thank you for the X-Ray images. I can't get images in that resolution.

                      YveauxY 1 Reply Last reply
                      0
                      • d00616D d00616

                        @Yveaux Thank you for the X-Ray images. I can't get images in that resolution.

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

                        @d00616 they aren't xray images. The die shots were obtained by eating away the chip package with acid.

                        http://yveaux.blogspot.nl

                        1 Reply Last reply
                        0
                        • hekH hek

                          Itead or some other legit company like mouser should stock the real thing.

                          Bogus ExceptionB Offline
                          Bogus ExceptionB Offline
                          Bogus Exception
                          wrote on last edited by
                          #42

                          @hek Thanks for writing. I got 4 from itead the other day (2 each of 2 types), and they are in the boxes in front of me. FOr one thing-they have a box! I am making a video for my blog comparing them to the clones (as best I can), and I'm going to test out that current statement I found online...

                          Thanks for the tip!

                          "If you drop it and it breaks, it was good." ~ Mr. Lehr, my Electronics Vo-Tech teacher, on testing vacuum tubes...
                          -Arduinos (UNO, Nano, Pro-Mini, Mega, ...)
                          -ATTiny, ATMega, STM32
                          -Geek Channel: https://www.youtube.com/TheSalesEngineer

                          1 Reply Last reply
                          1
                          • tbowmoT tbowmo

                            I think that Itead studio promised me that it was genuine NRF that they used for their modules.

                            But it's a couple of years since I purchased any from them, and I'm not sure which ones of the different NRF modules that I have, that actually came from Itead.. :)

                            Bogus ExceptionB Offline
                            Bogus ExceptionB Offline
                            Bogus Exception
                            wrote on last edited by
                            #43

                            @tbowmo Thanks for the tip. I have some in front of me, still in box. Will post results.

                            "If you drop it and it breaks, it was good." ~ Mr. Lehr, my Electronics Vo-Tech teacher, on testing vacuum tubes...
                            -Arduinos (UNO, Nano, Pro-Mini, Mega, ...)
                            -ATTiny, ATMega, STM32
                            -Geek Channel: https://www.youtube.com/TheSalesEngineer

                            1 Reply Last reply
                            0
                            • Nca78N Offline
                              Nca78N Offline
                              Nca78
                              Hardware Contributor
                              wrote on last edited by
                              #44

                              I received my Ebyte modules, not a warranty of authenticity but the nrf chip has a square instead of a dot like all the fakes I have been using until now. I have a few standard SMD modules and a PA LNA version, I will try to make some basic range tests soon compared to the SMD clones.

                              0_1501066269827_IMAG1842_1.jpg

                              Bogus ExceptionB gohanG 3 Replies Last reply
                              1
                              • Nca78N Nca78

                                I received my Ebyte modules, not a warranty of authenticity but the nrf chip has a square instead of a dot like all the fakes I have been using until now. I have a few standard SMD modules and a PA LNA version, I will try to make some basic range tests soon compared to the SMD clones.

                                0_1501066269827_IMAG1842_1.jpg

                                Bogus ExceptionB Offline
                                Bogus ExceptionB Offline
                                Bogus Exception
                                wrote on last edited by
                                #45

                                OK! I followed your suggestions and tried itead. These are the pics of what I got 4 of (sorry no pro rig-just a loupe & module in one hand & mouse in the other!

                                (all are hosted on one of my servers, not here locally)

                                alt text

                                alt text

                                alt text

                                alt text

                                alt text

                                alt text

                                "If you drop it and it breaks, it was good." ~ Mr. Lehr, my Electronics Vo-Tech teacher, on testing vacuum tubes...
                                -Arduinos (UNO, Nano, Pro-Mini, Mega, ...)
                                -ATTiny, ATMega, STM32
                                -Geek Channel: https://www.youtube.com/TheSalesEngineer

                                gohanG 1 Reply Last reply
                                3
                                • Bogus ExceptionB Bogus Exception

                                  OK! I followed your suggestions and tried itead. These are the pics of what I got 4 of (sorry no pro rig-just a loupe & module in one hand & mouse in the other!

                                  (all are hosted on one of my servers, not here locally)

                                  alt text

                                  alt text

                                  alt text

                                  alt text

                                  alt text

                                  alt text

                                  gohanG Offline
                                  gohanG Offline
                                  gohan
                                  Mod
                                  wrote on last edited by
                                  #46

                                  @Bogus-Exception let us know how they perform

                                  Bogus ExceptionB 1 Reply Last reply
                                  0
                                  • gohanG gohan

                                    @Bogus-Exception let us know how they perform

                                    Bogus ExceptionB Offline
                                    Bogus ExceptionB Offline
                                    Bogus Exception
                                    wrote on last edited by
                                    #47

                                    @gohan I'll do my best to measure meaningful metrics between these & clones. Also, I have 4 eBytes coming (2x blue, 2x red)...

                                    "If you drop it and it breaks, it was good." ~ Mr. Lehr, my Electronics Vo-Tech teacher, on testing vacuum tubes...
                                    -Arduinos (UNO, Nano, Pro-Mini, Mega, ...)
                                    -ATTiny, ATMega, STM32
                                    -Geek Channel: https://www.youtube.com/TheSalesEngineer

                                    1 Reply Last reply
                                    1
                                    • Bogus ExceptionB Offline
                                      Bogus ExceptionB Offline
                                      Bogus Exception
                                      wrote on last edited by Bogus Exception
                                      #48

                                      So far I've noticed on all versions of the legit nRF24 chips that the 'square' is actually 4 vertical lines, covering a square area, at the 'top left' of the chip.

                                      Just tried over the past 2 hours to replace the clone in my MyController gateway with either the itead or ebyte legit modules, and neither one of them would communicate with the other nodes. I put the clone back in, and it worked. Weird.

                                      Not like it matters much, but here is the sketch (all comments removed) using a BME280 and a light sensor module, on a Nano, USB powered:

                                      #define MY_DEBUG
                                      #define MY_RADIO_NRF24
                                      #define MY_RF24_PA_LEVEL RF24_PA_LOW
                                      #define MY_GATEWAY_SERIAL
                                      #if F_CPU == 8000000L
                                      #define MY_BAUD_RATE 38400
                                      #endif
                                      #include <Adafruit_Sensor.h>
                                      #include <Adafruit_BME280.h>
                                      #define BME_SCK 13
                                      #define BME_MISO 12
                                      #define BME_MOSI 11
                                      #define BME_CS 6
                                      #define SEALEVELPRESSURE_HPA (1013.25)
                                      const float ALTITUDE = 18;
                                      Adafruit_BME280 bme(BME_CS); // hardware SPI
                                      #define LIGHT_CHILD 0
                                      #define BARO_CHILD 1
                                      #define TEMP_CHILD 2
                                      #define HUM_CHILD 3
                                      boolean metric;
                                      uint8_t decimals;
                                      #include <MySensors.h>
                                      MyMessage lightMsg(LIGHT_CHILD, V_LIGHT_LEVEL); // 0
                                      MyMessage pressureMsg(BARO_CHILD, V_PRESSURE); // 1
                                      MyMessage tempMsg(TEMP_CHILD, V_TEMP); // 2
                                      MyMessage humMsg(HUM_CHILD, V_HUM); // 3
                                      #define LIGHT_SENSOR_ANALOG_PIN 0
                                      int lastLightLevel;
                                      unsigned long SLEEP_TIME = 60000; // Sleep time between reads (in milliseconds)
                                      void setup()
                                      {
                                        #ifdef MY_DEBUG
                                          Serial.begin(115200);
                                        #endif
                                        decimals = 2;
                                        metric = getControllerConfig().isMetric; 
                                        bool status;
                                        status = bme.begin();
                                        if (!status) {
                                          #ifdef MY_DEBUG
                                            Serial.println("Could not find a valid BME280 sensor, check wiring!");
                                          #endif
                                          while (1);
                                        }
                                      }
                                      void presentation()
                                      {
                                        sendSketchInfo("Master Nano", "1.0");
                                        present(LIGHT_CHILD, S_LIGHT_LEVEL);  // 0
                                        present(BARO_CHILD, S_BARO);          // 1
                                        present(TEMP_CHILD, S_TEMP);          // 2
                                        present(HUM_CHILD, S_HUM);            // 3
                                      }
                                      void loop()
                                      {
                                        int16_t lightLevel = (1023-analogRead(LIGHT_SENSOR_ANALOG_PIN))/10.23;
                                        if (lightLevel != lastLightLevel) {
                                          #ifdef MY_DEBUG
                                            Serial.print(F("Sending lightMsg: "));
                                            Serial.println(String(lightLevel));
                                          #endif
                                          send(lightMsg.set(lightLevel));
                                          lastLightLevel = lightLevel;
                                        }
                                        float p_Mb = bme.readPressure() / 100.0F;
                                        float p_Hg = p_Mb / 33.86;
                                        #ifdef MY_DEBUG
                                          Serial.print(F("Sending pressureMsg: "));
                                          Serial.println(String(p_Hg));
                                        #endif
                                        send(pressureMsg.set(p_Hg, decimals));
                                        float t_C = bme.readTemperature();
                                        float t_F = (t_C * (9/5)) + 32;
                                        #ifdef MY_DEBUG
                                          Serial.print(F("Sending tempMsg: "));
                                          Serial.println(String(t_F));
                                        #endif
                                        send(tempMsg.set(t_F, decimals));
                                        float h_Pct = bme.readHumidity();
                                        #ifdef MY_DEBUG
                                          Serial.print(F("Sending humMsg: "));
                                          Serial.println(String(h_Pct));
                                        #endif
                                        send(humMsg.set(h_Pct, decimals));  
                                        #ifdef MY_DEBUG
                                          Serial.print(F("Sleeping for: "));
                                          Serial.println(String(SLEEP_TIME));
                                        #endif
                                        sleep(SLEEP_TIME);
                                      }
                                      

                                      It works with the clone... I am using a regulator board for the nRF24-the one it plugs into & breaks out the 8 pins...

                                      "If you drop it and it breaks, it was good." ~ Mr. Lehr, my Electronics Vo-Tech teacher, on testing vacuum tubes...
                                      -Arduinos (UNO, Nano, Pro-Mini, Mega, ...)
                                      -ATTiny, ATMega, STM32
                                      -Geek Channel: https://www.youtube.com/TheSalesEngineer

                                      YveauxY gohanG 2 Replies Last reply
                                      0
                                      • Bogus ExceptionB Bogus Exception

                                        So far I've noticed on all versions of the legit nRF24 chips that the 'square' is actually 4 vertical lines, covering a square area, at the 'top left' of the chip.

                                        Just tried over the past 2 hours to replace the clone in my MyController gateway with either the itead or ebyte legit modules, and neither one of them would communicate with the other nodes. I put the clone back in, and it worked. Weird.

                                        Not like it matters much, but here is the sketch (all comments removed) using a BME280 and a light sensor module, on a Nano, USB powered:

                                        #define MY_DEBUG
                                        #define MY_RADIO_NRF24
                                        #define MY_RF24_PA_LEVEL RF24_PA_LOW
                                        #define MY_GATEWAY_SERIAL
                                        #if F_CPU == 8000000L
                                        #define MY_BAUD_RATE 38400
                                        #endif
                                        #include <Adafruit_Sensor.h>
                                        #include <Adafruit_BME280.h>
                                        #define BME_SCK 13
                                        #define BME_MISO 12
                                        #define BME_MOSI 11
                                        #define BME_CS 6
                                        #define SEALEVELPRESSURE_HPA (1013.25)
                                        const float ALTITUDE = 18;
                                        Adafruit_BME280 bme(BME_CS); // hardware SPI
                                        #define LIGHT_CHILD 0
                                        #define BARO_CHILD 1
                                        #define TEMP_CHILD 2
                                        #define HUM_CHILD 3
                                        boolean metric;
                                        uint8_t decimals;
                                        #include <MySensors.h>
                                        MyMessage lightMsg(LIGHT_CHILD, V_LIGHT_LEVEL); // 0
                                        MyMessage pressureMsg(BARO_CHILD, V_PRESSURE); // 1
                                        MyMessage tempMsg(TEMP_CHILD, V_TEMP); // 2
                                        MyMessage humMsg(HUM_CHILD, V_HUM); // 3
                                        #define LIGHT_SENSOR_ANALOG_PIN 0
                                        int lastLightLevel;
                                        unsigned long SLEEP_TIME = 60000; // Sleep time between reads (in milliseconds)
                                        void setup()
                                        {
                                          #ifdef MY_DEBUG
                                            Serial.begin(115200);
                                          #endif
                                          decimals = 2;
                                          metric = getControllerConfig().isMetric; 
                                          bool status;
                                          status = bme.begin();
                                          if (!status) {
                                            #ifdef MY_DEBUG
                                              Serial.println("Could not find a valid BME280 sensor, check wiring!");
                                            #endif
                                            while (1);
                                          }
                                        }
                                        void presentation()
                                        {
                                          sendSketchInfo("Master Nano", "1.0");
                                          present(LIGHT_CHILD, S_LIGHT_LEVEL);  // 0
                                          present(BARO_CHILD, S_BARO);          // 1
                                          present(TEMP_CHILD, S_TEMP);          // 2
                                          present(HUM_CHILD, S_HUM);            // 3
                                        }
                                        void loop()
                                        {
                                          int16_t lightLevel = (1023-analogRead(LIGHT_SENSOR_ANALOG_PIN))/10.23;
                                          if (lightLevel != lastLightLevel) {
                                            #ifdef MY_DEBUG
                                              Serial.print(F("Sending lightMsg: "));
                                              Serial.println(String(lightLevel));
                                            #endif
                                            send(lightMsg.set(lightLevel));
                                            lastLightLevel = lightLevel;
                                          }
                                          float p_Mb = bme.readPressure() / 100.0F;
                                          float p_Hg = p_Mb / 33.86;
                                          #ifdef MY_DEBUG
                                            Serial.print(F("Sending pressureMsg: "));
                                            Serial.println(String(p_Hg));
                                          #endif
                                          send(pressureMsg.set(p_Hg, decimals));
                                          float t_C = bme.readTemperature();
                                          float t_F = (t_C * (9/5)) + 32;
                                          #ifdef MY_DEBUG
                                            Serial.print(F("Sending tempMsg: "));
                                            Serial.println(String(t_F));
                                          #endif
                                          send(tempMsg.set(t_F, decimals));
                                          float h_Pct = bme.readHumidity();
                                          #ifdef MY_DEBUG
                                            Serial.print(F("Sending humMsg: "));
                                            Serial.println(String(h_Pct));
                                          #endif
                                          send(humMsg.set(h_Pct, decimals));  
                                          #ifdef MY_DEBUG
                                            Serial.print(F("Sleeping for: "));
                                            Serial.println(String(SLEEP_TIME));
                                          #endif
                                          sleep(SLEEP_TIME);
                                        }
                                        

                                        It works with the clone... I am using a regulator board for the nRF24-the one it plugs into & breaks out the 8 pins...

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

                                        @Bogus-Exception said in Where to get legit nRF24L01+ modules?:

                                        So far I've noticed on all versions of the legit nRF24 chips that the 'square' is actually 4 vertical lines, covering a square area, at the 'top left' of the chip.

                                        You cannot rely on the print of the nRF to distinguish fake from genuine. Nordic is fabless, so they use different factories to produce their chips, each with its own specific marking.

                                        http://yveaux.blogspot.nl

                                        Bogus ExceptionB 1 Reply Last reply
                                        1
                                        • Bogus ExceptionB Bogus Exception

                                          So far I've noticed on all versions of the legit nRF24 chips that the 'square' is actually 4 vertical lines, covering a square area, at the 'top left' of the chip.

                                          Just tried over the past 2 hours to replace the clone in my MyController gateway with either the itead or ebyte legit modules, and neither one of them would communicate with the other nodes. I put the clone back in, and it worked. Weird.

                                          Not like it matters much, but here is the sketch (all comments removed) using a BME280 and a light sensor module, on a Nano, USB powered:

                                          #define MY_DEBUG
                                          #define MY_RADIO_NRF24
                                          #define MY_RF24_PA_LEVEL RF24_PA_LOW
                                          #define MY_GATEWAY_SERIAL
                                          #if F_CPU == 8000000L
                                          #define MY_BAUD_RATE 38400
                                          #endif
                                          #include <Adafruit_Sensor.h>
                                          #include <Adafruit_BME280.h>
                                          #define BME_SCK 13
                                          #define BME_MISO 12
                                          #define BME_MOSI 11
                                          #define BME_CS 6
                                          #define SEALEVELPRESSURE_HPA (1013.25)
                                          const float ALTITUDE = 18;
                                          Adafruit_BME280 bme(BME_CS); // hardware SPI
                                          #define LIGHT_CHILD 0
                                          #define BARO_CHILD 1
                                          #define TEMP_CHILD 2
                                          #define HUM_CHILD 3
                                          boolean metric;
                                          uint8_t decimals;
                                          #include <MySensors.h>
                                          MyMessage lightMsg(LIGHT_CHILD, V_LIGHT_LEVEL); // 0
                                          MyMessage pressureMsg(BARO_CHILD, V_PRESSURE); // 1
                                          MyMessage tempMsg(TEMP_CHILD, V_TEMP); // 2
                                          MyMessage humMsg(HUM_CHILD, V_HUM); // 3
                                          #define LIGHT_SENSOR_ANALOG_PIN 0
                                          int lastLightLevel;
                                          unsigned long SLEEP_TIME = 60000; // Sleep time between reads (in milliseconds)
                                          void setup()
                                          {
                                            #ifdef MY_DEBUG
                                              Serial.begin(115200);
                                            #endif
                                            decimals = 2;
                                            metric = getControllerConfig().isMetric; 
                                            bool status;
                                            status = bme.begin();
                                            if (!status) {
                                              #ifdef MY_DEBUG
                                                Serial.println("Could not find a valid BME280 sensor, check wiring!");
                                              #endif
                                              while (1);
                                            }
                                          }
                                          void presentation()
                                          {
                                            sendSketchInfo("Master Nano", "1.0");
                                            present(LIGHT_CHILD, S_LIGHT_LEVEL);  // 0
                                            present(BARO_CHILD, S_BARO);          // 1
                                            present(TEMP_CHILD, S_TEMP);          // 2
                                            present(HUM_CHILD, S_HUM);            // 3
                                          }
                                          void loop()
                                          {
                                            int16_t lightLevel = (1023-analogRead(LIGHT_SENSOR_ANALOG_PIN))/10.23;
                                            if (lightLevel != lastLightLevel) {
                                              #ifdef MY_DEBUG
                                                Serial.print(F("Sending lightMsg: "));
                                                Serial.println(String(lightLevel));
                                              #endif
                                              send(lightMsg.set(lightLevel));
                                              lastLightLevel = lightLevel;
                                            }
                                            float p_Mb = bme.readPressure() / 100.0F;
                                            float p_Hg = p_Mb / 33.86;
                                            #ifdef MY_DEBUG
                                              Serial.print(F("Sending pressureMsg: "));
                                              Serial.println(String(p_Hg));
                                            #endif
                                            send(pressureMsg.set(p_Hg, decimals));
                                            float t_C = bme.readTemperature();
                                            float t_F = (t_C * (9/5)) + 32;
                                            #ifdef MY_DEBUG
                                              Serial.print(F("Sending tempMsg: "));
                                              Serial.println(String(t_F));
                                            #endif
                                            send(tempMsg.set(t_F, decimals));
                                            float h_Pct = bme.readHumidity();
                                            #ifdef MY_DEBUG
                                              Serial.print(F("Sending humMsg: "));
                                              Serial.println(String(h_Pct));
                                            #endif
                                            send(humMsg.set(h_Pct, decimals));  
                                            #ifdef MY_DEBUG
                                              Serial.print(F("Sleeping for: "));
                                              Serial.println(String(SLEEP_TIME));
                                            #endif
                                            sleep(SLEEP_TIME);
                                          }
                                          

                                          It works with the clone... I am using a regulator board for the nRF24-the one it plugs into & breaks out the 8 pins...

                                          gohanG Offline
                                          gohanG Offline
                                          gohan
                                          Mod
                                          wrote on last edited by
                                          #50

                                          @Bogus-Exception may I ask why are you using spi for bme280 sensor instead of i2c?

                                          Bogus ExceptionB 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          16

                                          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