@rhizomatics/signalk-boat-tech-directory-plugin 1.2.5 → 1.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/package.json +1 -1
  2. package/public/404.html +3 -3
  3. package/public/_astro/{MobileTableOfContents.astro_astro_type_script_index_0_lang.BcSo_yiZ.js → MobileTableOfContents.astro_astro_type_script_index_0_lang.C3fM4Kra.js} +1 -1
  4. package/public/_astro/Search.astro_astro_type_script_index_0_lang.DUk3asF9.js +11 -0
  5. package/public/_astro/TableOfContents.astro_astro_type_script_index_0_lang.BpJaGz7G.js +1 -0
  6. package/public/_astro/common.DpQ1cKKv.css +3 -0
  7. package/public/_astro/{page.LAbJoB63.js → page.Dwipeu-R.js} +1 -1
  8. package/public/_astro/starlight-toc.D4UDIxQL.js +1 -0
  9. package/public/charts/index.html +5 -5
  10. package/public/charts.md +21 -0
  11. package/public/checklists/index.html +13 -8
  12. package/public/checklists.md +18 -0
  13. package/public/contributing/index.html +6 -6
  14. package/public/contributing.md +44 -0
  15. package/public/directory.json +3367 -0
  16. package/public/downloads/example-after-sailing.pdf +0 -0
  17. package/public/downloads/example-arriving-on-boat.pdf +0 -0
  18. package/public/downloads/example-checklists/index.html +3190 -0
  19. package/public/downloads/example-checklists.md +424 -0
  20. package/public/downloads/example-checklists.pdf +0 -0
  21. package/public/downloads/example-checklists.xlsx +0 -0
  22. package/public/downloads/example-engine-service.pdf +0 -0
  23. package/public/downloads/example-hauled-out.pdf +0 -0
  24. package/public/downloads/example-heavy-weather-prep.pdf +0 -0
  25. package/public/downloads/example-laying-up.pdf +0 -0
  26. package/public/downloads/example-leaving-boat.pdf +0 -0
  27. package/public/downloads/example-pontoon-storm-prep.pdf +0 -0
  28. package/public/downloads/example-preparing-to-sail.pdf +0 -0
  29. package/public/downloads/example-splashing-prep.pdf +0 -0
  30. package/public/downloads/index.html +98 -0
  31. package/public/downloads/navigation-templates/index.html +95 -0
  32. package/public/downloads/navigation-templates.md +33 -0
  33. package/public/downloads/nmea-wifi-gateways/index.html +274 -0
  34. package/public/downloads/nmea-wifi-gateways.md +29 -0
  35. package/public/downloads/nmea-wifi-gateways.xlsx +0 -0
  36. package/public/downloads/tidal-planner.pdf +0 -0
  37. package/public/downloads/tidal-planner.xlsx +0 -0
  38. package/public/downloads.md +32 -0
  39. package/public/education/index.html +5 -5
  40. package/public/education.md +19 -0
  41. package/public/images/icons/excel.svg +7 -0
  42. package/public/images/icons/pdf.svg +7 -0
  43. package/public/index-of-terms/index.html +14 -11
  44. package/public/index-of-terms.md +422 -0
  45. package/public/index.html +16 -11
  46. package/public/index.md +33 -0
  47. package/public/llms-full.txt +577 -24
  48. package/public/llms-small.txt +32 -14
  49. package/public/llms.txt +21 -0
  50. package/public/news/index.html +5 -5
  51. package/public/news.md +11 -0
  52. package/public/open-source-projects/index.html +7 -5
  53. package/public/open-source-projects.md +112 -0
  54. package/public/pagefind/fragment/en_1adf671.pf_fragment +0 -0
  55. package/public/pagefind/fragment/en_24233ec.pf_fragment +0 -0
  56. package/public/pagefind/fragment/en_4d5de4a.pf_fragment +0 -0
  57. package/public/pagefind/fragment/en_6d5d648.pf_fragment +0 -0
  58. package/public/pagefind/fragment/en_7c5df85.pf_fragment +0 -0
  59. package/public/pagefind/fragment/en_81ef5fd.pf_fragment +0 -0
  60. package/public/pagefind/fragment/en_947d132.pf_fragment +0 -0
  61. package/public/pagefind/fragment/en_ad26c34.pf_fragment +0 -0
  62. package/public/pagefind/fragment/en_c78718d.pf_fragment +0 -0
  63. package/public/pagefind/fragment/en_dcacf53.pf_fragment +0 -0
  64. package/public/pagefind/fragment/en_e28225d.pf_fragment +0 -0
  65. package/public/pagefind/index/en_96e54a6.pf_index +0 -0
  66. package/public/pagefind/pagefind-entry.json +1 -1
  67. package/public/pagefind/pagefind.en_8cc2cbd2fe.pf_meta +0 -0
  68. package/public/protocols/index.html +5 -5
  69. package/public/protocols.md +51 -0
  70. package/public/reference/index.html +6 -6
  71. package/public/reference.md +9 -0
  72. package/public/robots.txt +4 -0
  73. package/public/servicing/index.html +11 -11
  74. package/public/servicing.md +25 -0
  75. package/public/sitemap-0.xml +1 -1
  76. package/public/sitemap.xml +1 -1
  77. package/public/social/index.html +5 -6
  78. package/public/social.md +64 -0
  79. package/public/vendors/index.html +8 -7
  80. package/public/vendors.md +190 -0
  81. package/public/_astro/Search.astro_astro_type_script_index_0_lang.3ca-UBSH.js +0 -11
  82. package/public/_astro/TableOfContents.astro_astro_type_script_index_0_lang.Csloo1VZ.js +0 -1
  83. package/public/_astro/common.CNhHhUwb.css +0 -3
  84. package/public/_astro/starlight-toc.CTCQXEge.js +0 -1
  85. package/public/pagefind/fragment/en_23ab65b.pf_fragment +0 -0
  86. package/public/pagefind/fragment/en_4639db7.pf_fragment +0 -0
  87. package/public/pagefind/fragment/en_984e7e2.pf_fragment +0 -0
  88. package/public/pagefind/fragment/en_98947e1.pf_fragment +0 -0
  89. package/public/pagefind/fragment/en_a5f2351.pf_fragment +0 -0
  90. package/public/pagefind/fragment/en_e8434a4.pf_fragment +0 -0
  91. package/public/pagefind/fragment/en_f135591.pf_fragment +0 -0
  92. package/public/pagefind/index/en_53ed34d.pf_index +0 -0
  93. package/public/pagefind/pagefind.en_9cb4ba703f.pf_meta +0 -0
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-sidebar class="astro-g5ptsecz"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Open Source Projects | Boat Tech Directory</title><link rel="canonical" href="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/open-source-projects/"/><link rel="sitemap" href="/@rhizomatics/signalk-boat-tech-directory-plugin/sitemap-index.xml"/><link rel="shortcut icon" href="/@rhizomatics/signalk-boat-tech-directory-plugin/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.2"/><meta name="generator" content="Starlight v0.42.1"/><meta property="og:title" content="Open Source Projects"/><meta property="og:type" content="article"/><meta property="og:url" content="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/open-source-projects/"/><meta property="og:locale" content="en"/><meta property="og:description" content="Software and firmware, including NMEA libraries."/><meta property="og:site_name" content="Boat Tech Directory"/><meta name="description" content="Software and firmware, including NMEA libraries."/><meta property="og:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><meta property="og:image:width" content="1536"/><meta property="og:image:height" content="1024"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><script>
1
+ <!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-sidebar class="astro-g5ptsecz"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Open Source Projects | Boat Tech Directory</title><link rel="canonical" href="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/open-source-projects/"/><link rel="sitemap" href="/@rhizomatics/signalk-boat-tech-directory-plugin/sitemap-index.xml"/><link rel="shortcut icon" href="/@rhizomatics/signalk-boat-tech-directory-plugin/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.5"/><meta name="generator" content="Starlight v0.42.4"/><meta property="og:title" content="Open Source Projects"/><meta property="og:type" content="article"/><meta property="og:url" content="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/open-source-projects/"/><meta property="og:locale" content="en"/><meta property="og:description" content="Software and firmware, including NMEA libraries."/><meta property="og:site_name" content="Boat Tech Directory"/><meta name="description" content="Software and firmware, including NMEA libraries."/><meta property="og:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><meta property="og:image:width" content="1536"/><meta property="og:image:height" content="1024"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><link rel="alternate" type="text/markdown" href="/@rhizomatics/signalk-boat-tech-directory-plugin/open-source-projects.md"><script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Boat Tech Directory","item":"https://boat-tech-directory.rhizomatics.org.uk/"},{"@type":"ListItem","position":2,"name":"Open Source Projects","item":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/"}]},{"@type":"CollectionPage","name":"Open Source Projects","description":"Software and firmware, including NMEA libraries.","url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/","isPartOf":{"@type":"WebSite","name":"Boat Tech Directory","url":"https://boat-tech-directory.rhizomatics.org.uk/"},"mainEntity":{"@type":"ItemList","numberOfItems":67,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#ais-catcher","item":{"@type":"Thing","name":"AIS-catcher","url":"https://github.com/jvde-github/AIS-catcher","description":"AIS receiver for software defined radio (SDR) dongles."}},{"@type":"ListItem","position":2,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#avnav","item":{"@type":"Thing","name":"AvNav","url":"https://www.wellenvogel.net/software/avnav/docs/beschreibung.html?lang=en","description":"Plotter with Android app and SignalK integration. German with English docs."}},{"@type":"ListItem","position":3,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#bareboat-necessities","item":{"@type":"Thing","name":"Bareboat Necessities","url":"https://bareboat-necessities.github.io/my-bareboat/bareboat-os.html","description":"All in one operating system, incorporating OpenCPN, SignalK, PyPilot etc plus open source hardware projects."}},{"@type":"ListItem","position":4,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#bluebridge","item":{"@type":"Thing","name":"BlueBridge","url":"https://github.com/miniwinwm/BlueBridge","description":"Android app integration with NMEA data via MQTT and Bluetooth."}},{"@type":"ListItem","position":5,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#boathacks","item":{"@type":"Thing","name":"BoatHacks","url":"https://github.com/BoatHacks","description":"SignalK and ESP32 projects, including Ollama for local AI."}},{"@type":"ListItem","position":6,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#boatopenio","item":{"@type":"Thing","name":"BoatOpenIO","url":"https://github.com/bigbrainlabs/BoatOpenIO","description":"ESP-32 16-channel analog marine gateway for legacy VDO sensors, integrating analog instruments to MQTT and SignalK."}},{"@type":"ListItem","position":7,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#boatypi","item":{"@type":"Thing","name":"BoatyPi","url":"https://github.com/davedoesdemos/BoatyPi","description":"Open source hardware/software for boat ePaper display."}},{"@type":"ListItem","position":8,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#brineomatic","item":{"@type":"Thing","name":"BrineOMatic","url":"https://github.com/hoeken/brineomatic","description":"Watermaker controller for ESP32, open source hardware and software, integrates with SignalK and Home Assistant."}},{"@type":"ListItem","position":9,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#can-boat","item":{"@type":"Thing","name":"CAN Boat","url":"https://github.com/canboat/canboat","description":"NMEA2000 and NMEA 0183 CLI utilities."}},{"@type":"ListItem","position":10,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#d3kos","item":{"@type":"Thing","name":"d3kOS","url":"https://github.com/SkipperDon/d3kOS","description":"Raspberry Pi based navigation and automation platform."}},{"@type":"ListItem","position":11,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#discotime","item":{"@type":"Thing","name":"DiscoTime","url":"https://github.com/cr/discotime/","description":"Time and lat/long dashboard for long distance passages."}},{"@type":"ListItem","position":12,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#eink-labels-for-signalk","item":{"@type":"Thing","name":"eInk Labels for SignalK","url":"https://github.com/rhizomatics/signalk-einklabel-plugin","description":"SignalK plugin to send SignalK path data or API results to an BLE eInk Electronic Shelf Label using simple SVG templates. Optional add-on plugin for AI generated screens."}},{"@type":"ListItem","position":13,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#frothfet","item":{"@type":"Thing","name":"FrothFet","url":"https://frothfet.com/","description":"Open source hardware and software for digital switching boat DC loads."}},{"@type":"ListItem","position":14,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#galadriel-plotter","item":{"@type":"Thing","name":"Galadriel Plotter","url":"https://github.com/VladimirKalachikhin/Galadriel-map","description":"Raster based chartplotter for low power servers."}},{"@type":"ListItem","position":15,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#gpsd","item":{"@type":"Thing","name":"gpsd","url":"https://gpsd.gitlab.io/gpsd/index.html","description":"GPS and AIS daemon wrapping NMEA0183 in its own simpler format. C, Python. Ubiquitous."}},{"@type":"ListItem","position":16,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#gweatherrouting","item":{"@type":"Thing","name":"GWeatherRouting","url":"https://gweatherrouting.org/","description":"Navigation and automated routing, Python/GTK4."}},{"@type":"ListItem","position":17,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#gypsy","item":{"@type":"Thing","name":"gypsy","url":"https://gypsy.freedesktop.org/","description":"Multiplexer for GPS NMEA data, daemon and C library, alternative to gpsd."}},{"@type":"ListItem","position":18,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#helm","item":{"@type":"Thing","name":"Helm","url":"https://github.com/StevenRidder/helm-public","description":"Clean-room re-engineered OpenCPN equivalent, alpha as of Q3/2026."}},{"@type":"ListItem","position":19,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#ilma","item":{"@type":"Thing","name":"Ilma","url":"https://ilma.sailorslog.io/","description":"Software based Navtex receiver for Raspberry Pi or similar."}},{"@type":"ListItem","position":20,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#imud","item":{"@type":"Thing","name":"imud","url":"https://github.com/richcreations/imud","description":"IMU (Inertial Measurement Unit)/Magnetometer multiplexer with NMEA stream for chartplotters."}},{"@type":"ListItem","position":21,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#kip","item":{"@type":"Thing","name":"Kip","url":"https://github.com/mxtommy/Kip","description":"SignalK dashboard / instrument display."}},{"@type":"ListItem","position":22,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#kplex","item":{"@type":"Thing","name":"KPlex","url":"https://www.stripydog.com/kplex/","description":"NMEA0183 multiplexer for Linux, Unix, macOS and OpenWRT. (Google Group)."}},{"@type":"ListItem","position":23,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#libweatherrouting","item":{"@type":"Thing","name":"libWeatherRouting","url":"https://dakk.github.io/libweatherrouting/","description":"Python weather routing library with linear iso-routing and shortest path routes."}},{"@type":"ListItem","position":24,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#maiana","item":{"@type":"Thing","name":"Maiana","url":"https://github.com/peterantypas/maiana","description":"AIS Transponder open hardware/software."}},{"@type":"ListItem","position":25,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#marine-chart-viewer","item":{"@type":"Thing","name":"Marine Chart Viewer","url":"https://github.com/wholybee/chartplotter","description":"QT6 based chart plotter for Windows, Linux and macOS. Displays ENC and CM93 charts and GSHHG basemap."}},{"@type":"ListItem","position":26,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#marineyachtradar","item":{"@type":"Thing","name":"MarineYachtRadar","url":"https://github.com/MarineYachtRadar","description":"MaYaRa server, display, OpenCPN and SignalK integration as open alternative to commercial radar processing."}},{"@type":"ListItem","position":27,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#marinux","item":{"@type":"Thing","name":"Marinux","url":"https://marinux.tuxfamily.org/","description":"Muplex NMEA multiplexer, OSD Depth echo-sounder display."}},{"@type":"ListItem","position":28,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#nm2k","item":{"@type":"Thing","name":"nm2k","url":"https://github.com/svalentinf/nm2k","description":"NMEA0183 and NMEA2000 web based visualization and analysis."}},{"@type":"ListItem","position":29,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#opencpn","item":{"@type":"Thing","name":"OpenCPN","url":"https://opencpn.org/","description":"Chart Plotter for macOS, Windows, Linux, Raspi and Android."}},{"@type":"ListItem","position":30,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#open-marine-systems","item":{"@type":"Thing","name":"Open Marine Systems","url":"https://github.com/OpenMarineSystems","description":"Home Assistant add-ons for navigation and anchor watch, installed via HACS."}},{"@type":"ListItem","position":31,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#open-boat-projects","item":{"@type":"Thing","name":"Open Boat Projects","url":"https://open-boat-projects.org/en/","description":"DIY hardware and open source projects, English and German."}},{"@type":"ListItem","position":32,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#openfairwind","item":{"@type":"Thing","name":"OpenFairWind","url":"https://github.com/OpenFairWind","description":"Alternative user interface, QT based, FairwindSK for SignalK on macOS, Windows, Linux, Android, iPhoje and iPad."}},{"@type":"ListItem","position":33,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#openplotter","item":{"@type":"Thing","name":"OpenPlotter","url":"https://openplotter.readthedocs.io/","description":"Combined project of SignalK, OpenCPN, PyPilot etc."}},{"@type":"ListItem","position":34,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#pygpsclient","item":{"@type":"Thing","name":"PyGPSClient","url":"https://github.com/semuconsulting/PyGPSClient","description":"Python GPS/GNSS testing, diagnostic and configuration, incl NMEA integration."}},{"@type":"ListItem","position":35,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#pypilot","item":{"@type":"Thing","name":"PyPilot","url":"https://pypilot.org/","description":"Python based auto-pilot."}},{"@type":"ListItem","position":36,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#rhizomatics-sailing","item":{"@type":"Thing","name":"Rhizomatics Sailing","url":"https://www.rhizomatics.org.uk/sailing/","description":"SignalK and Home Assistant plug-ins and associated apps, including integrations for eInk Electronic Shelf Labels, Teltonika modems and Bluetti power stations."}},{"@type":"ListItem","position":37,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#rob","item":{"@type":"Thing","name":"ROB","url":"https://github.com/OlivierLD/ROB","description":"Raspberry Pi On Board, Java and Python navigation utilities."}},{"@type":"ListItem","position":38,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#sail-o-vision","item":{"@type":"Thing","name":"Sail-O-Vision","url":"https://github.com/adam-gol/sail-o-vision","description":"Obstacle and wildlife detection with camera and NVIDIA Jetson."}},{"@type":"ListItem","position":39,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#sailtrack","item":{"@type":"Thing","name":"Sailtrack","url":"https://metisvela.github.io/sailtrack/","description":"Modular racing performance tracker using MQTT."}},{"@type":"ListItem","position":40,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#signalk","item":{"@type":"Thing","name":"SignalK","url":"https://signalk.org/","description":"Node.js pluggable framework for boat data distribution and analysis."}},{"@type":"ListItem","position":41,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#signalk-cli","item":{"@type":"Thing","name":"signalk-cli","url":"https://pypi.org/project/signalk-cli/","description":"Command line interface to explore and extract data from SignalK, including the History API and Deltas streaming. Exports to CSV, JSON, raw and Apache Arrow Feather dataframes."}},{"@type":"ListItem","position":42,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#smart-boat-innovations","item":{"@type":"Thing","name":"Smart Boat Innovations","url":"https://smartboatinnovations.com/","description":"Videos and articles on building a Raspberry Pi and Home Assistant based smart boat."}},{"@type":"ListItem","position":43,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#twocan","item":{"@type":"Thing","name":"TwoCan","url":"https://github.com/TwoCanPlugIn/TwoCanPlugIn","description":"NMEA2000 integration for OpenCPN."}},{"@type":"ListItem","position":44,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#venus","item":{"@type":"Thing","name":"Venus","url":"https://github.com/victronenergy/venus","description":"Victron Energy's open source OS for their GX products, available for self-hosting on Raspberry Pi."}},{"@type":"ListItem","position":45,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#x-engineering","item":{"@type":"Thing","name":"X Engineering","url":"https://xengineering.net/","description":"Open-source alternator regulator for lithium battery systems. Open hardware, GitHub project."}},{"@type":"ListItem","position":46,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#xilje","item":{"@type":"Thing","name":"Xilje","url":"https://github.com/Djaahny","description":"Garmin integration projects, incl plotter display of local web apps and PyPilot integration."}},{"@type":"ListItem","position":47,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#yacht-management-software-yms","item":{"@type":"Thing","name":"Yacht Management Software (YMS)","url":"https://yms.hoogi.de/","description":"Open-source, self-hosted yacht management software for sailing boats, designed for Raspberry Pi/Linux and offline operation."}},{"@type":"ListItem","position":48,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#minmea","item":{"@type":"Thing","name":"minmea","url":"https://github.com/kosma/minmea","description":"GPS NMEA0183 parser in C."}},{"@type":"ListItem","position":49,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#openskipper","item":{"@type":"Thing","name":"OpenSkipper","url":"https://openskipper.org/","description":"C# based NMEA2000, NMEA0183 and AIS integration, last updated 2023."}},{"@type":"ListItem","position":50,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#espos-ble-gateway","item":{"@type":"Thing","name":"espos-ble-gateway","url":"https://github.com/dirkwa/espos-ble-gateway","description":"SignalK BLE Gateway for ESP32 devices with 16Mb or more memory."}},{"@type":"ListItem","position":51,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#esp32-nmea2000-multiprotocol-gateway","item":{"@type":"Thing","name":"ESP32 NMEA2000 Multiprotocol Gateway","url":"https://github.com/JaCharer/ESP32_NMEA2000_Multiprotocol_Gateway","description":"Broadcast N2K as Signal K, NMEA 0183, and Actisense Binary. WebGUI. Begun in 2026."}},{"@type":"ListItem","position":52,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#esp32-nmea2000","item":{"@type":"Thing","name":"ESP32 NMEA2000","url":"https://github.com/wellenvogel/esp32-nmea2000","description":"NMEA2000 integration with USB, Wifi, 0183 on M5 Atom CAN and compatible with other ESP32."}},{"@type":"ListItem","position":53,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#nmea2000","item":{"@type":"Thing","name":"NMEA2000","url":"https://github.com/ttlappalainen/NMEA2000","description":"Arduino NMEA2000 interfacing library used in several commercial products."}},{"@type":"ListItem","position":54,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#nmea2000_ais_wifi_gw","item":{"@type":"Thing","name":"NMEA2000_ais_wifi_gw","url":"https://github.com/sailingfree/NMEA2000_ais_wifi_gw","description":"ESP32 based NMEA2000 gateway."}},{"@type":"ListItem","position":55,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#nmea2000_esp32","item":{"@type":"Thing","name":"NMEA2000_esp32","url":"https://github.com/ttlappalainen/NMEA2000_esp32","description":"ESP32 objects for use with NMEA2000 library."}},{"@type":"ListItem","position":56,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#nmea-2000-display-on-esp32s3","item":{"@type":"Thing","name":"NMEA 2000 Display on ESP32S3","url":"https://github.com/FrancisSailor/NMEA2000-DISPLAY-on-ESP32S3","description":"Wind, speed, autopilot and alarms, designed for Waveshare ESP32-S3-Touch-LCD-4 display."}},{"@type":"ListItem","position":57,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#sens32","item":{"@type":"Thing","name":"Sens32","url":"https://signalk.org/SensESP/","description":"Sensor development framework for ESP32 based sensors by SignalK."}},{"@type":"ListItem","position":58,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#go-nmea","item":{"@type":"Thing","name":"go-nmea","url":"https://github.com/adrianmo/go-nmea","description":"NMEA 0183 sentence parser."}},{"@type":"ListItem","position":59,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#nmea0183","item":{"@type":"Thing","name":"nmea0183","url":"https://github.com/martinmarsh/nmea0183","description":"NMEA 0183 sentence parser, with Actisense integration examples."}},{"@type":"ListItem","position":60,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#canboatjs","item":{"@type":"Thing","name":"canboatjs","url":"https://github.com/canboat/canboatjs","description":"Native CAN Bus / NMEA 2000 interfacing."}},{"@type":"ListItem","position":61,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#nmea-simple","item":{"@type":"Thing","name":"nmea-simple","url":"https://github.com/101100/nmea-simple","description":"NMEA 0183 sentence parser. Fork of the now deprecated nmea package."}},{"@type":"ListItem","position":62,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#nmea2000-1","item":{"@type":"Thing","name":"nmea2000","url":"https://pypi.org/project/nmea2000/","description":"NMEA 2000 encoder and decoder."}},{"@type":"ListItem","position":63,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#pyais","item":{"@type":"Thing","name":"pyais","url":"https://pypi.org/project/pyais/","description":"AIS specific NMEA 0183 parser and encoder, with streaming server."}},{"@type":"ListItem","position":64,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#pynmea2","item":{"@type":"Thing","name":"pynmea2","url":"https://github.com/Knio/pynmea2","description":"NMEA 0183 sentence parser."}},{"@type":"ListItem","position":65,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#nmeasim","item":{"@type":"Thing","name":"nmeasim","url":"https://gitlab.com/nmeasim/nmeasim","description":"NMEA/GNSS receiver simulator."}},{"@type":"ListItem","position":66,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#nmea-crate","item":{"@type":"Thing","name":"nmea crate","url":"https://crates.io/crates/nmea","description":"NMEA 0183 sentence parser."}},{"@type":"ListItem","position":67,"url":"https://boat-tech-directory.rhizomatics.org.uk/open-source-projects/#nmeaparser","item":{"@type":"Thing","name":"NMEAParser","url":"https://github.com/sindreoyen/NMEAParser","description":"iOS and macOS NMEA 0183 parser and validator."}}]}}]}</script><script>
2
2
  window.StarlightThemeProvider = (() => {
3
3
  const storedTheme =
4
4
  typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme');
@@ -24,7 +24,7 @@
24
24
  },
25
25
  };
26
26
  })();
