Rf transmitter 433 Mhz on xiao esp32c3?

Hello !
I have a Xiao ESP32C3 board, and I would like to know if it is possible to connect a 433 MHz RF transmission module to it. I have tried several codes, but none of them work, as well as libraries like RadioHead and VirtualWire. None of them work.
I am attaching the code used along with the error message obtained :

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

RH_ASK driver;

void setup()
{
Serial.begin(9600); // Debugging only
if (!driver.init())
Serial.println(“init failed”);
}

void loop()
{
const char *msg = “Hello World!”;
driver.send((uint8_t *)msg, strlen(msg));
driver.waitPacketSent();
delay(1000);
}

error :

In file included from c:\Users\Pablo\Documents\Arduino\libraries\RadioHead/RHGenericDriver.h:9,
from c:\Users\Pablo\Documents\Arduino\libraries\RadioHead/RHNRFSPIDriver.h:9,
from c:\Users\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:6:
c:\Users\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp: In member function ‘uint8_t RHNRFSPIDriver::spiCommand(uint8_t)’:
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:34:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:34:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:44:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:44:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp: In member function ‘uint8_t RHNRFSPIDriver::spiRead(uint8_t)’:
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:51:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:51:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:62:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:62:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp: In member function ‘uint8_t RHNRFSPIDriver::spiWrite(uint8_t, uint8_t)’:
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:69:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:69:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:86:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:86:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp: In member function ‘uint8_t RHNRFSPIDriver::spiBurstRead(uint8_t, uint8_t*, uint8_t)’:
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:93:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:93:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:105:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:105:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp: In member function ‘uint8_t RHNRFSPIDriver::spiBurstWrite(uint8_t, const uint8_t*, uint8_t)’:
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:112:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:112:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHNRFSPIDriver.cpp:124:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead/RHGenericDriver.h:9,
from c:\Users\Pablo\Documents\Arduino\libraries\RadioHead/RHNRFSPIDriver.h:9,
from c:\Users\Pablo\Documents\Arduino\libraries\RadioHead/RH_CC110.h:17,
from c:\Users\Pablo\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:8:
c:\Users\Pablo\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp: In member function ‘void RH_CC110::clearRxBuf()’:
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:293:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:293:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:296:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:296:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp: In member function ‘virtual bool RH_CC110::recv(uint8_t*, uint8_t*)’:
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:306:2: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:306:2: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RH_CC110.cpp:311:2: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead/RHGenericDriver.h:9,
from c:\Users\Pablo\Documents\Arduino\libraries\RadioHead/RHSPIDriver.h:9,
from c:\Users\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:6:
c:\Users\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp: In member function ‘uint8_t RHSPIDriver::spiRead(uint8_t)’:
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:47:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:47:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:54:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:54:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp: In member function ‘uint8_t RHSPIDriver::spiWrite(uint8_t, uint8_t)’:
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:61:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:61:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:71:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:71:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp: In member function ‘uint8_t RHSPIDriver::spiBurstRead(uint8_t, uint8_t*, uint8_t)’:
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:78:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:78:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:86:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:86:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp: In member function ‘uint8_t RHSPIDriver::spiBurstWrite(uint8_t, const uint8_t*, uint8_t)’:
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:93:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:93:5: note: in expansion of macro ‘ATOMIC_BLOCK_START’
ATOMIC_BLOCK_START;
^~~~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\Documents\Arduino\libraries\RadioHead\RHSPIDriver.cpp:101:5: note: in expansion of macro ‘ATOMIC_BLOCK_END’
ATOMIC_BLOCK_END;
^~~~~~~~~~~~~~~~
c:\Users\Pablo\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\Pablo\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

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

hello

I just tested with exactly the same version of RadioHead as you (1.112.0) and this time I just have a basic error. I downloaded version 2.0.14 of ESP32 by Espressif Systems, I’ll test it and let you know if it works.

error :

A fatal error occurred: No serial data received.
Failed uploading: uploading error: exit status 2

which 433 module are you using?

433 Mhz Transmitter 2008-8

If you can tell us your sketch and how it connects to the module, we may be able to help you a little more.

So I noticed that the code compiles when I remove the module from the board. I tried connecting the data to pins D4 and D6 of the ESP, but it still didn’t work. Then I tried other code, but even though the code compiled, I couldn’t receive the signal on my other Arduino.

The supply voltage of the module seems to be 5V, where is it supplied from?
XIAO’s IO is 3.3V specification, but is the module’s IO 3.3V or 5V?

Here’s the code that manages to compile, the only thing is that I don’t know how to define the pin of my module.

#include <RH_ASK.h> // Include RadioHead Amplitude Shift Keying Library
#include <SPI.h> // Include dependant SPI Library
RH_ASK rf_driver(2000, 21, 22); // ESP32 Create Amplitude Shift Keying Object
void setup() {
Serial.begin(115200);
delay(4000);
Serial.println(“ESP32 433MHz receiver”);
if (RH_PLATFORM == RH_PLATFORM_ESP32)
Serial.println(“RH_PLATFORM_ESP32”);
delay(5000);
Serial.println(“Receiver: rf_driver initialising”);
if (!rf_driver.init()) {
Serial.println(“init failed”);
while (1) delay(1000);
}
Serial.println(“Receiver: rf_driver initialised”);
}
void loop() {
uint8_t buf[20]={0}; // Set buffer to size of expected message
uint8_t buflen = sizeof(buf);
// Check if received packet is correct size
if (rf_driver.recv(buf, &buflen)) {
// Message received with valid checksum
Serial.print("Message Received: ");
Serial.println((char*)buf);
}
}

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.