Need help with TJA1050 and ESP32-S3

Hi, im working on project using ESP32-S3 LVGL and using touch screen to control DC charging module DC charging module This Charging module using CAN bus to set Voltage,Current,On/Off or Reading Output
(Sorry, if the manual is not english)
充电模块CAN通讯协议V108_241028_123244.pdf (1.3 MB) Then i decide to use TJA1050 TJA1050 to Communicate between My LVGL (ESP32-S3) and Charging module, When come to Arduino IDE, im using this library Arduino CAN When i include this library in my code and compile, the code get a lot of error

In file included from C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_reg.h:21,
                 from D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:7:
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp: In member function 'virtual int ESP32SJA1000Class::begin(long int)':
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:56:29: error: 'DPORT_PERIP_RST_EN_REG' was not declared in this scope
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
                             ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:67: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                   ^~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:85:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_CLEAR_PERI_REG_MASK(reg, mask) DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)&(~(mask))))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:56:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:56:29: note: suggested alternative: 'SYSTEM_PERIP_RST_EN1_REG'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
                             ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:67: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                   ^~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:85:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_CLEAR_PERI_REG_MASK(reg, mask) DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)&(~(mask))))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:56:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:56:53: error: 'DPORT_CAN_RST' was not declared in this scope
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
                                                     ^~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:88: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                                        ^~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:85:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_CLEAR_PERI_REG_MASK(reg, mask) DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)&(~(mask))))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:56:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:56:53: note: suggested alternative: 'DPORT_DATE_REG'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
                                                     ^~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:88: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                                        ^~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:85:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_CLEAR_PERI_REG_MASK(reg, mask) DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)&(~(mask))))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:56:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:57:27: error: 'DPORT_PERIP_CLK_EN_REG' was not declared in this scope
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
                           ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:67: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                   ^~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:88:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_SET_PERI_REG_MASK(reg, mask)   DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)|(mask)))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:57:3: note: in expansion of macro 'DPORT_SET_PERI_REG_MASK'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
   ^~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:57:27: note: suggested alternative: 'SYSTEM_PERIP_CLK_EN1_REG'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
                           ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:67: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                   ^~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:88:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_SET_PERI_REG_MASK(reg, mask)   DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)|(mask)))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:57:3: note: in expansion of macro 'DPORT_SET_PERI_REG_MASK'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
   ^~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:57:51: error: 'DPORT_CAN_CLK_EN' was not declared in this scope
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
                                                   ^~~~~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:88: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                                        ^~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:88:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_SET_PERI_REG_MASK(reg, mask)   DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)|(mask)))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:57:3: note: in expansion of macro 'DPORT_SET_PERI_REG_MASK'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
   ^~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:57:51: note: suggested alternative: 'DPORT_REG_CLR_BIT'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
                                                   ^~~~~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:88: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                                        ^~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:88:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_SET_PERI_REG_MASK(reg, mask)   DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)|(mask)))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:57:3: note: in expansion of macro 'DPORT_SET_PERI_REG_MASK'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
   ^~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:61:26: error: 'CAN_RX_IDX' was not declared in this scope
   gpio_matrix_in(_rxPin, CAN_RX_IDX, 0);
                          ^~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:61:26: note: suggested alternative: 'TWAI_RX_IDX'
   gpio_matrix_in(_rxPin, CAN_RX_IDX, 0);
                          ^~~~~~~~~~
                          TWAI_RX_IDX
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:66:27: error: 'CAN_TX_IDX' was not declared in this scope
   gpio_matrix_out(_txPin, CAN_TX_IDX, 0, 0);
                           ^~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:66:27: note: suggested alternative: 'TWAI_TX_IDX'
   gpio_matrix_out(_txPin, CAN_TX_IDX, 0, 0);
                           ^~~~~~~~~~
                           TWAI_TX_IDX
In file included from C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_reg.h:21,
                 from D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:7:
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp: In member function 'virtual void ESP32SJA1000Class::end()':
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:159:27: error: 'DPORT_PERIP_RST_EN_REG' was not declared in this scope
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
                           ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:67: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                   ^~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:88:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_SET_PERI_REG_MASK(reg, mask)   DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)|(mask)))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:159:3: note: in expansion of macro 'DPORT_SET_PERI_REG_MASK'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:159:27: note: suggested alternative: 'SYSTEM_PERIP_RST_EN1_REG'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
                           ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:67: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                   ^~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:88:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_SET_PERI_REG_MASK(reg, mask)   DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)|(mask)))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:159:3: note: in expansion of macro 'DPORT_SET_PERI_REG_MASK'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:159:51: error: 'DPORT_CAN_RST' was not declared in this scope
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
                                                   ^~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:88: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                                        ^~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:88:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_SET_PERI_REG_MASK(reg, mask)   DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)|(mask)))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:159:3: note: in expansion of macro 'DPORT_SET_PERI_REG_MASK'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:159:51: note: suggested alternative: 'DPORT_DATE_REG'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
                                                   ^~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:88: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                                        ^~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:88:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_SET_PERI_REG_MASK(reg, mask)   DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)|(mask)))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:159:3: note: in expansion of macro 'DPORT_SET_PERI_REG_MASK'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:160:29: error: 'DPORT_PERIP_CLK_EN_REG' was not declared in this scope
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
                             ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:67: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                   ^~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:85:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_CLEAR_PERI_REG_MASK(reg, mask) DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)&(~(mask))))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:160:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:160:29: note: suggested alternative: 'SYSTEM_PERIP_CLK_EN1_REG'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
                             ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:67: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                   ^~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:85:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_CLEAR_PERI_REG_MASK(reg, mask) DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)&(~(mask))))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:160:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:160:53: error: 'DPORT_CAN_CLK_EN' was not declared in this scope
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
                                                     ^~~~~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:88: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                                        ^~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:85:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_CLEAR_PERI_REG_MASK(reg, mask) DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)&(~(mask))))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:160:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:160:53: note: suggested alternative: 'DPORT_REG_CLR_BIT'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
                                                     ^~~~~~~~~~~~~~~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:88: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                                        ^~~
