NMEA 2000 Shield

Played with two dues and display connected as a bus. Both dues can see display info trough actisense listener as it is turned on. When the other due has Temperature monitor loaded it can't be seen on the other board with actisense listener. Also send failed appears after a while as previously.

Unfortunately I can not produce that. I have only one due, so I can not test with two dues. But with due/TemperatureMonitor and Teensy/ActisenseListener it works fine. If I disconnect Teensy, "Send failed" appears, but immediately after powering it on, also due starts to send.

To exclude software problem is it possible to download program to due from a file instead of first compiling it from sketch and libraries on my own computer? If so then both problems with libraries and Arduino programming IDE on my computer would be excluded. Other way around would be to test my hardware with known working environment.
I think I have the correct due can and NMEA 2000 due as if I remove either of them compiling fails and when I download them from your repository compiling is successful. Could there be a problem in the IDE on my computer?
I have two different CAN transceivers and they both receive but neither of them send with this software. Anyhow I have tested them both with a test program behind this link and it says they are ok: http://copperhilltech.com/content/Due_2CAN_Channel_Test.zip
After testing i have removed all of that CAN stuff from my computer.

I have IDE 1.83, I do not believe that is the problem. Could you recheck STBY pin on MCP2562! In Coppertechhill code there is code:

cRetCode = Can0.begin(lBaudrate, ENABLE_PIN_CAN0);

and
#define ENABLE_PIN_CAN0 62

In my examples there is no enable pin used and STBY has been expected to be connected to GND. Start e.g. TemperatureMonitor and measure with voltmeter that STBY has 0 voltage.

The IDE on my computer is the same then. Pins 2 and 8 are connected to ground on MCP2562. If i solder another MCP2562 with connections for due and mail it to you after having tested what it does would you test it yourself? You would not have to return it.

Hi Timo and all.

I'm new here and for starters I'd like to say thanks to all of you for contributing tons of useful information on this topic. In fact, the info is so much it is overwhelming, for me being a newbie anyway.

Since this topic was started lots have changed with regards to new hardware available and changes to sketches as well, where to start.

I guess keeping it simple is the way to go for starters.

Basically I need some guidance as to what direction to go in in order to inject IMU heading data into my fishing boat NMEA2000 network.

I don't have any hardware yet so this is a fresh start, I'd like to keep it as cheap, small, simple and the least power consuming as possible. (with "No Hardware" I'm not referring to my boat equipment, I mean no MicroPrcessor Unit, CanBus Shield, Serial Converters etc.)

At a later stage I'd like to further my knowledge with NMEA0183 <-> NMEA2000 data sharing and monitoring.

Some direction and opinions would be much appreciated.

Thanks guys.

Heikkif - yes, I can test it.

As I have many times mentioned on this list I prefer at least Teensy 3.2. It draws only 90 mA current.

But before goint to hw, it is best to have some kind of idea about the goal. Either you did not mention what your IMU sends.

timolappalainen:
As I have many times mentioned on this list I prefer at least Teensy 3.2. It draws only 90 mA current.

But before goint to hw, it is best to have some kind of idea about the goal. Either you did not mention what your IMU sends.

Haven't bought any components yet, I was hoping for good recommendations before I go out and spend money.

Yes, but I can not give any recommendations, if you do not define any goal. And what about IMU - do you have any? Do you have or have you planned to buy some MFD? What sensors you would like to have? Did you thought to use PC, phone tablet? Etc.

I was thinking of using the SparkFun 9DoF Razor IMU, can it be combined with your Teeny 3.2 setup in order to inject heading data to NMEA2000 network?

I would probably use my PC for starters to set everything up and monitor for correct operation, thereafter it should be externally powered and run as a standalone system as to have a stable heading on my Lowrance Elite 7Ti unit.

One company has started to make Teensy based sensor boards for NMEA2000. They contacted me due to my library and send me some sample boards. There is one nice ready IMU board. I can ask are they ready to sell.

On the other hand I have tested different IMU:s and none of then can not beat my GPS compass, which gives reliable 1 deg heading in any condition and boat tilt. You can get reasonable GPS compass in about 1000 € or spent 50-100 hours with IMU:s.

timolappalainen:
One company has started to make Teensy based sensor boards for NMEA2000. They contacted me due to my library and send me some sample boards. There is one nice ready IMU board. I can ask are they ready to sell.

I'd be interested thanks

timolappalainen:
You can get reasonable GPS compass in about 1000 € or spent 50-100 hours with IMU:s.

Lowrance Point 1 GPS/Heading antenna €280, but that defeats the object of accomplishing the task myself as a project.

Thanks for your input.

Hi Johannes and Timo,

A bit offtopic maybe. I have been building compass also. It works but accuracy is not within 1 deg more like 3 degs. Self made compass might be feasible to control tiller pilot as gyro and heel data is also available from IMU. I am using DUE for this as it was the first thing I bought for another purpose. Sparkfun has currently 3 products for this purpose. There are other sources also. For MPU 9250 there is no library from Sparkfun that would run on DUE. Haven't found elsewhere either. I am using LSM9DS1 which I can read to DUE. Otherwise ok but magnetometer needs temperature compensation and that I had to program on Arduino. I haven't found out how sensors own temperature compensation works. The sensor has temperature output but it looks like the resolution is a bit coarse compared to the slope of compensation needed. That limits the accuracy. LSM9DS1 means lot of calibration and each sensor needs its own calibration so if one needs to replace the sensor the calibration has to be done again. Third one on Sparkfun would be that razor Johannes mentioned. It uses MPU 9250. It is not clear to me if the libraries can be loaded to for example teensy as well. If so then why not to use MPU 9250 and some board that is easily CAN-compatible. MPU 9250 should have factory calibration data stored in it. I do not know if the sketches can use it. People mention good calibration is needed with MPU 9250 also.
Some links worth checking:

Sailboat Instruments: Building your own NMEA 2000 Device (this made me buy DUE when I found out Garmin GNX 20 does not have shallow water alarm)
http://www.pypilot.org/
GitHub - seandepagnier/RTIMULib2: 9-dof, 10-dof and 11-dof IMU fusion library for Linux systems (development version)
GitHub - kriswiner/MPU9250: Arduino sketches for MPU9250 9DoF with AHRS sensor fusion
Arduino Project Hub

Thanks Heikkif, I'll look at your links and see what I can find useful.

I see the Genuino 101 has onboard IMU, wonder if this is worth looking at and if it would be compatible with the Tweeny 3.2 setup to get IMU data onto the Can Bus network?

"I see the Genuino 101 has onboard IMU" It has gyro and accel but for compass magnetometer is also needed.

Heikkif:
"I see the Genuino 101 has onboard IMU" It has gyro and accel but for compass magnetometer is also needed.

Aahaa, thanks mate

Hi,

I want to try to use a DUE to translate all the analog engine data from my V8 to be shown on my Raymarine Axoim through NMEA2000.

To do so I wanted to play a bit with the DUE and the multidevice example file.
I get this error while compiling it:

"In file included from /home/thomas/Arduino/libraries/NMEA2000_due-master/NMEA2000_due.cpp:28:0:
/home/thomas/Arduino/libraries/due_can-master/src/due_can.h:23:24: fatal error: can_common.h: No such file or directory
#include <can_common.h>"

I added all the libraries from github which where asked for, also the due_can but without luck.

First I tried it under Windows but there I got a lot of error due to the path to the libraries as there where wirtten / instead of \ in the pathes (if this was the reason for).

So can you help to find why it wants the can_common.h even if it not existing in the due_can libraries or what I am doing wrong?

I just choosed the example "MultiDevice" and added the NMEA200_DUE librarie due to I want to use the Due.

Regards!

I have not yet updated the docs. Collin has made some changes and it does not compile anymore and I have not had time to check those. Please remote you current due_can completely and install the one under my repositories: GitHub - ttlappalainen/due_can: Object oriented canbus library for Arduino Due compatible boards

In c/c++ language one should use only /, since then code in compatible with Linux and Mac. Translator will take care of right way of pointing directories.

Also I do not any use for you to start with MultiDevice example. I prefere to use some simpler example like TemperatureMonitor.

Hi again Timo,

I soldered another MCP2562 with connections for DUE. Is it ok to post it to Kave Oy with your name?