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/charts
path.
- List / Select resources available via
/resources/routes
,/resources/waypoints
paths - 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/notes
and/resources/regions
paths - 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
,maxRadius
values as well as calculatecurrentRadius
and serve notifications. -
notifications/environment/depth
- Serve notifications forbelowKeel
,belowSurface
belowTransducer
. -
navigation/courseGreatCircle/activeRoute
- Serve and accepthref
&startTime
values 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 acceptposition
values 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 i
to install Angular CLI and project dependencies. Note: this will also build the project placing the deployable application files in thepublic
folder. -
Run
npm start
orng serve
to 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
*.tgz
file.
Built *.tgz
file is placed in the /
root folder.