OxTS has released an updated version of the NCOM C decoders. This replaces the original version that has been used for several years now. The new NCOM C decoder includes many more status fields, which are useful to people who are looking in detail at the RT or Inertial+ outputs.
It is likely that this will be the final version of the C decoder. In the future a C++ version will replace the C version. C++ is used in the OxTS applications to decode NCOM and it makes more sense for us to deliver a C++ version to customers since it will be easier to keep this version up to date.
The latest C decoder is not 100% compatible with the original one. Some changes have been necessary in order to expand the original decoder to include the additional features in NCOM. For example, NCOM now supports triggered outputs, which the original decoder was not aware of; NCOM now supports some “approximate” outputs so the validity flags can indicate that values are approximate rather than just invalid or valid.
The C decoders are mainly used by people as an example of how to decode NCOM. They are not the most efficient decoders that are possible; they are designed to be clear and comprehensive. Many customers have run the original decoders without changing them since they can be easily compiled in to an application. The C decoders include a lot of the “derived” measurements. The derived measurements include quantities like forward velocity, which is not transmitted in NCOM but can be computed from the values that are transmitted in NCOM using matrix transformations. On some microcontrollers these transformations can be a burden.
The new NCOM C decoders can be downloaded from the documentation page of the website. A harness is included with the drivers as an example of how they should be used.