Mikhail Grushinskiy Turns M5Stack Toughs Into Handy Graphical Boat Instrumentation Units

A companion to the BBN OS, these Arduino sketches turn M5Stack's weatherproof Tough into handy displays and controls for your boat.

Developer and boater Mikhail Grushinskiy has released a series of Arduino sketches designed to turn an M5Stack Tough into any one of a range of handy boating instrumentation units — from autopilot remote control to engine status, weather information, location, and speed.

"[These are] M5Stack Tough (ESP32) Arduino sketches," Grushinskiy explains of his latest project, which aims to turn M5Stack's waterproof Espressif ESP32 development system into a range of handy instrumentation units for boats, "with [a] LVGL UI [User Interface]. Mostly oriented for boating projects."

If you've a boat, an M5Stack Tough could prove an ideal companion for everything from motor monitoring to autopilot control. (📷: Mikhail Grushinskiy)

The project is an offshoot of the Bareboat Necessities Operating System, also known as BBN Marine Linux OS, a fork of Frederic Guilbault's LysMarine which aims to make it as easy as possible to build a centralized boat computer atop a Raspberry Pi 4 or compatible single-board computer. The M5Stack Tough, though, is simultaneously more affordable and better-suited to marine life than a Raspberry Pi 4 outside a third-party housing.

At the time of writing, Grushinskiy had implemented a wide range of displays and instruments through the sketches — including a PyPilot-compatible autopilot remote control system, an inertial measurement unit (IMU) display, engine status, battery status, wind information, boat speed, water depth, rudder position and rate of turn, heel and pitch, GPS, compass, sunset and sunrise, tank level, and a clock. More still are planned, including the addition of a lightning sensor, barometer, LoRa-based tracking system, full weather display, anchor alarms, fog alarm, AC control, and even a music playback interface for downtime.

Grushinskiy has implemented a broad array of displays into the project, with more to come. (📷: Mikhail Grushinskiy)

The project implements a selection of interfaces, including PyPilot, the Network Time Protocol (NTP), mDNS for device and service discovery, MQTT, and partial implementations for NMEA 0183 and SignalK. The sketches should also be compatible with other models in the M5STack family, though only the Tough comes supplied out-of-the-box with a housing suitable for marine and outdoor use.

The full source code is available on Grushinskiy's GitHub repository under the permissive MIT license.

ghalfacree

Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.

Latest Articles