Open ntdkhoa0410 opened 1 day ago
The ESP32's RX address and the Arduino's TX address do not match.
The Arduino's TX address is 0xE7E7E7E7E7, but the ESP32's RX address does not have this address.
Therefore, ESP32 cannot receive Ack packets from Arduino.
ESP32 --> Arduino Send data packet to 0x3230303030. Arduino can receive data packet. Wait ack packet from 0x3230303030.
Ardino --> ESP32 Receive data packet from 0x3230303030. Send back ack packet to 0xE7E7E7E7E7 with Enhanced ShockBurst features. ESP32 can't receive ack packet.
I see, so I either set
Am i correct?
Yes. You are correct. However, communication is not possible unless not only the channel and payload size but also all registers have the same value. It is not known whether all registers on your arduino library and my library have the same value. Only a few register values are displayed as NRF Configuration. You need to check the values of all registers in your Arduino library and my library. Unfortunately, there are no standard register values for nRF24L01. Register values are library implementation dependent.
This library ensures intercommunication. https://github.com/nopnop2002/Arduino-STM32-nRF24L01
Is there anyway to set ESP32 Rx address to 0xE7E7E7E7E7 using your library, the mirf.h?
esp_err_t ret = Nrf24_setRADDR(&dev, rx_addr);
================ SPI Configuration ================
CSN Pin = GPIO17
CE Pin = GPIO16
Clock Speed = 4000000
================ NRF Configuration ================
STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0x3230303030 0xe7e7e7e7e7
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR = 0x3230303030
RX_PW_P0-6 = 0x20 0x20 0x00 0x00 0x00 0x00
EN_AA = 0x3f
EN_RXADDR = 0x03
RF_CH = 0x5a
RF_SETUP = 0x0f
CONFIG = 0x2b
DYNPD/FEATURE = 0x00 0x00
Data Rate = 2Mbps
CRC Length = 8 bits
PA Power = PA_MAX
Retransmit = 250 us
@nopnop2002 i see, let me try to change the address first and play up a little bit. I maybe need to use Arduino-STM32-nRF24L01 . I can only work at nights as i get back home from work, so i will update you in a few days, thank you
I tried to match them, but still no results: ESP32 Tx (using esp-idf-mirf.h) Arduino Rx (using rf24.h)
Hello, as the title said, ESP32 as a transmitter using library nopnop2002/esp-idf-mirf can not communicate with Arduino Mega using nRF24/RF24 I have tried to print all the details to the monitor and everything seems to match, but on the receiver side, no message is receive. Can you guys have a look at my code, suppose the hardware set up is correct as if both use RF24 libs, they work fine.
Arduino receiver code (RF24 lib)
ESP32 transmitter code (ESP-IDF-MIRF lib)
main.c
nrf24l01_init function:
AdvancedSettings function:
Sender function:
The monitor of Arduino:
The monitor of ESP32: