Skip to main content

Examples

How to use this page

The examples shown on this page combine the application and transport layers to show the actual bytes on the physical serial link.

When developing against this document, be aware of the separation between the transport layer (CRC, encoding, and encapsulation) and the application layer (operation codes, parameters).

Be aware that the byte offsets described in the application layer always refer to the application layer, and not the byte offsets after encoding for the transport layer.

Module Configuration

CFG_W Configuration Write

The asset sends a CFG_WR request setting payload acknowledgement bit = 1, add geolocation bit = 1, ephemeris enable = 0, deep sleep enable = 0, payload ack event pin mask = 1, reset notification event pin mask = 1. This give 3 bytes of parameters: 0x03 (0b0011), 0x00, 0x03 (0b11).

StartIDParametersChecksumEnd
STXCFG_WR=0x050x03 0x00 0x03LSBMSBETX
0x020x300x350x300x330x300x300x300x330x420x360x350x310x03

The module would reply with a CFG_WA:

StartIDParametersChecksumEnd
STXCFG_WA=0x85NoneLSBMSBETX
0x020x380x35None0x440x440x320x300x03

WIF_W Wi-Fi Configuration Write

The Asset sends a WIF_WR request. Some example details are used here:

StartIDParametersChecksumEnd
STXWIF_WR=0x06WLAN_SSID=“my_wifi_ssid”
WLAN_KEY=“my_wifi_password“
AUTH_TOKEN=“6nxGR4eWYb4R8fEsXx2h1hGoR6nvku2TvGvTuFzxiGYPpICAAroZKttHnzXTQSLEilvCTT7r7E7urZ7iEW42fdibmXG4ROQz”
LSBMSBETX
0x020x300x360x36 0x44 0x37 0x39 0x35 0x46 0x37 0x37 0x36 0x39 0x36 0x36 0x36 0x39 0x35 0x46 0x37 0x33 0x37 0x33 0x36 0x39 0x36 0x34 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x36 0x44 0x37 0x39 0x35 0x46 0x37 0x37 0x36 0x39 0x36 0x36 0x36 0x39 0x35 0x46 0x37 0x30 0x36 0x31 0x37 0x33 0x37 0x33 0x37 0x37 0x36 0x46 0x37 0x32 0x36 0x34 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x33 0x36 0x36 0x45 0x37 0x38 0x34 0x37 0x35 0x32 0x33 0x34 0x36 0x35 0x35 0x37 0x35 0x39 0x36 0x32 0x33 0x34 0x35 0x32 0x33 0x38 0x36 0x36 0x34 0x35 0x37 0x33 0x35 0x38 0x37 0x38 0x33 0x32 0x36 0x38 0x33 0x31 0x36 0x38 0x34 0x37 0x36 0x46 0x35 0x32 0x33 0x36 0x36 0x45 0x37 0x36 0x36 0x42 0x37 0x35 0x33 0x32 0x35 0x34 0x37 0x36 0x34 0x37 0x37 0x36 0x35 0x34 0x37 0x35 0x34 0x36 0x37 0x41 0x37 0x38 0x36 0x39 0x34 0x37 0x35 0x39 0x35 0x30 0x37 0x30 0x34 0x39 0x34 0x33 0x34 0x31 0x34 0x31 0x37 0x32 0x36 0x46 0x35 0x41 0x34 0x42 0x37 0x34 0x37 0x34 0x34 0x38 0x36 0x45 0x37 0x41 0x35 0x38 0x35 0x34 0x35 0x31 0x35 0x33 0x34 0x43 0x34 0x35 0x36 0x39 0x36 0x43 0x37 0x36 0x34 0x33 0x35 0x34 0x35 0x34 0x33 0x37 0x37 0x32 0x33 0x37 0x34 0x35 0x33 0x37 0x37 0x35 0x37 0x32 0x35 0x41 0x33 0x37 0x36 0x39 0x34 0x35 0x35 0x37 0x33 0x34 0x33 0x32 0x36 0x36 0x36 0x34 0x36 0x39 0x36 0x32 0x36 0x44 0x35 0x38 0x34 0x37 0x33 0x34 0x35 0x32 0x34 0x46 0x35 0x31 0x37 0x41 0x30 0x300x380x350x370x450x03

The module would reply with a WIF_WA:

StartIDParametersChecksumEnd
STXWIF_WA=0x86NoneLSBMSBETX
0x020x380x36None0x420x450x310x300x03

The module will then use new custom Wi-Fi configuration parameters.

CFG_R Configuration Read

The asset sends a CFG_RR request:

StartIDParametersChecksumEnd
STXCFG_RR=0x15NoneLSBMSBETX
0x020x310x350x360x340x410x330x03

The module would reply with CFG_RA. The default configuration is shown:

StartIDParametersChecksumEnd
STXCFG_RA=0x950x03 0x01 0x02 0x01 0x00 0x05 0x00 0x01LSBMSBETX
0x020x390x350x30 0x33 0x30 0x31 0x30 0x32 0x30 0x31 0x30 0x30 0x00 0x35 0x30 0x30 0x30 0x310x320x360x320x390x03

This shows:

  • Device Type ID = 3
  • Hardware Revision = 1
  • Firmware Major Version = 2
  • Firmware Minor Version = 1
  • Firmware Revision = 0
  • Configuration Register = 0x05 0x00 0x01 (payload acknowledgements on; geolocation off; ephemeris enabled; deep sleep disabled; payload ack event pin mask on; reset notification event pin mask off).

CFG_S Configuration Save

The asset sends a CFG_SR request:

StartIDParametersChecksumEnd
STXCFG_SR=0x10NoneLSBMSBETX
0x020x310x300x430x310x460x330x03

The module would reply with CFG_SA indicating the configuration has been saved:

StartIDParametersChecksumEnd
STXCFG_SA=0x90NoneLSBMSBETX
0x020x390x300x340x390x360x320x03

CFG_F Factory Reset

The asset sends a CFG_FR request:

StartIDParametersChecksumEnd
STXCFG_FR=0x11NoneLSBMSBETX
0x020x310x300x450x300x450x330x03

The module would reply with CFG_SA indicating the configuration has been reverted to the defaults:

StartIDParametersChecksumEnd
STXCFG_FA=0x91NoneLSBMSBETX
0x020x390x310x360x380x370x320x03

Module Information

RTC_R RTC Read

The asset sends a RTC_RR request:

StartIDParametersChecksumEnd
STXRTC_RR=0x17NoneLSBMSBETX
0x020x310x370x320x360x380x330x03

The module will answer with a RTC_RA answer. In this example the RTC time is 63’072’000 (1 Jan 2020 0h00) becomes 0x03C26700 in big endian which is 0x0067C203 in little endian.

CRC of 0x970067C203 is 0x0EFC which becomes 0x30 0x45 0x46 0x43.

StartIDParametersChecksumEnd
STXRTC_RA=0x97RTC time = 63072000LSBMSBETX
0x020x390x370x30 0x30 0x36 0x37 0x43 0x32 0x30 0x330x460x430x300x450x03

NCO_R Next Contact Opportunity Read

The asset sends a NCO_RR request:

StartIDParametersChecksumEnd
STXNCO_RR=0x18NoneLSBMSBETX
0x020x310x380x430x390x370x320x03

The module will answer with a NCO_RA answer. In this example, the next pass window start is in 11700 (3h15min0s) becomes 0x2DB4 in big endian which is 0xB42D in little endian.

CRC of 0x98B42D is 0x3A02 which becomes 0x33 0x41 0x30 0x32.

StartIDParametersChecksumEnd
STXNCO_RA=0x98Next window start = 11700LSBMSBETX
0x020x390x380x42 0x34 0x32 0x440x300x320x330x410x03

MGI_R Module GUID Read

The asset may query the GUID with MGI_RR:

StartIDParametersChecksumEnd
STXMGI_RR=0x19NoneLSBMSBETX
0x020x310x390x450x380x360x320x03

The module will answer with an MGI_RA answer. Here the example is a18bebf0-15dd-a3e3-903a-46006acfae8e. The 'a' is 0x61, which becomes 0x36 0x31. The '1' is 0x31, which becomes 0x33 0x31.

