Skip to main content
Share Your Experience: Take the 2024 Developer Survey
12 votes

Same structure taking different memory space on Uno and NodeMCU ESP8266, leading to data corruption when transferring via nRF24L01+

int, long, etc have different sizes depended on the compiler and target. Use explicit sizes to make sure you're variables have the size you want. Eg. uint8_t, int16_t or int32_t, ... (as @Mat ...
Swedgin's user avatar
  • 241
12 votes
Accepted

Same structure taking different memory space on Uno and NodeMCU ESP8266, leading to data corruption when transferring via nRF24L01+

There are three main issues you may need to deal with when passing structures between systems that use different processors. The first is that data types vary in size between architectures. You can ...
Peter Green's user avatar
9 votes

Same structure taking different memory space on Uno and NodeMCU ESP8266, leading to data corruption when transferring via nRF24L01+

In addition to the rule of always using fixed and predictable sizes across different architectures, it's also a good idea to pack your structs. This prevents the compiler from padding smaller ...
Majenko's user avatar
  • 105k
4 votes
Accepted

Reduce 5v Trinket Pro to 3.3v?

The NRF24L01+ has inputs that are 5V tolerant! So you only need to provide 3.3V on the Vcc pin of the module, which you can do by putting a voltage regulator between it, and the 5V of the Trinket. So ...
Gerben's user avatar
  • 11.3k
4 votes

Choosing wireless tech for lowest possible lag

Have you considered using real time clocks? You could synchornise them all ahead of time and then use any wireless protocol. Once a button is pressed, you'll look for the unit that reports the ...
Squats's user avatar
  • 129
4 votes

How to automatically reset the NRF24L01 module

This is a known problem with those chips (especially Chinese clones). It is caused when a chip gets stuck in TX mode waiting for an ACK that never arrives back. The chips don't have a "reset", but ...
Majenko's user avatar
  • 105k
4 votes
Accepted

Sending data struct with 2 int fields from Arduino to Raspberry via NRF24L01

Your problem is that you are communicating between an 8-bit and a 32-bit architecture. On an 8-bit architecture int is 16 bits. On a 32-bit it's 32 bits. Why the difference? Because "it is". ...
Majenko's user avatar
  • 105k
4 votes
Accepted

Understanding NRF24L01 specifications

It uses the 2.4 GHz band Does this refer to the frequency of the EM waves that the device uses to communicate? Yes. It generates (and receives) radio waves in the region of 2.5GHz. If used in open ...
Majenko's user avatar
  • 105k
4 votes
Accepted

Nrf24l01 smd pcb placement tips

You need to keep the ground plane away from the antenna. The rest of the module doesn't care (and having a ground plane under it can help with unwanted EMI). Here's a design I did recently for a ...
Majenko's user avatar
  • 105k
4 votes

RaspberryPi Pico SPI and nrf24l01

For Arduino-pico core ** MISO - pin GP16 ** MOSI - pin GP19 ** CS - pin GP17 ** SCK - pin GP18 Arduino-mbed core ** MISO - pin GP4 ** MOSI - pin GP3 ** CS - pin GP5 ** SCK - pin GP2
khoih-prog's user avatar
3 votes
Accepted

Reading a .csv file element wise

