Supplementary Software

Table Of Contents

Installing Charts

The potential danger to the mariner increases with
digital charts because by zooming in, he can increase the chart
scale beyond what can be supported by the source data. The
constant and automatic update of the vessel’s position on the
chart display can give the navigator a false sense of security,
causing him to rely on the accuracy of a chart when the source
data from which the chart was compiled cannot support the
scale of the chart displayed.

Bowditch 2002 Ed p 412.


Brazilian charts - a free download.

OpenCPN does not come with any pre-installed charts. It is up to the user to find and install charts. Read on, and you will find detailed information about which chart formats that OpenCPN can display, as well as pointers to all available charts for OpenCPN, free downloads as well as commercial, that we know of.

Background Chart. OpenCPN comes with a worldwide background map, displayed if no charts are available for an area.

To install charts, OpenCPN must be pointed to a directory containing Charts of one of the recognized  Chart Formats. Don't point OpenCPN to individual charts. You must specify the directory that contains the charts.

Where do I keep my charts ?
The installation tells you to go to the Options->Charts->Chart Files tab to install charts.
When you press the "Add Directory" button the default directory will be "My Documents" for Windows, and the users home directory, for Linux and Mac. These are good places to keep your charts. Create a "Chart" directory, and maybe some sub directories, to keep your charts in, and you can't go far wrong. We suggest you can create a "Chart" directory, and possibly two or three sub directories, "RNC" and "ENC" and  possibly "CM93" to keep your charts in, and you can't go far wrong.  Seasoned users knows where they want their charts.
Regard charts as data, independent of OpenCPN. Store them in a place that is convenient for you and that is left alone by the operating system.
Download some charts (see Chart Sources) to your newly created Chart directory. Follow the directions below to make this directory an "Active Chart Directory"

The main consideration for charts is  storing them in a directory where they will not be tampered with or moved accidentally.

Installing Charts
Open the Options Dialog by clicking .  You are sent to the first tab "Display". Tick the box "Show Chart Outlines". That will help you visualize the loaded charts.

Then click the tab "Charts" and then the tab "Chart Files".

There are no charts loaded. To add charts we have to add a directory that contains charts of a recognized format. To get started press "Add Directories" and navigate to your chart-directory. 

Exactly how the dialog looks like depends on your operating system, and is not a part of the core OpenCPN.
When clicking the button "Open" above,  the highlighted chart directory is added to  the  box "Directories". The screen-shots are from Linux, but this process works similarly on all platforms. Add more chart directories using the same process again. It's OK to load both raster- and vector-charts together.

All that remains is to click the "Apply" button. OpenCPN will then process your selection. You can now start using your charts. When you are done with your settings click "OK" and the Options Dialog closes. If you are just adding a chart directory, it works fine to just click the "Ok" button.

The charts often come in a compressed package eg. a ZIP archive. You must first uncompress them to your disk to be able to set them up. The following screenshot shows the file and directory structure of the NOAA raster charts (RNC) on a local disk

NOAA RNC Charts directory structure

Note that in OpenCPN you must add directories (folders) containing charts, not the individual charts.

For BSB4 and nv-charts, first install the latest plugin version, then point OpenCPN to the correct chart directories and finally do a "Full Database Rebuild".

Eager to get some charts quickly, to get started? Go to:  Chart Sources

Check your charts after installation

This step is important if you just installed some old BSB charts, say from the ninties, or charts of dubious origin. For example, there are a lot of old Maptech charts that uses the Geodetic Datum "Unknown".
It is not a problem with recent charts.
OpenCPN Version 4.0 will reject charts without a projection and add a note in the log about the problem.
Charts with an unrecognized Geodetic Chart Datum will be loaded as if they were WGS84. This may lead to unacceptable errors. The Chart Information Dialog will contain the sentence:"Warning: Chart Datum may be incorrect." , and the log will contain a note with the words "Chart datum {XXXX} invalid on chart".
For practical use, it's very important that the implication of this is understood.
Read up on the subject in the  Chart Info page

Start using your charts.
You can click and drag the chart with your mouse. The cursor changes to an triangular green arrow near the edges of the OpenCPN window, left clicking in this situation, pans the chart in the direction of the arrow. The scroll wheel zooms in and out. Left clicking anywhere centers the view on that position. Right clicking brings up a menu with useful actions. Exactly what the menu contains depends on the circumstances. Read the rest of the manual for a full explanation.

If you are running OpenCPN for the first time you may see the background chart instead of the charts you installed.  That simply means OpenCPN is pointed at a location that is not on any of the charts you installed.  Click and drag, or use the arrow keys, to move the view-point to the  location of one of your installed charts as described under "A few hints" below. Look for the rectangular outlines of the installed charts. An alternative is to right-click, and then click "Jump to position". Enter a location that is within the perimeters of your entered charts. The first time you start OpenCPN the view will be centered on Georgetown in South Carolina.

Quilting Chart Mode is the default display mode. In this mode all available charts at the viewpoint will be quilted together seamlessly according to certain roles. Read more in Chart Quilting. The other display mode is Single chart Mode were only one chart at a time is used. It is possible to read all the information printed in the perimeter of a raster chart. To change to another chart, select and click in the Chart Selection Bar. Read more in Status Bar.
Starting with vector charts?
If you are new to vector charts, including CM93 v2, on OpenCPN follow this quick-start guide:

1 Go to Options ->Charts-> Vector Chart Display and copy the settings below for the Display Category.

2 Press this button in the ToolBar to toggle text display. Alternatively, the "T" hotkey does the same thing.

These are not the "perfect" settings, but you will see most of what you expect from a vector chart.
As soon as you have made yourself reasonably comfortable with OpenCPN and before using Vector Charts for actual navigation, make sure you understand all the settings in the Options-> Charts -> Vector Chart Display Tab by reading the Vector Charts page.
Loading Vector Charts
When using a vector chart for the first time, OpenCPN has to process the data, and transform the information to an internal display format. Click the green chart rectangle in the chart-bar to start the process.

This can take some time, depending on your computer. This internal SENC chart, is saved for future use. The created files are quite large, but is in a format optimized for quick loading. OpenCPN is trading, creation time and size, for fast rendering when actually using the vector chart. The SENC files are saved in the SENC directory, in the same place as the opencpn.conf file - opencpn.ini on windows.
To avoid getting a very long series of SENC charts being built at the same time, use single chart mode, for better control. This is certainly called for in areas that are densely populated with vector charts. Single chart mode and quilting are explained on this page Chart Quilting .
You probably do not want to build SENCs for all of your loaded S57 ENCs unless you plan to actually go there....
For an advanced approach to building all SENC files in one go .. The Command Line
Updating Vector Charts
Publishers of Vector Charts, such as NOAA and EAHC issues regular updates. OpenCPN updates the created SENCs automatically. The chart itself, the base-chart, is named "name".000 , the first update is "name".001 and so on. As a user you only have to make sure that the update files are saved in the same place as the base-chart. In the case of a new edition of the chart a new "name".000 file is issued. Just replace the old file with the new file and OpenCPN will update the SENC file. Don't forget to remove the updates to the old edition of the chart.

In case of missing revisions in a series of updates errors may be introduced. OpenCPN will pop up a warning dialog with this content:
"S57 Cell Update chain incomplete.
ENC features may be incomplete or inaccurate.
Check the logfile for details."

