Rf transmitter 433 Mhz on xiao esp32c3?

It’s 5V but there is a 5V OUTPUT in the XIAO

XIAO’s IO is 3.3V specification, so if the module’s IO is 5V specification, it cannot be directly connected. Is the module’s IO 3.3V or 5V?

the module have a Working voltage of DC5V

The definition of a pin is as follows.

static const uint8_t TX = 21;
static const uint8_t RX = 20;

static const uint8_t SDA = 6;
static const uint8_t SCL = 7;

static const uint8_t SS = 20;
static const uint8_t MOSI = 10;
static const uint8_t MISO = 9;
static const uint8_t SCK = 8;

static const uint8_t A0 = 2;
static const uint8_t A1 = 3;
static const uint8_t A2 = 4;
static const uint8_t A3 = 5;

static const uint8_t D0 = 2;
static const uint8_t D1 = 3;
static const uint8_t D2 = 4;
static const uint8_t D3 = 5;
static const uint8_t D4 = 6;
static const uint8_t D5 = 7;
static const uint8_t D6 = 21;
static const uint8_t D7 = 20;
static const uint8_t D8 = 8;
static const uint8_t D9 = 9;
static const uint8_t D10 = 10;

Do you have the specifications or schematic of the module?

If the module includes a level shifter, it can be connected to XIAO, if not, it cannot be connected. 5VIO spec Arduino can be connected.

The module is indeed specified for Arduino. but If I want to define pin D4 as the input for the sensor, should I use RH_ASK driver(2000, 4, 5)? I admit I don’t quite understand how this function works.
I have the impression that the problem comes from there.

The following description is found in RH_ASK.h.

/// Initialise RH_ASK for ATTiny85 like this:
/// \code
/// // #include <SPI.h> // comment this out, not needed
/// RH_ASK driver(2000, 4, 3); // 200bps, TX on D3 (pin 2), RX on D4 (pin 3)
/// \endcode
/// then:
/// Connect D3 (pin 2) as the output to the transmitter
/// Connect D4 (pin 3) as the input from the receiver.

RH_ASK rf_driver(2000, D4, D3);  // D4:connected receiver, D3:connected transmitter

A big thank you for your help and for taking the time to assist me. I’ll go test everything out, and I’ll keep you posted.

I have this grove module but have not taken it out the bag yet

Alright, I’ve tested everything, and now I’m not sure what to do anymore. It still doesn’t work. The code compiles half the time, and when it does compile, nothing happens. Here’s an excerpt from my code.

transmitter (XIAO esp32c3) :
#include <RH_ASK.h>

#include <SPI.h> // Not actually used but needed to compile

RH_ASK driver(2000, 4, 3);

void setup()

{

Serial.begin(9600);    // Debugging only

if (!driver.init())

     Serial.println("init failed");

}

void loop()

{

Serial.println(“boule”);

const char *msg = "Hello World!";

driver.send((uint8_t *)msg, strlen(msg));

driver.waitPacketSent();

delay(1000);

}

Receiver (Arduino Uno):

#include <RH_ASK.h>

#include <SPI.h> // Not actualy used but needed to compile

RH_ASK driver(2000, 4, 3);

void setup()

{

Serial.begin(9600);  // Debugging only

if (!driver.init())

     Serial.println("init failed");

}

void loop()

{

uint8_t buf[12];

uint8_t buflen = sizeof(buf);

Serial.println("boule");

if (driver.recv(buf, &buflen)) // Non-blocking

{

  int i;

  // Message with a good checksum received, dump it.

  Serial.print("Message: ");

  Serial.println((char*)buf);        

}

}

transmitter (XIAO esp32c3) :
#include <RH_ASK.h>

#include <SPI.h> // Not actually used but needed to compile

RH_ASK driver(2000, 4, 3);

Is the receiver connected to the D2 pin of the XIAO?
In XIAO, “4” means pin D2.

no this is the transmitter who is connect to xiao, is connect to D3, is it bad ?

In any case, I’ve tried nearly all the wire combinations, whether it’s on the XIAO or the Arduino

    /// Constructor.
    /// At present only one instance of RH_ASK per sketch is supported.
    /// \param[in] speed The desired bit rate in bits per second
    /// \param[in] rxPin The pin that is used to get data from the receiver
    /// \param[in] txPin The pin that is used to send data to the transmitter
    /// \param[in] pttPin The pin that is connected to the transmitter controller. It will be set HIGH to enable the transmitter (unless pttInverted is true).
    /// \param[in] pttInverted true if you desire the pttin to be inverted so that LOW wil enable the transmitter.
    RH_ASK(uint16_t speed = 2000, uint8_t rxPin = 11, uint8_t txPin = 12, uint8_t pttPin = 10, bool pttInverted = false);

It appears that RH_ASK requires 5 arguments.

static const uint8_t D0 = 2;
static const uint8_t D1 = 3;
static const uint8_t D2 = 4;
static const uint8_t D3 = 5;
static const uint8_t D4 = 6;
static const uint8_t D5 = 7;
static const uint8_t D6 = 21;
static const uint8_t D7 = 20;
static const uint8_t D8 = 8;
static const uint8_t D9 = 9;
static const uint8_t D10 = 10;

