NOMAD K16 Series Protocol
NOMAD K16 Series exposes standard NMEA 0183 output, RTCM v3.x correction input, and POLCFG proprietary commands for embedded-module configuration. Use this reference to review the UART-based data interfaces, query module status, adjust GNSS behavior, and configure serial output.
Protocol scope
1. Standard data interfaces
NOMAD K16 Series uses the carrier-board UART0 data path for positioning output, module configuration, and RTCM correction-data input. NTRIP transport is typically handled by the host application; the module consumes the RTCM data stream.
NMEA 0183 output
NOMAD K16 Series outputs standard NMEA 0183 positioning sentences through the primary carrier-board UART0 interface. The host application can select sentence types and output rates with POLCFG commands.
POLCFGNAV for the navigation update rate and POLCFGMSG for sentence selection, output rates, and output order.RTCM v3.x correction input
NOMAD K16 Series accepts RTCM v3.x correction data for RTK positioning. Use an MSM4 correction stream, as specified in the interface reference, and forward it to the module through the carrier-board serial data path.
Route UART0, power, ground, RF, and any required timing signals through the carrier board. Review Pin Definitions & Interfaces before finalizing the host connection.
2. POLCFG command packet structure
NOMAD K16 Series uses the BEKEN BK1662 platform and exposes POLCFG configuration commands through the carrier-board serial interface. Send uppercase command names with comma-separated parameters.
$POLCFG<Command>[,<Parameter_1>,...,<Parameter_N>]<CR><LF>
-
$POLCFG: Proprietary command header. -
<Command>: Command name, such asPRTorNAV. -
<Parameter>: Command-specific parameters separated by commas. -
<CR><LF>: Serial-terminal line ending, hexadecimal0D 0A. Append it when sending the examples below.
POLCFG input commands do not include an NMEA *checksum suffix. Standard NMEA output uses an 8-bit XOR checksum over the characters between $ and *.
$<Talker_ID><Message_ID>[,<Data_Field>...]*<Checksum><CR><LF>
Use $POLCFGSAVE to retain applicable configuration changes across power cycles. POLCFGNAV and POLCFGSYS take effect after an automatic restart of about two seconds; save after communication resumes. POLCFGMSG class 1 restarts the module and saves automatically.
This command selection follows BK166X interface reference V1.9.44. Commands with a minimum firmware version are identified below; returned version strings and available settings depend on the installed firmware. K16C uses a 1 Hz navigation rate; K16E supports up to 10 Hz, with 1 Hz as the default.
3. POLCFG command quick reference
| Command | Type | Purpose |
|---|---|---|
| System status & control | ||
$OK / $FAIL |
Output | Report command acceptance or failure. |
POLCFGPTVER |
Query | Query firmware version information. |
POLCFGRESET |
Set | Restart with a hot or cold start. |
POLCFGSAVE |
Set | Save the current configuration to Flash. |
POLCFGSDEFT |
Set | Restore the defaults of the installed firmware. |
| GNSS configuration | ||
POLCFGSYS |
Set | Configure constellation and signal selection. |
POLCFGPTSYS |
Query | Query the active constellation and signal mask. |
POLCFGNAV |
Set | Configure navigation and measurement rates. |
| Interface & formatting | ||
POLCFGPRT |
Set | Configure the UART baud rate. |
POLCFGMSG · class 0 |
Set | Enable or disable an individual NMEA sentence. |
POLCFGMSG · class 1 |
Set | Configure the overall NMEA output rate. |
POLCFGMSG · class 2 |
Set | Configure an individual sentence rate and output order. |
4. Detailed POLCFG command dictionary
$OK / $FAIL - Command result
Return format
$OK
$FAIL
| Response | Description |
|---|---|
$OK |
Command received successfully. |
$FAIL |
Command rejected or received incorrectly. |
A baud-rate change or restart can interrupt the response stream. Reconnect at the selected baud rate before checking the resulting configuration.
Example
// Host send: enable GGA
$POLCFGMSG,0,0,1
// Receiver response: accepted
$OK
$POLCFGPTVER - Get version
Format
$POLCFGPTVER<CR><LF>
Return format
$POLRS,<Version>,<Internal_Data>*<Checksum><CR><LF>
Return parameters
| Field | Description |
|---|---|
Version |
Firmware version string returned by the receiver. |
Internal_Data |
Internal reference data; retain the field as received. |
Firmware X166X25075 and later also outputs software and baseband version information in $FWVER and $HWVER sentences.
$FWVER,<Version>*<Checksum><CR><LF>
$HWVER,<Version>*<Checksum><CR><LF>
Example
// Host send
$POLCFGPTVER
// Illustrative version response; actual values vary
$POLRS,4166124305RD,1*71
$POLCFGRESET - Restart
Format
$POLCFGRESET,<Type><CR><LF>
Parameters
| Parameter | Description |
|---|---|
Type |
0: Hot start. 1: Cold start. |
Return format
$OK
$FAIL
Example
// Host send: cold start
$POLCFGRESET,1
$POLCFGSAVE - Save configuration
Format
$POLCFGSAVE<CR><LF>
Return format
$OK
$FAIL
After changing the UART baud rate, send this command at the new baud rate. After a configuration-triggered restart, wait for serial communication to resume before saving.
Example
// Host send
$POLCFGSAVE
// Receiver response: accepted
$OK
$POLCFGSDEFT - Restore firmware defaults
Format
$POLCFGSDEFT<CR><LF>
Return format
$OK
$FAIL
This command replaces custom settings saved by configuration commands and automatically restarts the receiver after about two seconds. Reconnect using the restored serial settings.
Example
// Host send: restore defaults
$POLCFGSDEFT
$POLCFGSYS - Set constellation signals
Format
$POLCFGSYS,<sysMask><CR><LF>
Parameters
| Parameter | Description |
|---|---|
sysMask |
For a complete mask, set each required signal bit to 1. Enter a decimal value or a hexadecimal value ending in H. A complete mask replaces the previous selection. |
Return format
$OK
$FAIL
Signal bit definitions
| Bit | Signal |
|---|---|
0 |
GPS L1 |
1 |
GPS L5 |
2 |
BeiDou B1I |
3 |
BeiDou B2a |
5 |
BeiDou B1C |
6 |
GLONASS G1 |
7 |
Galileo E1 |
8 |
Galileo E5a |
14 |
BeiDou B2I |
The table lists signal bits matching the published K16 frequency specifications. The interface reference does not assign a separate QZSS bit.
To change one signal without replacing the entire mask, send its bit number followed by + to enable or - to disable. For example, 5+ enables BeiDou B1C; it is not a decimal mask value.
Example
// Host send: select BeiDou B1I, B2a, B1C, and B2I only
$POLCFGSYS,402CH
// Alternative: add BeiDou B1C to the current selection
$POLCFGSYS,5+
$POLCFGPTSYS - Get constellation signals
Format
$POLCFGPTSYS<CR><LF>
Return format
$POSYS_BM:0x<Mask>
Return parameters
| Field | Description |
|---|---|
Mask |
Current effective signal mask, printed in hexadecimal. Decode the bits using the signal table above. |
Example
// Host send
$POLCFGPTSYS
// Illustrative response: BeiDou B1I, B2a, B1C, and B2I
$POSYS_BM:0x0000402C
$POLCFGNAV - Set navigation rate
Format
$POLCFGNAV,<navRate>,<measRate><CR><LF>
Parameters
| Parameter | Description |
|---|---|
navRate |
Navigation rate in Hz. K16C: 1.K16E: 1, 5, or 10; default 1. |
measRate |
Measurement output rate in Hz. The reference command accepts 1, 5, 10, and 20; select a value supported by the installed module firmware. The example keeps the 1 Hz baseline. |
Return format
$OK
$FAIL
The BK166X command range is broader than the published K16 navigation profile. It does not establish 20 Hz navigation support for NOMAD.
Example
// Host send: 1 Hz navigation and measurement rates
$POLCFGNAV,1,1
// After the automatic restart and serial reconnection
$POLCFGSAVE
$POLCFGPRT - Set UART baud rate
Format
$POLCFGPRT,<baud>[,<reserved>]<CR><LF>
Parameters
| Parameter | Description |
|---|---|
baud |
Baud rate in bps: 9600, 38400, 57600, 115200, 230400, 460800, 1000000, or 2000000.Default: 115200. |
reserved |
Optional reserved parameter; use 0 when included. |
Return format
$OK
$FAIL
The host may not receive $OK or $FAIL at the old baud rate. Change the host UART setting to the selected rate, check incoming data, and then save the configuration.
Example
// Host send: select the default baud rate
$POLCFGPRT,115200,0
// Host UART: 115200 bps
$POLCFGSAVE
$POLCFGMSG - Enable or disable a sentence
Format
$POLCFGMSG,0,<msgID>,<msgCtrl><CR><LF>
Parameters
| Parameter | Description |
|---|---|
msgID |
Sentence ID from the table below. |
msgCtrl |
0: Disable. 1: Enable. |
Return format
$OK
$FAIL
Common NMEA sentence IDs
| ID | Sentence | Purpose |
|---|---|---|
0 |
GGA |
Position and fix quality |
1 |
GSA |
Active satellites and dilution of precision |
2 |
GSV |
Satellites in view |
3 |
VTG |
Course and ground speed |
5 |
RMC |
Recommended minimum navigation data |
12 |
GST |
Position-error statistics |
13 |
GLL |
Geographic position |
20 |
ZDA |
UTC date and time |
Example
// Host send: enable GGA
$POLCFGMSG,0,0,1
// Host send: disable GSV
$POLCFGMSG,0,2,0
// Retain the sentence selection
$POLCFGSAVE
$POLCFGMSG - Set overall NMEA output rate
Format
$POLCFGMSG,1,<msgRate><CR><LF>
Parameters
| Parameter | Description |
|---|---|
msgRate |
Rate in Hz. 0: Disable all NMEA output. K16C: 1.K16E: 1, 5, or 10; default 1. |
Return format
$OK
$FAIL
Configure the navigation rate separately with POLCFGNAV. Increasing the sentence output rate does not by itself increase the navigation update rate.
Example
// Host send: overall NMEA output at 1 Hz
$POLCFGMSG,1,1
$POLCFGMSG - Set sentence rate and order
Format
$POLCFGMSG,2,<msgID>,<msgRate>,<msgOrder><CR><LF>
Parameters
| Parameter | Description |
|---|---|
msgID |
For the common sentences above: 0, 1, 2, 3, 5, 12, 13, or 20. |
msgRate |
Individual sentence rate in Hz. The reference command accepts 0.1, 0.2, 0.5, 1, 2, 5, 10, or 20. Use a rate appropriate to the module navigation profile; the example uses 1. |
msgOrder |
0: Firmware default order. 1–128: Selected position in the output sequence. |
Return format
$OK
$FAIL
The reference does not specify automatic restart or Flash persistence for class 2. Check the resulting sentence stream and verify retention after a restart before relying on this configuration.
Example
// Host send: RMC at 1 Hz, first in the output sequence
$POLCFGMSG,2,5,1,1
Integration references
Continue with the NOMAD specifications, carrier-board interface definitions, or the hardware integration overview.
Evaluating NOMAD for your hardware design?
Review the product page or discuss a module-level integration requirement with the Kalmix team.