CM93 Charts
CM93-version2 Charts are different from the S57 vector charts, and has it's own data structure consisting of a number of folders and files. To load these charts in OpenCPN just add the top directory to the list of "Active Chart Directories".
In the top CM93 directory is an empty file with the ".EXD", for example 20110803.EXD. The format is YYYYMMDD.EXD. This is the version, or edition, of the CM93 -v2 release.
OpenCPN supports partial CM93 datasets, covering one or a few of the available regions. There is also support for multiple, as well as multiple partial, CM93 datasets.
The CM93 top directory contains a number of (144) subdirectories named from
"00300000" to "04501020", as well as six other files. These sub directories each cover a geographical area of 40° x 40° . The first four numbers describes the latitude and the last four, the longitude of the SW corner of the area covered.

This is a typical content of the CM93 V2 top directory.

The key to understanding the numbers is to realize that CM93's coordinate system
of the world starts at the South Pole or to be exact at lat -90° long 0° and from there
proceeds North a East with a factor of 3 for each degree of lat and long.
The tile 00300000 hence has the SW corner at lat from -90° + 0030:3 = -80° or 80°S to
and longitude  0°E , and covers the area from 80°S latitude to 40°S and from 0° longitude to 40°E.
Looking at 04501020 it brakes down to lat -90° + 0450:3 = 60° and long 1020:3 = 340° subtracting 360° results in -20° or 20°W. So we have he SW corner at 60°N and 20°W .
One more example, the tle 03900840 has the SW corner at 40°N and 80°W.

Each of these sub-directories in turn contains directories with the individual charts. Ordered in scale from smallest to largest they are Z,A,B,C,D,E,F and G. Where Z contains  overview charts and G contains harbor plans. Note that, generally, not all of these are present in each subdirectory.

Z covers 40° x 40° deg area and OpenCPN typically uses 1:3.000.000 scale
A covers 20° x 20° deg area and OpenCPN typically uses 1:1.000.000 scale
B covers 10° x 10° deg area and OpenCPN typically uses 1:200.000 scale
down to
G covers 20' x 20' and OpenCPN typically uses 1:3500 scale.
The individual chart tiles in these directories have the same logic in the naming scheme as described above.

A few hints. Warning, do not use CM93 small scale charts alone for navigation without referring to other sources.
  A Linux/Unix Note
These operating systems have a problem handling chart names containing spaces and non ASCII characters. A typical example is Swedish chart names.
To sort this out use the utility program "detox". Detox changes the file names so space becomes "_"; "(" and ")" become "-"; and "å","ä" and "ö" become "a","a" and "o", etc. To see what "detox" suggests to do, try a dry run first, like this:
detox -n File_with_swedish_charts > outfile

  Go to Table Of Contents

Chart Formats

OpenCPN supported chart formats


Raster Charts

BSB Versions 1, 2 and 3, with chart files ending with ".kap".
Non standard coded "skewed" charts, are handled through internal calculations.
This takes care of a few charts from "Solteknik HB", and possibly others.

BSB Version 4 , with chart files ending with ".cap", works with a non free plugin, for Windows only. See the PlugIns download page.

"nv-charts" with chart files ending with ".eap", are supported through  a non free plugin, for Windows only. See the PlugIns download page.

NOS/GEO Version 1, with chart files ending with ".nos" and ".geo". (Subsequent versions are probably supported but need to be tested. However, this format is obsolete for new charts.)

Vector Charts

S57 ENC charts, with chart files ending with ".000".
ENC update files (ending with .001, .002, ...) are included automatically, if present, and must be placed in the same directory as the corresponding base chart (.000). OpenCPNs internal SENC files has a ".S57" file extension.

If a chart is said to be a S57 Vector chart, and has a different file ending, it is likely to be a SENC file, a processed version of a ".000" chart file, in a proprietary, platform specific format, that OpenCPN can't handle.

Inland ENCs
OpenCPN supports the international Inland ENC standard (S57 based).

S63 Encrypted ENC charts, with chart files ending with ".os63".
This chart format is supported in OpenCPN from version 4. It is the format for all vector charts from national hydrographic offices worldwide. Apart from being encrypted, S63 charts are exactly the same as S57.

All S63 chart worldwide, are available for purchase. The support is through a two part plugin, one part open source and the other part closed. The encryption and the commercial aspect is handled by a separate  entity,

CM93 Version 2.
(C-map Version 3, and later, are in a preprocessed proprietary SENC format  and are not supported.)


Pictures of charts, can be converted, and used.

Generally chart pictures in gif, jpeg, pdf, png, tif, bmp and other formats can be used, when properly geo-referenced, to generate raster charts. For the details about this process read the Chart Conversion Manual.  Also, make sure to browse around the forum as there are a handful of  interesting chart related threads.

Not supported formats that can be converted.

WCI charts generated with SeaClear and MapCal can also be transformed to BSB charts and used by OpenCPN. The key is to open a WCI chart in MapCal and then "Tools->Convert->Current WCI to BMP" to convert the chart to a BMP picture. More about using MapCal, a part of SeaClear, for chart conversions, is available here: Conversion Using Linux. MapCal works just fine with Linux, using Wine.
The necessary utilities for making or converting charts usually only run on Windows or Linux. For  Mac OS X, use boot camp, Parallels or VMware to run one of these operating systems.

OziExplorer charts consisting of picture in one of the standard formats, together with a georeferencing ".map" file, can be converted to a bsb kapfile. A Ruby script for this conversion is available here and a more developed windows version here.  Ozi charts of the ozfx2 or ozfx3 format can not be converted with this tool. These Ozi formats are not documented and proprietary, and cannot be displayed in OpenCPN.

 The HDR/PCX charts, used prior to the BSB format, was used from the late eighties to mid nineties. While these charts cannot be used directly in OpenCPN, the chart-picture as such, can be extracted. These charts consists of many picture tiles in pcx format, more than 100 tiles is not unusual. The tiles can be merged to one big picture, and then used as any other picture, to make an OpenCPN compatible chart. For details on this process see the Chart Conversion Manual  and this post and the following posts in the forum. A script for merging the pcx tiles to one picture is available here.

 The HDR format is from an era when computer-memory and processing power were less powerful than today, as a consequence these charts are not of the same quality as more modern charts. Furthermore, most of these charts are not using WGS 84 as reference datum. These charts should not be the first choice, but can be useful if nothing else is available.

Other formats that are not supported.

The Hydrographic Chart Raster Format, HCRF, used by the United Kingdom Hydrographic Offices' ARCS (Admiralty Raster Chart Service).  This is also due to proprietary encryption algorithms and copyright issues. UKHO is now alone in using this format, since New Zeeland switched to the BSB/Kap format and Australia no longer publishes official raster charts.

Charts from Mapmedia, Navionics, C-map(with the exception of CM93 version 2), Garmin and various other private vendors, are not supported, for the same reasons as for the other proprietary charts. It is not possible for users to convert these charts to an OpenCPN recognized format, but it is possible for these companies, to release OpenCPN plugins, if they  whish.

  Go to Table Of Contents

Chart Conversion Manual

Table Of Contents

imgkap and the kap file

To convert a chart picture to a BSB chart, libbsb was for a long time the only choice.
With the arrival of "imgkap", there is an alternative with updated features.
Read more about imgkap here:

