Freeboard is a stateless, multi-station ready, Openlayers chartplotter for Signal K.
Display and manage routes, waypoints, notes, alarms, notifications on your Signal K server from multiple clients.
Moving map display with the ability to use a combination of online and locally served charts.
Ability to select the active vessel and direct actions to it (where supported by the server).
- North-up / Vessel-up
- Moving Map / Moving Vessel
- Vessel Heading / Bearing lines
- Wind True / Apparent display
- Measure distance
Online:
- OpenStreetMap / WORLD chart outline
- OpenSeaMap
Offline:
- MBTiles (or compatible) charts hosted on the Signal K server via
/resources/chartspath.
- List / Select resources available via
/resources/routes,/resources/waypointspaths - Set an active Route
- Select destination point along and Active Route
- Select a Waypoint as a destination
- Draw Routes
- Add Waypoint at: Cursor or Vessel position
- Edit and delete Routes / Waypoints
- Import Routes and Waypoints from GPX files
- Display Notes and Regions available via
/resources/notesand/resources/regionspaths - View Note properties.
- Draw Regions and add Notes to them.
- Add, edit, move and delete Notes and associate them with Regions.
- Display alarms from received Notification messages (visual and audio).
- Depth
- Closest Approach
- "Buddy" notifications
- Raise alarms such as
Man overboard, etc.
Anchor Watch:
- Set anchor drag alarm
Playback recorded time-series data captured on the Signal K server via the playback api.
Freeboard allows you to use your favourite instrumentation app installed on your Signal K server.
Select from installed applications in the settings screen and they will displayed in the instrument panel drawer.
Instrument Panel (@SignalK/InstrumentPanel) will be displayed by default.
Freeboard is a port of http://www.42.co.nz/freeboard for use with Signal K communication protocols and server features.
For all Freeboard features to be fully functional, it requires that the Signal K server in use be able to provide the necessary services for the following paths:
-
reources/routes,resources/waypoints,resources/notes,resources/regions- Serve resources as well as accept and persist resource data submitted to these paths. -
resources/charts- Serve chart resources. -
navigation/anchor,notifications/navigation/anchor- Serve and acceptposition,maxRadiusvalues as well as calculatecurrentRadiusand serve notifications. -
notifications/environment/depth- Serve notifications forbelowKeel,belowSurfacebelowTransducer. -
navigation/courseGreatCircle/activeRoute- Serve and accepthref&startTimevalues to allow a route to be set as active. It is expected that the server will initiate any subsequent calculations and related value updates. -
navigation/courseGreatCircle/nextPoint- Serve and acceptpositionvalues to allow a waypoint to be set as a destination. It is expected that the server will initiate any subsequent calculations and related value updates. -
Playback History - Implement the Signal K Playback api (
/signalk/v1/playback)
These functions may be provided natively by the server or through the use of plugins.
For example the following plugins installed on the Signal K node server will enable full functionality:
- freeeboard-sk-helper (Course information)
- sk-resources-fs (Routes, Waypoints, Notes & Regions provider)
- @signalk/charts-plugin (Charts provider)
- signalk-anchoralarm-plugin (anchor alarm settings & notifications)
- signalk-simple-notifications (depth alarm notifications)
Freeboard is an Angular project generated with Angular CLI.
It is recommended that the Angular CLI be installed globally npm i -g @angular/cli@latest prior to following the steps below.
-
Clone this repository.
-
Run
npm ito install Angular CLI and project dependencies. Note: this will also build the project placing the deployable application files in thepublicfolder. -
Run
npm startorng serveto start a development web server and then navigate tohttp://localhost:4200/to load the application. The application will automatically reload once you save changes to any of the source files.
The Freeboard application will look to connect to a Signal K server at the ip address:port contained in the url of your browser.
During development, if a Signal K server is not running on your development device, you are able to specify the Signal K server api / stream host you wish to connect to by editing the DEV_SERVER object in the src/app.info.ts file.
DEV_SERVER {
host: '192.168.99.100',
port; 3000,
ssl: false
}
Note: These settings apply in Development Mode only!
- `npm start`
- `ng serve`
- Files generated using `ng build`
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.
- `ng serve --prod`
- Files generated by `ng build --prod`
To build the Freeboard application use the ng build --prod command.
Built application files for deployment are placed in the /public folder.
To build the NPM package use npm pack command which will:
- Build the application using
ng build --prod. - Create the NPM package
*.tgzfile.
Built *.tgz file is placed in the / root folder.

