Thank you for your fast reply

I don't quite understand the part with commenting out #define N2k_SPI_CS_PIN 10
I thought I did this to overwrite the CS_PIN 53 that is used by Mega, to instead use the CS_PIN10 for the UNO?
When I comment out this line, I can no longer see the light on TX or RX. I also tried to change the number from 10 to 9 (as you suggested in the issue you linked to), but also then, the light on TX and RX is gone. I used my multimeter on the CAN-BUS shield to confirm that Arduino UNO pin 10 (SS), 11(MOSI), 12(MISO) and 13(SCK) goes to MCP2515 pins 16 (CS), 14(MOSI), 15(MISO) and 13(SCK).
I find it a bit strange, though, that both RX and TX is lit, even when nothing is connected to the DB9-connector on the CAN-BUS shield.
Is it necessary to have the interrupt-cabel to get the communication to work? According to your schema, the MCP2515 INT, pin 12, should be connected to Arduino pin SCL, but the CAN-BUS shield has this on digital pin 2 instead. So, since I have not yet connected it - do I need it? And if so - what changes should I do to change Arduino pin SCL to Arduino pin 2? And - what changes can I do to drop/skip using the interrupt?
Is there enough memory as default?
freeMemory()=483
freeMemory()=483
Also, thanks to the "NMEA2000.SetN2kCANMsgBufSize(2);", I no longer need to have those Serial.println(1,2,3,4) lines that I had in the beginning. So, that part seems a little better.
However, when I run in debug-mode now, I no longer see the "ISO Address claim", only the three other. Not sure how important that is, though.
So, to summarize - I'm still unable to get det arduino to display on the MFD. I have not connected the Interrupt-signal to the CAN-BUS shield. The TX and RX on the CAN-BUS shield is blinking verry fast (previously I think it was constantly lit). The NGT-1 is only blinking on that one led that is always blinking when connected to the gate (on the boat).
Any further troubleshooting suggestions?
This is my code now:
// Demo: NMEA2000 library. Send main cabin temperature to the bus.
#include <Arduino.h>
#include <MemoryFree.h>
#define N2k_SPI_CS_PIN 10
#include <NMEA2000_CAN.h> // This will automatically choose right CAN library and create suitable NMEA2000 object
#include <N2kMessages.h>
// List here messages your device will transmit.
const unsigned long TransmitMessages[] PROGMEM={130310L,130311L,130312L,0};
void setup() {
// Set Product information
NMEA2000.SetProductInformation("00000001", // Manufacturer's Model serial code
100, // Manufacturer's product code
"Simple temp monitor", // Manufacturer's Model ID
"1.1.0.21 (2016-12-31)", // Manufacturer's Software version code
"1.1.0.0 (2016-12-31)" // Manufacturer's Model version
);
// Set device information
NMEA2000.SetDeviceInformation(112233, // Unique number. Use e.g. Serial number.
130, // Device function=Temperature. See codes on http://www.nmea.org/Assets/20120726%20nmea%202000%20class%20&%20function%20codes%20v%202.00.pdf
75, // Device class=Sensor Communication Interface. See codes on http://www.nmea.org/Assets/20120726%20nmea%202000%20class%20&%20function%20codes%20v%202.00.pdf
2040 // Just choosen free from code list on http://www.nmea.org/Assets/20121020%20nmea%202000%20registration%20list.pdf
);
// Uncomment 2 rows below to see, what device will send to bus. Use e.g. OpenSkipper or Actisense NMEA Reader
Serial.begin(115200);
NMEA2000.SetForwardStream(&Serial);
// If you want to use simple ascii monitor like Arduino Serial Monitor, uncomment next line
//NMEA2000.SetForwardType(tNMEA2000::fwdt_Text); // Show in clear text. Leave uncommented for default Actisense format.
// If you also want to see all traffic on the bus use N2km_ListenAndNode instead of N2km_NodeOnly below
NMEA2000.SetMode(tNMEA2000::N2km_NodeOnly,3);
//NMEA2000.SetDebugMode(tNMEA2000::dm_Actisense); // Uncomment this, so you can test code without CAN bus chips on Arduino Mega
NMEA2000.EnableForward(false); // Disable all msg forwarding to USB (=Serial)
NMEA2000.SetN2kCANMsgBufSize(2);
NMEA2000.SetN2kCANSendFrameBufSize(30);
// Here we tell library, which PGNs we transmit
NMEA2000.ExtendTransmitMessages(TransmitMessages);
NMEA2000.Open();
}
void loop() {
SendN2kTemperature();
NMEA2000.ParseMessages();
}
double ReadCabinTemp() {
return CToKelvin(22.5); // Read here the true temperature e.g. from analog input
}
double ReadWaterTemp() {
return CToKelvin(15.5); // Read here the true temperature e.g. from analog input
}
#define TempUpdatePeriod 2000
void SendN2kTemperature() {
static unsigned long TempUpdated=millis();
tN2kMsg N2kMsg;
if ( TempUpdated+TempUpdatePeriod<millis() ) {
TempUpdated=millis();
//Serial.print("freeMemory()=");
//Serial.println(freeMemory());
SetN2kTemperature(N2kMsg, 1, 1, N2kts_MainCabinTemperature, ReadCabinTemp());
NMEA2000.SendMsg(N2kMsg);
SetN2kEnvironmentalParameters(N2kMsg, 1, N2kts_MainCabinTemperature, ReadCabinTemp());
NMEA2000.SendMsg(N2kMsg);
SetN2kOutsideEnvironmentalParameters(N2kMsg, 1, ReadWaterTemp());
NMEA2000.SendMsg(N2kMsg);
// Serial.print(millis()); Serial.println(", Temperature send ready");
}
}