few days ago I published a new ocaml library called nmea, which is essentially a parser for NMEA0183 sentences, a format for encoding instruments data in boats. There are many sentences, regarding GPS, compass data, wind, air pressure, water temperature, waypoints handling, ais, autopilot and more; at the moment the library is able to decode GPS sentences and compass data, but I’ll implement more sentences in the spare time. I tested it with my boat GPS and with a gps usb dongle.
After that, I started a new tiny experiment called sail-gadgets, which is a Gtk program that elaborates and displays NMEA data received from various boat instruments (wind vane, autopilot, gps, radar, ais, etc). Sail-gadgets can be extended with “gadgets” modules, each one providing new functionalities and new tabs to the main interface.
Data from sensors are handled using React signals, so in every gadget we can compose data from various sensor to obtain new reactive values.
The gadgets I’m planning to write:
- dashboard: shows current position, speed, heading, tripdist, compass
- satview: shows current connected gps satellites (partially done)
- wind: shows wind indicator with true / apparent speed and direction
- radar: shows AIS and Radar targets in range
- mob: allows to drop a marker in the current position, and drive you to that point
- startline: helper for regatta start
- track: shows current track in a vector map
The hard thing in my opinion is writing new custom widget with cairo (compass, radar, and things like that).
Finally, the project is intended to run over gtk-broadway, so every html5 enabled device can access the application.
Hope there are some sailor here that want to join writing some gadgets Repos are: