Where to get legit nRF24L01+ modules?
-
@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.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.
-
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.
@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. -
I have received two of the red modules. This is an X-Ray image of the chip (montage)

-
@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)

Meaning?
-
@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)

Meaning?
@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.
-
@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-copyMaybe you can match them.
-
@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!
-
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.. :)
@tbowmo Thanks for the tip. I have some in front of me, still in box. Will post results.
-
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.

-
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.

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)






-
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)






-
@Bogus-Exception let us know how they perform
@gohan I'll do my best to measure meaningful metrics between these & clones. Also, I have 4 eBytes coming (2x blue, 2x red)...
-
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...
-
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...
@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.
-
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...
-
@Bogus-Exception may I ask why are you using spi for bme280 sensor instead of i2c?
@gohan I already have the 3 pins for SPI in use for the nRF, so adding the BME was just one more pin. Simply conserving pins.
-
@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.
@Yveaux Fair enough. I won't rel on that, but did want to mention the observation.
On a relatively side note, I got 4 SMD nRF24 cards from eByte, but can't locate any boards to mount them on! The holes are 1.27mm pitch, so I just ordered some 1.27mm headers.
Has anyone grabbed a board to surface mount solder them at this pitch? -
@Yveaux Fair enough. I won't rel on that, but did want to mention the observation.
On a relatively side note, I got 4 SMD nRF24 cards from eByte, but can't locate any boards to mount them on! The holes are 1.27mm pitch, so I just ordered some 1.27mm headers.
Has anyone grabbed a board to surface mount solder them at this pitch?@Bogus-Exception said in Where to get legit nRF24L01+ modules?:
@Yveaux Fair enough. I won't rel on that, but did want to mention the observation.
On a relatively side note, I got 4 SMD nRF24 cards from eByte, but can't locate any boards to mount them on! The holes are 1.27mm pitch, so I just ordered some 1.27mm headers.
Has anyone grabbed a board to surface mount solder them at this pitch?What's the pitch on most other SMD nRF24L01+ modules? Is it also 1.27mm, or something else? I hadn't paid attention.