Help with the RMD X4 v3 from My Actuator using the SparkFun CANBUS Shield

The datasheet of My Actuator RMD X4 v3 is here. I am using the Arduino 1.8.18 version. The library I am using is this one. The full error report is this.

Arduino: 1.8.18 (Windows 10), Board: "Arduino Uno"

MyactuatoV2:52:9: error: cannot declare variable 'CAN' to be of abstract type 'MCP_CAN'

 MCP_CAN CAN(SPI_CS_PIN); // Set CS to pin

         ^~~

In file included from C:\Users\...\Documents\Arduino\MyactuatoV2\MyactuatoV2.ino:4:0:

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:55:7: note:   because the following virtual functions are pure within 'MCP_CAN':

 class MCP_CAN

       ^~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:58:18: note: 	virtual void MCP_CAN::enableTxInterrupt(bool)

     virtual void enableTxInterrupt(bool enable = true) = 0;                             // enable transmit interrupt

                  ^~~~~~~~~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:59:18: note: 	virtual void MCP_CAN::reserveTxBuffers(byte)

     virtual void reserveTxBuffers(byte nTxBuf = 0) = 0;

                  ^~~~~~~~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:60:18: note: 	virtual byte MCP_CAN::getLastTxBuffer()

     virtual byte getLastTxBuffer() = 0;

                  ^~~~~~~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:65:18: note: 	virtual byte MCP_CAN::begin(uint32_t, byte)

     virtual byte begin(uint32_t speedset, const byte clockset) = 0;                     // init can

                  ^~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:66:18: note: 	virtual byte MCP_CAN::init_Mask(byte, byte, long unsigned int)

     virtual byte init_Mask(byte num, byte ext, unsigned long ulData) = 0;               // init Masks

                  ^~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:67:18: note: 	virtual byte MCP_CAN::init_Filt(byte, byte, long unsigned int)

     virtual byte init_Filt(byte num, byte ext, unsigned long ulData) = 0;               // init filters

                  ^~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:68:18: note: 	virtual void MCP_CAN::setSleepWakeup(byte)

     virtual void setSleepWakeup(byte enable) = 0;                                       // Enable or disable the wake up interrupt

                  ^~~~~~~~~~~~~~

In file included from C:\Users\...\Documents\Arduino\MyactuatoV2\MyactuatoV2.ino:4:0:

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:70:18: note: 	virtual byte MCP_CAN::sleep()

     virtual byte sleep() = 0;                                                           // Put the MCP2515 in sleep mode

                  ^~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:71:18: note: 	virtual byte MCP_CAN::wake()

     virtual byte wake() = 0;                                                            // Wake MCP2515 manually from sleep

                  ^~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:72:18: note: 	virtual byte MCP_CAN::setMode(byte)

     virtual byte setMode(byte opMode) = 0;                                              // Set operational mode

                  ^~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:73:18: note: 	virtual byte MCP_CAN::getMode()

     virtual byte getMode() = 0;                                                         // Get operational mode

                  ^~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:74:18: note: 	virtual byte MCP_CAN::checkError(uint8_t*)

     virtual byte checkError(uint8_t* err_ptr = NULL) = 0;                               // if something error

                  ^~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:77:18: note: 	virtual byte MCP_CAN::checkReceive()

     virtual byte checkReceive(void) = 0;                                                // if something received

                  ^~~~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:78:18: note: 	virtual byte MCP_CAN::readMsgBufID(byte, volatile long unsigned int*, volatile byte*, volatile byte*, volatile byte*, volatile byte*)

     virtual byte readMsgBufID(byte status,

                  ^~~~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:82:18: note: 	virtual byte MCP_CAN::readMsgBufID(long unsigned int*, byte*, byte*)

     virtual byte readMsgBufID(unsigned long *ID, byte *len, byte *buf) = 0;

                  ^~~~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:83:18: note: 	virtual byte MCP_CAN::readMsgBuf(byte*, byte*)

     virtual byte readMsgBuf(byte *len, byte *buf) = 0;

                  ^~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:91:18: note: 	virtual byte MCP_CAN::trySendMsgBuf(long unsigned int, byte, byte, byte, const byte*, byte)

     virtual byte trySendMsgBuf(unsigned long id, byte ext, byte rtr,

                  ^~~~~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:93:18: note: 	virtual byte MCP_CAN::sendMsgBuf(byte, long unsigned int, byte, byte, byte, const volatile byte*)

     virtual byte sendMsgBuf(byte status, unsigned long id, byte ext, byte rtr,

                  ^~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:95:18: note: 	virtual byte MCP_CAN::sendMsgBuf(long unsigned int, byte, byte, byte, const byte*, bool)

     virtual byte sendMsgBuf(unsigned long id, byte ext, byte rtrBit,

                  ^~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:102:18: note: 	virtual void MCP_CAN::clearBufferTransmitIfFlags(byte)

     virtual void clearBufferTransmitIfFlags(byte flags = 0) = 0;                        // Clear transmit flags according to status

                  ^~~~~~~~~~~~~~~~~~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:103:18: note: 	virtual byte MCP_CAN::readRxTxStatus()

     virtual byte readRxTxStatus(void) = 0;                                              // read has something send or received

                  ^~~~~~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:104:18: note: 	virtual byte MCP_CAN::checkClearRxStatus(byte*)

     virtual byte checkClearRxStatus(byte *status) = 0;                                  // read and clear and return first found rx status bit

                  ^~~~~~~~~~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:105:18: note: 	virtual byte MCP_CAN::checkClearTxStatus(byte*, byte)

     virtual byte checkClearTxStatus(byte *status, byte iTxBuf = 0xff) = 0;              // read and clear and return first found or buffer specified tx status bit

                  ^~~~~~~~~~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:106:18: note: 	virtual bool MCP_CAN::mcpPinMode(byte, byte)

     virtual bool mcpPinMode(const byte pin, const byte mode) = 0;                       // switch supported pins between HiZ, interrupt, output or input

                  ^~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:107:18: note: 	virtual bool MCP_CAN::mcpDigitalWrite(byte, byte)

     virtual bool mcpDigitalWrite(const byte pin, const byte mode) = 0;                  // write HIGH or LOW to RX0BF/RX1BF

                  ^~~~~~~~~~~~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:108:18: note: 	virtual byte MCP_CAN::mcpDigitalRead(byte)

     virtual byte mcpDigitalRead(const byte pin) = 0;                                    // read HIGH or LOW from supported pins

                  ^~~~~~~~~~~~~~

C:\Users\...\Documents\Arduino\MyactuatoV2\MyactuatoV2.ino: In function 'void setup()':

MyactuatoV2:58:44: error: no matching function for call to 'MCP_CAN::begin(MCP_BITTIME_SETUP)'

     while (CAN_OK != CAN.begin(CAN_1000KBPS))  //init can bus : baudrate = 500k

                                            ^

In file included from C:\Users\...\Documents\Arduino\MyactuatoV2\MyactuatoV2.ino:4:0:

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:65:18: note: candidate: virtual byte MCP_CAN::begin(uint32_t, byte)

     virtual byte begin(uint32_t speedset, const byte clockset) = 0;                     // init can

                  ^~~~~

C:\Users\...\Documents\Arduino\libraries\Seeed_Arduino_CAN-master\src/mcp_can.h:65:18: note:   candidate expects 2 arguments, 1 provided

exit status 1

cannot declare variable 'CAN' to be of abstract type 'MCP_CAN'

I don't know which version of Arduino is used in the video.