https://github.com/canboat/canboat
CAN Boat provides NMEA 2000 and NMEA 0183 utilities. It contains a NMEA 2000 PGN decoder and can read and write N2K messages. It is not meant as an end-user tool but as a discovery mechanism for delving into NMEA 2000 networks.
https://github.com/canboat/canboat
boating n2k nmea-parser nmea-sentences nmea0183 nmea2000 yachting
Last synced: 3 months ago
JSON representation
CAN Boat provides NMEA 2000 and NMEA 0183 utilities. It contains a NMEA 2000 PGN decoder and can read and write N2K messages. It is not meant as an end-user tool but as a discovery mechanism for delving into NMEA 2000 networks.
- Host: GitHub
- URL: https://github.com/canboat/canboat
- Owner: canboat
- License: other
- Created: 2012-04-03T12:26:23.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2025-10-15T17:41:14.000Z (8 months ago)
- Last Synced: 2025-10-16T16:52:25.199Z (8 months ago)
- Topics: boating, n2k, nmea-parser, nmea-sentences, nmea0183, nmea2000, yachting
- Language: C
- Homepage:
- Size: 27.3 MB
- Stars: 600
- Watchers: 69
- Forks: 196
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# CANBOAT
A small but effective set of command-line utilities to work with CAN networks on BOATs. The most common version of CAN networks on board, and in fact at the moment the only ones that this suite can analyse, is NMEA 2000.
The NMEA 2000 database and implementation is copyrighted by the NMEA (National Marine Electronics Association). Access is restricted to members and parties that pay for it. If they do so they are not able to divulge the content of the database, thus making it impossible for open source developers to get access to it.
For this reason we have reverse engineered the NMEA 2000 database by network observation and assembling data from public sources.
## Quick reference
If you just want to know how the NMEA 2000 protocol works, with an explanation of all reverse engineered data, please go to the
[documentation](https://canboat.github.io/canboat) page.
To use the programs included in this project you may need a supported CAN interface. This can be a marketed-as-such NMEA 2000 Gateway or a non NMEA specific CAN interface.
For more information go to the [CANBoat Wiki](http://github.com/canboat/canboat/wiki).
## Building, Development and Testing
In [Wiki](https://github.com/canboat/canboat/wiki) you can find instructions on how to build the programs on your own computer
and how to start extending the PGN database. Short instructions are also found in [BUILDING.md](./BUILDING.md).
## Using the definitions in your own project
If you just want to use the definitions in XML or JSON format, use the versions in the `docs` directory, e.g. (./docs/canboat.xml) or (./docs/canboat.json). The older versions in `analyzer/pgn.{xml,json}` should not be used, they are only present for historical
reasons as there are some downstream projects that use these. These will be removed in v6.
## Version history
See [Changelog](CHANGELOG.md).
## Related Projects
- [canboatjs](https://github.com/canboat/canboatjs) Pure JavaScript NMEA 2000 decoder and encoder
---
(C) 2009-2025, Kees Verruijt, Harlingen, The Netherlands.
This file is part of CANboat.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.