C:\Users\MSI_GF63\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:85:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_CLEAR_PERI_REG_MASK(reg, mask) DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)&(~(mask))))
                                              ^~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:160:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp: In member function 'virtual void ESP32SJA1000Class::onReceive(void (*)(int))':
D:\20kW.2\MAX\libraries\arduino-CAN-master\src\ESP32SJA1000.cpp:271:20: error: 'ETS_CAN_INTR_SOURCE' was not declared in this scope
     esp_intr_alloc(ETS_CAN_INTR_SOURCE, 0, ESP32SJA1000Class::onInterrupt, this, &_intrHandle);
                    ^~~~~~~~~~~~~~~~~~~

I Wonder how can i fix this ,excuse my poor english.
Thanks

I would not expect it to work from your description. The TJA1050 is a 5V device, the ESP is a 3V3 device. You need another transceiver rated for 3V3. I have gotten some TJA1050s to work at 3V but they were not reliable.

I feel that would be a better solution then using a level translator.

Hi, Thanks you so much for answer, when i post this forum, i just found this Error using the CAN library with ESP32S2 Dev Module below my foum, which is work, seem like this arduino-CAN library dont work with ESP32-S3, i need to use TWAI instead TWAI, which is work!,

How do I tell the difference they are both TWAI?

Following.

Having the same problem.

if you are using the ESP32 TWAI module you should use the ESP32-TWAI-CAN library

Sorry I do not know I have never used it. I work mainly with AVR and ESP8266 parts.

have a look in this forum, hope it help Error using the CAN library with ESP32S2 Dev Module
This library arduino-CAN work with MCP2515 (Its a CAN Controller) with CAN transceiver
My esp32 s3 compatible with TWAI ,have a look if you want to check Chip Series Comparison
If you work with only transceiver like mine, try look at Error using the CAN library with ESP32S2 Dev Module forum.

The ESP32-TWAI-CAN library results in the following error message when tried. The author suggested removing the "IRAM_ATTR" from the readFrame and writeFrame, which seems to work on the S3:

with ESP32-Wroom-32E:

C:\Users\Steve\AppData\Local\arduino\sketches\62B263B3885D2D540F9133E9F15F67A8\sketch\OBD2-query.ino.cpp.o: in function `TwaiCAN::readFrame(twai_message_t*, unsigned long)':
d:\Arduinofiles\libraries\ESP32-TWAI-CAN\src/ESP32-TWAI-CAN.hpp:118:(.iram1.1[_ZN7TwaiCAN9readFrameEP14twai_message_tm]+0x15): dangerous relocation: l32r: literal placed after use: .literal._ZN7TwaiCAN9readFrameEP14twai_message_tm
C:\Users\Steve\AppData\Local\arduino\sketches\62B263B3885D2D540F9133E9F15F67A8\sketch\OBD2-query.ino.cpp.o: in function `TwaiCAN::writeFrame(twai_message_t*, unsigned long)':
d:\Arduinofiles\libraries\ESP32-TWAI-CAN\src/ESP32-TWAI-CAN.hpp:129:(.iram1.3[_ZN7TwaiCAN10writeFrameEP14twai_message_tm]+0x15): dangerous relocation: l32r: literal placed after use: .literal._ZN7TwaiCAN10writeFrameEP14twai_message_tm
collect2.exe: error: ld returned 1 exit status
exit status 1

Compilation error: exit status 1

Error Message with ESP32S3:

C:\Users\Steve\AppData\Local\arduino\sketches\62B263B3885D2D540F9133E9F15F67A8\sketch\OBD2-query.ino.cpp.o: in function `TwaiCAN::readFrame(twai_message_t*, unsigned long)':
d:\Arduinofiles\libraries\ESP32-TWAI-CAN\src/ESP32-TWAI-CAN.hpp:118:(.iram1.1[_ZN7TwaiCAN9readFrameEP14twai_message_tm]+0x13): dangerous relocation: l32r: literal placed after use: .literal._ZN7TwaiCAN9readFrameEP14twai_message_tm
d:\Arduinofiles\libraries\ESP32-TWAI-CAN\src/ESP32-TWAI-CAN.hpp:118:(.iram1.1[_ZN7TwaiCAN9readFrameEP14twai_message_tm]+0x1c): dangerous relocation: l32r: literal placed after use: (.literal._ZN7TwaiCAN9readFrameEP14twai_message_tm+0x4)
C:\Users\Steve\AppData\Local\arduino\sketches\62B263B3885D2D540F9133E9F15F67A8\sketch\OBD2-query.ino.cpp.o: in function `TwaiCAN::writeFrame(twai_message_t*, unsigned long)':
d:\Arduinofiles\libraries\ESP32-TWAI-CAN\src/ESP32-TWAI-CAN.hpp:129:(.iram1.3[_ZN7TwaiCAN10writeFrameEP14twai_message_tm]+0x13): dangerous relocation: l32r: literal placed after use: .literal._ZN7TwaiCAN10writeFrameEP14twai_message_tm
d:\Arduinofiles\libraries\ESP32-TWAI-CAN\src/ESP32-TWAI-CAN.hpp:129:(.iram1.3[_ZN7TwaiCAN10writeFrameEP14twai_message_tm]+0x1c): dangerous relocation: l32r: literal placed after use: (.literal._ZN7TwaiCAN10writeFrameEP14twai_message_tm+0x4)
collect2.exe: error: ld returned 1 exit status
exit status 1