StartIDParametersChecksumEnd
STXMGI_RA=0x99GUID = a18bebf0-15dd-a3e3-903a-46006acfae8eLSBMSBETX
0x020x390x390x36 0x31 0x33 0x31 0x33 0x38 0x36 0x32 0x36 0x35 0x36 0x32 0x36 0x36 0x33 0x30 0x32 0x44 0x33 0x31 0x33 0x35 0x36 0x34 0x36 0x34 0x32 0x44 0x36 0x31 0x33 0x33 0x36 0x35 0x33 0x33 0x32 0x44 0x33 0x39 0x33 0x30 0x33 0x33 0x36 0x31 0x32 0x44 0x33 0x34 0x33 0x36 0x33 0x30 0x33 0x30 0x33 0x36 0x36 0x31 0x36 0x33 0x36 0x36 0x36 0x31 0x36 0x35 0x33 0x38 0x36 0x350x350x430x330x350x03

MSN_R Module Serial Number Read

The asset may query the serial number with MSN_RR:

StartIDParametersChecksumEnd
STXMSN_RR=0x1ANoneLSBMSBETX
0x020x310x410x380x420x350x320x03

The terminal will answer with an MSN_RA answer. Here the example serial number is DKW2114AS1000510. The 'D' is 0x44, which becomes 0x34 0x34. The 'K' is 0x4B, which becomes 0x34 0x42.

StartIDParametersChecksumEnd
STXMSN_RA=0x9ASerial Number = DKW2114AS1000510LSBMSBETX
0x020x390x410x34 0x34 0x34 0x42 0x35 0x37 0x33 0x32 0x33 0x31 0x33 0x31 0x33 0x34 0x34 0x31 0x35 0x33 0x33 0x31 0x33 0x30 0x33 0x30 0x33 0x30 0x33 0x35 0x33 0x31 0x33 0x300x350x430x330x350x03

Message Management

PLD_E Enqueue Payload

The asset may queue a payload with PLD_ER. In this example, a payload ID of 1001 is used:

StartIDParametersChecksumEnd
STXPLD_ER=0x25ID=1001
Payload="Test"
LSBMSBETX
0x020x320x350x65 0x39 0x30 0x33 0x35 0x34 0x36 0x35 0x37 0x33 0x37 0x340x440x460x360x370x03

The module will answer with a PLD_EA answer, containing the same payload ID. In this example the payload ID is 1001.

StartIDParametersChecksumEnd
STXPLD_EA=0xA50xE90x03LSBMSBETX
0x020x410x350x450x390x300x330x420x390x300x300x03

PLD_D Dequeue Payload

The asset may dequeue the oldest payload with the PLD_DR:

StartIDParametersChecksumEnd
STXPLD_DR=0x26NoneLSBMSBETX
0x020x320x360x350x340x410x350x03

The module will answer with a PLD_DA answer, containing the payload ID of the payload that was dequeued. In this example the payload ID is 89.

StartIDParametersChecksumEnd
STXPLD_DA=0xA60x590x00LSBMSBETX
0x020x410x360x350x390x300x300x380x370x370x370x03

PLD_F Clear/Free Payloads

The asset may clear/free the payload queue with PLD_FR:

StartIDParametersChecksumEnd
STXPLD_FR=0x27NoneLSBMSBETX
0x020x320x370x370x350x420x350x03

The module will answer with a PLD_FA answer.

StartIDParametersChecksumEnd
STXPLD_FA=0xA7NoneLSBMSBETX
0x020x410x370x460x440x320x340x03

GEO_W Geolocation Write

The asset may set the location with GEO_WR. Latitude and longitude in degrees should be multiplied by 10’000’000, and converted to little endian hex.

For example 46.53434° becomes 465’343’400, which is 0x1BBC93A8 big endian, and 0xA893BC1B little endian.

6.578747° becomes 65’787’470, which is 0x03EBD64E, and 0x4ED6EB03 little endian.

StartIDParametersChecksumEnd
STXGEO_WR=0x35Lat=46.53434°
Lng=6.578747°
LSBMSBETX
0x020x330x350x41 0x38 0x39 0x33 0x42 0x43 0x31 0x42 0x34 0x45 0x44 0x36 0x45 0x42 0x30 0x330x420x430x420x380x03

The module will answer with a GEO_WA answer.

StartIDParametersChecksumEnd
STXGEO_WA=0xB5NoneLSBMSBETX
0x020x420x350x380x450x310x360x03

SAK_R Read Satellite ACK

The asset can read satellite message acknowledgements with the SAK_RR request:

StartIDParametersChecksumEnd
STXSAK_RR=0x45NoneLSBMSBETX
0x020x340x35None0x390x310x460x390x03

If an ack is available, the module will answer with a SAK_RA answer. In this example the payload ID 61763 is returned.