The read() method works character-wise, not element-wise. Then you have to rethink your algorithm to loop over characters: store each character in a buffer send the whole buffer (i.e. a single ...
Edgar Bonet's user avatar
  • 43.3k
3 votes

Arduino RF24 library Delay after write function causes no byte availability

In my situation the issue was with the Transmitter not continuing to transmit after a delay. I was able to resolve the issue using the powerDown (http://maniacbug.github.io/RF24/classRF24.html#...
jclabonde's user avatar
3 votes
Accepted

Having problems compiling this code for NRF24l01 on arduino uno and arduino micro

You have multiple copies of the library. Delete the folder located at: C:\Users\Owner\Documents\Arduino\libraries\RF24ArduinoCommunicator-master
Avamander's user avatar
  • 624
3 votes
Accepted

RF24 Network and Payload

According to the source code: const static unsigned int max_frame_payload_size = MAX_FRAME_SIZE-sizeof(RF24NetworkHeader); that would be 24 bytes. Maximum lenght of payload for NRF24L01+ is 32 bytes ...
Chupo_cro's user avatar
  • 510
3 votes
Accepted

Can I compile a sketch for my attiny85 without an arduino board?

Why wouldn't you be able to? The compiler runs on the computer, not on the Arduino board. You don't need a board to be connected to compile either. If you enable verbose output during compile in the ...
Tom Carpenter's user avatar
3 votes

Trouble with NRF24L01

Interesting. I have been having an issue with nRF24L01's as well so I tried your code (modified to work toggling the transmitter and printing the output). You are possibly getting the same issue as me ...
PyNZ's user avatar
  • 121
3 votes

Wireless Communication with NRF24L01+

firstly, the radio.write command is used for checking for the acknowledgement from the RX after the FIFOs are full for a single write. But radio.writefast will not wait for the acknowledgement from ...
Sumit Panse's user avatar
3 votes

how to use AckPayload correctly

I have not used the RF24 libary, but below are the register settings that should be written during void setup() to use the ACK_PAYLOAD functionality (N.B. nRF24L01+ only, does not exist on nRF24L01. ...
MichaelT's user avatar
  • 887
3 votes

nRF24L01 6TXA_1RXA network + 6TXB_1RXB network with arduino

You can use the RF24 library that you can install right away from the Arduino IDE. It provides you all you need. Just use two instances of RF24 with different CSN and CE pins assigned to get started. ...
Kwasmich's user avatar
  • 1,513
3 votes

NRF24L01+ (TMRH20 library): Receiver gets blank data

I have tested your code. There appears to be defective clones of the nRF24L01 around that exhibit an issue I show in post nRF24L01 continuously reading closed pipe You can work around this issue by ...
PyNZ's user avatar
  • 121
3 votes
Accepted

RF24 library commands, channel, and address

A. Does address take character or number as input? The address is 5 bytes. In this library it is provided as an array. In C a string is merely an array of bytes. So it is possible to represent an ...
Majenko's user avatar
  • 105k
3 votes
Accepted

Bluetooth module vs wireless module Arduino

what is the main difference between HC-05 Bluetooth module and NRF24L0 wireless module? The main difference is the protocol they use. While some attempts have been made with varying success to get ...
Majenko's user avatar
  • 105k
3 votes

NRF24 and Arduino Nano Every usage

I stucked with the same problem too when use nRF24L01+ and Arduino Nano Every to transmit data to Arduino Uno with nRF24L01+. So I have solved the problem as follows below. I hope it could help you ...
stremyanka2000's user avatar
3 votes
Accepted

How to connect nRF24L01+ with Arduino Giga R1?

Not sure if you found a solution but I had a similar problem and found a solution, which may work for you. As you know, the Giga has two SPI buses. The default are the ones on the ICSP header, the ...
nollstead's user avatar
2 votes

Not able to make my NrF24L01 work

If adding a 47uF capacitor between the 3.3V and GND is not enough to solve your problem, try to: power the NRF24 through a 3.3V voltage regulator (like a LM1117T-3.3) and power the voltage regulator (...
asonnino's user avatar
  • 121
2 votes

OTA updates for Arduino using nRF24L01+

As per @Majenko and @Kurt suggestions: Please check out me blog post, it is exactly about that! https://www.2bitornot2bit.com/blog/arduino-bootloader-with-ota-over-the-air-support-over-nrf24l01 I ...
user1748502's user avatar
2 votes

nRF24L01+ RF24 library - can send but can't receive

FWIW, I had packet loss issues using these boards, until I introduced those 3.3 V piggy back boards to supply current. I use them on both RX and TX now, but experimentation showed that the RX was ...
mjk's user avatar
  • 49
2 votes
Accepted

nrf24l01 (8pin) + adapter board (10pin) oops?

To be honest, I don't see much added value for this breakout board. First, as you mentioned, you won't be able to plug your NRF24 directly into it because the pinout is not compatible; hence, you ...
jfpoilpret's user avatar
  • 9,132
2 votes
Accepted

rf24 change order of data

The problem you run into is that you are trying to insert the binary value of 0 into an Arduino String. That may actually be possible, but the way you attempt to to do it utilizes some C-style ...
Chris Stratton's user avatar
2 votes

nRF24L01 pipe question

There's something that everyone forgets to tell you: Pipes at receiver should be shortened after the first one const uint64_t pipe01 = 0xE8E8F0F0A1LL; const uint64_t pipe02 = 0xA2LL; const ...
Faig's user avatar
  • 121

Only top scored, non community-wiki answers of a minimum length are eligible