27
- </script><template id="theme-icons"><svg aria-hidden="true" class="light astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg><svg aria-hidden="true" class="dark astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg><svg aria-hidden="true" class="auto astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg></template><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/common.CNhHhUwb.css"><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/page.LAbJoB63.js"></script></head><body class="astro-g5ptsecz"><a class="sl-skip-link astro-qb7clj6f" href="#_top">Skip to content</a><div class="page sl-flex astro-yntsjkba"><header class="header astro-yntsjkba"><div class="header astro-by6fddyj"><div class="title-wrapper sl-flex astro-by6fddyj"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="site-title sl-flex astro-6rvad3va"><span class="astro-6rvad3va" translate="no">Boat Tech Directory</span></a></div><div class="sl-flex print:hidden astro-by6fddyj"><site-search class="astro-by6fddyj astro-ac66eqjo" data-translations="{&quot;placeholder&quot;:&quot;Search&quot;}"><button data-open-modal disabled aria-label="Search" aria-keyshortcuts="Control+K" class="astro-ac66eqjo"><svg aria-hidden="true" class="astro-ac66eqjo astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg><span class="sl-hidden md:sl-block astro-ac66eqjo" aria-hidden="true">Search</span><kbd class="sl-hidden md:sl-flex astro-ac66eqjo" style="display: none;"><kbd class="astro-ac66eqjo">Ctrl</kbd><kbd class="astro-ac66eqjo">K</kbd></kbd></button><dialog style="padding:0" aria-label="Search" class="astro-ac66eqjo"><div class="dialog-frame sl-flex astro-ac66eqjo"><button data-close-modal class="sl-flex md:sl-hidden astro-ac66eqjo">Cancel</button><div class="search-container astro-ac66eqjo"><div id="starlight__search" class="astro-ac66eqjo"><form id="starlight__search-form" role="search" aria-label="Search" class="astro-ac66eqjo"><input id="starlight__search-input" type="text" autocapitalize="none" enterkeyhint="search" placeholder="Search" title="Search" class="astro-ac66eqjo"><button type="button" id="starlight__search-clear" hidden class="astro-ac66eqjo">Search</button></form><div id="starlight__search-results-area" hidden class="astro-ac66eqjo"><p id="starlight__search-message" role="status" class="astro-ac66eqjo"></p><ol id="starlight__search-results" class="astro-ac66eqjo"></ol></div></div></div></div></dialog></site-search><script>
27
+ </script><template id="theme-icons"><svg aria-hidden="true" class="light astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg><svg aria-hidden="true" class="dark astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg><svg aria-hidden="true" class="auto astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg></template><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/common.DpQ1cKKv.css"><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/page.Dwipeu-R.js"></script></head><body class="astro-g5ptsecz"><a class="sl-skip-link astro-qb7clj6f" href="#_top">Skip to content</a><div class="page sl-flex astro-yntsjkba"><header class="header astro-yntsjkba"><div class="header astro-by6fddyj"><div class="title-wrapper sl-flex astro-by6fddyj"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="site-title sl-flex astro-6rvad3va"><span class="astro-6rvad3va" translate="no">Boat Tech Directory</span></a></div><div class="sl-flex print:hidden astro-by6fddyj"><site-search class="astro-by6fddyj astro-ac66eqjo" data-translations="{&quot;placeholder&quot;:&quot;Search&quot;}"><button data-open-modal disabled aria-label="Search" aria-keyshortcuts="Control+K" class="astro-ac66eqjo"><svg aria-hidden="true" class="astro-ac66eqjo astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg><span class="sl-hidden md:sl-block astro-ac66eqjo" aria-hidden="true">Search</span><kbd class="sl-hidden md:sl-flex astro-ac66eqjo" style="display: none;"><kbd class="astro-ac66eqjo">Ctrl</kbd><kbd class="astro-ac66eqjo">K</kbd></kbd></button><dialog style="padding:0" aria-label="Search" class="astro-ac66eqjo"><div class="dialog-frame sl-flex astro-ac66eqjo"><button data-close-modal class="sl-flex md:sl-hidden astro-ac66eqjo">Cancel</button><div class="search-container astro-ac66eqjo"><div id="starlight__search" class="astro-ac66eqjo"><form id="starlight__search-form" role="search" aria-label="Search" class="astro-ac66eqjo"><input id="starlight__search-input" type="text" autocapitalize="none" enterkeyhint="search" placeholder="Search" title="Search" class="astro-ac66eqjo"><button type="button" id="starlight__search-clear" hidden class="astro-ac66eqjo">Search</button></form><div id="starlight__search-results-area" hidden class="astro-ac66eqjo"><p id="starlight__search-message" role="status" class="astro-ac66eqjo"></p><ol id="starlight__search-results" class="astro-ac66eqjo"></ol></div></div></div></div></dialog></site-search><script>
28
28
  (() => {
29
29
  const openBtn = document.querySelector('button[data-open-modal]');
30
30
  const shortcut = openBtn?.querySelector('kbd');
@@ -36,9 +36,9 @@
36
36
  }
37
37
  shortcut.style.display = '';
38
38
  })();
