To get some better monitoring of data for speed, electric consumption etc. I am currently trying out the Openplotter "Suite". It is an open source boat monitoring and chart system.

Electric outboard motor setup

The sailboat have an electric outboard motor for propulsion - This is the battery setup for that.

We feed some data directly into SignalK (gps, Ve.Direct)
- For data from the Arduino Nano 33 IoT I found it easier to use Node Red and MQTT to be the "middle man".

For gps data I have a 10+ years old hand-held Garmin Gps that just needed an Arduino Uno to hand over the NMEA 0183 data to the USB of the RPi.

The Nano IoT have an on board IMU (accelerometer + gyro) that I use to get pitch and roll of the boat. I also do a "slow" summary of the gyro data, that will tell if the boat is generally calm or moving about a lot.

We have an electric outboard for propulsion, when we don't go by sail - And I am very much looking forward to be able to map the speed of the boat to the consumed electric power of the outboard motor that the battery monitor shows us.

Raspberry Pi setup

Roll and pitch data

Most interesting and novel thing is the roll and pitch data, that I am capturing with the Arduino Nano 33 IoT.

All the movement data comes from the on board IMU on the Nano 33 IoT.

  • From the accelerometer we get the actual roll and pitch of the boat right now
  • From the gyroscope, I do a "summarizing" of the gyro data over time (some seconds). This gives a way to measure the general "rest" or "unrest" of the boat. If the boat lies still in the water without waves, the numbers from the "Gyrosum" will be close to 0. But in waves and wind, the gyrosum will increase.

Node Red on the Raspberry Pi pick up the data using MQTT and pass on the data to Thingspeak to view in the world.

Here is a view of the live data

Kraken Status - ThingSpeak IoT
Kraken Status on ThingSpeak. ThingSpeak is the open IoT platform with MATLAB analytics.

Code on the Arduino Nano 33 IoT calculating the Gyrosum and sending data as MQTT: