NMEA 2000 Shield

I read the posts bit back...

When you see message "CAN device ready Running ... ", it means that Mega communicates with MCP2515 and CS must be right. You can easily test by changing CS definition to e.g. 9 and you should see "CAN device failed..."

The problem is so after MCP2515. It can be on int pin definition or chrystal definition. Example should work without interrupt, when you do not have too much traffic. So you can comment int pin definition until you get some data out.

Since you have seeed studio version it uses default 16MHz chrystal. Some other manufacturers shields uses 8 MHz chrystal and requires definition for that.

On the bus side there are two possible problems. Mixing CANH/CANL and missing termination resistors. With standard colours CANH is white and CANL is blue wire. And on bus it is best to have exactly 2 termination resistors. This means that if you measure with ohm meter between CANH/CANL, you should see 60 ohm resistance. If not, you have to add resistors to both end of the longest bus. In test table with short cable (<2 m) I have time to time only one resistor and it still works. So if you are doing table test with DST800 and Mega, close P1 on shield.

I just tested with my old Mega test board and DST800 with example DataDisplay2. The shield is my hand made, but similar as Seeeds shield except pins.

  • Works fine with or without interrupt. When powered, starts showing
    In Main Handler: 128259
    Boat speed: SOW:0.00, SOG:not available, Paddle wheel
    ...
  • Works with 1 m bus with one termination resistor
  • Does not work without any termination resistors.