Picture to Chart, some details

For both tiff2bsb(libbsb) and imgkap there must be a user supplied "header" file containing information and Geo-referencing of the chart picture. This file can be produced in different ways. From simple handcrafting, to a method described on the page "Conversion Using Linux", which actually applies to windows as well in many parts.

To see a real header, just open a chart file (whatever.kap) in a text-editor.
The first part of the text in the beginning us user supplied, then comes a text part created by libbsb or imgkap an then the binary part.
Whatever method is used for conversion it is important to understand the header.
Here is a commented header file originating from the NGA project, that describes the essential items in a basic version.

VER/2.0 [0]
BSB/NA= [1]
DTM/0.00,0.00 [18]
CPH/0.0 [19]

0. The BSB version used
1. *Name of chart from the chart. Warning do not use commas ",".
2. *Chart number. Plan A on 23456 should be named 23456_A
3.  Size of picture Pixel x coordinate
4.  Size of picture Pixel y coordinate
5. *Scale of the chart from the chart.
6. *Geodetic datum, for example WGS84, from the chart. If the geodetic datum cannot be determined, don't convert the chart. OpenCPN V4.0 will treat it as WGS84, but this requires a carefull check of the final chart.. For a list of approved Datums see the file georef.cpp in the source code. Charts released earlier than 1990 (?) and conforming to World Geodetic System should be WGS72, unless stated otherwise. The difference between WGS 84 and WGS 72 is minor.
7. *Projection, almost always MERCATOR, a few charts are TRANSVERSE MERCATOR. We should not bother with other projections, GNOMONIC small scale great circle charts etc. High latitude "Lambert Conformal Conic Projection" should be skipped, for now. OpenCPN only handles Mercator, Transverse Mercator and Polyconic Charts. Do not leave this value blank and don't use "UNKNOWN".
8. *For Mercator charts this is the latitude where the scale is valid. If available on the chart, use that value.
If it is not available on the chart use the average value of the latitude of the upper and lower edge, to the nearest 1/10 of a degree.
For Transverse Mercator charts use the average _longitude_  of the eastern and western edge.
Treat a possible large scale gnomonic as a Mercator chart.
8a. SK is the skew angle of charts that are not "North Up". For North Up the value is 0.0
From OpenCPN 3.3.1117 skewed charts without this parameter set, are handled internally, and showed correctly. This is only to handled commercially issued charts that are not correctly coded.
8b.TA is he text angle, more or less always 90.0
9. Unit for soundings from the chart, mostly METERS
10. Datum for soundings from the chart, for ex MLWS, LAT
11. x and y resolution, meters per pixel. Not necessary for us to compute. OpenCPN handles this.
12. Chart edition date copied from the chart,inf in SW corner, except, there must be _no_ commas.
13. Our release edition.
14. Our release date.
16. Geo-referencing, standard case - simple 4 corner chart, use the 4 corners, starting in the SW corner proceeding clockwise.
Format: x pix,y pix, lat, long. Lat & long i decimal degrees, to 8 decimals, where N lat and E long are positive.
One reason to use all 4 corners is to catch  skewed and warped charts, and calculate SK (8a), also to calculate a rotating angle for charts that are not properly aligned.
17. Standard case, just copy the lat & long from the REFs.
18. Corrections in seconds of arc to bring the chart to WGS84. This is generally stated on the chart (if they exist), in a format where the corrections are in minutes of arc for plotting a WGS84 position on the chart. This correction must be transformed to seconds of arc and the signs reversed.(we are doing the reverse to the case stated on the charts). These values are sometimes difficult to find on the chart. Think of OpenCPNs grid as fixed. The Chart needs to be moved. Use + for N and E. Use O's measure tool to measure the offset in meters.1 sec of arc latitude  is 31 m. The longitude varies with the latitude and 1 sec is about 15 m in lat 60.
19. If a chart  spans the 180th meridian = > CPH/180.0, else => CPH/0.0. So CPH/ is 0.0 for most charts. Note that OpenCPN handles transiting the 180:th meridian while a few other plotters don't.

**IFM** is not used as tif2bsb and imgkap calculates this value and ads it to the header on the final kap, together with other values such as RGB. Any manually entered values will be overwritten.

One great advantage with imgkap, compared to libbsb, is that generally the original format for the chart picture can be used directly.
To calibrate a chart can be as simple as composing the headerfile , a text file with the extension ".txt". Often the Lat&Long of the SW and NE corners are printed on the charts.
Use, for example GIMP, to find the pixel coordinates for each corner.

For example, to the chart picture BA1121.jpg we write the header file  BA1121.txt.
To create the chart file with the extension ".kap", issue the command:

imgkap BA1121.jpg BA1121.txt BA1121.kap

The BSB/KAP file format.

Tim Thornton from the TeamSurv project has contributed an extended documentation of the bsb/kap file format headers.

There is a .BSB file for the chart (not required by OpenCPN and many others), and a .KAP file for each panel within the chart (and an additional optional file for updates to charts, which we won’t use). A header file is required. Create this in the tile folder with file name chartname.bsb.txt and chartname.kap.txt. This has the following formats. In all cases, date is in the format mm/dd/yyyy. Data fields must not have commas in them where there are sub fields, and probably not /. In the NA fields (and possibly others) /A indicates a new line. Subfields can be separated with a “,” or a new line.
Note that the origin for pixels is the top left (NW) corner of the chart, whereas for positions it is the usual SW corner.
Tests in OpenCPN have produced a minimum data set requirement for the KAP files. Fields that are required for chart display or for operational reasons have been highlighted in italics in the description. In addition, Raytech requires the BSB file to be present.
BSB Header

! An example BSB text header
CRR/2013, TeamSurv. All rights reserved.
CHT/NA=Australia 3000000, NU=123
NTM/NE=70.00,ND=07/25/2012, BF = on, BD=07/25/2012
K01/NA= Australia 3000000
N000005580027/RT=N,KN=12221_1,CA=CHART,DE=TIDE BOX,P1=3020,8412
N000005580041/RT=L,KN=12221_1,LK=N000005580027,DE=TIDE BOX,
P1=8527, 707
The text header is terminated with a <Control-Z><NUL> sequence (ASCII characters 26 and 0).
  • ! - Comment line
  • VER - Version number of BSB format – we will use 3.0
  • CRR Copyright message. Free text
  • CHT – General parameters
    • NA - Chart name given to the BSB chart (can represent more than one .KAP)
    • NU - Chart number.
  • CHF Chart format (e.g. Overview, General, Coastal, Approach, River, Harbour or Berthing)
  • CED – Chart edition parameters - optional
    • SE - Source edition / number of paper chart
    • RE - Raster edition / number
    • ED - Chart edition date/number
  • NTM – Notices to mariners - optional
    • NE - NTM edition number
    • ND - NTM date
    • BF - Base flag on or off (I guess this allows a base edition of the chart to be specified?)
    • BD - Base date
  • CHK – number of KAPs; KAP number(s). Note sure of format for > 1 KAP. Not sure if the separator should be , or ;
  • CGD - ? coast guard district – optional or can be unknown
  • RGN - ? - optional
  • ORG – Producing agency identifier – TeamSurv for us
  • MFR – Manufacturer of the RNC chart – TeamSurv for us
  • Knn – Records 1 – n for each KAP file
    • NA - Chart name given to the pane
    • NU - Pane number e.g. 123_A
    • TY - Type. Base for the base chart, Inset for a plan contained within the base chart, or extension for a plan outside of the base area
    • FN – KAP file name e.g. 123_1.kap
  • Naa – List of text boxes and hot spot links on the chart
    • RT – N for text box, L for hot spot link
    • KN - ?
    • CA – Category e.g. Chart, Caution, General etc
    • DE – Type e.g. Tide box, note etc
    • LK – Links this hot spot to the specified text box
    • P1, P2, P3, P4 – Hot spot location (just P1) or text box boundaries as 4 point polygon in x, y pixels
