This project lets users program Standard Horizon VHF marine radios from their browser. It is an Angular web application that works with the Standard Horizon HX870, HX890, HX891BT, and GX1400 VHF radios. While it has been tested by many users, it is not provided by Standard Horizon. Use is at your own risk!
Features:
- Edit waypoints, routes, MMSI directories for DSC, and channel configuration
- Edit with a UI or as a YAML file
- Edit device settings and FM presets
- Share a configuration as a link for others to apply to their device
- Backup and restore DAT files
- Available offline via a progressive web app
Requires Chrome, Edge, or Opera (due to availability of the WebSerial API and File System Access API).
This software would not have been possible without the help of
- Arne Johannessen, who documented the HX870's memory layout, and provided valuable tests and feedback for this project;
- Robert Elsinga, who documented the memory layout for the HX890;
- The
hxtool
Python utility by Christiane Ruetten, which provided a model implementation of Standard Horizon's serial protocol; - Norm Perron, who founded the discussion group for HX devices by Standard Horizon and provided testing and feedback for this project.
Feature | HX870 | HX890 | HX891BT | GX1400 |
---|---|---|---|---|
Set up DSC directory | ✅ | ✅ | ✅ | ✅ |
GPS log download | ✅ | ✅ | ✅ | N/A |
Set up waypoints and routes | ✅ | ✅ | ✅ | N/A |
Change channel names | ✅ | ✅ | ✅ | N/A |
Set up intership channels | ✅ | ✅ | ✅ | ✅ |
Set up scrambler codes | N/A | ✅ | ✅ | N/A |
Change device settings | ✅ | ✅ | ✅ | ❌ |
Set up FM presets | N/A | ✅ | ✅ | N/A |
DAT file backup / restore | ✅ | ✅ | ✅ | ✅ |
First-time installation: after cloning this repository, run npm install
from
the project directory to fetch the required modules, and run npm run prebuild
to generate required version files.
Run ng serve --serve-path /hx
for a dev server. Navigate to
http://localhost:4200/hx
. The application will automatically reload if you
change any of the source files.
There is a second app entry point for the share page. It can be started with
ng serve share --serve-path /hx/share
and accessed at
http://localhost:4200/hx/share
.
Run ng generate component component-name
to generate a new component. You can
also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng test
to execute the unit tests via
Karma.
Run npm run build -- --base-href=/hx/
to build the project. The build
artifacts will be stored in the dist/
directory.
Run
npx prettier --write $(git diff HEAD --name-only | egrep '\.(ts|html|css|md)$')
to format files before committing.