{"id":26163881,"url":"https://github.com/signalk/freeboard-sk","last_synced_at":"2026-03-14T08:14:55.648Z","repository":{"id":32010647,"uuid":"35581715","full_name":"SignalK/freeboard-sk","owner":"SignalK","description":"Chartplotter implementation for Signal K servers","archived":false,"fork":false,"pushed_at":"2025-03-22T05:33:49.000Z","size":64937,"stargazers_count":42,"open_issues_count":22,"forks_count":29,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-03-27T22:09:52.478Z","etag":null,"topics":["chart","chartplotter","freeboard","signalk"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SignalK.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-05-14T00:37:47.000Z","updated_at":"2025-03-22T05:33:17.000Z","dependencies_parsed_at":"2023-12-07T06:26:16.363Z","dependency_job_id":"b203577e-7c4b-43d0-856f-e6adacdf5373","html_url":"https://github.com/SignalK/freeboard-sk","commit_stats":{"total_commits":636,"total_committers":8,"mean_commits":79.5,"dds":"0.22327044025157228","last_synced_commit":"b9d0adc55271469064dbeb1d5e9992b2ed69c3ca"},"previous_names":[],"tags_count":82,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SignalK%2Ffreeboard-sk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SignalK%2Ffreeboard-sk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SignalK%2Ffreeboard-sk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SignalK%2Ffreeboard-sk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SignalK","download_url":"https://codeload.github.com/SignalK/freeboard-sk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247256102,"owners_count":20909240,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chart","chartplotter","freeboard","signalk"],"created_at":"2025-03-11T14:53:27.022Z","updated_at":"2026-02-08T04:11:19.153Z","avatar_url":"https://github.com/SignalK.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Freeboard-SK\r\nFreeboard-SK is a stateless, multi-station, Openlayers based chart plotter for Signal K.\r\nUse it to display:\r\n- Resources _(i.e. routes, waypoints, notes, charts, etc)_\r\n- Alarms \u0026 notifications\r\n- AIS information\r\n- Weather information\r\n- Signal K instrument WebApps.\r\n\r\nand more from any web enabled device.\r\n\r\n![screen](https://github.com/user-attachments/assets/9b557a33-8a02-4a16-9f37-fd0cc82ab0f1)\r\n\r\n\r\nSee the [FAQs](https://github.com/SignalK/freeboard-sk/wiki) for more information.\r\n\r\n## Features:\r\n\r\n### Vessel / Chart Display:\r\n\r\nMoving map display with:\r\n\r\n- Multiple chart overlay using both of online and locally served charts \r\n- Built in support (no plugin required) for OpenStreetMap and OpenSeaMap(from Signal K server)  \r\n- North-up / Vessel-up orientation   \r\n- Moving Map / Moving Vessel\r\n- Vessel Heading / Bearing lines\r\n- Wind True / Apparent display\r\n- Closest point of approach\r\n\r\nand more.\r\n\r\nCharts are sourced from the `/resources/charts` path on the Signal K server and the following chart types / sources are supported:\r\n\r\n- Image tiles _(XYZ)_\r\n- Vector Tiles _(MVT / PBF)_\r\n- [S57 ENC's converted to vector tiles](#S57-charts) _(MVT / PBF)_\r\n- WMS _(Web Map Server)_\r\n- WMTS _(Web Map Tile Server)_\r\n- PMTiles _(ProtoMap files)_\r\n\r\n---\r\n\r\n### Resources:  \r\n\r\nFreeboard-SK supports the creation, editing and deletion of all resource types defined in the Signal K specification that are available under the `/resources` path.\r\n\r\n__Routes and Waypoints:__\r\n\r\n_Path(s): `/resources/routes`, `/resources/waypoints`_\r\n\r\n- Show / Hide Routes \u0026 Waypoints\r\n- Set a Waypoint as a destination\r\n- Set an active Route\r\n- Select destination point along an Active Route\r\n- Create / Edit / Delete Routes\r\n- Create / Edit / Delete Waypoints\r\n- Create Waypoint at current vessel position\r\n- Import Routes and Waypoints from GPX files\r\n- Attach Notes to Routes \u0026 Waypoints\r\n\r\n__Notes and Regions:__\r\n\r\n_Path(s): `/resources/notes`, `/resources/regions`_\r\n\r\n- Display Notes and Regions\r\n- View / Edit Note properties\r\n- Draw Regions and attach Notes\r\n- Add / Edit / Delete Notes\r\n- Attach Notes to Regions\r\n\r\n__Tracks:__\r\n\r\nWhilst not specifically defined in the Signal K specification, Freeboard-SK supports the import and display of tracks from GPX files which are available under the `/resources/tracks` path.\r\n\r\n- Show / Hide Tracks\r\n- Delete Tracks\r\n\r\n---\r\n\r\n### Autopilot Console:  \r\n\r\nFreeboard-SK supports the Signal K Autopilot API which enables common operations to be performed\r\nincluding:\r\n- Engage / Disengage the autopilot\r\n- Setting the operation mode e.g. compass, route, gps, etc.\r\n- Setting and adjusting the target heading\r\n- Dodging obstacles\r\n\r\n![image](https://github.com/user-attachments/assets/e771fa83-92cd-4e65-ad78-a349646049c8)\r\n\r\n---\r\n\r\n### Alarms and Notifications:\r\n\r\nFreeboard-SK can display alarms _(visual and audio)_ \u0026 messages contained in *Notification* messages transmitted by the Signal K server.\r\n\r\nAdditionally you can set alarms, including _anchor watch_, as well as raise alarms such as _man overboard_, _sinking_, etc directly from the user interface.\r\n\r\nSupported alarm types include:\r\n- Depth\r\n- Closest Approach\r\n- Anchor drag / watch\r\n- \"Buddy\" notifications\r\n- All Signal K specification defined alarms.\r\n\r\n\r\nFreeboard-SK also implements API endpoints to accept requests for raising and clearing Signal K specification defined alarms. \r\n\r\n_See OpenAPI documentation in Signal K Server Admin UI for details._\r\n\r\n\r\n---\r\n\r\n### History Playback\r\n\r\nFreeboard-SK supports the Signal K `playback` api and can replay recorded time-series data captured on a Signal K server equipped with the `signalk-to-infludb` plugin.\r\n\r\n---\r\n\r\n### Instruments: \r\n\r\nFreeboard-SK allows you to use your favourite instrumentation apps installed on the Signal K server.\r\n\r\nSelect one or more installed applications listed in the `settings` screen and they will displayed in the instrument drawer.\r\n\r\nWhen more than one app is selected you can cycle through them within the instrument drawer.\r\n\r\n_Note: The `Signal K Instrument Panel` app will be displayed if no user selection has been made._\r\n\r\n![instruments](https://user-images.githubusercontent.com/38519157/128668406-02cbb8d8-2353-4e93-ae5e-12e0c7d507fe.png)\r\n\r\n---\r\n\r\n### S57 Charts\r\n\r\nFreeboard-SK is able to display S57 ENC charts that have been converted to vector tiles with [s57-tiler](https://github.com/wdantuma/s57-tiler). _(See the [README](https://github.com/wdantuma/s57-tiler) for instructions how to create the vector tiles from downloaded S57 ENC's.)_\r\n\r\nSee [Open CPN chart sources](https://opencpn.org/OpenCPN/info/chartsource.html) for a list of locations to source charts.\r\n\r\n_Note: Only unencrypted ENC's are supported (no S63 support)._\r\n\r\n**_Requires: @signalk/charts-plugin_**\r\n\r\n\r\n![S57 chart](https://github.com/SignalK/freeboard-sk/assets/38519157/a93b3889-d1c8-4df7-9f6f-97a1666fbf77)\r\n\r\nRendering of the Shallow, safety and deep depths and can be configured in the settings dialog\r\n\r\n![S57 Settings](https://github.com/SignalK/freeboard-sk/assets/38519157/0409492b-1ee7-4905-b5b0-e5fc8e68bc9a)\r\n\r\n_Note: This functionality is not a replacement for official navigational charts_\r\n\r\n---\r\n\r\n### Experiments: \r\n\r\nFeatures that are not ready for \"prime time\" are made available as experiments.\r\n\r\nTo make experimental features available from within the Freeboard-SK user interface, you need to ensure the **Experimental Features** option is checked in **Settings**.\r\n\r\n_Note: Some experiments will require configuration of Freeboard-SK via the _Plugin Config_ screen of the Signal K Server Admin UI._\r\n\r\n---\r\n\r\n## System Requirements:\r\n\r\n**Freeboard-SK requires _Signal K Server Version 2.0 or above**.\r\n\r\n\r\nThe following features require that the Signal K server have plugins / providers installed to service the following paths:\r\n\r\n- `resources/charts` - Ability to view charts.\r\n\r\n- `navigation/anchor`, `notifications/navigation/anchor` - Ability to set anchor alarm and display notifications.\r\n\r\n- `notifications/environment/depth` - Display depth notifications.\r\n\r\n- `signalk/v1/playback` (Playback API) - Replay of recorded vessel data.\r\n\r\n- `vessels/self/track` - Display of vessel track stored on server.\r\n\r\n- `vessels/self/navigation/course/calcValues` - Display of calculated course values such as DTG, XTE, etc.\r\n\r\n\r\n### Recommended Plugins:\r\n\r\nThe following plugins are recommended for installation on the Signal K Server to enable full functionality:\r\n\r\n- @signalk/course-provider _(Course calculations e.g. XTE, DTG, etc.)_\r\n- @signalk/charts-plugin *(Mapbox tiles chart provider)*\r\n- signalk-pmtiles-plugin *(ProtoMaps chart provider)*\r\n- signalk-anchoralarm-plugin _(Anchor alarm settings \u0026 notifications)_\r\n- signalk-simple-notifications _(Depth alarm notifications)_\r\n\r\n---\r\n\r\n## Development:\r\n\r\nFreeboard-SK is an Angular project.\r\n\r\nIt is recommended that the Angular CLI be installed globally `npm i -g @angular/cli@latest` prior to following the steps below.\r\n\r\n1. Clone this repository.\r\n\r\n2. Run `npm i` to install project dependencies.\r\n\r\n3. Run `npm start` or `ng serve` to start a development web server and then navigate to `http://localhost:4200/` to load the application. The application will automatically reload once you save changes to any of the source files.\r\n\r\n### Note:\r\n\r\nThe Freeboard-SK application will look to connect to a Signal K server at the *ip address:port* contained in the url of your browser. \r\n\r\nIn development mode you are able to specify the Signal K server host address and port you wish to connect to by editing the `DEV_SERVER` object in the `src/app/app.facade.ts` file.\r\n```\r\nDEV_SERVER { \r\n    host: '192.168.99.100', \r\n    port; 3000, \r\n    ssl: false \r\n}\r\n```\r\n\r\n_Note: These settings apply in **Development Mode** only!_\r\n\r\n_They will __NOT__ apply when using **Production Mode**, the generated application will attempt to connect to a Signal K api / stream on the hosting server._\r\n\r\n---\r\n\r\n### Building a Release:\r\n\r\n__Building the Application:__\r\n\r\nTo build all components of the application _(plugin and webapp)_ ready for release use the `npm run build:prod` command.\r\n\r\n__Building components individually:__\r\n\r\n- To build only the _webapp_ use the command `npm run build:web`.\r\n- To build only the _helper plugin_ use the command `npm run build:helper`.\r\n\r\nBuilt files _(for deployment)_ are placed in the following folders:\r\n-  `/public` _(Freeboard-SK web app)_\r\n-  `/plugin` _(Freeboard-SK plugin)_\r\n\r\n__Building the NPM package:__\r\n\r\nTo build the NPM package use the `npm pack` command to:\r\n1. Execute `npm run build:prod`\r\n1. Create the NPM package (`.tgz`) file in the root folder of the project.\r\n\r\n---\r\n\r\n_**Freeboard-SK** is a port of http://www.42.co.nz/freeboard for use with Signal K communication protocols and server features._\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsignalk%2Ffreeboard-sk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsignalk%2Ffreeboard-sk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsignalk%2Ffreeboard-sk/lists"}