Compilation error: exit status 1

if I compile the following test program

// ESP32-TWAI-CAN library using a cjmcu-1051 CAN transceiver
//  adapted from  File>Examples>ESP32-TWAI-CAN>OBD2-querry

// ESP32-TWAI-CAN library
//     

// cjmcu-1051 CAN transceiver wiring
//     https://www.circuitstate.com/tutorials/what-is-can-bus-how-to-use-can-interface-with-esp32-and-arduino/

// ESP32 GND    cjmcu-1051 GND
// ESP32 5V     cjmcu-1051 VCC powers transceiver
// ESP32 3.3V   cjmcu-1051 VIO powers logic
// ESP32 GPIO5  cjmcu-1051 CTX
// ESP32 GPIO4  cjmcu-1051 CRX
// ESP32 GND    cjmcu-1051 S   HIGH = TRX off, LOW = TRX on


#include <ESP32-TWAI-CAN.hpp>

// Simple sketch that transmits and receives CAN frames
// Showcasing simple use of ESP32-TWAI-CAN library driver.

// Default for ESP32
#define CAN_TX 5
#define CAN_RX 4

CanFrame rxFrame;

// transmit a test frame
void sendObdFrame(uint8_t obdId) {
  static byte data = 2;  // test value - increment every frame
  CanFrame obdFrame = { 0 };
  obdFrame.identifier = 0x7DF;  // Default OBD2 address;
  obdFrame.extd = 0;
  obdFrame.data_length_code = 8;
  obdFrame.data[0] = data;
  obdFrame.data[1] = 'T';
  obdFrame.data[2] = 'W';
  obdFrame.data[3] = 'A';  // Best to use 0xAA (0b10101010) instead of 0
  obdFrame.data[4] = 'I';  // CAN works better this way as it needs
  obdFrame.data[5] = 0;  // to avoid bit-stuffing
  obdFrame.data[6] = 0xAA;
  obdFrame.data[7] = 0xAA;
  // Accepts both pointers and references
  ESP32Can.writeFrame(obdFrame);  // timeout defaults to 1 ms
  data++;                         // increment for testing
  Serial.printf("Transmit frame: %03X: ", obdFrame.identifier);
  for (byte i = 0; i < 8; i++)
    Serial.printf(" 0x%.2X", obdFrame.data[i]);
  Serial.printf("\n");
}

void setup() {
  // Setup serial for debbuging.
  Serial.begin(115200);
  Serial.println("\n\nESP32-TWAI-CAN Send/Receive test -  Initialize");
  // Set pins
  ESP32Can.setPins(CAN_TX, CAN_RX);
  // You can set custom size for the queues - those are default
  ESP32Can.setRxQueueSize(5);
  ESP32Can.setTxQueueSize(5);
  // .setSpeed() and .begin() functions require to use TwaiSpeed enum,
  // but you can easily convert it from numerical value using .convertSpeed()
  /*ESP32Can.setSpeed(ESP32Can.convertSpeed(250));  //500));
  // You can also just use .begin()..
  if (ESP32Can.begin()) {
    Serial.println("CAN bus started!");
  } else {
    Serial.println("CAN bus failed!");
  }*/
  // or override everything in one command;
  // It is also safe to use .begin() without .end() as it calls it internally
  if (ESP32Can.begin(ESP32Can.convertSpeed(250), CAN_TX, CAN_RX, 10, 10)) {
    Serial.println("CAN bus started!");
  } else {
    Serial.println("CAN bus failed!");
  }
}

void loop() {
  // transmit data when space entered on keyboard
  if (Serial.available()) {
    if (Serial.read() != ' ') return;
    sendObdFrame(5);  // For coolant temperature
  }

  // frame received?  You can set custom timeout, default is 1000
  if (ESP32Can.readFrame(rxFrame, 100)) {
    // print frame contents
    Serial.printf("Received frame: %03X: ", rxFrame.identifier);
    for (byte i = 0; i < 8; i++)
      Serial.printf(" 0x%.2X", rxFrame.data[i]);
    Serial.printf(" %s\n", (char *) &rxFrame.data+1);
  }
}

compiles without errors with Tools>Board "ESP32 Dev Module" and "ESP32S3 Dev Module" - there are a few warnings, e.g.

FQBN: esp32:esp32:esp32s3
Using board 'esp32s3' from platform in folder: C:\Users\bb\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0
Using core 'esp32' from platform in folder: C:\Users\bb\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0

cmd /c if exist "F:\\Ardunio\\Networking\\WiFi\\ESP32\\Canbus\\ESP32-TWAI-CAN\\ESP32-TWAI-CAN_test_1\\partitions.csv" COPY /y "F:\\Ardunio\\Networking\\WiFi\\ESP32\\Canbus\\ESP32-TWAI-CAN\\ESP32-TWAI-CAN_test_1\\partitions.csv" "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\partitions.csv"
cmd /c if not exist "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\partitions.csv" if exist "C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.2.0\\variants\\esp32s3\\partitions.csv" COPY "C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.2.0\\variants\\esp32s3\\partitions.csv" "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\partitions.csv"
cmd /c if not exist "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\partitions.csv" COPY "C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.2.0\\tools\\partitions\\default.csv" "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\partitions.csv"
cmd /c IF EXIST "F:\\Ardunio\\Networking\\WiFi\\ESP32\\Canbus\\ESP32-TWAI-CAN\\ESP32-TWAI-CAN_test_1\\bootloader.bin" ( COPY /y "F:\\Ardunio\\Networking\\WiFi\\ESP32\\Canbus\\ESP32-TWAI-CAN\\ESP32-TWAI-CAN_test_1\\bootloader.bin" "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\ESP32-TWAI-CAN_test_1.ino.bootloader.bin" ) ELSE ( IF EXIST "C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.2.0\\variants\\esp32s3\\bootloader.bin" ( COPY "C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.2.0\\variants\\esp32s3\\bootloader.bin" "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\ESP32-TWAI-CAN_test_1.ino.bootloader.bin" ) ELSE ( "C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esptool_py\\4.9.dev3\\esptool.exe" --chip esp32s3 elf2image --flash_mode dio --flash_freq 80m --flash_size 4MB -o "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\ESP32-TWAI-CAN_test_1.ino.bootloader.bin" "C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3\\bin\\bootloader_qio_80m.elf" ) )
esptool.py v4.8.1
Creating esp32s3 image...
Merged 2 ELF sections
Successfully created esp32s3 image.
cmd /c if exist "F:\\Ardunio\\Networking\\WiFi\\ESP32\\Canbus\\ESP32-TWAI-CAN\\ESP32-TWAI-CAN_test_1\\build_opt.h" COPY /y "F:\\Ardunio\\Networking\\WiFi\\ESP32\\Canbus\\ESP32-TWAI-CAN\\ESP32-TWAI-CAN_test_1\\build_opt.h" "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\build_opt.h"
cmd /c if not exist "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\build_opt.h" type nul > "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\build_opt.h"
cmd /c type nul > "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/file_opts"
cmd /c COPY /y "C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3\\sdkconfig" "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\sdkconfig"
        1 file(s) copied.
Detecting libraries used...
C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp-x32\2411/bin/xtensa-esp32s3-elf-g++ -c @C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/flags/cpp_flags -w -Os -Werror=return-type -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ESP32S3_DEV -DARDUINO_ARCH_ESP32 -DARDUINO_BOARD="ESP32S3_DEV" -DARDUINO_VARIANT="esp32s3" -DARDUINO_PARTITION_default -DARDUINO_HOST_OS="windows" -DARDUINO_FQBN="esp32:esp32:esp32s3:UploadSpeed=921600,USBMode=hwcdc,CDCOnBoot=default,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,CPUFreq=240,FlashMode=qio,FlashSize=4M,PartitionScheme=default,DebugLevel=none,PSRAM=disabled,LoopCore=1,EventsCore=1,EraseFlash=none,JTAGAdapter=default,ZigbeeMode=default" -DESP32=ESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0 @C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/flags/defines -IF:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1 -iprefix C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/include/ @C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/flags/includes -IC:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/qio_qspi/include -IC:\Users\bb\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\cores\esp32 -IC:\Users\bb\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\variants\esp32s3 @C:\Users\bb\AppData\Local\arduino\sketches\7801DB277376E920C740C7DBEFB474AC/build_opt.h @C:\Users\bb\AppData\Local\arduino\sketches\7801DB277376E920C740C7DBEFB474AC/file_opts C:\Users\bb\AppData\Local\arduino\sketches\7801DB277376E920C740C7DBEFB474AC\sketch\ESP32-TWAI-CAN_test_1.ino.cpp -o nul
Alternatives for ESP32-TWAI-CAN.hpp: [ESP32-TWAI-CAN@1.0.1]
ResolveLibrary(ESP32-TWAI-CAN.hpp)
  -> candidates: [ESP32-TWAI-CAN@1.0.1]
C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp-x32\2411/bin/xtensa-esp32s3-elf-g++ -c @C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/flags/cpp_flags -w -Os -Werror=return-type -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ESP32S3_DEV -DARDUINO_ARCH_ESP32 -DARDUINO_BOARD="ESP32S3_DEV" -DARDUINO_VARIANT="esp32s3" -DARDUINO_PARTITION_default -DARDUINO_HOST_OS="windows" -DARDUINO_FQBN="esp32:esp32:esp32s3:UploadSpeed=921600,USBMode=hwcdc,CDCOnBoot=default,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,CPUFreq=240,FlashMode=qio,FlashSize=4M,PartitionScheme=default,DebugLevel=none,PSRAM=disabled,LoopCore=1,EventsCore=1,EraseFlash=none,JTAGAdapter=default,ZigbeeMode=default" -DESP32=ESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0 @C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/flags/defines -IF:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1 -iprefix C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/include/ @C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/flags/includes -IC:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/qio_qspi/include -IC:\Users\bb\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\cores\esp32 -IC:\Users\bb\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\variants\esp32s3 -Ic:\Users\bb\Documents\Arduino\libraries\ESP32-TWAI-CAN\src @C:\Users\bb\AppData\Local\arduino\sketches\7801DB277376E920C740C7DBEFB474AC/build_opt.h @C:\Users\bb\AppData\Local\arduino\sketches\7801DB277376E920C740C7DBEFB474AC/file_opts C:\Users\bb\AppData\Local\arduino\sketches\7801DB277376E920C740C7DBEFB474AC\sketch\ESP32-TWAI-CAN_test_1.ino.cpp -o nul
Using cached library dependencies for file: c:\Users\bb\Documents\Arduino\libraries\ESP32-TWAI-CAN\src\ESP32-TWAI-CAN.cpp
Generating function prototypes...
C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp-x32\2411/bin/xtensa-esp32s3-elf-g++ -c @C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/flags/cpp_flags -w -Os -Werror=return-type -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ESP32S3_DEV -DARDUINO_ARCH_ESP32 -DARDUINO_BOARD="ESP32S3_DEV" -DARDUINO_VARIANT="esp32s3" -DARDUINO_PARTITION_default -DARDUINO_HOST_OS="windows" -DARDUINO_FQBN="esp32:esp32:esp32s3:UploadSpeed=921600,USBMode=hwcdc,CDCOnBoot=default,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,CPUFreq=240,FlashMode=qio,FlashSize=4M,PartitionScheme=default,DebugLevel=none,PSRAM=disabled,LoopCore=1,EventsCore=1,EraseFlash=none,JTAGAdapter=default,ZigbeeMode=default" -DESP32=ESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0 @C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/flags/defines -IF:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1 -iprefix C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/include/ @C:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/flags/includes -IC:\Users\bb\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_v5.4-2f7dcd86-v1\esp32s3/qio_qspi/include -IC:\Users\bb\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\cores\esp32 -IC:\Users\bb\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\variants\esp32s3 -Ic:\Users\bb\Documents\Arduino\libraries\ESP32-TWAI-CAN\src @C:\Users\bb\AppData\Local\arduino\sketches\7801DB277376E920C740C7DBEFB474AC/build_opt.h @C:\Users\bb\AppData\Local\arduino\sketches\7801DB277376E920C740C7DBEFB474AC/file_opts C:\Users\bb\AppData\Local\arduino\sketches\7801DB277376E920C740C7DBEFB474AC\sketch\ESP32-TWAI-CAN_test_1.ino.cpp -o C:\Users\bb\AppData\Local\Temp\3834157547\sketch_merged.cpp
C:\Users\bb\AppData\Local\Arduino15\packages\builtin\tools\ctags\5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives C:\Users\bb\AppData\Local\Temp\3834157547\sketch_merged.cpp

Compiling sketch...
"C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp-x32\\2411/bin/xtensa-esp32s3-elf-g++" -MMD -c "@C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3/flags/cpp_flags" -Wall -Wextra -Os -Werror=return-type -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ESP32S3_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32S3_DEV\"" "-DARDUINO_VARIANT=\"esp32s3\"" -DARDUINO_PARTITION_default "-DARDUINO_HOST_OS=\"windows\"" "-DARDUINO_FQBN=\"esp32:esp32:esp32s3:UploadSpeed=921600,USBMode=hwcdc,CDCOnBoot=default,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,CPUFreq=240,FlashMode=qio,FlashSize=4M,PartitionScheme=default,DebugLevel=none,PSRAM=disabled,LoopCore=1,EventsCore=1,EraseFlash=none,JTAGAdapter=default,ZigbeeMode=default\"" -DESP32=ESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0 "@C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3/flags/defines" "-IF:\\Ardunio\\Networking\\WiFi\\ESP32\\Canbus\\ESP32-TWAI-CAN\\ESP32-TWAI-CAN_test_1" -iprefix "C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3/include/" "@C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3/flags/includes" "-IC:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3/qio_qspi/include" "-IC:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.2.0\\cores\\esp32" "-IC:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.2.0\\variants\\esp32s3" "-Ic:\\Users\\bb\\Documents\\Arduino\\libraries\\ESP32-TWAI-CAN\\src" "@C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/build_opt.h" "@C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/file_opts" "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\sketch\\ESP32-TWAI-CAN_test_1.ino.cpp" -o "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\sketch\\ESP32-TWAI-CAN_test_1.ino.cpp.o"
In file included from F:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1\ESP32-TWAI-CAN_test_1.ino:18:
c:\Users\bb\Documents\Arduino\libraries\ESP32-TWAI-CAN\src/ESP32-TWAI-CAN.hpp: In member function 'bool TwaiCAN::readFrame(CanFrame*, uint32_t)':
c:\Users\bb\Documents\Arduino\libraries\ESP32-TWAI-CAN\src/ESP32-TWAI-CAN.hpp:102:25: warning: left operand of comma operator has no effect [-Wunused-value]
  102 |             LOG_TWAI_RX("Frame received %03X", frame->identifier);
      |                         ^~~~~~~~~~~~~~~~~~~~~
c:\Users\bb\Documents\Arduino\libraries\ESP32-TWAI-CAN\src/ESP32-TWAI-CAN.hpp: In member function 'bool TwaiCAN::writeFrame(CanFrame*, uint32_t)':
c:\Users\bb\Documents\Arduino\libraries\ESP32-TWAI-CAN\src/ESP32-TWAI-CAN.hpp:113:25: warning: left operand of comma operator has no effect [-Wunused-value]
  113 |             LOG_TWAI_TX("Frame sent     %03X", frame->identifier);
      |                         ^~~~~~~~~~~~~~~~~~~~~
F:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1\ESP32-TWAI-CAN_test_1.ino: In function 'void sendObdFrame(uint8_t)':
F:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1\ESP32-TWAI-CAN_test_1.ino:32:27: warning: missing initializer for member 'twai_message_t::<unnamed union>::<unnamed struct>::rtr' [-Wmissing-field-initializers]
   32 |   CanFrame obdFrame = { 0 };
      |                           ^
F:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1\ESP32-TWAI-CAN_test_1.ino:32:27: warning: missing initializer for member 'twai_message_t::<unnamed union>::<unnamed struct>::ss' [-Wmissing-field-initializers]
F:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1\ESP32-TWAI-CAN_test_1.ino:32:27: warning: missing initializer for member 'twai_message_t::<unnamed union>::<unnamed struct>::self' [-Wmissing-field-initializers]
F:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1\ESP32-TWAI-CAN_test_1.ino:32:27: warning: missing initializer for member 'twai_message_t::<unnamed union>::<unnamed struct>::dlc_non_comp' [-Wmissing-field-initializers]
F:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1\ESP32-TWAI-CAN_test_1.ino:32:27: warning: missing initializer for member 'twai_message_t::<unnamed union>::<unnamed struct>::reserved' [-Wmissing-field-initializers]
F:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1\ESP32-TWAI-CAN_test_1.ino:32:27: warning: missing initializer for member 'twai_message_t::identifier' [-Wmissing-field-initializers]
F:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1\ESP32-TWAI-CAN_test_1.ino:32:27: warning: missing initializer for member 'twai_message_t::data_length_code' [-Wmissing-field-initializers]
F:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1\ESP32-TWAI-CAN_test_1.ino:32:27: warning: missing initializer for member 'twai_message_t::data' [-Wmissing-field-initializers]
F:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1\ESP32-TWAI-CAN_test_1.ino:47:17: warning: format '%X' expects argument of type 'unsigned int', but argument 3 has type 'uint32_t' {aka 'long unsigned int'} [-Wformat=]
   47 |   Serial.printf("Transmit frame: %03X: ", obdFrame.identifier);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~
      |                                                    |
      |                                                    uint32_t {aka long unsigned int}
F:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1\ESP32-TWAI-CAN_test_1.ino: In function 'void loop()':
F:\Ardunio\Networking\WiFi\ESP32\Canbus\ESP32-TWAI-CAN\ESP32-TWAI-CAN_test_1\ESP32-TWAI-CAN_test_1.ino:90:19: warning: format '%X' expects argument of type 'unsigned int', but argument 3 has type 'uint32_t' {aka 'long unsigned int'} [-Wformat=]
   90 |     Serial.printf("Received frame: %03X: ", rxFrame.identifier);
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~
      |                                                     |
      |                                                     uint32_t {aka long unsigned int}
Compiling libraries...
Compiling library "ESP32-TWAI-CAN"
Using previously compiled file: C:\Users\bb\AppData\Local\arduino\sketches\7801DB277376E920C740C7DBEFB474AC\libraries\ESP32-TWAI-CAN\ESP32-TWAI-CAN.cpp.o
Compiling core...
cmd /c echo -DARDUINO_CORE_BUILD > "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/file_opts"
Using precompiled core: C:\Users\bb\AppData\Local\arduino\cores\00264a07456b564b1f8c0500cb66ca3e\core.a
cmd /c type nul > "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/file_opts"
Linking everything together...
"C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp-x32\\2411/bin/xtensa-esp32s3-elf-g++" "-Wl,--Map=C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/ESP32-TWAI-CAN_test_1.ino.map" "-LC:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3/lib" "-LC:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3/ld" "-LC:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3/qio_qspi" -Wl,--wrap=esp_panic_handler "@C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3/flags/ld_flags" "@C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3/flags/ld_scripts" -Wl,--start-group "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\sketch\\ESP32-TWAI-CAN_test_1.ino.cpp.o" "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\libraries\\ESP32-TWAI-CAN\\ESP32-TWAI-CAN.cpp.o" "C:\\Users\\bb\\AppData\\Local\\arduino\\cores\\00264a07456b564b1f8c0500cb66ca3e\\core.a" "@C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3/flags/ld_libs" -Wl,--end-group -Wl,-EL -o "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/ESP32-TWAI-CAN_test_1.ino.elf"
"C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esptool_py\\4.9.dev3/esptool.exe" --chip esp32s3 elf2image --flash_mode dio --flash_freq 80m --flash_size 4MB --elf-sha256-offset 0xb0 -o "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/ESP32-TWAI-CAN_test_1.ino.bin" "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/ESP32-TWAI-CAN_test_1.ino.elf"
esptool.py v4.8.1
Creating esp32s3 image...
Merged 2 ELF sections
Successfully created esp32s3 image.
"C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.2.0\\tools\\gen_esp32part.exe" -q "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/partitions.csv" "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/ESP32-TWAI-CAN_test_1.ino.partitions.bin"
cmd /c if exist "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\libraries\\Insights" "C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.2.0\\tools\\gen_insights_package.exe" "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC" ESP32-TWAI-CAN_test_1.ino "F:\\Ardunio\\Networking\\WiFi\\ESP32\\Canbus\\ESP32-TWAI-CAN\\ESP32-TWAI-CAN_test_1"
cmd /c if exist "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\libraries\\ESP_SR" if exist "C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3\\esp_sr\\srmodels.bin" COPY /y "C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp32-arduino-libs\\idf-release_v5.4-2f7dcd86-v1\\esp32s3\\esp_sr\\srmodels.bin" "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC\\srmodels.bin"
"C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esptool_py\\4.9.dev3/esptool.exe" --chip esp32s3 merge_bin -o "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/ESP32-TWAI-CAN_test_1.ino.merged.bin" --fill-flash-size 4MB --flash_mode keep --flash_freq keep --flash_size keep 0x0 "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/ESP32-TWAI-CAN_test_1.ino.bootloader.bin" 0x8000 "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/ESP32-TWAI-CAN_test_1.ino.partitions.bin" 0xe000 "C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\3.2.0/tools/partitions/boot_app0.bin" 0x10000 "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/ESP32-TWAI-CAN_test_1.ino.bin"
esptool.py v4.8.1
Wrote 0x400000 bytes to file C:\Users\bb\AppData\Local\arduino\sketches\7801DB277376E920C740C7DBEFB474AC/ESP32-TWAI-CAN_test_1.ino.merged.bin, ready to flash to offset 0x0
Using library ESP32-TWAI-CAN at version 1.0.1 in folder: C:\Users\bb\Documents\Arduino\libraries\ESP32-TWAI-CAN 
"C:\\Users\\bb\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\esp-x32\\2411/bin/xtensa-esp32s3-elf-size" -A "C:\\Users\\bb\\AppData\\Local\\arduino\\sketches\\7801DB277376E920C740C7DBEFB474AC/ESP32-TWAI-CAN_test_1.ino.elf"
Sketch uses 304030 bytes (23%) of program storage space. Maximum is 1310720 bytes.
Global variables use 19952 bytes (6%) of dynamic memory, leaving 307728 bytes for local variables. Maximum is 327680 bytes.