KAP Header

! An example KAP text header
CRR/2013, TeamSurv. All rights reserved.
BSB/NA=Australia 3000000
NTM/NE=70.00,ND=07/25/2012, BF = on, BD=07/25/2012
ERR/1,0.0395099814,0.1453734568,0.0000106128,0.0000035 393
ERR/2,0.2568631181,0.1909729033,0.0000135084,0.0000230 797
ERR/3,0.2741345061,0.0861261497,0.0000060346,0.0000246 567
The text header is terminated with a <Control-Z><NUL> sequence (ASCII characters 26 and 0).
Note that where the meaning of a field is the same as in the .BSB file above, it is not repeated here.
  • VER - Version number of BSB format – we will use 3.0
  • BSB (or NOS for older GEO/NOS or GEO/NO1 files) – General parameters
    • NA - Pane name
    • NU - Pane number. If chart is 123 and contains a plan A, the plan should be numbered 123_A
    • RA - width, height - width and height of raster image data in pixels
    • DU - Drawing Units in pixels/inch (same as DPI resolution) e.g. 50, 150, 175, 254, 300
  • KNP – Detailed chart parameters
    • SC - Scale e.g. 25000 means 1:25000
    • GD - Geodetic Datum e.g. WGS84 for us
    • PR - Projection e.g. MERCATOR for us. Other known values are TRANSVERSE MERCATOR or LAMBERT CONFORMAL CONIC or POLYCONIC. This must be one of those listed, as the value determines how PP etc. are interpreted. Only MERCATOR and TRANSVERSE MERCATOR are supported by OpenCPN.
    • PP – Projection parameter. For Mercator charts this is where the scale is valid, i.e. +lat_ts – use average latitude of the chart. For transverse Mercator it is the +lon_0 value.
    • PI – Projection interval ? e.g. 0.0, 0.033333, 0.083333, 2.0
    • SP -? – Unknown is valid
    • SK - Skew angle e.g. 0.0 for us. Angle of rotation of the chart
    • TA - text angle e.g. 90 for us
    • UNDepth units (for depths and heights) e.g. METRES, FATHOMS, FEET
    • SD - Sounding Datum e.g. MEAN LOWER LOW WATER, HHWLT or normally LAT
    • DX – X resolution, distance (meters) covered by one pixel in X direction. OpenCPN ignores this and DY
    • DY – Y resolution, distance covered by one pixel in Y direction
  • CED – Chart edition parameters (see BSB section)
  • NTM – Chart edition parameters (see BSB section)
  • OST - Offset STrip image lines (number of image rows per entry in the index table) e.g. 1. Generated by imgkap.
  • IFM - Depth of the colormap (bits per pixel). BSB supports 1 through 7 (2 through 127 max colors). Or compression type? Generated by imgkap.
  • RGB – Default colour palette - entries in the raster colormap of the form index,red,green,blue (index 0 is not used in BSB). Generated by imgkap.
  • DAY – Optional day colour palette
  • DSK – Optional dusk colour palette
  • NGT – Optional night colour palette
  • NGR – Optional night red colour palette
  • GRY – Optional grey scale palette
  • PRC – Optional palette
  • PRG – Optional grey palette
  • REF – Reference point record, gives point n, then position x, y in pixels, then in longitude, latitude - optional
  • CPH – Phase shift value - optional
  • WPX – Polynomial longitude to x - optional. The Polynomials is an alternative to REF points for georeferencing. OpenCPN uses these polynomials if they are available. The existence of polynomials is a condition for using noaa:s chart reprojection tool.
  • PWX – Polynomial x to longitude - optional
  • WPY – Polynomial latitude to y - optional
  • PWY – Polynomial y to latitude - optional
  • ERR – Error record –These should be present if polynomials are used. These ERR rows report the error at the REF points due to the usage of polynomials.
  • PLY - Border polygon record – coordinates of the panel within the raster image, given in chart datum lat/long. Any shape polygon
  • DTM – Datum shift parameters - Datum's northing and easting in floating point seconds to go between chart datum and WGS84 (omitted or 0,0 for WGS84 charts)
  • KNQ – Additional parameters - Optional
    • P1=?,
    • P2 - the same as KNP PP for Mercator and Transverse Mercator projection.
    • P3= scale factor for Transverse Mercator; 1st standard parallel for lambert conic
    • P4= 0 for Transverse Mercator; 2nd standard parallel for lambert conic
    • P5= Central meridian for Transverse Mercator and lambert conic
    • P6= origin of latitude for Transverse Mercator and lambert conic
    • P7 = +x_0 for Transverse Mercator and lambert conic
    • P8 = +y_0 for Transverse Mercator and lambert conic
    • EC=?
    • GD=?
    • VC= ?
    • SC=?
    • PC=?. Set to TC for Transverse Mercator.


LibBSB is an older alternative to imgkap, for converting chart pictures to usable BSB type charts.

Full documentation and source code is available at

Only binary packages for Debian based Linux distros and Windows are available for download here.  There may be packages available for alternative operating systems elsewhere.





Conversion Using Linux

How to convert your chart images to a format that OpenCPN will read using Linux

Do you have a bunch of scanned charts of your area, in graphical format (jpg, tiff, etc.) and OpenCPN won't read them?
Here's how you can – with a bit of work, sure, but worth the effort – convert them into usable electronic charts.

