Can I use an esp32 as an nrfl01?

I recently bought an esp32 display thingy and a couple nrf24l01s. I am planning the use the esp and nrf as a remote for a project I am making. My question is if it would be possible to not have to use a separate module connected to the esp and have it act like it has a built in nrfl01. Since the esp and nrf both work in the 2.4ghz frequency range I was thinking this might be possible.

If you have any ideas let me know, thanks.

Ehh... What would that be?

While waiting for more precise replies, read the datasheets, application notes and eventual examples. It looks like thinkable to me but I have no close knowledge.

You can attach a NRF24L01+ to an ESP32 without problems.
You can not emulate a NRF24L01+ with only on chip resources.

Its an esp32 TTGO T display I think.
I will have a look at the datasheets

Is it an ESP with a display shield or only a general display?

What is your software skill level? You would have to write an entire NRFL01 protocol stack and low level drivers for the ESP transceiver hardware.

I definitely don’t have the skills to do that. And if it takes that much work I think I will stick to the normal way of using them.

If it helps, here is a tested example of a RF24 module connected to an ESP32 DevKit board. It is a slave (receiver) only, but could be the basis for a master (transmitter) as well.

// SimpleRx - the slave or the receiver

//name >> rf24 pin >> ESP32 pin
//MOSI     6            23
//MISO     7            19
//SCK      5            18
//Vcc      2            3.3V 
//                      10uF electrolytic cap between Vcc and GND on the module
//GND      1            GND  

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define CE_PIN   22  // rf24 pin 3
#define CSN_PIN 21   // rf24 pin 4

const byte thisSlaveAddress[5] = {'R','x','A','A','A'};

RF24 radio(CE_PIN, CSN_PIN);

char dataReceived[14]; // this must match dataToSend in the TX
bool newData = false;

//===========

void setup() {

    Serial.begin(115200);

    Serial.println("SimpleRx Starting");
    radio.begin();
    radio.setDataRate( RF24_250KBPS );
    radio.openReadingPipe(1, thisSlaveAddress);
    radio.startListening();
}

//=============

void loop() {
    getData();
    showData();
}

//==============

void getData() {
    if ( radio.available() ) {
        radio.read( &dataReceived, sizeof(dataReceived) );
        newData = true;
    }
}

void showData() {
    if (newData == true) {
        Serial.print("Data received ");
        Serial.println(dataReceived);
        newData = false;
    }
}

Uses code from Robin2's simple rf24 tutorial.

You might consider an ESP to ESP wifi connection instead.

Like with ESP-NOW?

Right on.

I did experiment with ESP-NOW using Robin2's ESP-NOW tutorial. The tutorial provides some example code.

These ESP-NOW tutorials for the ESP32 are clear and well done.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.