Weather and Navigation Computer System
HARDWARE AND SOFTWARE BUILD PROJECT
I recently designed, built and wrote code for an integrated weather and marine navigation computer system. The purpose of this project was to create a system for recording, analyzing and utilizing relevant weather related data for navigation on sailboat passages. After building and pilot testing the machine and software, the system was used during a 4,600 nautical mile passage from the Virgin Islands to California via the Panama Canal, which I was hired to captain. The computer was critical to our offshore navigational decision-making.
The system is comprised of a server, a remote sensing unit, and multiple thick or thin clients. The server receives, multiplexes and broadcasts weather and navigation data, and hosts web apps that utilize this data and can be run from the web browser of connected devices. The remote sensing unit measures environmental and global satellite positioning data which it then sends to the server wirelessly. The primary client is a Chromebook running chartplotting software that utilizes the data being broadcast by the server. This laptop is also able run the web apps being hosted by the server. Other phones, tablets and laptops are also able to connect to the network and run apps that utilize this data.
See below for more details about the computer system, including photographs of the various stages of this project.
Server
The server is a Raspberry Pi computer with several peripherals. The Pi runs the OpenPlotter platform on Linux. The peripherals include a 9-axis (gyro + accelerometer + compass) motion tracking device to measure magnetic heading and heel angle, two voltage/current sensors and two OLED displays. The server can be powered by a micro-USB cable for portability and testing but is designed to primarily run on 7.5-30VDC. The input power runs through one of the voltage/current sensors and to an output port which provides a way to measure power usage for auxiliary devices. The input power also runs through a voltage regulator that provides 5VDC to the Pi, measured by the other voltage/current sensor. The server is encased in the repurposed housing of a solar charge controller.
The server's primary purpose is to receive, multiplex and broadcast meteorological and navigation data over WiFi in Signal K and NMEA data formats. It also acts as a Signal K server which allows locally hosted custom web apps to be run from connected devices. This allows for quick developments of apps that utilize this data and can be run from any device with WiFi and a web browser. The server also has the capability of running chart plotting software itself, but the system is designed for the server to be run headless, while running chart plotting software on a connected client to allow the server to run with more stability.
Remote Sensing Unit
The remote sensing component of the system is comprised of a microcontroller, three environmental sensors and a multi-GNSS module. The MCU processes the data from these peripherals into usable formats and transmits them to the server over WiFi.
The base of the remote sensing unit is a MCU with an ATSAMD21G18 ARM Cortex M0 processor and ATWINC1500 WiFi module running firmware that I wrote in C. The unit measures temperature, humidity and atmospheric pressure, and sends Signal K formatted data to the server. The unit also receives configured proprietary NMEA sentences from the u-blox M8 GNSS chip and sends Signal K formatted data and standard NMEA sentences to the server. The u-blox chip tracks three GNSS systems concurrently (GPS, GLONASS and BeiDou) for high performance positioning. The accuracies for the sensors are ±8 Pascals, ±0.3°C and ±2% relative humidity. I enclosed the unit in a waterproof case with a pressure equalizing valve for accurate atmospheric pressure measurements.
Client
The client is a Chromebook, which runs OpenCPN chartplotting software on Linux. OpenCPN receives NMEA formatted navigation data from the server over the network. It also functions to download and display GRIB data, OPC surface analysis maps and GOES images georeferenced over nautical charts. The software uses the GRIB data and the sailboat’s performance data from polar diagrams to calculate weather routes that optimize offshore passage speeds. The Chromebook also runs Signal K apps from the server on a web browser to track meteorological data.