39
- </script><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/Search.astro_astro_type_script_index_0_lang.3ca-UBSH.js"></script></div><div class="sl-hidden md:sl-flex print:hidden right-group astro-by6fddyj"><div class="sl-flex social-icons astro-by6fddyj"><a href="https://github.com/rhizomatics/boat-tech-directory" rel="me" class="sl-flex astro-n2mnl6yq"><span class="sr-only astro-n2mnl6yq">GitHub</span><svg aria-hidden="true" class="astro-n2mnl6yq astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-2z5xp7gb"><span class="sr-only astro-2z5xp7gb">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-2z5xp7gb"><option value="dark" class="astro-2z5xp7gb">Dark</option><option value="light" class="astro-2z5xp7gb">Light</option><option value="auto" selected class="astro-2z5xp7gb">Auto</option></select><svg aria-hidden="true" class="icon caret astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
39
+ </script><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/Search.astro_astro_type_script_index_0_lang.DUk3asF9.js"></script></div><div class="sl-hidden md:sl-flex print:hidden right-group astro-by6fddyj"><div class="sl-flex social-icons astro-by6fddyj"><a href="https://github.com/rhizomatics/boat-tech-directory" rel="me" class="sl-flex astro-n2mnl6yq"><span class="sr-only astro-n2mnl6yq">GitHub</span><svg aria-hidden="true" class="astro-n2mnl6yq astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-2z5xp7gb"><span class="sr-only astro-2z5xp7gb">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-2z5xp7gb"><option value="dark" class="astro-2z5xp7gb">Dark</option><option value="light" class="astro-2z5xp7gb">Light</option><option value="auto" selected class="astro-2z5xp7gb">Auto</option></select><svg aria-hidden="true" class="icon caret astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
40
40
  StarlightThemeProvider.updatePickers();
41
- </script><script type="module">var e=`starlight-theme`,t=e=>e===`auto`||e===`dark`||e===`light`?e:`auto`,n=()=>t(typeof localStorage<`u`&&localStorage.getItem(e));function r(t){typeof localStorage<`u`&&localStorage.setItem(e,t===`light`||t===`dark`?t:``)}var i=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`;function a(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e===`auto`?i():e,r(e)}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{n()===`auto`&&a(`auto`)});var o=class extends HTMLElement{constructor(){super(),a(n()),this.querySelector(`select`)?.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&a(t(e.currentTarget.value))})}};customElements.define(`starlight-theme-select`,o);</script><script type="module">var e=class extends HTMLElement{constructor(){super();let e=this.querySelector(`select`);e&&(e.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=e.currentTarget.value)}),window.addEventListener(`pageshow`,t=>{if(!t.persisted)return;let n=e.querySelector(`option[selected]`)?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}};customElements.define(`starlight-lang-select`,e);</script></div></div></header><nav class="sidebar print:hidden astro-yntsjkba" aria-label="Main"><button popovertarget="starlight__sidebar" class="sl-menu-button sl-flex md:sl-hidden print:hidden astro-r2osgdlg"><svg aria-hidden="true" class="open-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg><svg aria-hidden="true" class="close-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="m13.41 12 6.3-6.29a1.004 1.004 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1.004 1.004 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 0 1.42.998.998 0 0 0 1.42 0l6.29-6.3 6.29 6.3a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.42L13.41 12Z"/></svg><span class="sr-only astro-r2osgdlg">Menu</span></button><script type="module">var e=class extends HTMLElement{constructor(){super();let e=matchMedia(`(min-width: 50em)`),t=()=>{this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,()=>t()),this.addEventListener(`toggle`,({newState:e})=>this.trapFocus(e===`open`))}trapFocus(e){document.querySelectorAll(`.main-frame, .sl-skip-link`).forEach(t=>{t.toggleAttribute(`inert`,e)})}};customElements.define(`sl-sidebar-pane`,e);</script><sl-sidebar-pane popover id="starlight__sidebar" class="sidebar-pane astro-yntsjkba"><div class="sidebar-content sl-flex astro-yntsjkba"><sl-sidebar-state-persist data-hash="0920a4u" class="astro-ipdry5cl"><script aria-hidden="true">
41
+ </script><script type="module">var e=`starlight-theme`,t=e=>e===`auto`||e===`dark`||e===`light`?e:`auto`,n=()=>t(typeof localStorage<`u`&&localStorage.getItem(e));function r(t){typeof localStorage<`u`&&localStorage.setItem(e,t===`light`||t===`dark`?t:``)}var i=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`;function a(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e===`auto`?i():e,r(e)}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{n()===`auto`&&a(`auto`)});var o=class extends HTMLElement{constructor(){super(),a(n()),this.querySelector(`select`)?.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&a(t(e.currentTarget.value))})}};customElements.define(`starlight-theme-select`,o);</script><script type="module">var e=class extends HTMLElement{constructor(){super();let e=this.querySelector(`select`);e&&(e.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=e.currentTarget.value)}),window.addEventListener(`pageshow`,t=>{if(!t.persisted)return;let n=e.querySelector(`option[selected]`)?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}};customElements.define(`starlight-lang-select`,e);</script></div></div></header><nav class="sidebar print:hidden astro-yntsjkba" aria-label="Main"><button popovertarget="starlight__sidebar" class="sl-menu-button sl-flex md:sl-hidden print:hidden astro-r2osgdlg"><svg aria-hidden="true" class="open-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg><svg aria-hidden="true" class="close-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="m13.41 12 6.3-6.29a1.004 1.004 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1.004 1.004 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 0 1.42.998.998 0 0 0 1.42 0l6.29-6.3 6.29 6.3a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.42L13.41 12Z"/></svg><span class="sr-only astro-r2osgdlg">Menu</span></button><script type="module">var e=class extends HTMLElement{constructor(){super();let e=matchMedia(`(min-width: 50em)`),t=()=>{this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,()=>t()),this.addEventListener(`toggle`,({newState:e})=>this.trapFocus(e===`open`))}trapFocus(e){document.querySelectorAll(`.main-frame, .sl-skip-link`).forEach(t=>{t.toggleAttribute(`inert`,e)})}};customElements.define(`sl-sidebar-pane`,e);</script><sl-sidebar-pane popover id="starlight__sidebar" class="sidebar-pane astro-yntsjkba"><div class="sidebar-content sl-flex astro-yntsjkba"><sl-sidebar-state-persist data-hash="0iq2k3j" class="astro-ipdry5cl"><script aria-hidden="true">
42
42
  (() => {
43
43
  try {
44
44
  if (!matchMedia('(min-width: 50em)').matches) return;
@@ -61,7 +61,7 @@
61
61
  );
62
62
  } catch {}
63
63
  })();