I am using ESP32 core 3.2.0 - what is yours?

photo of test setup

  1. couple of ESP32s one using TWAI with transceiver the other with a MCP2515 module
  2. UNO with a Canbus shield
  3. Bytronics mechatronics trainer

I usually have a USB-CAN dongle as well to monitor the traffic

Thank you! Your sketch compiles without errors and produces a solid output to the serial monitor using the ESP32wroom32e. can't see to find the default pin assignment for the Seeed S3 module to test. Will try to test this on the vehicle CAN to see if it sniffs our anything.

the can transceiver in post 11 is on pins

// Default for ESP32
#define CAN_TX 5
#define CAN_RX 4

I would think that GPIO4 and 5 should work OK on the ESP32S3

Here's the pinout I'm using for the Seeed esp32s3:


looks as though GPIO 4 5 and 6 are available

ran a test using a ESP32S3 Zero Mini (which has a similar pinout to the Seeed esp32s3) driving a cjmcu-1051 CAN transceiver

// ESP32S3-TWAI-CAN library using a cjmcu-1051 CAN transceiver
//  adapted from  File>Examples>ESP32S3-TWAI-CAN>OBD2-querry

// to enable serial monitor - USB CDC on boot: enabled

// ESP32S3-TWAI-CAN library
//     

// cjmcu-1051 CAN transceiver wiring
//     https://www.circuitstate.com/tutorials/what-is-can-bus-how-to-use-can-interface-with-ESP32S3-and-arduino/

// ESP32S3 GND    cjmcu-1051 GND
// ESP32S3 5V     cjmcu-1051 VCC powers transceiver
// ESP32S3 3.3V   cjmcu-1051 VIO powers logic
// ESP32S3 GPIO5  cjmcu-1051 CTX
// ESP32S3 GPIO4  cjmcu-1051 CRX
// ESP32S3 GND    cjmcu-1051 S   HIGH = TRX off, LOW = TRX on


#include <ESP32-TWAI-CAN.hpp>

// Simple sketch that transmits and receives CAN frames
// Showcasing simple use of ESP32-TWAI-CAN library driver.

// Default for ESP32S3
#define CAN_TX 5
#define CAN_RX 4

CanFrame rxFrame;

// transmit a test frame
void sendObdFrame(uint8_t obdId) {
  static byte data = 2;  // test value - increment every frame
  CanFrame obdFrame = { 0 };
  obdFrame.identifier = 0x7DF;  // Default OBD2 address;
  obdFrame.extd = 0;
  obdFrame.data_length_code = 8;
  obdFrame.data[0] = data;
  obdFrame.data[1] = 'T';
  obdFrame.data[2] = 'W';
  obdFrame.data[3] = 'A';  // Best to use 0xAA (0b10101010) instead of 0
  obdFrame.data[4] = 'I';  // CAN works better this way as it needs
  obdFrame.data[5] = 0;  // to avoid bit-stuffing
  obdFrame.data[6] = 0xAA;
  obdFrame.data[7] = 0xAA;
  // Accepts both pointers and references
  ESP32Can.writeFrame(obdFrame);  // timeout defaults to 1 ms
  data++;                         // increment for testing
  Serial.printf("Transmit frame: %03X: ", obdFrame.identifier);
  for (byte i = 0; i < 8; i++)
    Serial.printf(" 0x%.2X", obdFrame.data[i]);
  Serial.printf("\n");
}

void setup() {
  // Setup serial for debbuging.
  Serial.begin(115200);
  delay(3000);
  Serial.println("\n\nESP32S3-TWAI-CAN Send/Receive test -  Initialize");
  // Set pins
  ESP32Can.setPins(CAN_TX, CAN_RX);
  // You can set custom size for the queues - those are default
  ESP32Can.setRxQueueSize(5);
  ESP32Can.setTxQueueSize(5);
  // .setSpeed() and .begin() functions require to use TwaiSpeed enum,
  // but you can easily convert it from numerical value using .convertSpeed()
  /*ESP32Can.setSpeed(ESP32Can.convertSpeed(250));  //500));
  // You can also just use .begin()..
  if (ESP32Can.begin()) {
    Serial.println("CAN bus started!");
  } else {
    Serial.println("CAN bus failed!");
  }*/
  // or override everything in one command;
  // It is also safe to use .begin() without .end() as it calls it internally
  if (ESP32Can.begin(ESP32Can.convertSpeed(250), CAN_TX, CAN_RX, 10, 10)) {
    Serial.println("CAN bus started!");
  } else {
    Serial.println("CAN bus failed!");
  }
}

