Git Product home page Git Product logo

nmea2000_esp32's Introduction

NMEA2000_esp32 library for ESP32 boards

Inherited object for use NMEA2000 library for ESP32 Boards. See also NMEA2000 library.

To use this library, you will also need NMEA2000 library.

The library defines as default Tx pin to GPIO 16 and Rx pint to GPIO 4. You can change these with defines:

#define ESP32_CAN_TX_PIN GPIO_NUM_16
#define ESP32_CAN_RX_PIN GPIO_NUM_4

before including NMEA2000_CAN.h or NMEA2000_esp32.h

Thanks

Thanks to Thomas Barth, barth-dev.de for his implementation of ESP32 CAN driver. Instead of using his driver as external driver I implemented the code to the NMEA2000_esp32 to avoid conflicts.

Changes

04.10.2022 - Add ESP-IDF support

15.11.2020 - Added CAN reset to CAN_init - Fix for ESP32 rev>=2. New chips uses Baud Rate Prescaler Divider (BRP_DIV) bit, which was set on interrupt vector causing invalid baud rate.

05.11.2019 - Fixed can frame buffer handling. After ESP soft reset can controller could have false data on frame length and cause writing outside of frame buffer.

20.10.2019 - Fixed pin definition at startup to avoid error frame.

06.04.2014 Initial commit.

License

2015-2022 Copyright (c) Kave Oy, www.kave.fi All right reserved.

Author: Timo Lappalainen

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

nmea2000_esp32's People

Contributors

nicklasb avatar nohal avatar sarfata avatar ttlappalainen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nmea2000_esp32's Issues

Sketches not compiling (FreeRTOS.h) Wemos D1 Mini

In arduino ide 1.8.19 i get this error during compiling for Wemos D1 Mini

With this setting: #define USE_N2K_CAN 7

Alternatives for freertos/FreeRTOS.h: []
ResolveLibrary(freertos/FreeRTOS.h)
In file included from C:\Users\mercanti\Documents\Arduino\libraries\NMEA2000-master/NMEA2000_CAN.h:277, -> candidates: []
from C:\DAVIDE\nmea2000\testbrdge\testbrdge.ino:8:
C:\Users\mercanti\Documents\Arduino\libraries\NMEA2000_esp32-master/NMEA2000_esp32.h:39:10: fatal error: freertos/FreeRTOS.h: No such file or directory
39 | #include "freertos/FreeRTOS.h"
| ^~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Ideas?

Unable to send/receive after starting alone at a bus

In my project I use this lib and the NMEA2000 lib for a converter NMEA0183/NMEA2000 on a nodemcu32 or AtomCAN or other ESP32 based boards.
Whenever I start up with some other devices on the bus being already active everything runs fine.
But when starting as the only bus device (and connecting other devices later on) the library will not send or receive any PGNS. Looking at the bus the device is still continously retransmitting.
I tried a couple of changes as proposed e.g. at https://www.esp32.com/viewtopic.php?t=5010 - but still not very successful. At least when powering off the other device and later on powering on again the same issue occured.
So finally I decided to go for a re-initialization of the CAN driver whenever the send queue remains full for 2 seconds (or nothing is send/received within 60s).
Not really a great solution - but seems to solve the problem.
Do you have any suggestions/ideas how to handle this (maybe more inline with the CAN specs)?
My patched Version is at https://github.com/wellenvogel/esp32-nmea2000/tree/master/lib/nmea2000esp32.

error when running DataDisplay2-esp32

hello,
i am testing the libraries with my environment(ESP32-S3-MINI, ArduinoIDE),
i installed 2 libraries: NMEA2000_esp32 and NMEA2000.
after towards i ran code verify with simple gpio adjusments and i receive the following error:

c:\Users\WoWpr\OneDrive\Documents\Arduino\libraries\NMEA2000_esp32\NMEA2000_esp32.cpp:123:23: error: 'PERIPH_CAN_MODULE' was not declared in this scope
   periph_module_reset(PERIPH_CAN_MODULE);

i didnt find any mention of "PERIPH_CAN_MODULE" in the libraries, could you pleases navigate me towards its source?
later on i found that most of the functions in init function probable point to "driver/periph_ctrl" which i couldnt find.

NodeMCU ESP-32S + MCP2551 doesn't seem to work

Timo,

tried to use a NodeMCU ESP-32S I recently bought.
connected it to an MCP2551 exactly as I have it running on a teensy 3.5 and 3.6
compiled properly (had a bit of an issue uploading the code to the chip and had to keep the IOO button depressed for 5-6secs to connect)
However, although serial monitor shows various debug print lines (so it's working) the rest of the NMEA2K bus doesn't see it, and no sentences as broadcasted.

I've wired it as you recommend (and even tried adding the def lines in my code). Any ideas?

cheers

V.

esp32-c3

Hi - I was trying to port my project to an ESP32-C3, but I get a compilation error for a missing file "soc/dport_reg.h"
Any plan to support the C3, or any indications on how to do it?

Thanks!

ESP32 NMea2000 Sender

Hi Timo.
thanks for your suggestions. I'm still here to bother you about it: be patient. I used the software simulator, now I would like to have a PGN generated via firmware and inserted into a minimal bus. The example takes the Actisense listener that I modified like this that follow.

Obviously the two devices cannot communicate. It seems to me that the SN65HVD230 have the termination resistor... Is it necessary to remove it also in the case of point-to-point communications like this?

Do you see some problem in this simple source code ?

// DOIT ESP32 DEVKIT V1

//per usare ESP32 websocket il 15/04/24 si deve
//cmodificare il file Websockets.cpp
// da C:\Users\mercanti\Documents\Arduino\libraries\WebSockets\src\WebSockets.cpp
//mettendo #include <esp32/sha.h> invece di hwcrypto 
// qualcouno dice di mettere  #include "sha/sha_parallel_engine.h"
#include <Arduino.h>

//#define N2k_CAN_INT_PIN 2
//#define USE_N2K_CAN 1
//#define N2k_SPI_CS_PIN 10

#define ESP32_CAN_TX_PIN GPIO_NUM_5  
#define ESP32_CAN_RX_PIN GPIO_NUM_4 
#define N2k_CAN_INT_PIN 0xff

#include <NMEA2000_CAN.h>
#include <N2kMsg.h>
#include <NMEA2000.h>
#include <N2kMessages.h>
#include <ActisenseReader.h>
#include <Seasmart.h>

tActisenseReader ActisenseReader;


// Define READ_STREAM to port, where you write data from PC e.g. with NMEA Simulator.
#define READ_STREAM Serial       
// Define ForwardStream to port, what you listen on PC side. On Arduino Due you can use e.g. SerialUSB
#define FORWARD_STREAM Serial    

Stream *ReadStream=&READ_STREAM;
Stream *ForwardStream=&FORWARD_STREAM;
const unsigned long TransmitMessages[] PROGMEM = {130310L, // Outside Environmental parameters
                                                 };
// Send time offsets
#define TempSendOffset 0
#define SlowDataUpdatePeriod 1000  // Time between CAN Messages sent

bool IsTimeToUpdate(unsigned long NextUpdate) {
  return (NextUpdate < millis());
}
unsigned long InitNextUpdate(unsigned long Period, unsigned long Offset = 0) {
  return millis() + Period + Offset;
}

void SetNextUpdate(unsigned long & NextUpdate, unsigned long Period) {
  while ( NextUpdate < millis() ) NextUpdate += Period;
}


void setup() {
  // Define buffers big enough
  NMEA2000.SetN2kCANMsgBufSize(8);
  NMEA2000.SetN2kCANSendFrameBufSize(250);
  NMEA2000.SetN2kCANReceiveFrameBufSize(250);
  
  if (ReadStream!=ForwardStream) READ_STREAM.begin(115200);
  FORWARD_STREAM.begin(115200);
  NMEA2000.SetForwardStream(ForwardStream); 
  NMEA2000.SetMode(tNMEA2000::N2km_ListenAndSend);
  NMEA2000.SetForwardType(tNMEA2000::fwdt_Text); // Show bus data in clear text
  NMEA2000.ExtendTransmitMessages(TransmitMessages);
  if (ReadStream==ForwardStream) NMEA2000.SetForwardOwnMessages(false); // If streams are same, do not echo own messages.
  NMEA2000.EnableForward(true);
  NMEA2000.Open();
  Serial.println("Hi, SIMULATOR on standard TX RX pin! --> ");
  ActisenseReader.SetReadStream(ReadStream);
  ActisenseReader.SetDefaultSource(75);
  ActisenseReader.SetMsgHandler(HandleStreamN2kMsg);

    
}
void SendN2kTempPressure(void) {
  static unsigned long SlowDataUpdated = InitNextUpdate(SlowDataUpdatePeriod, TempSendOffset);
  tN2kMsg N2kMsg;

  double Temperature = 0;
  double BarometricPressure = 0;
  if ( IsTimeToUpdate(SlowDataUpdated) ) {
    SetNextUpdate(SlowDataUpdated, SlowDataUpdatePeriod);
    Temperature = 31.5;
    BarometricPressure = 1036;
    Serial.printf("Temperature: %3.1f °C - Barometric Pressure: %6.0f Pa\n", Temperature, BarometricPressure);
    SetN2kPGN130310(N2kMsg, 0, N2kDoubleNA, Temperature, BarometricPressure);
    NMEA2000.SendMsg(N2kMsg);
  }
}
#define MAX_NMEA2000_MESSAGE_SEASMART_SIZE 500 
void HandleStreamN2kMsg(const tN2kMsg &N2kMsg) {
  N2kMsg.Print(&Serial);
  NMEA2000.SendMsg(N2kMsg,-1);
  char buf[MAX_NMEA2000_MESSAGE_SEASMART_SIZE];
  if ( N2kToSeasmart(N2kMsg,millis(),buf,MAX_NMEA2000_MESSAGE_SEASMART_SIZE)==0 ) return;
  String mystring(buf);
  Serial.println(mystring);
}

void loop() {
  SendN2kTempPressure();
  NMEA2000.ParseMessages();
  ActisenseReader.ParseMessages();
}

I'm using "SN65HVD230 " and I've read what you wrote about it.

immagine

Sketches not compiling

It does not matter what I do with the library, it always throws these errors. This one was with the ActisenseListener example.

/home/johannes/.arduino15/packages/esp32/tools/xtensa-esp32s3-elf-gcc/esp-2021r2-patch5-8.4.0/bin/xtensa-esp32s3-elf-g++ -DHAVE_CONFIG_H "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"" -DUNITY_INCLUDE_CONFIG_H -DWITH_POSIX -D_GNU_SOURCE "-DIDF_VER=\"v4.4.4\"" -DESP_PLATFORM -D_POSIX_READER_WRITER_LOCKS -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/newlib/platform_include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/freertos/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/freertos/include/esp_additions/freertos -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/freertos/port/xtensa/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/freertos/include/esp_additions -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_hw_support/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_hw_support/include/soc -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_hw_support/include/soc/esp32s3 -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_hw_support/port/esp32s3 -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_hw_support/port/esp32s3/private_include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/heap/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/log/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/lwip/include/apps -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/lwip/include/apps/sntp -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/lwip/lwip/src/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/lwip/port/esp32/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/lwip/port/esp32/include/arch -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/soc/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/soc/esp32s3 -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/soc/esp32s3/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/hal/esp32s3/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/hal/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/hal/platform_port/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_rom/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_rom/include/esp32s3 -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_rom/esp32s3 -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_common/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_system/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_system/port/soc -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_system/port/public_compat -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/xtensa/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/xtensa/esp32s3/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/driver/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/driver/esp32s3/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_pm/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_ringbuf/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/efuse/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/efuse/esp32s3/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/vfs/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_wifi/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_event/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_netif/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_eth/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/tcpip_adapter/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_phy/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_phy/esp32s3/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_ipc/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/app_trace/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_timer/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/mbedtls/port/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/mbedtls/mbedtls/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/mbedtls/esp_crt_bundle/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/app_update/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/spi_flash/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bootloader_support/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/nvs_flash/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/pthread/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_gdbstub/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_gdbstub/xtensa -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_gdbstub/esp32s3 -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espcoredump/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espcoredump/include/port/xtensa -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/wpa_supplicant/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/wpa_supplicant/port/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/wpa_supplicant/esp_supplicant/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/ieee802154/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/console -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/asio/asio/asio/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/asio/port/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/common/osi/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/include/esp32s3/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/common/api/include/api -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/common/btc/profile/esp/blufi/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/common/btc/profile/esp/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/host/bluedroid/api/include/api -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_common/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_common/tinycrypt/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_core -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_core/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_core/storage -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/esp_ble_mesh/btc/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_models/common/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_models/client/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_models/server/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/esp_ble_mesh/api/core/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/esp_ble_mesh/api/models/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/bt/esp_ble_mesh/api -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/cbor/port/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/unity/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/unity/unity/src -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/cmock/CMock/src -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/coap/port/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/coap/libcoap/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/nghttp/port/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/nghttp/nghttp2/lib/includes -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp-tls -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp-tls/esp-tls-crypto -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_adc_cal/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_hid/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/tcp_transport/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_http_client/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_http_server/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_https_ota/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_https_server/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_lcd/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_lcd/interface -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/protobuf-c/protobuf-c -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/protocomm/include/common -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/protocomm/include/security -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/protocomm/include/transports -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/mdns/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_local_ctrl/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/sdmmc/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_serial_slave_link/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_websocket_client/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/expat/expat/expat/lib -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/expat/port/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/wear_levelling/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/fatfs/diskio -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/fatfs/vfs -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/fatfs/src -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/freemodbus/freemodbus/common/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/idf_test/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/idf_test/include/esp32s3 -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/jsmn/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/json/cJSON -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/libsodium/libsodium/src/libsodium/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/libsodium/port_include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/mqtt/esp-mqtt/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/openssl/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/perfmon/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/spiffs/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/usb/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/ulp/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/wifi_provisioning/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/rmaker_common/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_diagnostics/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/rtc_store/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_insights/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/json_parser/upstream/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/json_parser/upstream -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/json_generator/upstream -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_schedule/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp_secure_cert_mgr/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_rainmaker/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/gpio_button/button/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/qrcode/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/ws2812_led -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/freertos/include/freertos -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/arduino_tinyusb/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp_littlefs/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp-dl/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp-dl/include/tool -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp-dl/include/typedef -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp-dl/include/image -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp-dl/include/math -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp-dl/include/nn -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp-dl/include/layer -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp-dl/include/detect -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp-dl/include/model_zoo -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp-sr/src/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp-sr/esp-tts/esp_tts_chinese/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp-sr/include/esp32s3 -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp32-camera/driver/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/esp32-camera/conversions/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/dotprod/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/support/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/hann/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/blackman/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/blackman_harris/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/blackman_nuttall/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/nuttall/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/flat_top/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/iir/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/fir/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/add/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/sub/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/mul/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/addc/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/mulc/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/sqrt/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/fft/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/dct/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/conv/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/common/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/kalman/ekf/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/kalman/ekf_imu13states/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/fb_gfx/include -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/qio_qspi/include -mlongcalls -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu++11 -fexceptions -fno-rtti -MMD -c -w -Os -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ADAFRUIT_FEATHER_ESP32S3_TFT -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ADAFRUIT_FEATHER_ESP32S3_TFT\"" "-DARDUINO_VARIANT=\"adafruit_feather_esp32s3_tft\"" -DARDUINO_PARTITION_default -DESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=0 -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0 @/home/johannes/.var/app/cc.arduino.IDE2/cache/arduino/sketches/B9EB44FDE50B22200D8B1BF41D0C612F/build_opt.h -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/cores/esp32 -I/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/variants/adafruit_feather_esp32s3_tft -I/home/johannes/Arduino/libraries/NMEA2000/src -I/home/johannes/Arduino/libraries/NMEA2000_esp32 /home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp -o /home/johannes/.var/app/cc.arduino.IDE2/cache/arduino/sketches/B9EB44FDE50B22200D8B1BF41D0C612F/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp.o
In file included from /home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_reg.h:21,
                 from /home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:32:
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp: In member function 'void tNMEA2000_esp32::CAN_init()':
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:127: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);
                           ^~~~~~~~~~~~~~~~~~~~~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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)
                                                                   ^~~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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)))
                                              ^~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:127: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);
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:127:27: note: suggested alternative: 'SYSTEM_PERIP_CLK_EN1_REG'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
                           ^~~~~~~~~~~~~~~~~~~~~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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)
                                                                   ^~~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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)))
                                              ^~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:127: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);
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:127: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);
                                                   ^~~~~~~~~~~~~~~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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)
                                                                                        ^~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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)))
                                              ^~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:127: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);
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:127:51: note: suggested alternative: 'DPORT_REG_CLR_BIT'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
                                                   ^~~~~~~~~~~~~~~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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)
                                                                                        ^~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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)))
                                              ^~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:127: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);
   ^~~~~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:128: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);
                             ^~~~~~~~~~~~~~~~~~~~~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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)
                                                                   ^~~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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))))
                                              ^~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:128:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:128:29: note: suggested alternative: 'SYSTEM_PERIP_RST_EN1_REG'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
                             ^~~~~~~~~~~~~~~~~~~~~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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)
                                                                   ^~~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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))))
                                              ^~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:128:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:128:53: error: 'DPORT_CAN_RST' was not declared in this scope
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
                                                     ^~~~~~~~~~~~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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)
                                                                                        ^~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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))))
                                              ^~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:128:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:128:53: note: suggested alternative: 'DPORT_DATE_REG'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
                                                     ^~~~~~~~~~~~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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)
                                                                                        ^~~