64
- </script><ul class="top-level astro-wv7whodv"><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Home</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/social/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Social</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/charts/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Charts and Data</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/open-source-projects/" aria-current="page" class="large astro-wv7whodv"><span class="astro-wv7whodv">Open Source Projects</span></a><ul class="page-toc astro-wv7whodv"><li class="astro-wv7whodv"><a href="#nmea" class="astro-wv7whodv">NMEA</a><ul class="page-toc-sub astro-wv7whodv"><li class="astro-wv7whodv"><a href="#c-and-c" class="astro-wv7whodv">C and C++</a></li><li class="astro-wv7whodv"><a href="#c" class="astro-wv7whodv">C#</a></li><li class="astro-wv7whodv"><a href="#esp32" class="astro-wv7whodv">ESP32</a></li><li class="astro-wv7whodv"><a href="#golang" class="astro-wv7whodv">GoLang</a></li><li class="astro-wv7whodv"><a href="#javascript" class="astro-wv7whodv">JavaScript</a></li><li class="astro-wv7whodv"><a href="#python" class="astro-wv7whodv">Python</a></li><li class="astro-wv7whodv"><a href="#rust" class="astro-wv7whodv">Rust</a></li><li class="astro-wv7whodv"><a href="#swift" class="astro-wv7whodv">Swift</a></li></ul></li></ul></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Protocols</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/vendors/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Vendors</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/news/" class="large astro-wv7whodv"><span class="astro-wv7whodv">News</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/education/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Education</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/servicing/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Servicing and Spares</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/checklists/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Checklists</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/reference/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Reference</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/index-of-terms/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Index</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/contributing/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Contributing</span></a></li></ul><script aria-hidden="true">
64
+ </script><ul class="top-level astro-wv7whodv"><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Home</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/social/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Social</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/charts/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Charts and Data</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/open-source-projects/" aria-current="page" class="large astro-wv7whodv"><span class="astro-wv7whodv">Open Source Projects</span></a><ul class="page-toc astro-wv7whodv"><li class="astro-wv7whodv"><a href="#nmea" class="astro-wv7whodv">NMEA</a><ul class="page-toc-sub astro-wv7whodv"><li class="astro-wv7whodv"><a href="#c-and-c" class="astro-wv7whodv">C and C++</a></li><li class="astro-wv7whodv"><a href="#c" class="astro-wv7whodv">C#</a></li><li class="astro-wv7whodv"><a href="#esp32" class="astro-wv7whodv">ESP32</a></li><li class="astro-wv7whodv"><a href="#golang" class="astro-wv7whodv">GoLang</a></li><li class="astro-wv7whodv"><a href="#javascript" class="astro-wv7whodv">JavaScript</a></li><li class="astro-wv7whodv"><a href="#python" class="astro-wv7whodv">Python</a></li><li class="astro-wv7whodv"><a href="#rust" class="astro-wv7whodv">Rust</a></li><li class="astro-wv7whodv"><a href="#swift" class="astro-wv7whodv">Swift</a></li></ul></li></ul></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Protocols</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/vendors/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Vendors</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/news/" class="large astro-wv7whodv"><span class="astro-wv7whodv">News</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/education/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Education</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/servicing/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Servicing and Spares</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/checklists/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Checklists and Templates</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/reference/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Reference</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/index-of-terms/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Index</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/contributing/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Contributing</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/downloads/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Downloads</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/downloads/example-checklists/" class="large sub-entry astro-wv7whodv"><span class="astro-wv7whodv">Example Checklists</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/downloads/navigation-templates/" class="large sub-entry astro-wv7whodv"><span class="astro-wv7whodv">Navigation Templates</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/downloads/nmea-wifi-gateways/" class="large sub-entry astro-wv7whodv"><span class="astro-wv7whodv">NMEA Wi-Fi Gateways</span></a></li></ul><script aria-hidden="true">
65
65
  (() => {
66
66
  const scroller = document.getElementById('starlight__sidebar');
67
67
  if (!window._starlightScrollRestore || !scroller) return;
@@ -136,11 +136,13 @@
136
136
  </ul>
137
137
  <div class="sl-heading-wrapper level-h4"><h4 id="esp32">ESP32</h4><a class="sl-anchor-link" href="#esp32"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “ESP32”</span></a></div>
138
138
  <ul>
139
+ <li id="espos-ble-gateway"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/dirkwa/espos-ble-gateway">espos-ble-gateway</a> - SignalK BLE Gateway for ESP32 devices with 16Mb or more memory.</li>
139
140
  <li id="esp32-nmea2000-multiprotocol-gateway"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/JaCharer/ESP32_NMEA2000_Multiprotocol_Gateway">ESP32 NMEA2000 Multiprotocol Gateway</a> - Broadcast N2K as Signal K, NMEA 0183, and Actisense Binary. WebGUI. Begun in 2026.</li>
140
141
  <li id="esp32-nmea2000"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/wellenvogel/esp32-nmea2000">ESP32 NMEA2000</a> - NMEA2000 integration with USB, Wifi, 0183 on M5 Atom CAN and compatible with other ESP32.</li>
141
142
  <li id="nmea2000"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/ttlappalainen/NMEA2000">NMEA2000</a> - Arduino NMEA2000 interfacing library used in several commercial products.</li>
142
143
  <li id="nmea2000_ais_wifi_gw"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/sailingfree/NMEA2000_ais_wifi_gw">NMEA2000_ais_wifi_gw</a> - ESP32 based NMEA2000 gateway.</li>
143
144
  <li id="nmea2000_esp32"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/ttlappalainen/NMEA2000_esp32">NMEA2000_esp32</a> - ESP32 objects for use with NMEA2000 library.</li>
145
+ <li id="nmea-2000-display-on-esp32s3"><img src="../images/icons/github.ico" width="16" height="16"> <a href="https://github.com/FrancisSailor/NMEA2000-DISPLAY-on-ESP32S3">NMEA 2000 Display on ESP32S3</a> - Wind, speed, autopilot and alarms, designed for Waveshare ESP32-S3-Touch-LCD-4 display.</li>
144
146
  <li id="sens32"><a href="https://signalk.org/SensESP/">Sens32</a> - Sensor development framework for ESP32 based sensors by SignalK.</li>
145
147
  </ul>
146
148
  <div class="sl-heading-wrapper level-h4"><h4 id="golang">GoLang</h4><a class="sl-anchor-link" href="#golang"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Section titled “GoLang”</span></a></div>
@@ -0,0 +1,112 @@
1
+ ---
2
+ title: "Open Source Projects"
3
+ description: "Software and firmware, including NMEA libraries."
4
+ ---
5
+
6
+ <!-- Generated from ../../../../README.md by scripts/sync-readme.mjs — do not edit directly. -->
7
+ Software projects for boats, with recent commits as of 2026.
8
+
9
+ - <img src="../images/icons/github.ico" width="16" height="16"> [AIS-catcher](https://github.com/jvde-github/AIS-catcher) - AIS receiver for software defined radio (SDR) dongles.
10
+ - [AvNav](https://www.wellenvogel.net/software/avnav/docs/beschreibung.html?lang=en) - Plotter with Android app and SignalK integration. German with English docs.
11
+ - <img src="../images/icons/github.ico" width="16" height="16"> [Bareboat Necessities](https://bareboat-necessities.github.io/my-bareboat/bareboat-os.html) - All in one operating system, incorporating OpenCPN, SignalK, PyPilot etc plus open source hardware projects.
12
+ - <img src="../images/icons/github.ico" width="16" height="16"> [BlueBridge](https://github.com/miniwinwm/BlueBridge) - Android app integration with NMEA data via MQTT and Bluetooth.
13
+ - <img src="../images/icons/github.ico" width="16" height="16"> [BoatHacks](https://github.com/BoatHacks) - SignalK and ESP32 projects, including Ollama for local AI.
14
+ - <img src="../images/icons/github.ico" width="16" height="16"> [BoatOpenIO](https://github.com/bigbrainlabs/BoatOpenIO) - ESP-32 16-channel analog marine gateway for legacy VDO sensors, integrating analog instruments to MQTT and SignalK.
15
+ - <img src="../images/icons/github.ico" width="16" height="16"> [BoatyPi](https://github.com/davedoesdemos/BoatyPi) - Open source hardware/software for boat ePaper display.
16
+ - <img src="../images/icons/github.ico" width="16" height="16"> [BrineOMatic](https://github.com/hoeken/brineomatic) - Watermaker controller for ESP32, open source hardware and software, integrates with SignalK and Home Assistant.
17
+ - <img src="../images/icons/github.ico" width="16" height="16"> [CAN Boat](https://github.com/canboat/canboat) - NMEA2000 and NMEA 0183 CLI utilities.
18
+ - <img src="../images/icons/github.ico" width="16" height="16"> [d3kOS](https://github.com/SkipperDon/d3kOS) - Raspberry Pi based navigation and automation platform.
19
+ - <img src="../images/icons/github.ico" width="16" height="16"> [DiscoTime](https://github.com/cr/discotime/) - Time and lat/long dashboard for long distance passages.
20
+ - <img src="../images/icons/github.ico" width="16" height="16"> [eInk Labels for SignalK](https://github.com/rhizomatics/signalk-einklabel-plugin) - SignalK plugin to send SignalK path data or API results to an BLE eInk Electronic Shelf Label using simple SVG templates. Optional add-on plugin for AI generated screens.
21
+ - [FrothFet](https://frothfet.com) - Open source hardware and software for digital switching boat DC loads.
22
+ - <img src="../images/icons/github.ico" width="16" height="16"> [Galadriel Plotter](https://github.com/VladimirKalachikhin/Galadriel-map) - Raster based chartplotter for low power servers.
23
+ - <img src="../images/icons/gitlab.png" width="16" height="16"> [gpsd](https://gpsd.gitlab.io/gpsd/index.html) - GPS and AIS daemon wrapping NMEA0183 in its own simpler format. C, Python. Ubiquitous.
24
+ - [GWeatherRouting](https://gweatherrouting.org) - Navigation and automated routing, Python/GTK4.
25
+ - [gypsy](https://gypsy.freedesktop.org) - Multiplexer for GPS NMEA data, daemon and C library, alternative to gpsd.
26
+ - <img src="../images/icons/github.ico" width="16" height="16"> [Helm](https://github.com/StevenRidder/helm-public) - Clean-room re-engineered OpenCPN equivalent, alpha as of Q3/2026.
27
+ - [Ilma](https://ilma.sailorslog.io) - Software based Navtex receiver for Raspberry Pi or similar.
28
+ - <img src="../images/icons/gitlab.png" width="16" height="16"> [imud](https://github.com/richcreations/imud) - IMU (Inertial Measurement Unit)/Magnetometer multiplexer with NMEA stream for chartplotters.
29
+ - <img src="../images/icons/github.ico" width="16" height="16"> [Kip](https://github.com/mxtommy/Kip) - SignalK dashboard / instrument display.
30
+ - [KPlex](https://www.stripydog.com/kplex/) - NMEA0183 multiplexer for Linux, Unix, macOS and OpenWRT. ([Google Group](https://groups.google.com/g/kplex)).
31
+ - <img src="../images/icons/github.ico" width="16" height="16"> [libWeatherRouting](https://dakk.github.io/libweatherrouting/) - Python weather routing library with linear iso-routing and shortest path routes.
32
+ - <img src="../images/icons/github.ico" width="16" height="16"> [Maiana](https://github.com/peterantypas/maiana) - AIS Transponder open hardware/software.
33
+ - <img src="../images/icons/github.ico" width="16" height="16"> [Marine Chart Viewer](https://github.com/wholybee/chartplotter) - QT6 based chart plotter for Windows, Linux and macOS. Displays ENC and CM93 charts and GSHHG basemap.
34
+ - <img src="../images/icons/github.ico" width="16" height="16"> [MarineYachtRadar](https://github.com/MarineYachtRadar) - *MaYaRa* server, display, OpenCPN and SignalK integration as open alternative to commercial radar processing.
35
+ - [Marinux](https://marinux.tuxfamily.org) - *Muplex* NMEA multiplexer, *OSD Depth* echo-sounder display.
36
+ - <img src="../images/icons/github.ico" width="16" height="16"> [nm2k](https://github.com/svalentinf/nm2k) - NMEA0183 and NMEA2000 web based visualization and analysis.
37
+ - [OpenCPN](https://opencpn.org) - Chart Plotter for macOS, Windows, Linux, Raspi and Android.
38
+ - <img src="../images/icons/github.ico" width="16" height="16"> [Open Marine Systems](https://github.com/OpenMarineSystems) - Home Assistant add-ons for navigation and anchor watch, installed via HACS.
39
+ - [Open Boat Projects](https://open-boat-projects.org/en/) - DIY hardware and open source projects, English and German.
40
+ - [OpenFairWind](https://github.com/OpenFairWind) - Alternative user interface, QT based, *FairwindSK* for SignalK on macOS, Windows, Linux, Android, iPhoje and iPad.
41
+ - [OpenPlotter](https://openplotter.readthedocs.io/) - Combined project of SignalK, OpenCPN, PyPilot etc.
42
+ - <img src="../images/icons/github.ico" width="16" height="16"> [PyGPSClient](https://github.com/semuconsulting/PyGPSClient) - Python GPS/GNSS testing, diagnostic and configuration, incl NMEA integration.
43
+ - [PyPilot](https://pypilot.org) - Python based auto-pilot.
44
+ - <img src="../images/icons/github.ico" width="16" height="16">[Rhizomatics Sailing](https://www.rhizomatics.org.uk/sailing/) - SignalK and Home Assistant plug-ins and associated apps, including integrations for eInk Electronic Shelf Labels, Teltonika modems and Bluetti power stations.
45
+ - <img src="../images/icons/github.ico" width="16" height="16"> [ROB](https://github.com/OlivierLD/ROB) - Raspberry Pi On Board, Java and Python navigation utilities.
46
+ - <img src="../images/icons/github.ico" width="16" height="16"> [Sail-O-Vision](https://github.com/adam-gol/sail-o-vision) - Obstacle and wildlife detection with camera and NVIDIA Jetson.
47
+ - <img src="../images/icons/github.ico" width="16" height="16"> [Sailtrack](https://metisvela.github.io/sailtrack/) - Modular racing performance tracker using MQTT.
48
+ - [SignalK](https://signalk.org) - Node.js pluggable framework for boat data distribution and analysis.
49
+ - <img src="../images/icons/pypi.ico" width="16" height="16"> [signalk-cli](https://pypi.org/project/signalk-cli/) - Command line interface to explore and extract data from SignalK, including the History API and Deltas streaming. Exports to CSV, JSON, raw and Apache Arrow Feather dataframes.
50
+ - [Smart Boat Innovations](https://smartboatinnovations.com) - Videos and articles on building a Raspberry Pi and Home Assistant based smart boat.
51
+ - <img src="../images/icons/github.ico" width="16" height="16"> [TwoCan](https://github.com/TwoCanPlugIn/TwoCanPlugIn) - NMEA2000 integration for OpenCPN.
52
+ - <img src="../images/icons/github.ico" width="16" height="16"> [Venus](https://github.com/victronenergy/venus) - Victron Energy's open source OS for their GX products, available for self-hosting on Raspberry Pi.
53
+ - [X Engineering](https://xengineering.net) - Open-source alternator regulator for lithium battery systems. Open hardware, [GitHub project](https://github.com/markliquid1/Regulator2026-public).
54
+ - <img src="../images/icons/github.ico" width="16" height="16"> [Xilje](https://github.com/Djaahny) - Garmin integration projects, incl plotter display of local web apps and PyPilot integration.
55
+ - [Yacht Management Software (YMS)](https://yms.hoogi.de) - Open-source, self-hosted yacht management software for sailing boats, designed for Raspberry Pi/Linux and offline operation.
56
+
57
+
58
+ ### NMEA
59
+
60
+ See also [OpenCPN NMEA Tools](https://opencpn.org/wiki/dokuwiki/doku.php?id=opencpn:supplementary_software:nmea_instruments).
61
+
62
+ <!--lint disable no-repeat-punctuation code-block-style-->
63
+ :::note[Not all NMEA is what it seems]
64
+ A tiny subset of NMEA 0183 is used for GPS integration on almost all devices that handle GPS, including mobile phones, and so has vastly more usage than marine NMEA use cases. Hence, not everything labelled 'NMEA' may be useful in a boating context.
65
+ :::
66
+ <!--lint enable no-repeat-punctuation code-block-style-->
67
+
68
+ #### C and C++
69
+
70
+ - <img src="../images/icons/github.ico" width="16" height="16"> [minmea](https://github.com/kosma/minmea) - GPS NMEA0183 parser in C.
71
+
72
+ #### C#
73
+
74
+ - [OpenSkipper](https://openskipper.org) - C# based NMEA2000, NMEA0183 and AIS integration, last updated 2023.
75
+
76
+ #### ESP32
77
+
78
+ - <img src="../images/icons/github.ico" width="16" height="16"> [espos-ble-gateway](https://github.com/dirkwa/espos-ble-gateway) - SignalK BLE Gateway for ESP32 devices with 16Mb or more memory.
79
+ - <img src="../images/icons/github.ico" width="16" height="16"> [ESP32 NMEA2000 Multiprotocol Gateway](https://github.com/JaCharer/ESP32_NMEA2000_Multiprotocol_Gateway) - Broadcast N2K as Signal K, NMEA 0183, and Actisense Binary. WebGUI. Begun in 2026.
80
+ - <img src="../images/icons/github.ico" width="16" height="16"> [ESP32 NMEA2000](https://github.com/wellenvogel/esp32-nmea2000) - NMEA2000 integration with USB, Wifi, 0183 on M5 Atom CAN and compatible with other ESP32.
81
+ - <img src="../images/icons/github.ico" width="16" height="16"> [NMEA2000](https://github.com/ttlappalainen/NMEA2000) - Arduino NMEA2000 interfacing library used in several commercial products.
82
+ - <img src="../images/icons/github.ico" width="16" height="16"> [NMEA2000_ais_wifi_gw](https://github.com/sailingfree/NMEA2000_ais_wifi_gw) - ESP32 based NMEA2000 gateway.
83
+ - <img src="../images/icons/github.ico" width="16" height="16"> [NMEA2000_esp32](https://github.com/ttlappalainen/NMEA2000_esp32) - ESP32 objects for use with NMEA2000 library.
84
+ - <img src="../images/icons/github.ico" width="16" height="16"> [NMEA 2000 Display on ESP32S3](https://github.com/FrancisSailor/NMEA2000-DISPLAY-on-ESP32S3) - Wind, speed, autopilot and alarms, designed for Waveshare ESP32-S3-Touch-LCD-4 display.
85
+ - [Sens32](https://signalk.org/SensESP/) - Sensor development framework for ESP32 based sensors by SignalK.
86
+
87
+ #### GoLang
88
+
89
+ - <img src="../images/icons/github.ico" width="16" height="16"> [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA 0183 sentence parser.
90
+ - <img src="../images/icons/github.ico" width="16" height="16"> [nmea0183](https://github.com/martinmarsh/nmea0183) - NMEA 0183 sentence parser, with Actisense integration examples.
91
+
92
+ #### JavaScript
93
+
94
+ - <img src="../images/icons/github.ico" width="16" height="16"> [canboatjs](https://github.com/canboat/canboatjs) - Native CAN Bus / NMEA 2000 interfacing.
95
+ - <img src="../images/icons/github.ico" width="16" height="16"> [nmea-simple](https://github.com/101100/nmea-simple) - NMEA 0183 sentence parser. Fork of the now deprecated `nmea` package.
96
+
97
+ #### Python
98
+
99
+ Lots more libraries and tools can be found on PyPI, for example [NMEA](https://pypi.org/search/?q=nmea)-related. Selection limited to ones recently active in 2026.
100
+
101
+ - <img src="../images/icons/pypi.ico" width="16" height="16"> [nmea2000](https://pypi.org/project/nmea2000/) - NMEA 2000 encoder and decoder.
102
+ - <img src="../images/icons/pypi.ico" width="16" height="16"> [pyais](https://pypi.org/project/pyais/) - AIS specific NMEA 0183 parser and encoder, with streaming server.
103
+ - <img src="../images/icons/github.ico" width="16" height="16"> [pynmea2](https://github.com/Knio/pynmea2) - NMEA 0183 sentence parser.
104
+ - <img src="../images/icons/gitlab.png" width="16" height="16"> [nmeasim](https://gitlab.com/nmeasim/nmeasim) - NMEA/GNSS receiver simulator.
105
+
106
+ #### Rust
107
+
108
+ - [nmea crate](https://crates.io/crates/nmea) - NMEA 0183 sentence parser.
109
+
110
+ #### Swift
111
+
112
+ - <img src="../images/icons/github.ico" width="16" height="16"> [NMEAParser](https://github.com/sindreoyen/NMEAParser) - iOS and macOS NMEA 0183 parser and validator.
@@ -1 +1 @@
1
- {"version":"1.5.2","languages":{"en":{"hash":"en_9cb4ba703f","wasm":"en","page_count":13}},"include_characters":["_","‿","⁀","⁔","︳","︴","﹍","﹎","﹏","_"]}
1
+ {"version":"1.5.2","languages":{"en":{"hash":"en_8cc2cbd2fe","wasm":"en","page_count":17}},"include_characters":["_","‿","⁀","⁔","︳","︴","﹍","﹎","﹏","_"]}
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-sidebar class="astro-g5ptsecz"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Standards and Protocols | Boat Tech Directory</title><link rel="canonical" href="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/"/><link rel="sitemap" href="/@rhizomatics/signalk-boat-tech-directory-plugin/sitemap-index.xml"/><link rel="shortcut icon" href="/@rhizomatics/signalk-boat-tech-directory-plugin/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.2"/><meta name="generator" content="Starlight v0.42.1"/><meta property="og:title" content="Standards and Protocols"/><meta property="og:type" content="article"/><meta property="og:url" content="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/"/><meta property="og:locale" content="en"/><meta property="og:description" content="NMEA, Seatalk, SAE and other marine networking standards."/><meta property="og:site_name" content="Boat Tech Directory"/><meta name="description" content="NMEA, Seatalk, SAE and other marine networking standards."/><meta property="og:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><meta property="og:image:width" content="1536"/><meta property="og:image:height" content="1024"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><script>
1
+ <!DOCTYPE html><html lang="en" dir="ltr" data-theme="dark" data-has-sidebar class="astro-g5ptsecz"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Standards and Protocols | Boat Tech Directory</title><link rel="canonical" href="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/"/><link rel="sitemap" href="/@rhizomatics/signalk-boat-tech-directory-plugin/sitemap-index.xml"/><link rel="shortcut icon" href="/@rhizomatics/signalk-boat-tech-directory-plugin/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v7.3.5"/><meta name="generator" content="Starlight v0.42.4"/><meta property="og:title" content="Standards and Protocols"/><meta property="og:type" content="article"/><meta property="og:url" content="https://boat-tech-directory.rhizomatics.org.uk/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/"/><meta property="og:locale" content="en"/><meta property="og:description" content="NMEA, Seatalk, SAE and other marine networking standards."/><meta property="og:site_name" content="Boat Tech Directory"/><meta name="description" content="NMEA, Seatalk, SAE and other marine networking standards."/><meta property="og:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><meta property="og:image:width" content="1536"/><meta property="og:image:height" content="1024"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:image" content="https://boat-tech-directory.rhizomatics.org.uk/images/social-preview.jpg"/><link rel="alternate" type="text/markdown" href="/@rhizomatics/signalk-boat-tech-directory-plugin/protocols.md"><script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Boat Tech Directory","item":"https://boat-tech-directory.rhizomatics.org.uk/"},{"@type":"ListItem","position":2,"name":"Standards and Protocols","item":"https://boat-tech-directory.rhizomatics.org.uk/protocols/"}]},{"@type":"CollectionPage","name":"Standards and Protocols","description":"NMEA, Seatalk, SAE and other marine networking standards.","url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/","isPartOf":{"@type":"WebSite","name":"Boat Tech Directory","url":"https://boat-tech-directory.rhizomatics.org.uk/"},"mainEntity":{"@type":"ItemList","numberOfItems":30,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#iec61162","item":{"@type":"Thing","name":"IEC61162","url":"https://en.wikipedia.org/wiki/IEC_61162","description":"International Electrotechnical Commission standards, partly wrapping NMEA standards (IEC 61162-1 is NMEA0183 and IEC 61162-3 is NMEA2000)."}},{"@type":"ListItem","position":2,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#nmea0183","item":{"@type":"Thing","name":"NMEA0183","url":"https://en.wikipedia.org/wiki/NMEA_0183","description":"RS-422 based wiring layer with proprietary information protocol."}},{"@type":"ListItem","position":3,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#nmea2000","item":{"@type":"Thing","name":"NMEA2000","url":"https://en.wikipedia.org/wiki/NMEA_2000","description":"CAN Bus based wiring with proprietary information protocol. Also known as N2K. Open source reverse engineered documentation by canboat."}},{"@type":"ListItem","position":4,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#nmea-onenet","item":{"@type":"Thing","name":"NMEA OneNet","url":"https://www.nmea.org/nmea-onenet.html","description":"IPv6 Ethernet based wiring with proprietary information protocol, using M12 and RJ45 connectors."}},{"@type":"ListItem","position":5,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#nmea-over-ip","item":{"@type":"Thing","name":"NMEA over IP","url":"https://opencpn.org/wiki/dokuwiki/doku.php?id=opencpn:manual_basic:set_options:connections:advanced","description":"Informal standard (with a formal IANA port assigned, 10110) using TCP or UDP provided by several vendor and open source products, and consumed by Navionics, AngelNav, SavvyNavvy and more."}},{"@type":"ListItem","position":6,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#signalk","item":{"@type":"Thing","name":"SignalK","url":"https://signalk.org/specification/1.7.0/doc/","description":"Open source JSON based standard using HTTP, OpenAPI and Websockets as transport layer and able to model NMEA0183 and NMEA2000 data."}},{"@type":"ListItem","position":7,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#antant","item":{"@type":"Thing","name":"ANT/ANT+","url":"https://developer.garmin.com/ant-program/overview/","description":"Garmin protocol for low power devices, including linking watches to autopilots and chart plotters. Retirement announced by vendor in 2025, replacing with BLE."}},{"@type":"ListItem","position":8,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#bg-fastnet-notes","item":{"@type":"Thing","name":"B&G FastNet Notes","url":"https://github.com/trlafleur/Fastnet","description":"B&G Fastnet - Proprietary serial bus network. No vendor documentation. Reverse engineered docs, C code and interface specs at B&G FastNet Notes and Oppedjik Blog."}},{"@type":"ListItem","position":9,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#garmin-bluenet","item":{"@type":"Thing","name":"Garmin BlueNet","url":"https://www8.garmin.com/manuals/webhelp/GUID-C3D5DCE9-C0FF-4AC4-B759-D5B34E1EB78E/EN-US/GUID-A1161F2C-CEB3-4E87-9388-EE6F69DFD026.html","description":"Current Ethernet based netwoking, with proprietary connector."}},{"@type":"ListItem","position":10,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#garmin-marine-network","item":{"@type":"Thing","name":"Garmin Marine Network","url":"https://www.garmin.com/en-GB/c/networking-hardware/","description":"Previous generation of Ethernet networking, using RJ45 connectors."}},{"@type":"ListItem","position":11,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#micronet---raymarine-owned-proprietary-wireless-protocol-for","item":{"@type":"Thing","name":"MicroNet","description":"Raymarine owned proprietary wireless protocol for instrument telemetry, originally known as TackTick before the original vendor acquired. Gateways available for two-way interfacing to regular Seatalk NG and NMEA 0183."}},{"@type":"ListItem","position":12,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#nexus","item":{"@type":"Thing","name":"Nexus","url":"https://support.garmin.com/en-US/?productID=165155&tab=manuals","description":"Sensor protocol, acquired by Garmin and used for their wind instruments and depth transducer, with NMEA2000 bridge."}},{"@type":"ListItem","position":13,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#raynet","item":{"@type":"Thing","name":"RayNet","url":"https://www.raymarine.com/en-gb/our-products/networking-and-accessories/raynet","description":"Raymarine's Ethernet implementation, using a proprietary connector."}},{"@type":"ListItem","position":14,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#seatalk-1","item":{"@type":"Thing","name":"Seatalk 1","url":"https://www.raymarine.com/en-us/our-products/networking-and-accessories/seatalk","description":"Raymarine proprietary daisy-chain combined data and power, ubiquitously deployed with ST60 instruments."}},{"@type":"ListItem","position":15,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#seatalk-ng","item":{"@type":"Thing","name":"Seatalk NG","url":"https://www.raymarine.com/en-gb/our-products/networking-and-accessories/seatalk-ng-and-nmea-2000","description":"Raymarine's implementation of NMEA2000, compatible at data layer with a proprietary 6 pin connection to incorporate SeaTalk 1 data."}},{"@type":"ListItem","position":16,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#simnet","item":{"@type":"Thing","name":"SimNet","url":"https://www.simrad-yachting.com/help--support/?contentTitle=Whats-the-difference-between-SimNet-and-NMEA2000&contentId=023_008-016","description":"Simrad variant of NMEA2000 with different connectors and supporting daisy chaining."}},{"@type":"ListItem","position":17,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#ble","item":{"@type":"Thing","name":"BLE","url":"https://en.wikipedia.org/wiki/Bluetooth_Low_Energy","description":"Bluetooth Low Energy, a special form of Bluetooth for low power devices, on boats usually using the Generic Attribute Profile or GATT to exchange small quantities of data, like solar panel statistics or temperature. Uses the same 2.4Ghz frequency band as most WiFi."}},{"@type":"ListItem","position":18,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#bt-sensors-plugin","item":{"@type":"Thing","name":"bt-sensors-plugin","url":"https://github.com/naugehyde/bt-sensors-plugin-sk","description":"Many SignalK plugins are available for BLE, including bt-sensors-plugin for general device reading, eInk Labels to send boat data to an electronic shelf label, plus vendor specific plugins for Victron, Bluetti and others."}},{"@type":"ListItem","position":19,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#can-bus","item":{"@type":"Thing","name":"CAN Bus","url":"https://www.can-cia.org/can-knowledge","description":"Control Area Network specification and industry alliance, basis of J1939 and NMEA2000."}},{"@type":"ListItem","position":20,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#lorawan","item":{"@type":"Thing","name":"LoRaWan","url":"https://lora-alliance.org/","description":"Long range wireless networking for IoT devices, including remote boat monitoring."}},{"@type":"ListItem","position":21,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#modbus","item":{"@type":"Thing","name":"ModBus","url":"https://www.modbus.org/specifications","description":"Communication protocol for automation, used also in marine multiplexers, routers and control systems. Specifications and industry alliance."}},{"@type":"ListItem","position":22,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#mqtt","item":{"@type":"Thing","name":"MQTT","url":"https://en.wikipedia.org/wiki/MQTT","description":"Lightweight publish/subscribe networking used extensively in home and industrial automation. Devices can publish data without being aware of what is reading the data, and clients can subscribe to data that was published before they started up."}},{"@type":"ListItem","position":23,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#several-signalk-plugins-are-available-to-expose-boat-data-ov","item":{"@type":"Thing","name":"Several SignalK plugins are available to expose boat data over MQTT, or pull MQTT data into SignalK, for example reading temperature sensors"}},{"@type":"ListItem","position":24,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#sae-j1587j1708","item":{"@type":"Thing","name":"SAE J1587/J1708","url":"https://en.wikipedia.org/wiki/SAE_J1708","description":"Pair of older serial based engine networking standards, used by marine engines from 1990s and early 2000s."}},{"@type":"ListItem","position":25,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#sae-j1939","item":{"@type":"Thing","name":"SAE J1939","url":"https://en.wikipedia.org/wiki/SAE_J1939","description":"CAN Bus standard, using Deutsch connectors, commonly used for engines and engine instruments, including Volvo Penta and Yanmar."}},{"@type":"ListItem","position":26,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#vendors","item":{"@type":"Thing","name":"vendors","url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#nmea-interfacing","description":"Several vendors provide interfaces to pull J1939 data onto the NMEA bus and there are standard NMEA 2000 PGNs for engine data, and related battery or fuel levels."}},{"@type":"ListItem","position":27,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#shielded-twisted-pair-ethernet","item":{"@type":"Thing","name":"Shielded Twisted Pair Ethernet","url":"https://en.wikipedia.org/wiki/Ethernet_over_twisted_pair","description":"Computing industry standard, commonly used for radars and other high bandwidth marine applications."}},{"@type":"ListItem","position":28,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#tcp","item":{"@type":"Thing","name":"TCP","url":"https://en.wikipedia.org/wiki/Transmission_Control_Protocol","description":"Network protocol used for NMEA data distribution, to set up a session between a NMEA gateway and a client like OpenCPN or Navionics. Data is checked for receipt and retried if failed, so this is more reliable than UDP and also slower and more work for the gateway, hence commonly limited to how many clients can be supported at one time."}},{"@type":"ListItem","position":29,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#udp","item":{"@type":"Thing","name":"UDP","url":"https://en.wikipedia.org/wiki/User_Datagram_Protocol","description":"Network protocol commonly used for NMEA data distribution, either passively (send out UDP packets to all clients that attach to a port) or actively ( forward on data to a list of listening client IP addresses/ports ), and either way as 'fire-and-forget'. Navionics, OpenCPN, AngelNav, SavvyNavvy and other apps will use this (or TCP) to subscribe to NMEA data."}},{"@type":"ListItem","position":30,"url":"https://boat-tech-directory.rhizomatics.org.uk/protocols/#zigbee","item":{"@type":"Thing","name":"Zigbee","url":"https://signalk.org/2025/signalk-zigbee-sensors/","description":"Common mesh network for sensors, alarms, switches and other home automation uses. Bi-directional (so for example, the device battery can be remotely read), designed for low power devices, and uses the same 2.4Ghz spectrum as Bluetooth and Wifi. Becoming more common on boats since home automation scale drives down the costs, and where Home Assistant is used in conjunction with SignalK."}}]}}]}</script><script>
2
2
  window.StarlightThemeProvider = (() => {
3
3
  const storedTheme =
4
4
  typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme');
@@ -24,7 +24,7 @@
24
24
  },
25
25
  };
26
26
  })();
27
- </script><template id="theme-icons"><svg aria-hidden="true" class="light astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg><svg aria-hidden="true" class="dark astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg><svg aria-hidden="true" class="auto astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg></template><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/common.CNhHhUwb.css"><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/page.LAbJoB63.js"></script></head><body class="astro-g5ptsecz"><a class="sl-skip-link astro-qb7clj6f" href="#_top">Skip to content</a><div class="page sl-flex astro-yntsjkba"><header class="header astro-yntsjkba"><div class="header astro-by6fddyj"><div class="title-wrapper sl-flex astro-by6fddyj"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="site-title sl-flex astro-6rvad3va"><span class="astro-6rvad3va" translate="no">Boat Tech Directory</span></a></div><div class="sl-flex print:hidden astro-by6fddyj"><site-search class="astro-by6fddyj astro-ac66eqjo" data-translations="{&quot;placeholder&quot;:&quot;Search&quot;}"><button data-open-modal disabled aria-label="Search" aria-keyshortcuts="Control+K" class="astro-ac66eqjo"><svg aria-hidden="true" class="astro-ac66eqjo astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg><span class="sl-hidden md:sl-block astro-ac66eqjo" aria-hidden="true">Search</span><kbd class="sl-hidden md:sl-flex astro-ac66eqjo" style="display: none;"><kbd class="astro-ac66eqjo">Ctrl</kbd><kbd class="astro-ac66eqjo">K</kbd></kbd></button><dialog style="padding:0" aria-label="Search" class="astro-ac66eqjo"><div class="dialog-frame sl-flex astro-ac66eqjo"><button data-close-modal class="sl-flex md:sl-hidden astro-ac66eqjo">Cancel</button><div class="search-container astro-ac66eqjo"><div id="starlight__search" class="astro-ac66eqjo"><form id="starlight__search-form" role="search" aria-label="Search" class="astro-ac66eqjo"><input id="starlight__search-input" type="text" autocapitalize="none" enterkeyhint="search" placeholder="Search" title="Search" class="astro-ac66eqjo"><button type="button" id="starlight__search-clear" hidden class="astro-ac66eqjo">Search</button></form><div id="starlight__search-results-area" hidden class="astro-ac66eqjo"><p id="starlight__search-message" role="status" class="astro-ac66eqjo"></p><ol id="starlight__search-results" class="astro-ac66eqjo"></ol></div></div></div></div></dialog></site-search><script>
27
+ </script><template id="theme-icons"><svg aria-hidden="true" class="light astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg><svg aria-hidden="true" class="dark astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg><svg aria-hidden="true" class="auto astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg></template><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/print.ehPL0gv-.css" media="print"><link rel="stylesheet" href="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/common.DpQ1cKKv.css"><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/page.Dwipeu-R.js"></script></head><body class="astro-g5ptsecz"><a class="sl-skip-link astro-qb7clj6f" href="#_top">Skip to content</a><div class="page sl-flex astro-yntsjkba"><header class="header astro-yntsjkba"><div class="header astro-by6fddyj"><div class="title-wrapper sl-flex astro-by6fddyj"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="site-title sl-flex astro-6rvad3va"><span class="astro-6rvad3va" translate="no">Boat Tech Directory</span></a></div><div class="sl-flex print:hidden astro-by6fddyj"><site-search class="astro-by6fddyj astro-ac66eqjo" data-translations="{&quot;placeholder&quot;:&quot;Search&quot;}"><button data-open-modal disabled aria-label="Search" aria-keyshortcuts="Control+K" class="astro-ac66eqjo"><svg aria-hidden="true" class="astro-ac66eqjo astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg><span class="sl-hidden md:sl-block astro-ac66eqjo" aria-hidden="true">Search</span><kbd class="sl-hidden md:sl-flex astro-ac66eqjo" style="display: none;"><kbd class="astro-ac66eqjo">Ctrl</kbd><kbd class="astro-ac66eqjo">K</kbd></kbd></button><dialog style="padding:0" aria-label="Search" class="astro-ac66eqjo"><div class="dialog-frame sl-flex astro-ac66eqjo"><button data-close-modal class="sl-flex md:sl-hidden astro-ac66eqjo">Cancel</button><div class="search-container astro-ac66eqjo"><div id="starlight__search" class="astro-ac66eqjo"><form id="starlight__search-form" role="search" aria-label="Search" class="astro-ac66eqjo"><input id="starlight__search-input" type="text" autocapitalize="none" enterkeyhint="search" placeholder="Search" title="Search" class="astro-ac66eqjo"><button type="button" id="starlight__search-clear" hidden class="astro-ac66eqjo">Search</button></form><div id="starlight__search-results-area" hidden class="astro-ac66eqjo"><p id="starlight__search-message" role="status" class="astro-ac66eqjo"></p><ol id="starlight__search-results" class="astro-ac66eqjo"></ol></div></div></div></div></dialog></site-search><script>
28
28
  (() => {
29
29
  const openBtn = document.querySelector('button[data-open-modal]');
30
30
  const shortcut = openBtn?.querySelector('kbd');
@@ -36,9 +36,9 @@
36
36
  }
37
37
  shortcut.style.display = '';
38
38
  })();
39
- </script><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/Search.astro_astro_type_script_index_0_lang.3ca-UBSH.js"></script></div><div class="sl-hidden md:sl-flex print:hidden right-group astro-by6fddyj"><div class="sl-flex social-icons astro-by6fddyj"><a href="https://github.com/rhizomatics/boat-tech-directory" rel="me" class="sl-flex astro-n2mnl6yq"><span class="sr-only astro-n2mnl6yq">GitHub</span><svg aria-hidden="true" class="astro-n2mnl6yq astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-2z5xp7gb"><span class="sr-only astro-2z5xp7gb">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-2z5xp7gb"><option value="dark" class="astro-2z5xp7gb">Dark</option><option value="light" class="astro-2z5xp7gb">Light</option><option value="auto" selected class="astro-2z5xp7gb">Auto</option></select><svg aria-hidden="true" class="icon caret astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
39
+ </script><script type="module" src="/@rhizomatics/signalk-boat-tech-directory-plugin/_astro/Search.astro_astro_type_script_index_0_lang.DUk3asF9.js"></script></div><div class="sl-hidden md:sl-flex print:hidden right-group astro-by6fddyj"><div class="sl-flex social-icons astro-by6fddyj"><a href="https://github.com/rhizomatics/boat-tech-directory" rel="me" class="sl-flex astro-n2mnl6yq"><span class="sr-only astro-n2mnl6yq">GitHub</span><svg aria-hidden="true" class="astro-n2mnl6yq astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a></div><starlight-theme-select><label style="--sl-select-width: 6.25em" class="astro-2z5xp7gb"><span class="sr-only astro-2z5xp7gb">Select theme</span><svg aria-hidden="true" class="icon label-icon astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg><select autocomplete="off" class="astro-2z5xp7gb"><option value="dark" class="astro-2z5xp7gb">Dark</option><option value="light" class="astro-2z5xp7gb">Light</option><option value="auto" selected class="astro-2z5xp7gb">Auto</option></select><svg aria-hidden="true" class="icon caret astro-2z5xp7gb astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg></label></starlight-theme-select><script>
40
40
  StarlightThemeProvider.updatePickers();
41
- </script><script type="module">var e=`starlight-theme`,t=e=>e===`auto`||e===`dark`||e===`light`?e:`auto`,n=()=>t(typeof localStorage<`u`&&localStorage.getItem(e));function r(t){typeof localStorage<`u`&&localStorage.setItem(e,t===`light`||t===`dark`?t:``)}var i=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`;function a(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e===`auto`?i():e,r(e)}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{n()===`auto`&&a(`auto`)});var o=class extends HTMLElement{constructor(){super(),a(n()),this.querySelector(`select`)?.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&a(t(e.currentTarget.value))})}};customElements.define(`starlight-theme-select`,o);</script><script type="module">var e=class extends HTMLElement{constructor(){super();let e=this.querySelector(`select`);e&&(e.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=e.currentTarget.value)}),window.addEventListener(`pageshow`,t=>{if(!t.persisted)return;let n=e.querySelector(`option[selected]`)?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}};customElements.define(`starlight-lang-select`,e);</script></div></div></header><nav class="sidebar print:hidden astro-yntsjkba" aria-label="Main"><button popovertarget="starlight__sidebar" class="sl-menu-button sl-flex md:sl-hidden print:hidden astro-r2osgdlg"><svg aria-hidden="true" class="open-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg><svg aria-hidden="true" class="close-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="m13.41 12 6.3-6.29a1.004 1.004 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1.004 1.004 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 0 1.42.998.998 0 0 0 1.42 0l6.29-6.3 6.29 6.3a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.42L13.41 12Z"/></svg><span class="sr-only astro-r2osgdlg">Menu</span></button><script type="module">var e=class extends HTMLElement{constructor(){super();let e=matchMedia(`(min-width: 50em)`),t=()=>{this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,()=>t()),this.addEventListener(`toggle`,({newState:e})=>this.trapFocus(e===`open`))}trapFocus(e){document.querySelectorAll(`.main-frame, .sl-skip-link`).forEach(t=>{t.toggleAttribute(`inert`,e)})}};customElements.define(`sl-sidebar-pane`,e);</script><sl-sidebar-pane popover id="starlight__sidebar" class="sidebar-pane astro-yntsjkba"><div class="sidebar-content sl-flex astro-yntsjkba"><sl-sidebar-state-persist data-hash="0920a4u" class="astro-ipdry5cl"><script aria-hidden="true">
41
+ </script><script type="module">var e=`starlight-theme`,t=e=>e===`auto`||e===`dark`||e===`light`?e:`auto`,n=()=>t(typeof localStorage<`u`&&localStorage.getItem(e));function r(t){typeof localStorage<`u`&&localStorage.setItem(e,t===`light`||t===`dark`?t:``)}var i=()=>matchMedia(`(prefers-color-scheme: light)`).matches?`light`:`dark`;function a(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e===`auto`?i():e,r(e)}matchMedia(`(prefers-color-scheme: light)`).addEventListener(`change`,()=>{n()===`auto`&&a(`auto`)});var o=class extends HTMLElement{constructor(){super(),a(n()),this.querySelector(`select`)?.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&a(t(e.currentTarget.value))})}};customElements.define(`starlight-theme-select`,o);</script><script type="module">var e=class extends HTMLElement{constructor(){super();let e=this.querySelector(`select`);e&&(e.addEventListener(`change`,e=>{e.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=e.currentTarget.value)}),window.addEventListener(`pageshow`,t=>{if(!t.persisted)return;let n=e.querySelector(`option[selected]`)?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}};customElements.define(`starlight-lang-select`,e);</script></div></div></header><nav class="sidebar print:hidden astro-yntsjkba" aria-label="Main"><button popovertarget="starlight__sidebar" class="sl-menu-button sl-flex md:sl-hidden print:hidden astro-r2osgdlg"><svg aria-hidden="true" class="open-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg><svg aria-hidden="true" class="close-menu astro-r2osgdlg astro-hkc32dio" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="m13.41 12 6.3-6.29a1.004 1.004 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1.004 1.004 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 0 1.42.998.998 0 0 0 1.42 0l6.29-6.3 6.29 6.3a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.42L13.41 12Z"/></svg><span class="sr-only astro-r2osgdlg">Menu</span></button><script type="module">var e=class extends HTMLElement{constructor(){super();let e=matchMedia(`(min-width: 50em)`),t=()=>{this.popover=e.matches?null:`auto`};t(),e.addEventListener(`change`,()=>t()),this.addEventListener(`toggle`,({newState:e})=>this.trapFocus(e===`open`))}trapFocus(e){document.querySelectorAll(`.main-frame, .sl-skip-link`).forEach(t=>{t.toggleAttribute(`inert`,e)})}};customElements.define(`sl-sidebar-pane`,e);</script><sl-sidebar-pane popover id="starlight__sidebar" class="sidebar-pane astro-yntsjkba"><div class="sidebar-content sl-flex astro-yntsjkba"><sl-sidebar-state-persist data-hash="0iq2k3j" class="astro-ipdry5cl"><script aria-hidden="true">
42
42
  (() => {
43
43
  try {
44
44
  if (!matchMedia('(min-width: 50em)').matches) return;
@@ -61,7 +61,7 @@
61
61
  );
62
62
  } catch {}
63
63
  })();
64
- </script><ul class="top-level astro-wv7whodv"><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Home</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/social/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Social</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/charts/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Charts and Data</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/open-source-projects/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Open Source Projects</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/" aria-current="page" class="large astro-wv7whodv"><span class="astro-wv7whodv">Protocols</span></a><ul class="page-toc astro-wv7whodv"><li class="astro-wv7whodv"><a href="#marine-industry-standards" class="astro-wv7whodv">Marine Industry Standards</a></li><li class="astro-wv7whodv"><a href="#open-source" class="astro-wv7whodv">Open Source</a></li><li class="astro-wv7whodv"><a href="#vendor-proprietary" class="astro-wv7whodv">Vendor Proprietary</a></li><li class="astro-wv7whodv"><a href="#other-industry-standards-on-boats" class="astro-wv7whodv">Other Industry Standards on Boats</a></li></ul></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/vendors/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Vendors</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/news/" class="large astro-wv7whodv"><span class="astro-wv7whodv">News</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/education/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Education</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/servicing/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Servicing and Spares</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/checklists/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Checklists</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/reference/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Reference</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/index-of-terms/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Index</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/contributing/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Contributing</span></a></li></ul><script aria-hidden="true">
64
+ </script><ul class="top-level astro-wv7whodv"><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Home</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/social/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Social</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/charts/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Charts and Data</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/open-source-projects/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Open Source Projects</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/protocols/" aria-current="page" class="large astro-wv7whodv"><span class="astro-wv7whodv">Protocols</span></a><ul class="page-toc astro-wv7whodv"><li class="astro-wv7whodv"><a href="#marine-industry-standards" class="astro-wv7whodv">Marine Industry Standards</a></li><li class="astro-wv7whodv"><a href="#open-source" class="astro-wv7whodv">Open Source</a></li><li class="astro-wv7whodv"><a href="#vendor-proprietary" class="astro-wv7whodv">Vendor Proprietary</a></li><li class="astro-wv7whodv"><a href="#other-industry-standards-on-boats" class="astro-wv7whodv">Other Industry Standards on Boats</a></li></ul></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/vendors/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Vendors</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/news/" class="large astro-wv7whodv"><span class="astro-wv7whodv">News</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/education/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Education</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/servicing/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Servicing and Spares</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/checklists/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Checklists and Templates</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/reference/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Reference</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/index-of-terms/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Index</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/contributing/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Contributing</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/downloads/" class="large astro-wv7whodv"><span class="astro-wv7whodv">Downloads</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/downloads/example-checklists/" class="large sub-entry astro-wv7whodv"><span class="astro-wv7whodv">Example Checklists</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/downloads/navigation-templates/" class="large sub-entry astro-wv7whodv"><span class="astro-wv7whodv">Navigation Templates</span></a></li><li class="astro-wv7whodv"><a href="/@rhizomatics/signalk-boat-tech-directory-plugin/downloads/nmea-wifi-gateways/" class="large sub-entry astro-wv7whodv"><span class="astro-wv7whodv">NMEA Wi-Fi Gateways</span></a></li></ul><script aria-hidden="true">
65
65
  (() => {
66
66
  const scroller = document.getElementById('starlight__sidebar');
67
67
  if (!window._starlightScrollRestore || !scroller) return;