void loop() {
  // transmit data when space entered on keyboard
  if (Serial.available()) {
    if (Serial.read() != ' ') return;
    sendObdFrame(5);  // For coolant temperature
  }

  // frame received?  You can set custom timeout, default is 1000
  if (ESP32Can.readFrame(rxFrame, 100)) {
    // print frame contents
    Serial.printf("Received frame: %03X: ", rxFrame.identifier);
    for (byte i = 0; i < 8; i++)
      Serial.printf(" 0x%.2X", rxFrame.data[i]);
    Serial.printf(" %s\n", (char *) &rxFrame.data+1);
  }
}

ESP32S3 Zero Mini serial output

ESP32S3-TWAI-CAN Send/Receive test -  Initialize
CAN bus started!
Received frame: 100:  0x00 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 MEGA
Received frame: 100:  0x01 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 MEGA
Received frame: 100:  0x02 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 MEGA
Received frame: 100:  0x03 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 MEGA
Transmit frame: 7DF:  0x02 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA
Transmit frame: 7DF:  0x03 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA
Transmit frame: 7DF:  0x04 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA
Transmit frame: 7DF:  0x05 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA
Received frame: 100:  0x04 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 MEGA
Received frame: 100:  0x05 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 MEGA
Transmit frame: 7DF:  0x06 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA
Transmit frame: 7DF:  0x07 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA

UNO using a MCP2515 canbus shield serial output

CAN MCP2515 shield Send/Receive test - MCP2515 Initialize
Entering Configuration Mode Successful!
Setting Baudrate Successful!
CAN Receive - MCP2515 Initialized Successfully!
MCP2515 Library CAN Send/Receive Example
 enter space to send a frame
 0x00 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 Message Sent Successfully!
 0x01 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 Message Sent Successfully!
 0x02 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 Message Sent Successfully!
 0x03 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 Message Sent Successfully!
Standard ID: 0x7DF       DLC: 8  Data: 0x02 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA TWAI
Standard ID: 0x7DF       DLC: 8  Data: 0x03 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA TWAI
Standard ID: 0x7DF       DLC: 8  Data: 0x04 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA TWAI
Standard ID: 0x7DF       DLC: 8  Data: 0x05 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA TWAI
 0x04 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 Message Sent Successfully!
 0x05 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 Message Sent Successfully!
Standard ID: 0x7DF       DLC: 8  Data: 0x06 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA TWAI
Standard ID: 0x7DF       DLC: 8  Data: 0x07 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA TWAI

Ran this on the holasmart esp32 (uno format) with no issues.

ESP32S3 different story:

  1. Previously had to remove the "IRAM_ATTR" from the ESP32-TWAI-CAN.hpp file to get it to compile. This time I added these compile instructions to the "platform.local.text" for IDE. Now it compiles without any issues. (Apparently this instructs the compiler to place string literals in their own sections in the program's memory, which solves the 'dangerous relocation' error msg)
# These can be overridden in platform.local.txt
compiler.c.extra_flags=-mtext-section-literals
compiler.cpp.extra_flags=-mtext-section-literals
  1. Validated the CAN transcvr is working fine and the jumper wires aren't a problem. Also, validated the pwr/gnd, etc. are all good.
  2. Tried every combo of TX/RX connections with the SEEED XIAO S2 module GPIOs.
  3. Validated the MCU is working fine with a different sketch setup.
  4. Even got up and walked around the chair... sometimes that works.

I'm stuck. Have ordered some new parts to try them, but I don't know what to check next.

Here's another pic showing the setup. maybe I'm missing something obvious?


(disregard the current tx/rx setup, tried switching too with no luck)

your setup looks OK

do you have an oscilloscope to look at the CANL and CANH signals?

do you have another microcontroller and CAN module so you can do a simple test such as I ran in post 16 (ESP32+cjmcu-1051 to UNO+canbus shield)
once you prove that basic Canbus is working you can connect to the vehicle
the second microcomputer + can module can then be used to monitor traffic on the bus

I lost my Oscope in a house fire last year and haven't replaced it yet. This might be a good reason.

new S3 ordered and will try that. Have a new C3 but that failed miserably.

tried code of post 16 on a ESP32C3 Super Mini and works OK
ESP32C3 serial output

ESP32C3-TWAI-CAN Send/Receive test -  Initialize
CAN bus started!
Received frame: 100:  0x00 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 MEGA
Received frame: 100:  0x01 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 MEGA
Transmit frame: 7DF:  0x02 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA
Transmit frame: 7DF:  0x03 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA
Transmit frame: 7DF:  0x04 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA
Received frame: 100:  0x02 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 MEGA
Received frame: 100:  0x03 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 MEGA

UNO output

CAN MCP2515 shield Send/Receive test - MCP2515 Initialize
Entering Configuration Mode Successful!
Setting Baudrate Successful!
CAN Receive - MCP2515 Initialized Successfully!
MCP2515 Library CAN Send/Receive Example
 enter space to send a frame
 0x00 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 Message Sent Successfully!
 0x01 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 Message Sent Successfully!
Standard ID: 0x7DF       DLC: 8  Data: 0x02 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA TWAI
Standard ID: 0x7DF       DLC: 8  Data: 0x03 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA TWAI
Standard ID: 0x7DF       DLC: 8  Data: 0x04 0x54 0x57 0x41 0x49 0x00 0xAA 0xAA TWAI
 0x02 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 Message Sent Successfully!
 0x03 0x4D 0x45 0x47 0x41 0x00 0x07 0x08 Message Sent Successfully!

test setup

Able to get it working. Bad CAN transcvr.

Thank you for all the help and explanations!