Rf transmitter 433 Mhz on xiao esp32c3?

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