When connecting to XIAO, “the pin number” and “pin name” must be carefully checked.

ho, what is the utility of pttPin, I really need to put it?

/// \param[in] pttPin The pin that is connected to the transmitter controller. It will be set HIGH to enable the transmitter

Do you need to set the pin mode? For example.

pinMode(D3, OUTPUT);

Since I don’t have the hardware, I can’t check your connection and sketch.

Well, I don’t know by what miracle, but I changed the pin numbers in the code, I relocated the transmitter, and MIRACLE it works! So, a big thank you because you’ve helped me so much. Without you, it would have taken 20 times longer. As we say where I’m from, tu gère.

1 Like

Glad I could be of help.

Adding on to this as I am running into the same issue.
I am using the XIAO ESP32C3 with
RadioHead v1.122.1
esp32 v2.0.14
In the Arduino IDE v2.3.2

I have the following test code, just trying to get the RFM95 transceiver setup to compile.

#include <RH_RF95.h>

#include <RHReliableDatagram.h>

//RH_RF95 rf95(1, 2);

//RHReliableDatagram manager(rf95, 1);

void setup() {

// put your setup code here, to run once:

Serial.begin(115200);

delay(1000);

}

void loop() {

// put your main code here, to run repeatedly:

delay(1000);

}

In file included from c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RHGenericDriver.h:9,
from c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RHNRFSPIDriver.h:9,
from c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RH_CC110.h:17,
from c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:8:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp: In member function ‘void RH_CC110::clearRxBuf()’:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: error: ‘XTOS_DISABLE_ALL_INTERRUPTS’ was not declared in this scope
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:293:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: note: suggested alternative: ‘taskDISABLE_INTERRUPTS’
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:293:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: error: ‘XTOS_RESTORE_INTLEVEL’ was not declared in this scope
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:296:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: note: suggested alternative: ‘SOC_SYSTIMER_INT_LEVEL’
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:296:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp: In member function ‘virtual bool RH_CC110::recv(uint8_t*, uint8_t*)’:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: error: ‘XTOS_DISABLE_ALL_INTERRUPTS’ was not declared in this scope
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:306:2: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: note: suggested alternative: ‘taskDISABLE_INTERRUPTS’
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:306:2: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: error: ‘XTOS_RESTORE_INTLEVEL’ was not declared in this scope
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:311:2: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: note: suggested alternative: ‘SOC_SYSTIMER_INT_LEVEL’
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:311:2: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
In file included from c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RHGenericDriver.h:9,
from c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RHNRFSPIDriver.h:9,
from c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:6:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp: In member function ‘uint8_t RHNRFSPIDriver::spiCommand(uint8_t)’:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: error: ‘XTOS_DISABLE_ALL_INTERRUPTS’ was not declared in this scope
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:34:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: note: suggested alternative: ‘taskDISABLE_INTERRUPTS’
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:34:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: error: ‘XTOS_RESTORE_INTLEVEL’ was not declared in this scope
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:44:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: note: suggested alternative: ‘SOC_SYSTIMER_INT_LEVEL’
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:44:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp: In member function ‘uint8_t RHNRFSPIDriver::spiRead(uint8_t)’:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: error: ‘XTOS_DISABLE_ALL_INTERRUPTS’ was not declared in this scope
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:51:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: note: suggested alternative: ‘taskDISABLE_INTERRUPTS’
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:51:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: error: ‘XTOS_RESTORE_INTLEVEL’ was not declared in this scope
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:62:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: note: suggested alternative: ‘SOC_SYSTIMER_INT_LEVEL’
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:62:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp: In member function ‘uint8_t RHNRFSPIDriver::spiWrite(uint8_t, uint8_t)’:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: error: ‘XTOS_DISABLE_ALL_INTERRUPTS’ was not declared in this scope
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:69:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: note: suggested alternative: ‘taskDISABLE_INTERRUPTS’
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:69:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: error: ‘XTOS_RESTORE_INTLEVEL’ was not declared in this scope
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:86:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: note: suggested alternative: ‘SOC_SYSTIMER_INT_LEVEL’
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:86:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp: In member function ‘uint8_t RHNRFSPIDriver::spiBurstRead(uint8_t, uint8_t*, uint8_t)’:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: error: ‘XTOS_DISABLE_ALL_INTERRUPTS’ was not declared in this scope
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:93:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: note: suggested alternative: ‘taskDISABLE_INTERRUPTS’
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:93:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: error: ‘XTOS_RESTORE_INTLEVEL’ was not declared in this scope
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:105:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: note: suggested alternative: ‘SOC_SYSTIMER_INT_LEVEL’
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:105:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp: In member function ‘uint8_t RHNRFSPIDriver::spiBurstWrite(uint8_t, const uint8_t*, uint8_t)’:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: error: ‘XTOS_DISABLE_ALL_INTERRUPTS’ was not declared in this scope
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:112:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: note: suggested alternative: ‘taskDISABLE_INTERRUPTS’
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:112:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: error: ‘XTOS_RESTORE_INTLEVEL’ was not declared in this scope
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:124:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: note: suggested alternative: ‘SOC_SYSTIMER_INT_LEVEL’
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:124:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
In file included from c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RHGenericDriver.h:9,
from c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RHNRFSPIDriver.h:9,
from c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RH_MRF89.h:15,
from c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp:6:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp: In member function ‘uint8_t RH_MRF89::spiWriteData(const uint8_t*, uint8_t)’:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: error: ‘XTOS_DISABLE_ALL_INTERRUPTS’ was not declared in this scope
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp:293:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: note: suggested alternative: ‘taskDISABLE_INTERRUPTS’
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp:293:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: error: ‘XTOS_RESTORE_INTLEVEL’ was not declared in this scope
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp:300:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: note: suggested alternative: ‘SOC_SYSTIMER_INT_LEVEL’
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp:300:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp: In member function ‘virtual bool RH_MRF89::recv(uint8_t*, uint8_t*)’:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: error: ‘XTOS_DISABLE_ALL_INTERRUPTS’ was not declared in this scope
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp:381:2: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: note: suggested alternative: ‘taskDISABLE_INTERRUPTS’
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp:381:2: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: error: ‘XTOS_RESTORE_INTLEVEL’ was not declared in this scope
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp:386:2: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: note: suggested alternative: ‘SOC_SYSTIMER_INT_LEVEL’
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp:386:2: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp: In member function ‘void RH_MRF89::clearRxBuf()’:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: error: ‘XTOS_DISABLE_ALL_INTERRUPTS’ was not declared in this scope
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp:443:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: note: suggested alternative: ‘taskDISABLE_INTERRUPTS’
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp:443:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: error: ‘XTOS_RESTORE_INTLEVEL’ was not declared in this scope
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp:446:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: note: suggested alternative: ‘SOC_SYSTIMER_INT_LEVEL’
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RH_MRF89.cpp:446:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
In file included from c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RHGenericDriver.h:9,
from c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RHSPIDriver.h:9,
from c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:6:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp: In member function ‘uint8_t RHSPIDriver::spiRead(uint8_t)’:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: error: ‘XTOS_DISABLE_ALL_INTERRUPTS’ was not declared in this scope
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:47:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: note: suggested alternative: ‘taskDISABLE_INTERRUPTS’
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:47:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: error: ‘XTOS_RESTORE_INTLEVEL’ was not declared in this scope
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:54:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: note: suggested alternative: ‘SOC_SYSTIMER_INT_LEVEL’
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:54:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp: In member function ‘uint8_t RHSPIDriver::spiWrite(uint8_t, uint8_t)’:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: error: ‘XTOS_DISABLE_ALL_INTERRUPTS’ was not declared in this scope
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:61:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: note: suggested alternative: ‘taskDISABLE_INTERRUPTS’
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:61:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: error: ‘XTOS_RESTORE_INTLEVEL’ was not declared in this scope
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:71:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: note: suggested alternative: ‘SOC_SYSTIMER_INT_LEVEL’
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:71:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp: In member function ‘uint8_t RHSPIDriver::spiBurstRead(uint8_t, uint8_t*, uint8_t)’:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: error: ‘XTOS_DISABLE_ALL_INTERRUPTS’ was not declared in this scope
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:78:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: note: suggested alternative: ‘taskDISABLE_INTERRUPTS’
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:78:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: error: ‘XTOS_RESTORE_INTLEVEL’ was not declared in this scope
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:86:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: note: suggested alternative: ‘SOC_SYSTIMER_INT_LEVEL’
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:86:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp: In member function ‘uint8_t RHSPIDriver::spiBurstWrite(uint8_t, const uint8_t*, uint8_t)’:
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: error: ‘XTOS_DISABLE_ALL_INTERRUPTS’ was not declared in this scope
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:93:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1753:65: note: suggested alternative: ‘taskDISABLE_INTERRUPTS’
#define ATOMIC_BLOCK_START uint32_t volatile register ilevel = XTOS_DISABLE_ALL_INTERRUPTS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:93:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: error: ‘XTOS_RESTORE_INTLEVEL’ was not declared in this scope
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:101:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead/RadioHead.h:1754:27: note: suggested alternative: ‘SOC_SYSTIMER_INT_LEVEL’
#define ATOMIC_BLOCK_END XTOS_RESTORE_INTLEVEL(ilevel);
^~~~~~~~~~~~~~~~~~~~~
c:\Users\Joseph\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:101:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~

exit status 1

Compilation error: exit status 1

Any help is appreciated, I saw a related post here but not sure if the issue has been fixed

Edit) Apparently I had to switch back RadioHead from 1.122.1 back to 1.112

Hi Joseph_Petersen,

I can compile it in my environment.
RadioHead : 1.118.0
BoardServicePackage : esp32 by Espressif Systems 2.0.14
Board Select : XIAO_ESP32C3

1 Like