StartIDParametersChecksumEnd
STXSAK_RA=0xC543F1LSBMSBETX
0x020x430x350x340x330x460x310x330x410x410x360x03

SAK_C Clear Satellite ACK

If the asset has sent a SAK_RR request, and the module has responded indicating a payload ID has been acknowledged, then the asset may clear the acknowledgment with SAK_CR.

StartIDParametersChecksumEnd
STXSAK_CR=0x46NoneLSBMSBETX
0x020x340x36None0x460x320x430x390x03

Normally the module will respond with SAK_CA.

StartIDParametersChecksumEnd
STXSAK_CA=0xC6NoneLSBMSBETX
0x020x430x36None0x370x410x350x380x03

If the module has not received a prior SAK_RR, then the response to SAK_CR would be an error code NO_CLEAR.

Command Management

CMD_R Command Read

You can read the latest command with CMD_RR:

StartIDParametersChecksumEnd
STXCMD_RR=0x47NoneLSBMSBETX
0x020x340x37None0x440x330x440x390x03

If a command is available, the module will reply with CMD_RA:

StartIDParametersChecksumEnd
STXCMD_RA=0xC7created_date: 1261000, cmd: [0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]LSBMSBETX
0x020x630x370x63 0x38 0x33 0x64 0x31 0x33 0x30 0x30 0x34 0x38 0x36 0x35 0x36 0x63 0x36 0x63 0x36 0x66 0x32 0x30 0x37 0x34 0x36 0x38 0x36 0x35 0x37 0x32 0x36 0x35 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x300x340x440x410x360x03

CMD_C Command Clear

After a CMD_RR command, asset should clear the buffer using CMD_CR:

StartIDParametersChecksumEnd
STXCMD_CR=0x48NoneLSBMSBETX
0x020x340x38None0x330x430x320x380x03

If there is no command to clear, the module will answer with an ERROR:

StartIDParametersChecksumEnd
STXERROR=0xFFNO_COMMAND_CLEAR (0x4801)LSBMSBETX
0x020x660x660x30 0x31 0x34 0x380x300x320x460x390x03

Manufacturing Commands

TTX_S Test Transmit Start

Duration = 20

TTX_SR
StartIDParametersChecksumEnd
STXTTX_SR=0x610x14LSBMSBETX
0x020x360x310x31 0x340x410x310x370x370x03
TTX_SAremaining_count = 1
StartIDParametersChecksumEnd
STXTTX_SA=0xE10x01LSBMSBETX
0x020x650x310x30 0x310x410x440x320x450x03

Advanced Commands

RES_C Clear Reset Event

The asset may clear the module reset bit with RES_CR:

StartIDParametersChecksumEnd
STXRES_CR=0x55NoneLSBMSBETX
0x020x350x350x410x300x450x420x03

Normally the terminal will respond with RES_CA.

The reset bit is cleared, and the event pin is reset.

StartIDParametersChecksumEnd
STXRES_CA=0xD5NoneLSBMSBETX
0x020x440x350x320x380x370x410x03

EVT_R Event Register Read

The asset may query the event register with EVT_RR:

StartIDParametersChecksumEnd
STXEVT_RR=0x65NoneLSBMSBETX
0x020x360x35None0x460x330x440x440x03

The module will answer with an EVT_RA answer. In this example the acknowledgement bit is 1, and the reset notification bit is 0.

StartIDParametersChecksumEnd
STXEVT_RA=0xE5Downlink Event Register0x01LSBMSBETX
0x020x450x350x30 0x310x360x390x450x320x03

Example Message Flow

In normal operation, the asset can expect to queue up to 8 payloads at any time. This would be with the PLD_ER request and corresponding PLD_EA answer. The asset should specify a payload ID to identify each payload inserted into the queue.

The module, left powered, will attempt to upload the payloads to the satellites. The module will determine when satellites are available and try to upload the payloads as soon as possible.

As they are uploaded and acknowledged, the module will provide this information to the asset. If an acknowledgement is available, the event pin will go high. The asset may detect this high state, or it may poll the event register with the EVT_RR request.

If a downlink is available, the asset should read the satellite acknowledgement wit the SAK_RR request. The SAK_RA will contain the payload ID identifying the payload.

The asset should then clear the ack with SAK_CR.

If there are more events available, the event pin and event register will be high/set. The asset should then repeat the process with SAK_RR.