The tools:

  1. ImageMagick: (Binary releases are available for a few distributions, for Ubuntu just get it with the package manager, it's in the repositories.)
  2. Libbsb: (You will need some version of libtiff-dev and libpng-dev installed to build it. A .deb package that worked fine for me can be found here.
  3. mc2bsbh: you can get it here.
    1. Get the c++ source file, and from its directory, type:
    2. g++ -Wall -s -O2 mc2bsbh.cpp -o mc2bsbh
    3. It compiled without any problem on my (very standard) Karmic. I personally put it in /usr/local/bin, which I own as user, so it's in the PATH and can be called from anywhere, if you leave it in the working directory, use ./mc2bsbh
  4. MapCal: part of the free navigation package SeaClear .
    1. Note: I had some problems running it with Wine (saving the calibration) but I can't reproduce the error and now it works fine. One suggestion is, make the directory you're going to write the calibration in world-writable before running MapCal.
  5. The pcx2tif script (optional) , found here.  This is a great little shell script by "taifun" used to convert old Maptech-style formats of tiled charts. If you find your chart is made of little bits instead of a whole file, this will stitch them all together in TIFF format.
    1. Instructions for use are in the tarball.

Once we have the tools all set up, we can get to work. The process in in five steps:

  1. Convert a chart image to tiff with imagemagick.
  2. Convert it again to png with the same (you'll need both files).
  3. Load the png version of the chart in Mapcal and calibrate it.
  4. Generate the chart header with mc2bsbh, and make the .kap version of the chart, with libbsb.
  5. Copy the resulting .kap into opencpn's chart dir, and reload the chart database.

Let's see them in detail:

Steps 1 and 2:

Say you have a chart in jpeg format called chart.jpg.

From the command line, use:
 convert chart.jpg -colors 127 chart.gif

and then again,
 convert chart.gif -colors 127 chart.tif

and then again,
 convert chart.jpg -colors 127 chart.png

(there is a script that does this for multiple files, get it here , just remove the .doc extension, this is the example)
Throw away the .gif file. Don't ask me why you need to generate it in the first place, but apparently you do, it's an imagemagick thing. Keep the .tif and the .png ones a while longer, though. You'll be even happier to get rid of them when you've finished.

Step 3:

  • Open MapCal.
  • File, Open Image. Open the .png version of your chart. Ignore the data window for the moment, you'll do that later, click OK. You should see your chart.
  • To calibrate it, choose a point near a corner for which it is easy to know lat/lon. Right-click on it, and choose Add New Cal. Point. To zoom in and out use the little + and – buttons at the bottom.
  • Ignore the fact that Latitude has three integer figures, we're still talking about the Earth. Enter the coordinates and proceed for at least three more points, near the corners.
  • Click Activate Changes. Check that the grid makes sense. Click Border, draw a border around the chart (that part is easy).
  • You should also enter some data for the chart: Edit, Chart Information.
  • The Chart Name will show up in OpenCPN to remind you of all your hard work, choose it well.
  • For this example we'll just use “chart”.
  • You should also enter at least Scale (found on the chart) Depth Units, Projection (Mercator most likely) and Datum (WGS84 most likely, but be careful with older charts). All of this information should be found on the chart itself.
  • For more details, you have the SeaClear Manual.
  • File, Save Calibration. Repeat ad-lib for any other charts and exit. If everything went well, you'll find a file called CHARTCAL.DIR in the same directory as you loaded your png chart from. This is used to (finally) make your calibrated chart that OpenCPN will use, as detailed in

Step 4:

  • Generate the chart header from the command line:
    • mc2bsbh CHARTCAL.DIR
  • You should see:
    • Create CHART.hdr
      (the .hdr file must have DOS newlines)
  • So type:
    • tif2bsb -c 127 CHART.hdr chart.tif chart.kap
  • At which point you should have a chart.kap file that OpenCPN will happily use.
      This can be done for many charts at a time by using the tif2bsb batch script from the mc2bsbh page. If it gives you any problem with lowercase-uppercase names, try: 
      for i in `find * -depth`; do (mv $i `echo $i|tr [:upper:] [:lower:]`); done
      which will convert all files in the current directory to lowercase (works great for me).
      If you get an error like /bin/bash^M, no such shell (I did), it's a cr/lf thing, just edit it, type [enter] at the end of each line (there's only 7) and get rid of the blank ones.

Note 1: you can also make the .hdr file “manually”, using a template and entering the calibration data with a text editor, but I won't go into that for the moment.

Note 2 (about the commands, so if there's any problem you know what to look for) :

    convert is a command from imagemagick.
    tif2bsb is a command from libbsb.
    mc2bsbh is a standalone thing.

Note 3: (by Jonasberg, on the colors in the conversions) :

    The "127" is the number of individual colors used. Sometimes it pays of to reduce this number to get a smaller file size, say, if you start with a bitmapped format like png that contains fewer colors.
Note 4: On the joinpcx script:

If you use it "standalone" and not as part of the "charts" script,  change the lines,
convert new1.gif - colors 127 $1.tif
(and .png) to
convert new1.gif -colors 127 `basename $PWD`.tif

(and .png)
because the "$1" will not create files with [directory_name].tif and .png, it won't create any files at all.
Using `basename $PWD`will make files called [current directory name].tif (and .png).
So just edit the script to whatever suits you best.

Chart Conversion

libbsb is a portable C library for reading and writing BSB format image files, typically used for nautical charts.
A number of utilities to convert and work with BSB charts are included in the libbsb package. Sample files and instructions on using these tools are available on the Examples page.
  • bsb2tif - convert BSB image to TIFF format
  • bsb2ppm - convert BSB image to PPM format
  • bsb2png - convert BSB image to PNG format
  • tif2bsb - convert TIFF image to BSB image
  • ppm2bsb - convert PPM image to BSB image
  • bsbfix - fix the index table in a BSB file
The mc2bsbh Utility
This is a utility to take an image of a chart that has been calibrated with MapCal, and convert it into a BSB chart that can be displayed in many marine navigation programs.
KAP-File Utility
GUI for the several command line tools such as mc2bsbh and the libbsb tools, (for Windows, sorry Linux and Mac guys).

Powerfull utility conversion chart to and from a large variety of formats

For Google Earth
GE2KAP (password to decompress the archives: phiggins)
GE2KAP - Creates .KAP charts from Google Earth
GERoute - Follows a route to load the Google Earth cache.
C2GPXKML - Converts navigation routes and tracks to different formats.
Port detail generated by GE2KAP
Many people have found Google Earth and Google Maps printable images helpful in supplementing their knowledge of a particular area or specific location. The ChartAid program offers you the ability to save Google Maps printable images as Raster Charts or Photo Charts, in BSB/KAP file format.
Overlay NOAA raster charts in Google Earth
Script to Convert MaxSea Routes to GPX

VentureFarther is a FREE cruiser built website that allows you to create BSB/KAP format charts online from either Google Maps or Microsofts Virtual Earth. Just create a login, go to the "Advanced Tools For Cruisers/Satellite images BSB/KAP Charts" menu option and start downloading. No software to download and install.

Raster charts classification



*** RASTOW *** (raster-stow contraction) classify your raster charts collection (*.kap files) creating 96 subdirectories divided by timezone (15° steps, without any country exception), north and south, above and below 45° of latitude.
    Two modes of creation are available: -copy- or symbolic -link-. At the end of operation, a chartlist.txt containing a catalog of your charts is automatically created. Using -chartlist- command, you can create only a chartlist from your database. In copy mode, the created database may be bigger than the original base because a map can have a part in more than one timezone or <45° to >45° in latitude, and it resides in all the timezone subs covered. So, use symlinks if your space storage is critical.
    Two others commands are useful to organize your collection with datas founded in the file header:
         -update- change the file date to the last update edition.
         -rename- change the filename by the chart title.
    It's a good practice to make an update before a copy or rename command: if two files are equals, only the most recent will be handle.

    About raster charts: theses charts are not so powerfull and practical than vector charts (no more details zooming, more bigger size), but generally come from original charts edited by officials hydrographics services, the source of vectors charts, so, sometime they may have more details than commercial vector charts (see example in marinux website ) or it is usefull to consult its in case of doubt. Some others people have the homesickness of paper chart look and feel, and theses charts keep the same aspect.


Alarm Sounds

A selection of alarm sound files to use as AIS and Anchor alarm.

Android GPS Apps

There are many needs for GPS and methods for transmitting GPS position information.

1. Laptop GPS (mouse type or other type) ---> Tablet or Phone to run Marine Chart Apps (MxMariner)
2. Tablet or Phone GPS ----> Laptop Opencpn

GPS Availablity Apps:
1. Send Android GPS data from phone to some other device. (also Nmea)
2. Recieve GPS data from Laptop or other GPS device. (also Nmea)

Transmit methods:
1. USB
2. Wifi
3. Bluetooth
and maybe some others.

This category of Supplimental Software may be essential to operation of Opencpn because it can provide position information, however keep in mind that phones can become discharged fast and you may want a better long term source for position information.

I suggest that you read this page web page about Android GPS Apps
"Using Bluetooth GPS with Android" on L-36 website
Updated July 13, 2013

1. Good overview.
2. Suggestion to use External dedicated Bluetooth GPS due to battery life and reliability.
3. Bluetooth GPS  "pretty good app" and  Bluetooth GPS Provider "excellent job of locking"
4. Detailed instructions for Bluetooth GPS Provider.

Android GPS via BT to Opencpn

I did have some luck and help from Bluetooth GPS folks and got Opencpn working with GPS from my Samsung S4  phone via bluetooth, using BT Serial Com port.  It works well.

Bluetooth GPS Output (BTGPS) with Samsung S4 & OpenCPN on Windows
Bluetooth GPS Output by Meowsbox

Works over Wifi, USB or Bluetooth
================================================== =============
Installation Instructions from Meowsbox

Here are a few things to check:
Also see Forum Post for similar Step by Step Description:
This post has other information about protocols and testing of other Apps.

1. For a Windows Computer make sure 'Bluetooth Support Service' is running and set to 'Automatic' by going to ->Control Panel -> Administrative Tools -> Services (select it from the list)" If it is disabled enable it.

2. Did you create the Bluetooth pair from inside BTGPS app? If not, delete the pairing and start over. Pairing from within our app is different than the regular Android way. To delete the pairing, go to Devices and Printers, right click on the Samsung S4 and select Remove. If you don't want to delete your existing pairing, then you'll need to create the outgoing virtual COM port manually.

3. Create a new pairing while Bluetooth GPS Output is running. One of the advantages to doing this is that your computer will automatically find and create the virtual COM ports as part of the pairing process. On the phone in the BTGPS app touch MENU, ADVANCED SETTINGS, then select EMULATED ONLY. (Usually required for Samsung S3 or S4) which launches Bluetooth GPS Output from your phone.

4. Make your phone discoverable via the BTGPS application menu. This is a convenient shortcut.

5. On your computer, search for Bluetooth devices and locate your phone in the list of available devices and initiate the pairing.

6. Pair the Samsung S4 Phone and your Laptop Bluetooth by confirming a number on each device. Check to see that the pairing worked under Devices and Printers.

7. Determine the correct Com Port for Opencpn. Under Windows 7: Control Panel > In search type Bluetooth > Pick Change Bluetooth Settings. Here you should see which Com Port is the "SPP Slave" use that Serial Com Port Number for the Opencpn Connection.

. In OpenCPN under Settings > Connections > Add New > Connection Type= SERIAL (not a network), DataPort= the COM port of your phone listed as "SPP SLAVE" (See the guide below for pictures and more detail), Speed=9600 baud is usually sufficient, Priority=0, Check Control Checksum, uncheck "Garmin mode for input". Other settings can be left to their defaults. Make sure the connection is checked.

9, Test by seeing your Boat become Red and move to true location and by Checking the Nmea Debug box under Connections, to see the Nmea commands being received.

10. For more details, related to Windows 8, but still applies:

11. You are given 10 minutes per use to allow testing then requested to purchase. The best way to purchase is through Paypal as it is good for 5 devices that way. About $2. Their response to my questions was within 6 hours and quite detailed, with Opencpn information.

If you are using Windows 8, John - a user at Intel, has put up a great Windows 8 pictorial guide to getting set up.
Windows 8 Pairing Guide

I invite others to post their detailed APP settings and success.
  • Wireless solution for wired USB/Serial GPS receivers
  • Pairs with any compatible Bluetooth SPP (slave) profile device
  • Works with any Bluetooth enabled PC and most popular GPS software including:
    Microsoft's Streets & Trips
    Garmin's MobilePC
    Geolocational WiFi logging utilities (inSSIDer), and many other applications.
  • Takes advantage of your Android phone's built-in AGPS for shortest time to first fix.
  • Supports background running so you can use your phone uninterrupted.
For the fulll trial and error testing and Muttnick's help and explanation see forum thread Android GPS via Bluetooth to Laptop Opencpn
This thread tested various configurations with Muttnick's comments and explanations.
See this post about two other Android Aps for GPS Bluetooth

Android GPS via USB to Ocpn

How to use a Samsung SIII Mini as GPS for Laptop

First download from ShareGPS Beta
Android app for sharing GPS data with a PC mapping application
See website:

Detailed instructions for Connecting via USB with Franson GpsGate (needed with shareGPS)
Note that Franson GpsGate will also work with wifi and bluetooth.
More installation instructions:

Now download for the Laptop adb.exe at (link adb download)

Run it on the  Laptop in a command prompt box as "adb forward tcp:50000 tcp:50000" (without the quotation marks)

Now setup OpenCPN to receive the NMEA strings. Goto settings -> connections. Select as Properties "Network" "TCP" Adress "" and Dataport "50000" and click "Apply"

Now Run on the Phone ShareGPS and go to "settings" deactivate "Use Bluetooth" - Activate "Use USB" Choose your Format and activate "Create NMEA"

Now the GPS will RUN, not forget to activate the GPS function on the phone.

And Opencpn work with GPS ( my boat seems to be in my garden)

App Summary


GPS Tool

GPS Status & Toolbox is a simple program to show all the GPS and sensor data of your phone. It is designed to be simple, yet effective. It helps you to see what is happening while the GPS is trying to acquire your locations and can be used as a simple compass, as a leveling tool, will measure the phone’s speed and acceleration, the brightness or the air pressure (if your phone has the necessary sensors.) The program also supports basic navigation functions that are useful when you are out in the wild.
My favorite GPS Tool  - Acquires signal faster than any other app.


Send Android GPS signal to other devices

Bluetooth GPS Output Meowsbox
NOTE: Supports transmission over Wifi, USB or BluetoothTested with Opencpn over BT with Success!
Share your GPS location over Bluetooth to nearly any device or software. Use with popular charting programs in the comfort of your PC, maps on another tablet; even with the latest Android Wear.Users have reported success with: OpenCPN, Google Earth, xGPS, GRLevel, inSSIDer, GPSDirect, VisualGPS, even the Samsung Gear* and more! Updated to Version 2 with all the features users have been asking for.
Bluetooth GPS License Meowsbox
Unlocks Bluetooth GPS Output for unlimited usage.Simply purchase this license key, then close and reopen the Bluetooth GPS Output app. Google Play may require internet up to 2 days after purchase to permanently unlock Bluetooth GPS Output. Real human support staff is available to assist you - send us an email if you have any comments, questions.
GPS Share BT
Android phone become a Bluetooth GPS module that the Android Tablet and iPad can navigate. Support send  NMEA data to Android Tablet without GPS so that it can navigate. Tablet need to install BT GPS
All tablet support ! Support send NMEA data to Wi-Fi-only iPad so that it can navigate. IPad need to install roqyBT4 or BTstack GPS. Support three NMEA output format:GPS, Russian GLNOSS and Chinese Beidou (BD2). Turn on Bluetooth, GPS and 3G data in one touch.
GPS over BT Vasiliy Saenko
GPS over BlueTooth allows you to connect your mobile phone as an external GPS receiver that can transmit information about satellites and the currrent location, using Bluetooth, to computer. This will help you to work with such programs as: SasPlanet, Google Earth, OziExplorer, 2Gis and other Navigation applications.
   See this thread for further description of use.


Recieve GPS signal from other devices


BT GPS is an Android tablet app that receives GPS data via Bluetooth. It lets any tablet become navigator right now. The app is specifically designed for large phone and tablet.


No problem! Using GPSDirect to develop location-aware apps
Welcome to GPSDirect and GPSReverse GPS NMEA Windows 7 Windows 8 Sensor Driver iOS Android TCP

"GPSDirect is basically a bridge solution. It's middleware that takes a GPS device connected on a virtual COM port and connects it to the Windows Location Sensor. To date, not many manufacturers provide a true sensor driver for their GPS receivers, and GPS receivers that are integrated into tablet and ultrabook platforms are still fairly rare. For those wishing to develop precision location-aware apps-- or even just use them-- GPSDirect represents the best way to make that possible when a native GPS sensor is not available on the system."

which uses one of the following Android Apps

 GPS Sharing for Windows Sensor
This application shares your Android Phone's GPS with the Windows 7/Windows 8 Sensor driver ( allows you to share the GPS with any Sensor-enabled Windows 7 or Windows 8 Desktop/RT Application!

 Turbo GPS 2
The known all-in-one GPS for android, now in version 2.
* NMEA TCP Server
* Custom GPS provider support (including Bluetooth external GPS)

Celestial Navigation

Application: Astronavigation
The Running Fix problem is easily solved using Astronavigation.exe
 animated gif

Circles of position or Circles of equal altitude. General scale.

Fix and confidence ellipse. Coastal scale.
Pack overview
Software is available for free, for non-commercial use, at: (Only for Windows®)
Plotting circles of equal altitude:  Method explained

Chart Work

Using the GPX utility and the Chart Work family of programs is it possible to do on an electronic nautical chart the work you do in a traditional way.
The three programs are:

  1. Lines of position and Great Circle sailings (orthodromic).
  2. Piloting: Currents and coastal fix.
  3. Search & Rescue search patterns.
GPX output includes:

Coastal navigation LoP

  • Bearing
  • Range
  • Horizontal angle
Celestial navigation LoP
  • Marcq St. Hilaire Line of Position
  • Circle of Position
Radionavigation LoP
  • RDF bearing
  • Great Circle
  • Composite
Piloting and coastal fix
  • Currents Drift and Set
  • Lasheras
  • Ciclonic method
  • Fix by simultaneous Distance and Bearing of same object. Geographic Range, D( waterline, top of object )
  • Fix by 2 simultaneous Horizontal Angles
SAR search patterns – Patrones de búsqueda SAR
  • Expanding Square
  • Sector Search
  • Parallel Search for one ship

Chart Work - Lines of Position & GC sailing


Chart Work - Traditional paper chart work on an ECS.

Coastal navigation

the three types of lines of position used are:

  • Bearing
  • Range
  • Horizontal angle


Fix by three simultaneous bearings.

Fix by three simultaneous bearings. Detail.

Celestial navigation

Offshore navigators use celestial navigation,sextant observations, as a backup for the GPS. Use a sextant for taking the altitude of a celestial body and OpenCPN to plot the celestial circle of position instead the LoP -Line of Position-. Repeat this and take at least three sights. You easily can check if any danger is near your fix, and the uncertainty in your position.

Parameters of a circle of position in astronavigation.

Route using the three types of sailings

  • Rhumb Line. Direct with OpenCPN (And also using Plugin Route_pi).
  • Great Circle(Direct in OpenCPN using using Plugin Route_pi).
  • Composite(Direct in OpenCPN using using Plugin Route_pi).
The three types of sailing are also available in ChartWork

Composite Route.

Composite Route plot with OpenCPN.


RDF or radiogoniometer provide a bearing. Its line of position may be plot using GPX input. Two options:

  • RDF onboard
  • RDF on station

Fix by two RDF bearings with OpenCPN.

Chart Work - Piloting

Using the OpenCPN GPX utility and the Chart Work - Piloting program is it possible to do on an electronic nautical chart the work you do in a traditional way.

Piloting and coastal fix

Advanced piloting techniques - Currents

  • Currents Drift and Set
  • Lasheras
  • Ciclonic method (820. Determining Track Made Good by Plotting Running Fixes. Bowditch-American Practical Navigator.)

Coastal navigation

  • Fix by simultaneous Distance and Bearing of same object. Distance by:
Geographic Range
D( waterline, top of object ) 
  • Fix by 2 simultaneous Horizontal Angles

Chart Work - SAR search patterns

Search & Rescue utility that generates a GPX file for OpenCPN or Google Earth.

Search Pattern:
  • Expanding Square
  • Sector Search
  • Parallel Search for one ship
  • Parallel Search for two ships

Orientation as an input to takes into account tide, wind and drift.
Number of legs and its length may be configurable.

Free software to create the GPX file that serves as an input to OpenCPN is available at (Only for Windows®)

Dedicated Marine OS



Xinutop-nav is a Linux portable or installed marine OS, including a lightweight base applications from Xfce family, and provide, with less of 400Mo, essential marine applications such as:

Xinutop is made with a special care of lightness, simplicity, efficacy, reliability and can operate from multiple datas supports (HDD, SSD, USB, Flash) on a great variety of i386 compatible computers, specially with low power processors, or those unfairly considered as obsolete, poorly supporting the growing greed of currents OS, less and less compatible with embedded hardware. Xinutop can run as a portable operating system on removable device, but also as a main operating system on hard drive (same install). The memory usage after startup is about 100MB. To make Xinutop unbreakable (may I say "unbrickable" - used term for deads tablets - or almost ?), the necessary system files and directories are locked and can't be deleted or modified by a normal way (even in root mode).

Xinutop is assembled with Ubuntu 12.04 packages (Precise), including the scripts "lrd" by Gauvain Pocentek and provide:

Xinutop is under GPL V3, then you are free to use, distribute and modify it, but at your own risk and under your own responsability !


Assembled by Frank Baudet.
Feedbacks, corrections, suggestions, derivatives are welcome.
Thanks to Linux community.



GPS Geolocation for Win8 GNSS Sensor

Small GPS Geolocation Application that enables Windows 8 Tablets or Notebooks with GNSS Sensor

It's been tested inside of a fiberglass boat and the GNSS sensor seems to be able to pick up the signal quite well. Hasn't been tested at sea yet.  See the details here:

Code is available at the bitbucket repo, viz the link above.

The program needs to be improved in many ways. Right now it waits for a connection from OpenCPN and then starts to send messages. Once connected, it should start printing "Sent NMEA sentence $GPRMC XXXXXXX". If that doesn't happen perhaps OpenCPN did not connect. Check that the settings in OpenCPN are correct, as I'm sure you did. just press Apply or OK, once you filled all settings. Also have tried the GPS Satellite application to verify that the GNSS sensor works? You'll find it in the Store.
I'll soon make a nicer more user friendly interface what will make it easier to look for problems. Please watch the bitbucket repo for changes.

See "How to use OpenCPN on a tablet windows 8 thread" and Post 7

A paid alternative if Geolocation does not work for your installation / setup is  which works for an Asus Vivo Tab Smart.

GRIB Data and Software

Freeware application Ugrib allows instant and fully customizable access to global weather data. Within one simple to use interface you can download and view weather data right on your desktop.
The data being served at is from the US GFS global weather model. Its has a native resolution of 0.5 degrees and includes surface winds and barometric pressure. The forecast you get from the webpage is a 7 day forecast with a 3 hour timestep. 

Graphical software for Linux, Mac OS X and Windows (GPL3, Qt) to download and display GRIB 1 files.

NMEA Instruments


NMEA Input/Output/Multiplexing


Linux / OS X



NMEA Instrument Display

Nmea Server using Python Script and Launcher_pi


Contributed by Transmitter Dan, reported by R. Gleason

From the Command Line - Once everything is set up:

from command prompt  cd C:/python27
Command: > python Hakefjord-Sweden.txt 2947 .033
Command: > python Hartmut-Netherlands.txt 2947 .033

Another way to start the Nmea server is to define all the paths to the various files so you don't have to change directory to C:\python\. This example has the Nmea files under C:\Data-Dart\Nmea\ for example:
Command: > c:\python27\python c:\python27\ C:\Data-Dart\Nmea\Hakefjord-Sweden.txt 2947 .033
Command: > c:\python27\python c:\python27\ C:\Data-Dart\Nmea\Hartmut-Netherlands.txt 2947 .033

Download Attached Files

These are available at
    Opencpn Beta File Thingie rguser, rgpass 
               Download from the Nmea-Server folder. PLEASE Remove ".TXT" from

Install and Setup:

1. Download and install Python27 Python is a platform independent scripting language interpreter.
2. You can Download Python for Windows here:  "Download Python 2.7.10  3. Execute the python-2-7-10.msi file and install to c:\python27 by default, it will require 95 mb.
4. Copy the file "" file into c:\python27
5. Copy the NMEA file Hakefjord-Sweden.txt into into c:\python27
6. Copy the NMEA file Harmut-Netherlands.txt into c:\python27
7. Open a command prompt Start > Run > enter CMD  at the prompt type "CD C:\python27"
8. Then enter either command:
    Command: python Hakefjord-Sweden.txt 2947 .033
    Command: python Harmut-Netherlands.txt 2947 .033
9. Leave the command prompt window open to keep the Pyton Server program running.
10. In Opencpn, set up a communications channel for network UDP. This is what the setup screen in O looks like for Windows: In Opencpn  Options > Connections > Add connection
        Connection Type: Network
        Protocol: UDP
        Dataport: 2947
        Priority: 1
        Control Checksum checked
        Receive Input checked
        Output on this port not checked
        Input Filtering:  Sentences only button
Ocpn Options Connections Settings
11. Now you should see the Nmea data being run in Sweden or Netherlands
12. See TransmitterDan's Python script "", which is also below.


Using Launcher_pi to make it easy

If you want to make this even easier, you can download the Launcher_pi plugin and install it. Then under Options > Plugins > Launcher, Enable the plugin.

Then use Launcher > Preferences to make appropriate entries to run various nmea files for testing, eg:

Name : Haken-Sweden
Command:   c:\python27\python c:\python27\ C:\Data-Dart\Nmea\Hakefjord-Sweden.txt 2947 .033

Name: Hartmut-Netherlands
Command: c:\python27\python c:\python27\ C:\Data-Dart\Nmea\Hartmut-Netherlands.txt 2947 .033

Under Options > Plugins hit Apply, Ok and then in the main Opencpn screen bring up the Launcher menu.
Launcher Buttons
You should see Hakefjord-Sweden and Hartmut-Netherlands to select. Try one of them. Don't close the command prompt or the nmea file will stop running. Now go setup Opencpn > Options > Connections as in item #10 above.



import socket
import sys
import time

if len(sys.argv) < 4:
    print("[python] InputFile IP_Address Port# [Sleep time]")
    print("Sleep time is the delay in seconds between UDP messages sent.")
    print("Sleep time defaults to 0.1 seconds")

UDP_IP = sys.argv[2]
UDP_PORT = int(sys.argv[3])
filename = sys.argv[1]

if len(sys.argv) > 4:
    delay = float(sys.argv[4])
    delay = 0.1

print(['UDP target IP:', UDP_IP])
print(['UDP target port:', str(UDP_PORT)])

sock = socket.socket(socket.AF_INET, # Internet
                     socket.SOCK_DGRAM) # UDP
f = open(filename, 'r')

while True :
    mess = f.readline()
    if len(mess) < 1:
#    print(mess)
    mess = mess.strip()
    sock.sendto(mess.encode("utf-8"),(UDP_IP, UDP_PORT))


Official sources
1. France, SHOM -
2. United Kingdom, easytide UKHO -
3. United Kingdom, NOC -
4. The Netherlands, RWS - (including export and print functions)
5. The Netherlands, RWS - iCalendar Tide Wizard:
6. Germany, BSH -
7. United States, NOAA -
8. Canada, CHS (pdf files) You will find the pdfs on the tide station page -
9. Canada, CHS -

Not for navigation!
XTide -  Harmonic tide clock and tide predictor. Work with X-windows, plain text terminals, or the web.

WXTide32 - a free Windows tide and current prediction program.

WXTides Stations - tcdata, (HARMONIC, HARMONIC.IDX), for OpenCPN

cTide: tide prediction software for PocketPC's

JTides - an advanced, accurate, easy-to-use tide and current prediction Java MDI (Multi-Document Interface) application.

QuickTide - a free Windows tide program specifically made for The Netherlands, especially for the tidal area of the Waddenzee. For Linux: runs under Wine. In Dutch only.

Weather Routing

These programs do weather routing, and produce a route that can be exported to OpenCPN in GPX format.

OtVlm is a free, opensource, weather routing program, for Linux, Mac and Windows.
QtVlm Documentation and installation
QtVlm Sourceforge Download
OpenCpn Weather Routing Notes on working with qtVlm
OpenCpn Summary of Routes Transfer between OpenCpn and qtVlm, see bottom of page.
OpenCpn Grib Weather Plugin

Bluewater Racing is another free tool (currently only available on windows):

Gale probability as KMZ-file generated from free available pilot charts:

Magnetic compass

Usually a gyrocompass is not available at a yacht. Instead one or more magnetic compasses serve for steering. The reading of this kind of compass must be corrected for variation and deviation.
OpenCPN uses true course over ground. The course to steer is calculated taking into account the wind, the current and the compass correction: magnetic variation + magnetic deviation:

Deviation curve of magnetic compass

An analytic method for obtaining the deviation curve of a magnetic compass allowing obtaining the value of the deviation for any course.
Magnetic deviation

Magnetic Variation

Magnetic variation, or magnetic declination, is shown on paper and raster charts, but can also be calculated using the World Magnetic Model. C source code for any platform is available at:

For Windows OS, compilations with a graphical user interface (GUI) are available at:
  1. and at

A World Magnetic Data PlugIn is available for OpenCPN since 2011.04.03 (version 0.1) at:

In the example hereunder (from GUI no. 2 above) the nautical translation of "Declinacion magnética y Variación anual" is: "Magnetic variation and annual change".