Table of Contents

Captain's Log

Stardate 20240827

I didn't realise how long it was since I last wrote here. I've been busy working on this and other projects.

This evening we tested a Nyan box on a boat in Granton harbour. :) Connected to the NMEA2000 bus, it picks up wind instruments, position, and other data, and sends it out over LoRa. We made contact with a meshtastic station over the water in Fife.

Stardate 20240428

Since last update, I've mostly been working on:

Stardate 20240312

I am having trouble with WiFi and web interface on two ESP32 devices. The Heltec Wireless stick is not connecting at all, and the Heltec V3 is not accepting a change of SSID, and says it can't see the access point (same error reported by the wireless stick).

Positive: I have got NMEA2000 / CAN working! A RPi Pico device is receiving and decoding PGNs sent by SignalK.

Stardate 20240309

Today I have been mostly working on SignalK and NMEA2000. Trying SignalK security tokens (not tested yet because the WiFi on the dev board broke). Testing (USB CAN adapter, got SignalK to output data on it, viewed in Wireshark. Also code for handling multiple GNSS sources (Position Accuracy Assessment).

I have setup a remote dev environment using a single board computer with an ESP32 LoRa dev board connected by USB, and reset pin on a GPIO. Accessed over wireguard, this makes a very convenient way to work without having to move around a bunch of hardware and reconfigure networking when I want to work somewhere else.

I tried setting up a WiFi AP on the remote machine, but the dev board was not connecting to that either.

I also setup VNC. Until now I always used X forwarding, but it was super slow. I had assumed that something which knew the protocol and wasn't just shovelling bitmaps would be faster, but apparently not.

Stardate 20240305

Work is progressing on the NYAN project. I am developing a prototype device as a meshtastic module, and building some radios to fit to boats and buildings.

Meshtastic does much of what is needed, but is also quite annoying to work with. Getting there though, I have a working software module / extension for it. The module adds marine network support, sensor processing, and meteorological functions. Currently it is reading data from an NMEA0183 over TCP stream, and sending wind reports over the LoRa mesh. It can also send some sensor data in SignalK format over TCP (in a limited hacky way). NMEA2000 / CAN bus support is in development. Talking to the CAN module proved very frustrating because of highly unintuitive and undocumented Arduino SPI functions (bug report filed). SignalK also difficult to talk to because they have introduced something called “security”, which requires a special dance to talk to it, currently bypassed.

Meshtastic does not support OTA flashing, so at least for prototyping, I shall use Raspberry Pis to talk to them. These can also run SignalK and OpenCPN. Procurement is incredibly slow, but eventually when everything arrives, I shall be building base stations and a boat station for testing. These will consist of a box with a LoRa dev board, a Pi, power supply, NMEA2000 interface, and hopefully decent aerials.

I'm interested to see how it does at one base station site, where it will be colocated with two other LoRa transmitters on the same band. Meshtastic always reports false preamble detection anyway, so seems like the carrier sense doesn't work. We can also test it with 100W of HF.

I've just made a script to reset the ESP32 boards with a pi GPIO. Boards with USB→serial chips can do this anyway with correct poking of the UART control lines, but it's nicer to not interfere with a serial terminal, and the ESP32-S3 boards with directly connected USB seem to need a manual reset and press of the flashing mode button.