NMRADCC Library on R4 Wifi

I have recently purchased R4 Uno Wifi and trying to reapply a sketch which is running on an R3 Uno using the NMRADCC library.

The #include <NmraDcc.h> command generates the below error, even if that is the only command in an otherwise completely new sketch.

Is this library incompatible with R4 Uno Wifi?

/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp: In function 'void ExternalInterruptHandler()':
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:520:95: error: no matching function for call to 'attachInterrupt(uint8_t&, void (&)(), byte&)'
                     attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
                                                                                               ^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:8:0,
                 from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29,
                 from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Common.h:113:6: note: candidate: void attachInterrupt(pin_size_t, voidFuncPtr, PinStatus) <near match>
 void attachInterrupt(pin_size_t interruptNumber, voidFuncPtr callback, PinStatus mode);
      ^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Common.h:113:6: note:   conversion of argument 3 would be ill-formed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:520:95: error: invalid conversion from 'byte {aka unsigned char}' to 'PinStatus' [-fpermissive]
                     attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
                                                                                               ^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29:0,
                 from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:38:27: note: candidate: template<class T> void arduino::attachInterrupt(pin_size_t, arduino::voidTemplateFuncPtrParam<T*>, PinStatus, T*)
 template<typename T> void attachInterrupt(pin_size_t interruptNum, voidTemplateFuncPtrParam<T*> userFunc, PinStatus mode, T* param) {
                           ^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:38:27: note:   template argument deduction/substitution failed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:520:95: note:   candidate expects 1 argument, 0 provided
                     attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
                                                                                               ^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29:0,
                 from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:21:27: note: candidate: template<class T> void arduino::attachInterrupt(pin_size_t, arduino::voidTemplateFuncPtrParam<T>, PinStatus, T&)
 template<typename T> void attachInterrupt(pin_size_t interruptNum, voidTemplateFuncPtrParam<T> userFunc, PinStatus mode, T& param) {
                           ^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:21:27: note:   template argument deduction/substitution failed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:520:95: note:   candidate expects 1 argument, 0 provided
                     attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
                                                                                               ^
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:577:87: error: no matching function for call to 'attachInterrupt(uint8_t&, void (&)(), byte&)'
             attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
                                                                                       ^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:8:0,
                 from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29,
                 from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Common.h:113:6: note: candidate: void attachInterrupt(pin_size_t, voidFuncPtr, PinStatus) <near match>
 void attachInterrupt(pin_size_t interruptNumber, voidFuncPtr callback, PinStatus mode);
      ^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Common.h:113:6: note:   conversion of argument 3 would be ill-formed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:577:87: error: invalid conversion from 'byte {aka unsigned char}' to 'PinStatus' [-fpermissive]
             attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
                                                                                       ^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29:0,
                 from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:38:27: note: candidate: template<class T> void arduino::attachInterrupt(pin_size_t, arduino::voidTemplateFuncPtrParam<T*>, PinStatus, T*)
 template<typename T> void attachInterrupt(pin_size_t interruptNum, voidTemplateFuncPtrParam<T*> userFunc, PinStatus mode, T* param) {
                           ^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:38:27: note:   template argument deduction/substitution failed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:577:87: note:   candidate expects 1 argument, 0 provided
             attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
                                                                                       ^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29:0,
                 from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:21:27: note: candidate: template<class T> void arduino::attachInterrupt(pin_size_t, arduino::voidTemplateFuncPtrParam<T>, PinStatus, T&)
 template<typename T> void attachInterrupt(pin_size_t interruptNum, voidTemplateFuncPtrParam<T> userFunc, PinStatus mode, T& param) {
                           ^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:21:27: note:   template argument deduction/substitution failed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:577:87: note:   candidate expects 1 argument, 0 provided
             attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
                                                                                       ^
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:626:87: error: no matching function for call to 'attachInterrupt(uint8_t&, void (&)(), byte&)'
             attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
                                                                                       ^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:8:0,
                 from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29,
                 from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Common.h:113:6: note: candidate: void attachInterrupt(pin_size_t, voidFuncPtr, PinStatus) <near match>
 void attachInterrupt(pin_size_t interruptNumber, voidFuncPtr callback, PinStatus mode);
      ^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Common.h:113:6: note:   conversion of argument 3 would be ill-formed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:626:87: error: invalid conversion from 'byte {aka unsigned char}' to 'PinStatus' [-fpermissive]
             attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
                                                                                       ^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29:0,
                 from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:38:27: note: candidate: template<class T> void arduino::attachInterrupt(pin_size_t, arduino::voidTemplateFuncPtrParam<T*>, PinStatus, T*)
 template<typename T> void attachInterrupt(pin_size_t interruptNum, voidTemplateFuncPtrParam<T*> userFunc, PinStatus mode, T* param) {
                           ^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:38:27: note:   template argument deduction/substitution failed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:626:87: note:   candidate expects 1 argument, 0 provided
             attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
                                                                                       ^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29:0,
                 from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
                 from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:21:27: note: candidate: template<class T> void arduino::attachInterrupt(pin_size_t, arduino::voidTemplateFuncPtrParam<T>, PinStatus, T&)
 template<typename T> void attachInterrupt(pin_size_t interruptNum, voidTemplateFuncPtrParam<T> userFunc, PinStatus mode, T& param) {
                           ^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:21:27: note:   template argument deduction/substitution failed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:626:87: note:   candidate expects 1 argument, 0 provided
             attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
                                                                                       ^
In file included from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:0:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp: In function 'uint8_t validCV(uint16_t, uint8_t)':
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:134:22: error: 'E2END' was not declared in this scope
     #define MAXCV    E2END          // the upper limit of the CV value currently defined to max memory.
                      ^
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:846:14: note: in expansion of macro 'MAXCV'
     if (CV > MAXCV)
              ^~~~~

exit status 1

Compilation error: exit status 1

Developer of the NMRADCC library has now updated it and it works all good on the Arduino R4 Wifi.

Today I ran into exactly the same issue with an Uno R4 Minima. Although the library should be updated (and I am using the latest version), I am getting these errors. Anybody any thoughts on how to make this work?

Thanks, Huib