I am using normal NRF24L01 in my project. it is used as one way transmission. now i need to increase the range and thinking to use NRF 2.4Ghz NRF24L01+PA+LNA SMA Antenna. My question is that do i need to use this at both end or it is enough to replace only one used as transmitter?
You have not told us what range you want to achieve or the environment in which the nRF24s will be working - outside in a large field, or inside a building, for example, and what is the building constructed from?
I have not tried the high power units. I believe you will get some improvement with a single high-power unit.
For long ranges (1km or so) the lower frequency HC-12 units are reported to be better in other Forum Threads.
...R
i have to use it from 2nd floor terrace to ground floor in room around 25mtr. transmitter is at terrace. due to wlls it is not working properly. currently i am using this device
Thinking to buy this:
Thinking to buy this.. http://www.ebay.in/itm/NRF-2-4Ghz-NRF24L01-PA-LNA-SMA-Antenna-Wireless-Transceiver-Module-for-Arduino-/291939657896?hash=item43f8f5a8a8:g:XlIAAOSwnHZYchxW
PA = Power Amplifier (boosts TX)
LNA = Low Noise Amplifier (boosts RX)
You get a better range when using lower bitrates.
High power units can overload nearby units.
There are a lot of possible combinations of units and operational modes.
Hard to say what works best, you will probably have to try some of them.
A lot of this can be in the antenna. This is claimed good for 2km
``
Whandall:
PA = Power Amplifier (boosts TX)
LNA = Low Noise Amplifier (boosts RX)You get a better range when using lower bitrates.
High power units can overload nearby units.
There are a lot of possible combinations of units and operational modes.
Hard to say what works best, you will probably have to try some of them.
How can i change bitrates or power. I am using this simple code:
// SimpleTx - the master or the transmitter
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 9
#define CSN_PIN 10
const byte slaveAddress[5] = {'R','x','A','A','A'};
RF24 radio(CE_PIN, CSN_PIN); // Create a Radio
char dataToSend[10] = "Message 0";
char txNum = '0';
unsigned long currentMillis;
unsigned long prevMillis;
unsigned long txIntervalMillis = 1000; // send once per second
void setup() {
Serial.begin(9600);
Serial.println("SimpleTx Starting");
radio.begin();
radio.setDataRate( RF24_250KBPS );
radio.setRetries(3,5); // delay, count
radio.openWritingPipe(slaveAddress);
}
//====================
void loop() {
currentMillis = millis();
if (currentMillis - prevMillis >= txIntervalMillis) {
send();
prevMillis = millis();
}
}
//====================
void send() {
bool rslt;
rslt = radio.write( &dataToSend, sizeof(dataToSend) );
// Always use sizeof() as it gives the size as the number of bytes.
// For example if dataToSend was an int sizeof() would correctly return 2
Serial.print("Data Sent ");
Serial.print(dataToSend);
if (rslt) {
Serial.println(" Acknowledge received");
updateMessage();
}
else {
Serial.println(" Tx failed");
}
}
//================
void updateMessage() {
// so you can see that new data is being sent
txNum += 1;
if (txNum > '9') {
txNum = '0';
}
dataToSend[8] = txNum;
}
void setPALevel (uint8_t level);
uint8_t getPALevel (void);
bool setDataRate (rf24_datarate_e speed)
rf24_datarate_e getDataRate (void)
2.4Ghz is the wrong frequency to use for penetrating walls. Try using 434Mhz units with an output of 20dBm or more. e.g. Hope RFM96W or others. (see Anarduino and HopeRF Products or google products for other sellers).
Whandall:
void setPALevel (uint8_t level);
uint8_t getPALevel (void);
bool setDataRate (rf24_datarate_e speed)
rf24_datarate_e getDataRate (void)
http://tmrh20.github.io/RF24/classRF24.html
do i need to edit it or is it set as max? what shoud i edit in this for max result?
You should read the linked documentation.
i tried this, but did not work.
radio.setDataRate( RF24_250KBPS );
radio.setPALevel(RF24_PA_HIGH);
How long the range you need?
If it requires up to some kilometers. Why don't you try with LoRa, a long range low power wireless protocol.
vijaysurat:
i tried this, but did not work.radio.setDataRate( RF24_250KBPS );
radio.setPALevel(RF24_PA_HIGH);
Those calls work, but I don't know what the defaults settings are.
awt98523:
How long the range you need?If it requires up to some kilometers. Why don't you try with LoRa, a long range low power wireless protocol.
I don't need too much range, but i have to communicate from 2nd floor terrace to ground floor in room, it works good in open space. but here i am sending data from over head water tank to ground floor room. and it not working properly, it receive data some time and some time not.
It looks like pic in attachment:
I'm using the same module and library than you, and you don't need to change power pa settings as is already set to max.
using a digital power supply the consumption was:
0,009A @3v by default
radio.setPALevel(RF24_PA_MAX); 0,009A @3v
radio.setPALevel(RF24_PA_HIGH); 0,007A @3v
radio.setPALevel(RF24_PA_LOW); 0,006A @3v
radio.setPALevel(RF24_PA_MIN); 0,005A @3v
those values were transmitting a simple "high" of a PIR sensor.
I read that nrf24l01 are "power hungry" at wikispaces, but I don't see hunger or much difference between settings.
Range indoors is limited to one wall and 15 meters distance. Poor.
I'm considering to mod the antenna using rigid wire as showed in some tutorials,
or to give a try to another library.
You can not measure the current needed with a multimeter, you should use a scope.
Have a look at NRF24L01+PA+LNA power consumption | MySensors Forum,
there the measurement for tx is 200mA.
I am using the following simple code (sender, receiver codes are attached). On receiving side the output on Serial monitor is like:
Not avail
avail
0
Not avail
avail
0
Note: Transmission is working fine. and a Voltage regulator along with a 4.7 uF cap have been used.
Receiver_1.ino (750 Bytes)
Sender_1.ino (741 Bytes)
@ipsitaK, Please do not hijack another person's Thread with your question.
I have replied to your own Thread
...R