/home/johannes/.arduino15/packages/esp32/hardware/esp32/2.0.9/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))))
                                              ^~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:128:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:132:23: error: 'CAN_RX_IDX' was not declared in this scope
  gpio_matrix_in(RxPin,CAN_RX_IDX,0);
                       ^~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:132:23: note: suggested alternative: 'TWAI_RX_IDX'
  gpio_matrix_in(RxPin,CAN_RX_IDX,0);
                       ^~~~~~~~~~
                       TWAI_RX_IDX
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:193:20: error: 'ETS_CAN_INTR_SOURCE' was not declared in this scope
     esp_intr_alloc(ETS_CAN_INTR_SOURCE,0,ESP32Can1Interrupt,NULL,NULL);
                    ^~~~~~~~~~~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:193:20: note: suggested alternative: 'ETS_MAX_INTR_SOURCE'
     esp_intr_alloc(ETS_CAN_INTR_SOURCE,0,ESP32Can1Interrupt,NULL,NULL);
                    ^~~~~~~~~~~~~~~~~~~
                    ETS_MAX_INTR_SOURCE
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:200:27: error: 'CAN_TX_IDX' was not declared in this scope
     gpio_matrix_out(TxPin,CAN_TX_IDX,0,0);
                           ^~~~~~~~~~
/home/johannes/Arduino/libraries/NMEA2000_esp32/NMEA2000_esp32.cpp:200:27: note: suggested alternative: 'TWAI_TX_IDX'
     gpio_matrix_out(TxPin,CAN_TX_IDX,0,0);
                           ^~~~~~~~~~
                           TWAI_TX_IDX

Using library NMEA2000 at version 4.18.7 in folder: /home/johannes/Arduino/libraries/NMEA2000 
Using library NMEA2000_esp32 at version 1.0.3 in folder: /home/johannes/Arduino/libraries/NMEA2000_esp32 
exit status 1

Compilation error: exit status 1```

Some thing is not right

ESP32 is adding extra data to the begining of each message.
ArduinoGateway Teensy and ESP32 do not show the same results. NMEA Reader cannot display ESP32 packets.

The following packets were captured simultaneously with ArduinoGateway in ASCII mode.
ESP32
2089326 : Pri:7 PGN:127258 Source:8 Dest:255 Len:8 Data:FF,FF,FF,FF,91,F8,FF,FF<\r><\n>
2089327 : Pri:3 PGN:130845 Source:8 Dest:255 Len:8 Data:40,E,41,9F,FF,FF,FF,FF<\r><\n>
2089329 : Pri:3 PGN:130845 Source:8 Dest:255 Len:8 Data:41,2,0,0,1,91,F8,0<\r><\n>
2089335 : Pri:3 PGN:130845 Source:8 Dest:255 Len:8 Data:42,0,FF,FF,FF,FF,FF,FF<\r><\n>
2090341 : Pri:7 PGN:127258 Source:8 Dest:255 Len:8 Data:FF,FF,FF,FF,91,F8,FF,FF<\r><\n>

Teensy
789311 : Pri:7 PGN:127258 Source:8 Dest:255 Len:8 Data:FF,FF,FF,FF,91,F8,FF,FF<\r><\n>
789312 : Pri:3 PGN:130845 Source:8 Dest:255 Len:8 Data:40,E,41,9F,FF,FF,FF,FF<\r><\n>
789312 : Pri:3 PGN:130845 Source:8 Dest:255 Len:8 Data:41,2,0,0,1,91,F8,0<\r><\n>
789313 : Pri:3 PGN:130845 Source:8 Dest:255 Len:8 Data:42,0,FF,FF,FF,FF,FF,FF<\r><\n>
790326 : Pri:7 PGN:127258 Source:8 Dest:255 Len:8 Data:FF,FF,FF,FF,91,F8,FF,FF<\r><\n>

Tx and RX for the MCP2562

I just want to ask a really stupid question.
The MCP2562 and MCP2515 combination according to their data sheets use SPI (MOSI, MISO,SCK CLK)
In your code and examples you talk about Tx and Rx. Is that because your code does not use a Bus Controller and instead talks directly to the MCP2562

Conflicting Declaration with tNMEA2000_esp32 NMEA2000;

I am porting a Teensy3.2 NMEA2000 application to ESP32. I'm using PlatformIO and an ESP32-WROOM-32E.

platformio.ini is:

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
lib_deps = 
	ttlappalainen/NMEA2000-library@^4.21.5
	ttlappalainen/NMEA2000_esp32@^1.0.3
....

The start of the code looks like this:

// Set up your NMEA2000 CAN pins
#define ESP32_CAN_RX_PIN GPIO_NUM_7
#define ESP32_CAN_TX_PIN GPIO_NUM_4

#include <Arduino.h>
#include <NMEA2000_CAN.h>  // This will automatically include NMEA2000 library
#include <NMEA2000_esp32.h>  
...

// Create NMEA2000 instance
tNMEA2000_esp32 NMEA2000;

The last line is giving a conflicting declaration error. I have searched throughout the code several times and cannot find why this is happening. Also, I have been unable to find a documented example for use of these libraries on an ESP32. Any advice?

Thanks


Invalid PGN data after a soft reset (fix is applied)

I'm using a board with an ESP32-WROOM-32U, 16MB module. My FW is an N2K projet using this code and also the companion NMEA2000 library (although a version from last November). Upon initial power up, my FW runs beautifully for days. However, often after a soft reset the library will receive invalid PGNs.

I see there is a fix related to this here and I verified I am using this code, with that fix. I checked Mr. Barth's driver on GitHub and it has not been updated in 3 years.

I realize this code has been in circulation quite a while but could there be a similar problem? I have searched, but of course its very hard to Google a term with the word "can" in it.

Adding NMEA2000 dependency as a idf component

Hi. Still learning cmake, and I'm having trouble adding NMEA2000 as a dependency for NMEA2000_esp32. I've added NMEA2000_esp to the project and specified it's location with EXTRA_COMPONENT_DIRS in the project CMakeLists.txt but I have no idea how to add NMEA2000 as an idf component. I tried to import it as a third-party CMake library by following this example but had no luck. I would appreciate any help. Thanks.

Just a lack of competenze on esp32

I'm using a board with an ESP32-WROOM-32U, 16MB module.
I have replaced my ITC-5 with an Arduino DUE and the library of Timo ( thank you so much). Now I want to implement a WiFi bridge with the esp32 board and I want to use the example of the library.
The code run successfully on the board but I have some configuration doubt.
In the repository is specified that the pins used are GPIO 16 and GPIO4 but I didn't understand if I have to connect them to the serial port of the DUE board and read the Actisense data or I have to connect them to, for example, CANRX CANTX of the mcp2562.
Sorry for the stupid question and thank to whom will help me in advance.

esp32c3

Hi all!
The not so new esp32c3 does no work with this library.

I have successfully implemented a new library that uses the native "twai" library from espresiff, so far it works with esp32c3 -at least receiving-. And I guess it should work with any "esp32" device (S2, etc..)

I need to do further test in order to triple check that it works fine on my boat.

The question

Is there any interest in such library?

Cant get it working with wemos D1 mini ESP32 (clone)

Hello,
I tried everything to get my code working and found that there is no transmission on the CAN bus at all.

After a while of testing I tried the examples "Temperature Monitor" and "Battery Monitor" as described in the readme.
I used a logic analyzer (sigrok, saleae clone) to make sure there is some output on IO16, IO4, IO5, RX(UART) just to make sure. There is no output at all except on RX of course.

The "Temperature Monitor" was changed to include:

#include <NMEA2000_CAN.h>  // This will automatically choose right CAN library and create suitable NMEA2000 object
#include <NMEA2000_esp32.h> // https://github.com/ttlappalainen/NMEA2000_esp32

and I uncommented the serial output.

The only thing I found was some error messages ~10 sec after power up. I avoided resets as there was another issue.

PGN 130310 send failed
32727 : Pri:5 PGN:130310 Source:22 Dest:255 Len:8 Data:1,C1,70,FF,FF,FF,FF,FF
32734, Temperature send ready
PGN 130312 send failed
35224 : Pri:5 PGN:130312 Source:22 Dest:255 Len:8 Data:1,1,4,7D,73,FF,FF,FF
PGN 130311 send failed
35224 : Pri:5 PGN:130311 Source:22 Dest:255 Len:8 Data:1,C4,7D,73,FF,7F,FF,FF
PGN 130310 send failed
35232 : Pri:5 PGN:130310 Source:22 Dest:255 Len:8 Data:1,C1,70,FF,FF,FF,FF,FF
35239, Temperature send ready
PGN 130312 send failed
37725 : Pri:5 PGN:130312 Source:22 Dest:255 Len:8 Data:1,1,4,7D,73,FF,FF,FF
PGN 130311 send failed
37725 : Pri:5 PGN:130311 Source:22 Dest:255 Len:8 Data:1,C4,7D,73,FF,7F,FF,FF
PGN 130310 send failed
37733 : Pri:5 PGN:130310 Source:22 Dest:255 Len:8 Data:1,C1,70,FF,FF,FF,FF,FF
37740, Temperature send ready
PGN 130312 send failed
40226 : Pri:5 PGN:130312 Source:22 Dest:255 Len:8 Data:1,1,4,7D,73,FF,FF,FF
PGN 130311 send failed
40226 : Pri:5 PGN:130311 Source:22 Dest:255 Len:8 Data:1,C4,7D,73,FF,7F,FF,FF
PGN 130310 send failed
40234 : Pri:5 PGN:130310 Source:22 Dest:255 Len:8 Data:1,C1,70,FF,FF,FF,FF,FF

Do I something wrong?
Does the lib need something more than a pure Wemos D1 mini ESP32 to test for output?

ESP32 versions

HI. I'm about to buy an ESP32. Can you suggest a link to purchase an ESP32 that is 100% compatible with the library. I understand that some models are not fully supported.

Thank you.

PS: I Think ESP-32S ESP-WROOM-32 ESP32 WIFI is not a good choice

read CAN

Hi Timi. Help me please! I want to get raw data from CAN bus, in nmea 2000 network! How can they be read?

ESP32 new version S2 S3 C3

Hello, thank you for your fantastic libraries

Unfortunately Arduino detects several errors when using the new ESP32 (S2,S3,C3). I'm currently trying
sergei/NMEA2000_esp32_twai (https://github.com/sergei/NMEA2000_esp32_twai)

You could implement the right libraries for the various devices in the NMEA2000_CAN.h file.

#elif USE_N2K_CAN == USE_N2K_ESP32_CAN
#if CONFIG_IDF_TARGET_ESP32S2
#include <NMEA2000_esp32_twai.h>
tNMEA2000 &NMEA2000=(new NMEA2000_esp32_twai());
#elif CONFIG_IDF_TARGET_ESP32S3
#include <NMEA2000_esp32_twai.h>
tNMEA2000 &NMEA2000=
(new NMEA2000_esp32_twai());
#elif CONFIG_IDF_TARGET_ESP32
#include <NMEA2000_esp32.h>
tNMEA2000 &NMEA2000=*(new tNMEA2000_esp32());
#else
#error "Unrecognized ESP."
#endif

ESP32, NMEA2000_esp32: Half speed (125kbps)?

Hi,
First let me start by saying how much I appreciate the NMEA2000 project and I have already used it successfully with a couple of Arduino MEGAs although way through to talking with a Garmin display -- This is a great project! The MEGAs worked fine on the NMEA side, but I needed more processing power on the hardware control side so I upgraded to an ESP32-Wroom-DA. This worked fine with the temperature sample as well as my application code when streamed to the serial port and an Actisense reader (brilliant instrumentation method BTW). However, it didn't work with my Garmin display and I determined that the but rate was half speed with an oscilloscope. I think I found the reason -- The chip manufacturer changed added a bit that toggles the CAN bus to half speed by default. I also think I found where this is dealt with by the NMEA2000_esp32.CPP:

//enable all interrupts
MODULE_CAN->IER.U = 0xef;  // bit 0x10 contains Baud Rate Prescaler Divider (BRP_DIV) bit

I changed this by what I thought was the correct bit, but the speed didn't change on my scope. I even set it 0x00 and 0xff and it did not change. Didn't seem to affect it either way...

I then tried to force the speed to 500KPS by changing the CAN speed in the following and I did not see it affect the output either..

tNMEA2000_esp32::tNMEA2000_esp32(gpio_num_t _TxPin, gpio_num_t _RxPin) :
tNMEA2000(), IsOpen(false),
speed(CAN_SPEED_250KBPS), TxPin(_TxPin), RxPin(_RxPin),
RxQueue(NULL), TxQueue(NULL) {
}

I think the fix is already in the files, but I'm just not seeing what is probably right before my eyes.. I'm more of a hardware guy, so I can use all the help I can get!

Please let me know if anyone can provide guidance...

Thanks!
Randy

Sketch not compiling with ESP-32-S3-WROOM-1 Board

My Code does Compile fine with standard Board for ESP32 D1 mini but not for a ESP-32-S3 chip. There i get the following errors:

/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp: In member function 'void tNMEA2000_esp32::CAN_init()':
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:123:23: error: 'PERIPH_CAN_MODULE' was not declared in this scope
   periph_module_reset(PERIPH_CAN_MODULE);
                       ^~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:123:23: note: suggested alternative: 'PERIPH_RSA_MODULE'
   periph_module_reset(PERIPH_CAN_MODULE);
                       ^~~~~~~~~~~~~~~~~
                       PERIPH_RSA_MODULE
In file included from /Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_reg.h:21,
                 from /Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:32:
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:127: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);
                           ^~~~~~~~~~~~~~~~~~~~~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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)
                                                                   ^~~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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)))
                                              ^~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:127: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);
   ^~~~~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:127:27: note: suggested alternative: 'SYSTEM_PERIP_CLK_EN1_REG'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
                           ^~~~~~~~~~~~~~~~~~~~~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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)
                                                                   ^~~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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)))
                                              ^~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:127: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);
   ^~~~~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:127: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);
                                                   ^~~~~~~~~~~~~~~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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)
                                                                                        ^~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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)))
                                              ^~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:127: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);
   ^~~~~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:127:51: note: suggested alternative: 'DPORT_REG_CLR_BIT'
   DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_CAN_CLK_EN);
                                                   ^~~~~~~~~~~~~~~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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)
                                                                                        ^~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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)))
                                              ^~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:127: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);
   ^~~~~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:128: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);
                             ^~~~~~~~~~~~~~~~~~~~~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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)
                                                                   ^~~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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))))
                                              ^~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:128:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:128:29: note: suggested alternative: 'SYSTEM_PERIP_RST_EN1_REG'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
                             ^~~~~~~~~~~~~~~~~~~~~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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)
                                                                   ^~~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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))))
                                              ^~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:128:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:128:53: error: 'DPORT_CAN_RST' was not declared in this scope
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
                                                     ^~~~~~~~~~~~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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)
                                                                                        ^~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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))))
                                              ^~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:128:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:128:53: note: suggested alternative: 'DPORT_DATE_REG'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
                                                     ^~~~~~~~~~~~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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)
                                                                                        ^~~
/Users/user/Library/Arduino15/packages/esp32/hardware/esp32/2.0.14/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))))
                                              ^~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:128:3: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
   DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_CAN_RST);
   ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:132:23: error: 'CAN_RX_IDX' was not declared in this scope
  gpio_matrix_in(RxPin,CAN_RX_IDX,0);
                       ^~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:132:23: note: suggested alternative: 'TWAI_RX_IDX'
  gpio_matrix_in(RxPin,CAN_RX_IDX,0);
                       ^~~~~~~~~~
                       TWAI_RX_IDX
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:193:20: error: 'ETS_CAN_INTR_SOURCE' was not declared in this scope
     esp_intr_alloc(ETS_CAN_INTR_SOURCE,0,ESP32Can1Interrupt,NULL,NULL);
                    ^~~~~~~~~~~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:193:20: note: suggested alternative: 'ETS_MAX_INTR_SOURCE'
     esp_intr_alloc(ETS_CAN_INTR_SOURCE,0,ESP32Can1Interrupt,NULL,NULL);
                    ^~~~~~~~~~~~~~~~~~~
                    ETS_MAX_INTR_SOURCE
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:200:27: error: 'CAN_TX_IDX' was not declared in this scope
     gpio_matrix_out(TxPin,CAN_TX_IDX,0,0);
                           ^~~~~~~~~~
/Users/user/Documents/Arduino/libraries/NMEA2000_esp32-master/NMEA2000_esp32.cpp:200:27: note: suggested alternative: 'TWAI_TX_IDX'
     gpio_matrix_out(TxPin,CAN_TX_IDX,0,0);
                           ^~~~~~~~~~
                           TWAI_TX_IDX

exit status 1

Compilation error: exit status 

Can Ports are set as follow:

#define ESP32_CAN_TX_PIN GPIO_NUM_10  
#define ESP32_CAN_RX_PIN GPIO_NUM_9

Is it possible to Support S3 Boards?
Thanks for any Help

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.