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.