0% found this document useful (0 votes)
458 views52 pages

SPOT X Dev

Uploaded by

Jao
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
458 views52 pages

SPOT X Dev

Uploaded by

Jao
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

SPOT X with Bluetooth® wireless technology

SOFTWARE DESIGN GUIDE


8545-0217-01 v0.1

DISTRIBUTION STATEMENT
GLOBALSTAR CONFIDENTIAL AND PROPRIETARY INFORMATION – All data and information contained in this
document are confidential and proprietary to Globalstar, Inc. The contents of this manual are based on the design,
testing, limits, and specifications applicable only to products supplied by Globalstar, Inc. Information and
instructions contained in this publication anticipate the user possesses and applies the knowledge, training, and
experience commensurate with requirements to meet prerequisite certification.
Globalstar has not participated in the design, test, or certification of any aftermarket parts and accepts no liability for
the suitability, durability, longevity, or safety of products supplied or manufactured by any aftermarket providers.
RESTRICTIVE EXPORT NOTICE – This document may contain technical data whose export is restricted by the Export
Administration Act of 1979, as amended, Title 50, U.S.C., App 2401 et seq. Violations of these export laws are
subject to severe criminal penalties. Disseminate only in accordance with such export laws.
DESTRUCTION NOTICE – Destroy by any method that will prevent disclosure of contents or reconstruction of the
document.
WARNING
Ensure you have the latest revision of this manual, to include any applicable change
pages or service documents prior to use.

Document Title: SPOT X™ Software Design Guide (SDG)


Publication Number: 8545-0217-01 Initial Publication Date: 11/01/2020
SUPERSEDURE NOTICE
Effective Changes for this Manual
11/01/2020

LIST OF EFFECTIVE PAGES


Page Change Page Change Page Change Page Change
All .................................. 0
A .................................... 0

Published and printed in the U.S.A. by Globalstar, Inc.,1351 Holiday Square Blvd., Covington, LA 70433

Copyright ©2020 Globalstar, Inc. All rights reserved.

SPOT is a subsidiary of Globalstar, Inc. All SPOT products described on FindMeSPOT.com are the products of SPOT, LLC. and its affiliates, which are
not affiliated in any manner with SPOT Image of Toulouse, France or SPOT Image Corporation of Chantilly, Virginia.

Globalstar® is a registered trademark of Globalstar, Inc. All other brands, product name, trademarks and registered trademarks are properties of their
respective owners. This material may not be reprinted, republished, broadcast, or otherwise altered without the publisher's written permission. This
manual is provided without express, statutory, or implied warranties. The publisher will not be held liable for any damages caused by or alleged to be
caused by use, misuse, abuse, or misinterpretation of the contents. Content is subject to change without notice.

SPOT X™ Software Design Guide Confidential & Proprietary Information i


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01 v0.1

DISTRIBUTION STATEMENT

Intentionally Left Blank

ii Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

TABLE OF CONTENTS
1. INTRODCTION
1.1.Purpose. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
1.2. Applicable Documents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
1-2.1. Globalstar Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
1-2.2. References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1

1.3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2


1.4. Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
1.5. Certifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3

2. SPOTX BLUETOOTH SOFTWARE ARCHITECTURE


2.1.Software Architecture Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
2-1.1. Atmel® SAMG55 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
2-1.1.1. BLE Rx Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1
2-1.1.2. JSON Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
2-1.1.3. SPOT Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
2-1.2. Nordic nRF5188 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
2-1.2.1. Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
2-1.2.2. Nordic UART Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2

2.2. SPOT X Functions over Bluetooth (BLE). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3


2-2.1. Supported Functions (BLE accessible) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
2-2.2. Unsupported Functions (not accessible over the BLE interface) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3

3. JSON ASYNC MESSAGES


3.1.SPOTX Bluetooth Transaction Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
3-1.1. JSON Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
3-1.1.1. List of JSON commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
3-1.2. JSON ACK/NAK Responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11
3-1.3. Handling Responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11
3-1.4. Known Issue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11
3-1.5. Asynchronous Responses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12
3-1.5.1. Example of Async Outbound Message Count Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-12

3.2. Initial Connection Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12


3.3. Account Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13
3-3.1. Synchronization Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13
3-3.2. Cancel Bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14

SPOT X™ Software Design Guide Confidential & Proprietary Information iii


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

TABLE OF CONTENTS
3-3.3. JSON Sync Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15
3-3.3.1. List of Heartbeat Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-15
3-3.4. JSON Async Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-17
3-3.4.1. GPS Active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-17
3-3.4.2. Message Fetching Active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-17
3-3.4.3. Track Mode Active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-17
3-3.4.4. Suspended Track Mode Active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-17
3-3.4.5. Back Office Sync Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-18
3-3.4.6. SOS Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-18
3-3.4.7. Check OK Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-18
3-3.4.8. Outbound Message Count Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-18
3-3.4.9. Unread Forward Link Message Count Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-18
3-3.4.10. Mid-Level Schedular Message Mode Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-18

4. SPOT X BLUETOOTH INTERFACE WORKFLOWS


4.1.Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
4-1.1. Sending a Single Frame Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
4-1.2. Sending a Multiple Frame Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
4-1.3. Threads and Messages Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3
4-1.3.1. Thread Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3
4-1.3.2. Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4
4-1.3.3. Understanding Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5
4-1.3.3.1. Application was disconnected to device for past 2 hours . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5
4-1.3.3.2. Application is connected to device and we received a new message Async message . . . 4-5
4-1.3.3.3. Application is attempting to delete thread but receives an error. . . . . . . . . . . . . . . . . . . . . 4-5
4-1.4. Contacts Handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6
4-1.4.1. Contact Structure, example: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6
4-1.4.2. Fields Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7
4-1.4.3. Syncing the device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7

4.2. Special Considerations for the Status Flags Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8


4.3. Tips to Use the SPOT X JSON API’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8

GLOSSARY
5.1. Abbreviations & Acronyms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1
5.2. Terms & Definitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3

APPENDIX
A.1. Unicode (ASCII) To SPOT X Character Conversion Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1

iv Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

1. INTRODCTION

1.1. PURPOSE
1. INTRODCTION

This document describes the software design requirements of the SPOT X™ with concurrent support for Bluetooth
Low Energy® (BLE) in the central and peripheral device roles. The SPOT X communicates with both the GPS satellite
network and the Globalstar Satellite Network. The information contained in this document is intended to provide the
VAR/Integrator with the necessary technical information required to configure and interface with the SPOTX using a
custom application.
This document is intended to be used by engineers and technical management and assumes a general knowledge of
basic engineering practices by the user.
NOTE: Globalstar is responsible for ensuring the SPOT X meets the published manufacturing specifications
described herein.

1.2. APPLICABLE DOCUMENTS


1-2.1. GLOBALSTAR DOCUMENTS
GS-07-1248 Remote Telemetry Service Frequency Plan for Simplex Transmitters
GS-07-1247 Remote Telemetry Service Simplex Antenna Specification and Test Procedure
GS-02-0795 Remote Simplex Telemetry System Description and Application Note
GS-09-3102 Globalstar Equipment Evaluation Application for Remote Transmitter Unit
9100-0427-01 SPOT X Quick Start Guide, Rev. 3
8545-0218-01 SPOT X User Guide, Rev.3

1-2.2. REFERENCES
Wikipedia article on Intel Hex format - https://en.wikipedia.org/wiki/Intel_HEX
NMEA-0183 rev. 3.0 Specification
FCC Guidance for Use of Radio Modules KDB 996369 D03 & D04
Nordic Semiconductor©:
• Programmer (Segger)- https://www.digikey.com/product-detail/en/segger-microcontroller-systems/8-08-00-J-LINK-
BASE/899-1004-ND/2175882
• nRF51822 with S130 v2.0.0 - https://infocenter.nordicsemi.com/topic/struct_nrf51/struct/nrf51822.html
• nRF51 Series Compatibility Matrix - https://infocenter.nordicsemi.com/topic/comp_matrix_nrf51/COMP/nrf51/
nrf51_comp_matrix.html
• nRF51 Series Reference Manual - https://infocenter.nordicsemi.com/pdf/nRF51_RM_v3.0.1.pdf?cp=5_2_0
• nRF51 Documentation and Development Kit -https://www.nordicsemi.com/Software-and-tools/Development-Kits/
nRF51-DK
• Nordic Semiconductor nRF SDK 15.2.0 Documentation - https://infocenter.nordicsemi.com/
index.jsp?topic=%2Fcom.nordic.infocenter.sdk5.v15.2.0%2Fble_sdk_app_nus_eval.html

SPOT X™ Software Design Guide Confidential & Proprietary Information 1-1


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

1. INTRODCTION

1.3. OVERVIEW
The SPOT X™ is a half-duplex satellite tracker equipped with Bluetooth® Low Energy (BLE). It supports all the
trademark SPOT functionality such as check in messages, track messages, SOS message and many more. A subset
of the features offered by the stand-alone device are exposed over BLE. Hence, a wireless application can trigger
these features when the device is within Bluetooth range.
SPOT X Bluetooth in this system behaves as a BLE “peripheral device” and is always discoverable. The device
interfacing with the SPOT X Bluetooth is a “central device”. SPOT X Bluetooth utilizes its internal scheduling and
satellite transmission mechanisms to transmit the messages over the air. This qualification covers all device variants
in the nRF51 series in combination with v2.x of the Sx3x SoftDevice stack.
Globalstar uses JSON:APIs to communicate over the BLE interface. Globalstar also offers an application that utilizes
these APIs to extract the SPOT X functionality on a cellular phone.

Figure 1-1. SPOT X™ Bluetooth® System Architecture

1-2 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

1. INTRODCTION

1.4. STANDARDS
• RoHS Restriction of Hazardous Substances
• WEEE Waste Electrical & Electronic Equipment (Europe)
• BLE Bluetooth Smart (previously called Bluetooth Low Energy)

1.5. CERTIFICATIONS
The SPOT X has the following certifications:

FCC COMPLIANCE STATEMENT


FCC Interference Statement (Part 15.1059b)
This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to Part 15 of the
FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential
installation. This equipment generates, uses and can radiate radio frequency energy and, if not installed and used in
accordance with the instructions, may cause harmful interference to radio communications. However, there is no
guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to
radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to
correct the interference by one of the following measures:
Reorient or relocate the receiving antenna.
Increase the separation between the equipment and receiver.
Connect the equipment into an outlet on a circuit different from that to which the receiver is connected. Consult the
dealer or an experienced radio/TV technician for help.

FCC PART 15 CLAUSE 15.21 - DO NOT MODIFY WARNING:


“Changes or modifications not expressly approved by the party responsible for compliance could void the user's authority to
operate the equipment”

FCC REGULATORY
FCC ID: L2V-SPOTXB
FCC regulatory information is accessible on the SPOTX (e-label). The steps to access the information is as follows:
• From the main (home) screen, click on System Settings
• From the System Settings screen, Click on Regulatory Info
• The regulatory screen appears with FCC and Canada regulatory information.

SPOT X™ Software Design Guide Confidential & Proprietary Information 1-3


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

1. INTRODCTION
RÉGLEMENTATION DE LA FCC:
FCC ID: L2V-SPOTXB
Les informations réglementaires de la FCC sont accessibles sur le SPOTX (étiquette électronique). Veuillez suivre les
étapes suivantes pour accéder à ces informations :
• Sur l’écran principal, cliquez sur Configurations du système.
• Sur l’écran de Configurations du système, cliquez sur Informations réglementaires.
• L’écran de réglementation apparait avec les informations réglementaires de la FCC, et celles du Canada.

ISED RSS-GEN NOTICE


(1) This device may not cause interference; and (2) This device must accept any interference, including interference that
may cause undesired operation of the device.
(1) l’appareil ne doit pas produire de brouillage; (2) l’appareil doit accepter tout brouillage radioélectrique subi, même si le
brouillage est susceptible d’en compromettre le fonctionnement

INDUSTRY CANADA CERTIFICATION


This Class B digital apparatus complies with Canadian ICES-003.
This device complies with Industry Canada license-exempt RSS standard(s). Operation is subject to the following two
conditions: (1) this device may not cause interference, and (2) this device must accept any interference, including
interference that may cause undesired operation of the device.

CANADA REGULATORY
IC: 3989A-SPOTXB
CAN ICES-3(B)/NMB-3B
Canadian regulatory information is accessible on the SPOTX (e-label). The steps to access the information is as
follows:
• From the main (home) screen, click on System Settings
• From the System Settings screen, Click on Regulatory Info
• The regulatory screen appears with FCC and Canada regulatory information.

RÉGLEMENTATION DU CANADA:
IC: 3989A-SPOTXB
CAN ICES-3(B)/NMB-3B
Les informations réglementaires du Canada sont accessibles sur le SPOTX (étiquette électronique). Veuillez suivre
les étapes suivantes pour accéder à ces informations:
• Sur l’écran principal, cliquez sur Configurations du système.
• Sur l’écran de Configurations du système, cliquez sur Informations réglementaires.
• L’écran de réglementation apparait avec les informations réglementaires de la FCC, et celles du Canada.
1-4 Confidential & Proprietary Information SPOT X™ Software Design Guide
©2020 Globalstar, Inc.
8545-0217-01  

1. INTRODCTION
DECLARATION OF CONFORMITY FOR EUROPEAN CUSTOMERS
Hereby, SPOT LLC declares that this SPOT X, is in compliance with the Directive 2014/53/EU. The full text of the EU
Declaration of Conformity may be consulted at FindMeSPOT.com/Regulatory.

Transmit frequencies: 1611.25, 1613.75, 1616.25 and 1618.75 MHz. (1610-1620 MHz) Bluetooth: 2402 – 2480
MHz Maximum EIRP Satellite: 22.35 dBm
Rated Voltage: 5 VDC, Rated Maximum Current: 550mA
This device complies with the requirements for Radio Astronomy Site avoidance as specified by the Globalstar
National Science Foundation agreement of 2001. It is compliant with CFR25.213.
This device automatically adjusts its transmission frequency according to its location and is compliant with
international regulatory requirements.

SPOT X™ Software Design Guide Confidential & Proprietary Information 1-5


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

1. INTRODCTION

Intentionally Left Blank

1-6 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

2. SPOT X BLUETOOTH SOFTWARE ARCHITECTURE

2.1. SOFTWARE ARCHITECTURE OVERVIEW


2. SPOT X BLUETOOTH SOFTWARE ARCHITECTURE

There are two processors involved in handling the data transmitted over the Bluetooth® Low Energy (BLE) interface.
Both processors communicate using the Nordic Semiconductor© UART:

1. Atmel® SAMG55 (Main processor)


2. Nordic Semiconductor© nRF51822 (BLE processor)
NOTE: RTS & CTS are not utilized in this configuration.

Figure 2-1. SPOT X™ Bluetooth® Software Architecture

2-1.1. ATMEL® SAMG55


This is the main processor in the system that handles all the SPOT X device functionality. Some of the functions would
be, sending / receiving messages, scheduling track messages, updating notifications etc. In the case a BLE central
device is connected and actively communicating with the SPOT X Bluetooth, this processor will also handle the
events generated by the phone app.

2-1.1.1. BLE Rx Task


This is a basic FreeRTOS task which will handle the incoming characters over the UART interface. Once a
valid command has been received, it will pass the buffer over to the JSON Parser.

SPOT X™ Software Design Guide Confidential & Proprietary Information 2-1


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

2. SPOT X BLUETOOTH SOFTWARE ARCHITECTURE


2-1.1.2. JSON Parser
JSON parser receives a buffer from the BLE Rx Task. It will then try to parse the JSON command and see if it
is a valid command. If it is a valid command it will be sent over to the appropriate part of the SPOT scheduler
to act upon the event that was just received. In case of an invalid command, JSON parser will NAK the
command and this NAK will be communicated to the BLE processor and eventually to the connected device.

2-1.1.3. SPOT Scheduler


This software component handles all the SPOT X based functionality like scheduling the messages,
transmitting OTA and reporting the results back.

2-1.2. NORDIC NRF51822


This processor handles all the BLE based transaction relating to handshaking, transferring of data using the BLE
radio. Also, this basically acts as a bridge between the Phone and the Atmel SAMG55 processor. Nordic processor
will receive the data over BLE radio and pipe over the UART to Atmel SAMG55 processor.

2-1.2.1. Bootloader
This is Globalstar’s custom bootloader implementation for the Nordic nRF51 chip. It is utilized by the Atmel
SAMG55 in the event the Nordic firmware needs to be updated. The updating takes place over the UART
interface and is wired using the USB present on the SPOT X Bluetooth device.

2-1.2.2. Nordic UART Service


Nordic UART Service (UUID:6E400001-B5A3-F393-E0A9-E50E24DCCA9E): This service will be utilized to
communicate back and forth between the BLE central device (Phone) and SPOTX Bluetooth. BLE
communication with the SPOT X device is achieved using the Nordic proprietary UART service (nRF UART).
When scanning for devices, look for ones that advertise this service. Additionally, all SPOT X devices
broadcast with the prefix "SXB-". Once the device you wish to connect to is found, connect to the BLE GATT
using your mobile platform’s BLE interface. After this connection is established, you should discover services.
Once the nRF UART service is found, you can send and receive commands.
Nordic UART consists of two characteristics: one for transmitting and one for receiving (as seen from the
peer).

• Tx(0x0002): Transmits data from the Sensor Node to the configuration central device. If the peer has
enabled notifications for the TX Characteristic, the application can send data to the peer as notifications.
The application will transmit all data received over UART as notifications.

• Rx(0x0003): Receives data transmitted from the configuration central device. The peer can send data to
the device by writing to the RX Characteristic of the service. ATT Write Request or ATT Write Command
can be used. The received data is sent on the UART interface.

2-2 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

2. SPOT X BLUETOOTH SOFTWARE ARCHITECTURE

2.2. SPOT X FUNCTIONS OVER BLUETOOTH (BLE)

2-2.1. SUPPORTED FUNCTIONS (BLE ACCESSIBLE)


Reference Glossary in the rear of the SPOTX Software Design Guide for further information about the following BLE
accessible functions:

2-2.1.1. Check in Message


Check in with friends and family by quickly sending a pre-programmed message and/or email along with your
GPS coordinates. The Check In message will include a link to a map showing the SPOT X’s location. Make
sure you set up this feature before you go off the grid. The Check In message can be edited and assigned to
contacts via SPOT MY ACCOUNT at any time.

2-2.1.2. Track Message


With SPOT X, your friends and family can track your progress in near real-time using the Shared View giving
them a virtual breadcrumb trail of your adventure.
1. Initiate Track Mode - Once your GPS position is acquired, SPOT X will send your tracks in accordance
with the tracking interval you have selected until you manually stop tracking, the SPOT X detects no
movement, or you power-off the SPOT X device.
While Tracking is active, SPOT X should remain outside in clear view of the sky with no obstructions in
order to maintain network connectivity.
2. Suspended Track Mode - SPOT X only sends tracks when Tracking mode is active and the device is mov-
ing. When the device is stationary for more than 5 minutes, SPOT X will enter Suspended Tracking mode
and you will see in the Status Bar. SPOT X will automatically send one more track from your resting loca-
tion. While at rest, SPOT X will not send tracks. Tracking will automatically resume after the accelerome-
ter detects the unit has begun moving again.

2-2.1.3. Two Way (2-Way) Messaging


1. Custom Messages - Send and receive 140 character text messages and emails with family and friends
from virtually anywhere in the world. SPOT even provides you with your own mobile device number so
others can reach you anytime.
2. Predefined Messages - Make messaging even easier by sending a Predefined Message. These mes-
sages can only be edited in your SPOT MY ACCOUNT and up to 14 Predefined Messages can be stored
on your SPOT X. Syncing SPOT X with your SPOT MY ACCOUNT is required for Predefined Messages to
appear on your device.

2-2.1.4. Contacts
SPOT X can hold up to 70 contacts and/or contact groups. Contacts can be manually added through the
SPOT X or through SPOT MY ACCOUNT. If added through SPOT MY ACCOUNT, syncing is required using the
SPOT X Firmware Updater in order for the contacts to display on the SPOT X.
1. If both Email and SMS/TEXT fields are filled in, the SPOT X will create two separate contacts, one for
each field

SPOT X™ Software Design Guide Confidential & Proprietary Information 2-3


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

2. SPOT X BLUETOOTH SOFTWARE ARCHITECTURE


2. Deleting Contacts - If the SPOT X device had been previously synced with SPOT My Account and the
contact was present in both locations, once a new sync is performed the deleted contact will be also
removed from the contact list in SPOT My Account.

2-2.1.5. Setting System Time


An alternate method to allow the connected device to set the time/date with the API.

2-2.1.6. Set/Get Track Interval


The SPOT X default tracking interval is 10 minutes. Depending upon your service plan, you can select from
tracking intervals of 2½, 5, 10, 30, or 60 minutes.

2-2.1.7. Set/Get Fetch Interval


Every time SPOT X sends a track and/or a message, SPOT X will also retrieve and download any incoming
messages. When you're not Tracking or sending a message, the Message Fetching function will check
messages for you.
The SPOT X default message fetching interval is Off/Manual Fetching. Depending upon your service plan, you
can select from fetching intervals of 2½, 5, 10, 30, 60 minutes, 4 hrs, 24 hrs, or Off/Manual fetching.

2-2.1.8. Device Icons, Displays, & Physical Characteristcs


All SPOT X device status bar icons, menu display icons, displays, function keys, buttons and leds are shown in
the SPOT X User Guide, pages 3-6.

2-2.1.9. Device Syncing


Any device settings listed in the user manual that require syncing with the Backoffice can be synced via the
API description in the document.
NOTE: This is not just pre-defined messages**
1. Includes
2. Predefined Messages
3. Contacts
4. Waypoints

2-4 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

2. SPOT X BLUETOOTH SOFTWARE ARCHITECTURE


IMPORTANT NOTICE
S.O.S. MODE SHOULD ONLY BE USED DURING LIFE THREATENING EMERGENCIES. SENDING
FALSE S.O.S. MESSAGES MAY SUBJECT YOU TO LIABILITY FOR ADDITIONAL CHARGES.

2-2.1.10. S.O.S. Activation


Activate the S.O.S. mode to begin communicating and sending alerts directly to GEOS International
Emergency Response Coordination Center (IERCC). GEOS IERCC will notify the appropriate emergency
responders based on the SPOT X's GPS location and your emergency situation. Responders may include
local police, Coast Guard, or Search and Rescue teams. For full details about GEOS IERCC, please visit
FindMeSPOT.com/GEOS
1. The S.O.S. icon should appear on the Status Bar to indicate that S.O.S. has been initiated.
2. Once S.O.S. is initiated, GEOS IERCC will be notified of your emergency. SPOT will continuously send
S.O.S. notifications with your GPS position to GEOS IERCC every 5 minutes until S.O.S. is canceled or
the SPOT X is powered off.
3. SPOT X will then allow you to communicate 2-Way, via message, with GEOS IERCC by selecting the Text
GEOS button.
4. Upon activating S.O.S., the device will terminate all previously queued messages waiting to be transmit-
ted as well as Navigation, Check In, and Tracking if active. The SPOT X device will be locked down on
S.O.S. Mode and you will not be able to send messages to anyone other than GEOS IERCC until S.O.S. is
canceled.
5. While S.O.S. is active, the SPOT X should remain outside in clear view of the sky with no obstructions in
order to maintain network connectivity.

2-2.2. UNSUPPORTED FUNCTIONS (NOT ACCESSIBLE OVER THE BLE INTERFACE)

2-2.2.1. Navigation Mode


SPOT X has a built-in compass that comes with several navigational features and trip information to help you
navigate.

2-2.2.2. Compass Usage


Your SPOT X uses a Digital Compass to give accurate Heading and Bearing information. The SPOT X
automatically checks compass calibration and will tell you to calibrate when necessary.

2-2.2.3. DFU (Device Firmware Update)


To perform an update on your SPOT X, visit SPOT Firmware updater to download the latest updater.

2-2.2.4. Device Pin/Passcode Setup (Security)


Security allows to add a password or PIN to secure your device. Selecting PIN simply locks the keyboard in
number entry mode. The password or PIN can be 4-12 characters in length.

SPOT X™ Software Design Guide Confidential & Proprietary Information 2-5


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

2. SPOT X BLUETOOTH SOFTWARE ARCHITECTURE

Intentionally Left Blank

2-6 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES

3.1. SPOT X BLUETOOTH TRANSACTION HANDLING


3. JSON ASYNC MESSAGES

All transactions are sequential between the Bluetooth central device and the SPOT X Bluetooth. When scanning for
devices, look for ones that advertise this service. Additionally, all SPOT X devices broadcast with the prefix "SXB-".
Once the device you wish to connect to is found, connect to the BLE GATT using your mobile platforms BLE interface.
After this connection is established, you should discover services. Finally, once the nRF UART service is found, you
can send and receive commands. The BLE central device sends a JSON command to the SPOT X, waits for an ACK,
then waits for the response (if applicable) and then continues to the next JSON command.

3-1.1. JSON COMMANDS


Most SPOT X functions can be trigged using JSON formatted commands. Although, not all functions are
exposed over the BLE interface. I.E. Navigation mode is not available over BLE.

3-1.1.1. List of JSON commands

Table 3-1. JSON Commands & Arguments

Command
(where “c:” or “f:” is Argument
the command (where “xxx:” is the
identifier) unique command identifier) Description Expected Responses
{"c":"esn"} esn: Unique esn command Gets the ESN of the device {"c":"esn","esn":"29700
identifier 24"}
{"c":"ckin"} ckin: Unique check in command Immediately starts a check in messages on the {"c":"ckin","ack":"true"}
identifier SPOT X device
{"c":"fwve"} fwve: Unique Firmware Version Gets the current Firmware Version of the device Not used in app (app
command identifier gets from sxinfo)
{"c":"tg"} tg: Get tracking interval Gets the currently set tracking interval from the Not used in app (app
device gets from sxinfo)
{"c":"tkon"} tkon: Toggling track mode Toggles the track mode of device. If tracking {"c":"tkon","ack":"true"}
mode is ON it will turn it off and vice a versa
{"c":"fig"} fig: Get fetch interval Gets the currently set fetch interval from the Not used in app (app
device gets from sxinfo)

SPOT X™ Software Design Guide Confidential & Proprietary Information 3-1


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


Table 3-1. JSON Commands & Arguments (Continued)

Command
(where “c:” or “f:” is Argument
the command (where “xxx:” is the
identifier) unique command identifier) Description Expected Responses
{ nco: ADDs a new contact to device Adds a new contact to the flash with details {"c":"nco","ack":"true"}
"c": "nco", flash provided
"fname":
"Harry", fname: First name field
"lname":
"Potter", lname: Last name field
"remail":
"[email protected]" remail: Email route
,
"mode": "sms" mode: Contact mode
or "mail"
} Possible values
sms = phone number
Example mail = email id
{"c": "nco",
"fname": rsms: SMS route
"Harry",
"lname": ccode: Country code
"Potter", Only for SMS routes
"ccode": "1",
"rsms":
"123456789",
"mode": "sms"}
{ nco: DELETES a contact from Deletes a contact with details provided from {"c":"dco","ack":"true"}
"c": "dco", flash the device flash
"fname": "Harry",
"lname": "Potter", fname: First name field
"ccode": "1",
"rsms": lname: Last name field
"999999999",
"mode": "sms", ccode: Country code. Only for SMS
"rhash": routes
"0x11223344",
"rstat": "0" rsms: SMS route
}
mode: Contact mode
add an example
with email route Possible values
sms = phone number
mail = email if
rhash: Route hash ??

rstat:

3-2 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


Table 3-1. JSON Commands & Arguments (Continued)

Command
(where “c:” or “f:” is Argument
the command (where “xxx:” is the
identifier) unique command identifier) Description Expected Responses
{"c":"cmsgs"} com: Cancels all outgoing Aborts all the outgoing messages currently {"c":"cmsgs","ack":"true
messages being processed or are queued "}
{"c":"sosi"} sosi: Initiates SOS mode Make the device go into SOS mode {"c":"sosi","ack":"true"}
{"c":"sosx"} sosx: Cancels SOS mode Make the device exit SOS mode {"c":"sosx","ack":"true"}
{"c":"fg"} fg: Gets current status of the Get the status bar flags from the device. Used {"c":"fg","ack":"true"}
device to mimic the device behavior on central device. {
"c":"sync",
"subModes":"0x00",
"outMsgs":"0",
"uReadMsgs":"0",
"Mode":"0",
"FetchRt":"OFF",
"TrkRt":"60",
"TrkPlan":"2",
"Twtr":"1",
"RdSideAsst":"0",
"VBatt":"398",
"BattSOC":"8648",
"CgStatus":"0",
"bsync":"1",
"gpsstat":"0",
"gpsfail":"1"
}
{"c":"ti","v":"2.5"} ti: Sets the track interval Set the current tracking interval to desired {"c":"tkon","ack":"true"}
value from the possible values
v: Values for tracking interval
Possible values
2.5 = 2.5 minutes
5 = 5 minutes
10 = 10 minutes
30 = 30 minutes
60 = 60 minutes

SPOT X™ Software Design Guide Confidential & Proprietary Information 3-3


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


Table 3-1. JSON Commands & Arguments (Continued)

Command
(where “c:” or “f:” is Argument
the command (where “xxx:” is the
identifier) unique command identifier) Description Expected Responses
{"c":"fi","v":"2.5"} fi: Sets the fetch interval Set the current fetching interval to desired {"c":"tkon","ack":"true"}
value from the possible values
v: Values for tracking interval
Possible values
5 = 5 minutes
10 = 10 minutes
30 = 30 minutes
60 = 60 minutes
320 = 4 hours
144 = 24 hours
0.1 = Manual fetching
{"c":"test"} test: Test communication The device replies with hello message. Used for Not used in app
testing the interface
{"c":"fn"} fn: Fetch messages now Initiates a fetch message session to get the {"c":"fn","ack":"true"}
incoming messages now
{"f":"100"} f: Frame size number: number or Initialize multiple frame RX mode. Read more
frames or greater here
{ nt: New text message {"c":"nt","ack":"true"}
"c": "nt", rcp: recipient route
"rcp": "555-444- msg: Actual message in ASCII text
3333", crd: Include GPS coordinates flag
"msg": "144 alt: Include altitude in message
character text ", flag
"cntt": "0", cntt: Contact type value. Possible
"msgtt": "0", values
"socl": "t", SMS = 0
"crd": "t", SMTP = 1
"alt": "t", Predefined = 2
"pdcnt": "2", Social = 3
"pidx": "1;2", Nation Safe Driver = 4
"msidx": "1" msgtt: Message type flag.
} Possible Values
Freeform = 0
Predefined message = 1
pdcnt: Predefined contact counts.
If applicable
pidx: Predefined contact indexes.
If applicable
msidx: Predefined message index.
If applicable

3-4 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


Table 3-1. JSON Commands & Arguments (Continued)

Command
(where “c:” or “f:” is Argument
the command (where “xxx:” is the
identifier) unique command identifier) Description Expected Responses
{"c":"gcs"} gcs: Contact syncing Sync all the contacts currently present on the {"c":"gcs","ack":"true"}
device flash {
"c":"gcs",
"contact0":{
"fname":"Harry",
"lname":"Potter",
"type":"smtp",
"ccode":"",
"route":"[email protected]
om",
"index":"99",
"hash":"0x3e3c95ef
",
"status":"2"
},
"contact1":{
"fname":"Andy",
"lname":"Welton
SPOT X",
"type":"sms",
"ccode":"1",
"route":"254460003
1",
"index":"2",
"hash":"0x8d57415f
",
"status":"1"
}
}
{"c":"gcso"} gcso: Contact syncing (for device Sync all the contacts that are only on the device Not used by app
only contacts) and not on the Back Office

SPOT X™ Software Design Guide Confidential & Proprietary Information 3-5


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


Table 3-1. JSON Commands & Arguments (Continued)

Command
(where “c:” or “f:” is Argument
the command (where “xxx:” is the
identifier) unique command identifier) Description Expected Responses
{"c":"gms"} gms: Syncing message threads Get messages sync {"c":"gms","thread4":
Syncs all the message threads in the Spot XB {"time":"160016000
inbox along with the content of latest message 1","text":"Gg","
sent/received on a particular thread Status":"0xdf","
Options":"0x00",
"Msgtype":"1","l
at":"--.--
","long":"--.--
","route":"","in
dex":"0x49;","ha
sh":"0x393162dc;
"},"thread3":
{"time":"160138266
5","text":"Qwert
yuiipasdfghjkl",
"Status":"0xdf",
"Options":"0x00"
,"Msgtype":"1","
lat":"--.--
","long":"--.--
","route":"1;318
3647496","index"
:"0x10;","hash":
"0xa5548fbe;"},"
thread2":
{"time":"160370771
6","text":"Check
-In\\\/OK
Messages;","Stat
us":"0xdf","Opti
ons":"0x02","Msg
type":"3","lat":
"--.--
","long":"--.--
","route":"","in
dex":"","hash":"
"},"thread1":
{"time":"160370863
7","text":"55555
55555;Making
camp for the
night, I will
touch base with
you in the
morning.","Statu
s":"0xff","Optio
ns":"0x0

3-6 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


Table 3-1. JSON Commands & Arguments (Continued)

Command
(where “c:” or “f:” is Argument
the command (where “xxx:” is the
identifier) unique command identifier) Description Expected Responses
{"c":"gts"} gts: Syncs message threads and Get threads sync Not used by app. Format
all the messages Syncs all the threads in the Spot XB inbox. For same as gms
instance if there are 51 check in messages, this
command can be use to sync all of those to the
latest.
{"c":"gmsl2"} gmsl2: Syncs message threads of Get the Last two recent threads with last one Not used by app. Format
only last 2 most recent threads recent message each same as gms
{"c":"gtsl2"} gtsl2: Syncs message threads of Get all the messages in the last two recent Not used by app. Format
only last 2 most recent threads threads. Full sync for last 2 recent threads same as gms
(includes all messages)
{ dot: Deletes a message with Deletes one message with the given time stamp {"c":"dot","ack":"true"}
"c": "dot", timestamp
"qtstmp":
"1534759059" qtstmp: timestamp of the
} message to be deleted
{ dmt: Deletes a thread with Deletes the whole message thread when {"c":"dmt","ack":"true"}
"c": "dmt", timestamp provided with a timestamp of latest message
"qtstmp": received in the thread
"1534760125" qtstmp: timestamp of the thread
} to be deleted
gpdm: Gets predefined message Get a list of Predefined messages along with {"c":"gpdm","pdm0":{"in
{"c":"gpdm"} set their indexes dex":"0","msg":"Love
you. Will check in again
with you soon."},
"pdm1":{"index":"1
","msg":"Making
camp for the
night, I will
touch base with
you in the
morning."},
"pdm2":{"index":"2
","msg":"The
weather is
getting bad. We
are making
shelter."},
...
“"pdm12":{"index":
"12","msg":"1234
56789

SPOT X™ Software Design Guide Confidential & Proprietary Information 3-7


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


Table 3-1. JSON Commands & Arguments (Continued)

Command
(where “c:” or “f:” is Argument
the command (where “xxx:” is the
identifier) unique command identifier) Description Expected Responses
{ ppt: Gets all the messages from Pin points a thread and gives you all the {"c":"ppt","ack":"true"}
"c": "ppt", one particular thread messages on that thread when provided with {
"qtstmp": correct timestamp of the latest message on the "c":"ppt",
"1534760125", qtstmp: timestamp of the thread thread. "thread20":{
"v": "1111" to be fetched Make sure tot keep the 'v' value "time":"1601382665
} ",
v: No of messages to be fetched. "text":"Test",
Keep 1111 to fetch all the "Status":"0xdf",
available messages "Options":"0x00",
"Msgtype":"1",
"lat":"--.--",
"long":"--.--",
"route":"1;5555555
555",
"index":"0x10;",
"hash":"0xa5548fbe
;"
},
"thread19":{
"time":"1601382619
",
"text":"Test
Again",
"Status":"0xdf",
"Options":"0x00",
"Msgtype":"1",
"lat":"--.--",
"long":"--.--",
"route":"1;6666666
666",
"index":"0x10;",
"hash":"0xa5548fbe
;"
}
}
{"c":"sxinfo"} sxinfo: Gets SPOT X device Gives you the detail of the SPOT X such as ESN, {"c":"sxinfo","MDN":"125
information authcode, FWversion, MDN & last sync 45433388","ESN":
{"c":"psync"} psync: Pre-syncs data Not used by app.
{"c":"passon"} passon: Gets the device in sync Start Syncing mode {"c":"passon","ack":"tru
passthrough mode e"}
{"c":"dumpconf"} dumpconf: Starts SPOT X Dump configuration data in JSON format {"c":"dumpconf","ack":"t
configuration data dump rue"}

3-8 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


Table 3-1. JSON Commands & Arguments (Continued)

Command
(where “c:” or “f:” is Argument
the command (where “xxx:” is the
identifier) unique command identifier) Description Expected Responses
{"c":"dumpcon"} dumpcon: Starts the SPOT X Dump contact info in JSON format {"c":"dumpcon","ack":"tr
contact data dump ue"}
{
"response":{
"device":{
"contacts":[
{
"firstName":"Harry
",
"lastName":"Potter
",
"route":"[email protected]
om",
"medium":"smtp"
},
{
"index":11,
"firstName":"bub",
"lastName":"bubby"
,
"route":"[email protected]
om",
"medium":"smtp"
}
],
"contactGroups":[
],
"waypoints":[
]
}
}
}
{"c":"synctrue"} synctrue: Notifies the device with Send this after syncing data is verified to show {"c":"synctrue","ack":"tr
Sync success the Sync Success screen on the device ue"}
{ msgread: Marks all the messages Marks all the messages as read in a particular {"c":"msgread","ack":"tr
"c": "msgread", in a thread as read thread ue"}
"qtstmp":
"1559695611", qtstmp: timestamp of the thread
"v": "1111" to be marked as read
} v: Keep 1111 always
{"c":"gsyncf"} gsyncf: Gets Sync required flag Gets the sync required flag Not used in app. App
uses sxinfo

SPOT X™ Software Design Guide Confidential & Proprietary Information 3-9


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


Table 3-1. JSON Commands & Arguments (Continued)

Command
(where “c:” or “f:” is Argument
the command (where “xxx:” is the
identifier) unique command identifier) Description Expected Responses
{ setagg: Sets the aggregate Not used by app
"c": "setagg", version on device
"ver": "2.2.2" ver: Version to be set
}
{ stime: Sets device time qtstmp: Sets the device time and date to given unix {"c":"stime","ack":"true"
"c": "stime", UNIX timestamp for the time to be timestamp }
"qtstmp": set
"1570545715"
}
{"c":"gtime"} gtime: Gets device time and date Gets the device time and date in UNXI Not used by app.
timestamp format

3-10 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


3-1.2. JSON ACK/NAK RESPONSES
Commands sent to the SPOT X are in JSON format. Each command begins with the JSON key "c" (for command) and
a command name. Other parameters are possible based on the command being sent. All commands will respond
with an acknowledgment (ACK) or not acknowledged (NACK). Some commands have a payload as well and it will be
sent after the ACK.
Format for ACK
{"c":"xx/xxx","ack":"true"}
Format for NAK
{"c":"nack"}

3-1.3. HANDLING RESPONSES


Each response is a properly formatted JSON string. Since the app may not receive an entire response at once, it
should buffer data that it receives until it can properly parse it as JSON.

Table 3-2. Example of Buffering Response

Direction Sent Description Is JSON?


TX {"c":"esn"} Query ESN command N/A
RX {"c":"esn","ack":"true"} ESN command ACK Y
RX {"c":"es ESN response (partial). Continue to buffer response N
RX n","esn":"2970024"} ESN response (partial). Buffer is complete JSON. Y

3-1.4. KNOWN ISSUE


In rare cases, SPOT X will send a response with improperly formatted JSON, specifically adding a comma after the
last value. The app should detect this and handle as shown in Table 3-3.

Table 3-3. Known Issue

Direction Sent Description Is JSON?


TX {"c":"esn"} Query ESN command N/A
RX {"c":"esn","ack":"true"} ESN command ACK Y
RX {"c":"es ESN response (partial). Continue to buffer response N
RX n","esn":"2970024",} ESN response (partial). Buffer contains ",}". Replace Y
with "}" and parse as JSON

SPOT X™ Software Design Guide Confidential & Proprietary Information 3-11


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


3-1.5. ASYNCHRONOUS RESPONSES
The SPOT X will occasionally send asynchronous responses to notify the app of events on the device. Async
responses always use “async” as the command, except for status flags updates (see “Special Considerations for the
Status Flags Command” on page 4-8).
3-1.5.1. Example of Async Outbound Message Count Update
In this example the type is “msgcnt”. There is additional data in the key “value”.
{"c": "async", "type": "msgcnt", "value": "2"}

3.2. INITIAL CONNECTION COMMANDS


When connecting to the SPOT X device, it is recommended the application issue several commands that will provide
it with the information needed to use the SPOT X features. If the device is in SOS mode (part of the fg command
response), you should avoid the remaining queries as they are resource-intensive on SPOT X. You can further reduce
the need for the predefined messages, predefined contacts, and threads command if you track the last time you
received those responses and when a sync was last performed.

Table 3-4. Initial Connection Commands

Command Should Send In


Command Key Purpose SOS Mode
ESN esn Returns ESN for device Y
Status Flags fg Returns general device status, such as number of Y
messages in queue, current mode, etc.
Device Info sxinfo Returns device details such as FW version, last sync, Y
MDN.
Predefined gpdm Get a list of predefined messages along with their N
Messages indexes
Predefined gcs Get a list of predefined contacts along with their N
Contacts indexes
Threads gms Get a list of all threads on the device N
Set Time stime Sets the device's clock. N

SOS EMERGENCIES
Users can message GEOS, who provide SOS/911 monitoring for SPOT products. Messages to and from GEOS are no
different than other messages in terms of the JSON API. These have a predefined contact index of 73. Users can also
opt for an addition service called "SPOT S.O.V." (Save our Vehicle). These messages use the predefined contact
index of 71.

3-12 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES

3.3. ACCOUNT SYNCHRONIZATION


The SPOT X can use predefined messages and contacts to reduce the OTA message size. To accomplish this, the
device's configuration is stored in the SPOT X My Account back-office. Each message or contact is assigned an index
which transmitted over-the-air instead of a larger payload such as an email address. In order for this to work, the
SPOT X needs to have the indexes loaded. Additionally for display purposes, it needs the name of the contact or
message.

3-3.1. SYNCHRONIZATION WORKFLOW


Table 3-5. Synchronization Workflow

Dire
ctio
# Step n Command/Response Description
1 Get TX {"c":"dumpconf"} Returns the device's
SPOT X configuration
config RX {"c":"dumpconf","ack":"true"} ACK for dumpconf
uratio RX {"response":{"device":{"deviceID":"0- JSON Response for
n 2970024","deviceType":"SPOTX","major":0,"minor":1,"planDetails":{"planName":"SPOT dumpconf.
Demo"...
2 Get TX {"c":"dumpcon"} Returns device's
SPOT X configuration.
contac RX {"c":"dumpcon","ack":"true"} ACK for dumpconf
ts RX {"response":{"device":{"contacts":[{"firstName":"bub","lastName":"bubby","route":"bu JSON Response for
[email protected] dumpconf.
","medium":"smtp"},{"...
3 Send N/A POST https://api.findmespot.com/spot-main-web/consumer/rest-api/2.0/device/0- Send device's
SPOT X 2970024/firmware/sync configuration and
config returns account
uratio REST API call Response: configuration for device
n to {"response":{"device":{"deviceID":"0- as JSON
My 2970024","deviceType":"SPOTX","major":0,"minor":1,"planDetails":{"planName":"SPOT
Accou Demo"...
nt
4 Enable TX {"c":"passon"} Enable device to receive
sync sync data
mode RX {"c":"passon","ack":"true"} ACK for passon
5 Send TX {"response":{"device":{"deviceID":"0-2970024","deviceType":"SPOTX","major":0,"mi... Send data received from
Accou This will be multi-frame transmission. REST API call to device
nt
config
uratio
n to
SPOT X

SPOT X™ Software Design Guide Confidential & Proprietary Information 3-13


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


Table 3-5. Synchronization Workflow (Continued)

Dire
ctio
# Step n Command/Response Description
6 Receiv RX {"c":"synccomplete","ack":"true"} Device has received sync
e Send data
ACK
7 Rerun steps 1 and 2
8 Send N/A POST https://api.findmespot.com/spot-main-web/consumer/rest-api/2.0/device/0-
SPOT X 2970024/firmware/status
config
uratio REST API Response:
n to If response is 204, sync was successful.
My
Accou
nt for
verific
ation
9 Set TX
sync {"c":"synctrue"}
succes RX {"c":"synctrue","ack":"true"}
sful
1 Rerun initial connection commands
0

3-3.2. CANCEL BYTES


To cancel a sync, send the cancel bytes as shown in Table 3-6:

Table 3-6. Cancel Bytes

Direction Sent Description


TX 0xFF Send termination character (as byte)
TX \n\r New line feed

3-14 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


3-3.3. JSON SYNC MESSAGES
SPOT X sends “synchronous heartbeat status messages” to the application every 5 minutes.
Synchronous heartbeat status commands:
{
"c": "sync"
"htbt": "umcnt",
"subModes": "bitmask",
"outMsgs": "value",
"uReadMsgs": "value",
"Mode": "value",
"FetchRt": "value",
"TrkRt": "value",
"TrkPlan": "value",
"Twtr": "value",
"VBatt": "value",
"BattSOC": "value",
}
3-3.3.1. List of Heartbeat Commands

Table 3-7. Heartbeat Status Commands

Status
Field Parameter Description
subModes Each bit corresponds to a sub Mid-Level Schedular active or none-active mode. A set bit
indicates an active mode and a clearted bit indicates a none active mode.
Bit 0 Text Message
Bit 1 Check In Ok
Bit 2 Message Fetch
Bit 3 Cancel SOS
Bit 4 CRX Return Link Mode
outMsgs Number of outbound messages in the message queue.
uReadMsgs Number of un-read messages available in the message threads.

SPOT X™ Software Design Guide Confidential & Proprietary Information 3-15


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


Table 3-7. Heartbeat Status Commands (Continued)

Status
Field Parameter Description
Mode Indicates which master mode the device is currently operating in.
0 Default
1 Standby (Unused)
2 Track
3 Help (Inactive)
4 SOS
5 Suspended Track
6 Power Off
7 RL 16 Pkt Test
8 CRX RL Mode
FetchRt Indicates the currently set message fetching interval rate in seconds.
TrkRt Indicates the currently set tracking interval rate in seconds.
TrkPlan Indicates the level of tracking purchased by the user.
2 Extreme Tracking
5 Unlimited Tracking
0 Basic Tracking
Twtr Indicates if posting to Twitter is enabled/disabled
0 Post to Twitter disabled
1 Post to Twitter enabled
RdSideAsst Nation Safe Driver Road Side Assist plan active/inactive
0 Inactive
1 Active
VBatt Battery voltage * 100
BattSOC Battery State of Charge * 100

3-16 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


3-3.4. JSON ASYNC MESSAGES
SPOT X sends “asynchronous status data” to notify the application on an interrupt basis, basically when an event
change happens.

Table 3-8. Asynchronous MLS Modes

Value Message Mode


"dflt" default mode
"stby" standby
"trk" track
"sos" sos
"strk" suspended track
"poff" power off
3-3.4.1. GPS Active
{
"c": "async"
"type": "gps",
"value": "true/false”
}
3-3.4.2. Message Fetching Active
{
"c": "async"
"type": "msgf",
"value": "true/false”
}
3-3.4.3. Track Mode Active
{
"c": "async"
"type": "trk",
"value": "true/false”
}
3-3.4.4. Suspended Track Mode Active
{
"c": "async"
"type": "sptrk",
"value": "true/false”
}

SPOT X™ Software Design Guide Confidential & Proprietary Information 3-17


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

3. JSON ASYNC MESSAGES


3-3.4.5. Back Office Sync Status
{
"c": "async"
"type": "bsync",
"value": "true/false”
}
3-3.4.6. SOS Status
{
"c": "async"
"type": "sos",
"value": "true/false”
}
3-3.4.7. Check OK Status
{
"c": "async"
"type": "ciok",
"value": "true/false”
}
3-3.4.8. Outbound Message Count Status
{
"c": "async"
"type": "msgcnt",
"value": "value”
}
3-3.4.9. Unread Forward Link Message Count Status
{
"c": "async"
"type": "umcnt",
"value": "value”
}
3-3.4.10. Mid-Level Schedular Message Mode Status
{
"c": "async"
"type": "mode",
"value": "value”

3-18 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

4. SPOT X BLUETOOTH INTERFACE WORKFLOWS

4.1. COMMANDS
4. SPOT X BLUETOOTH INTERFACE WORKFLOWS

The SPOT X supports receiving up to 20 bytes at one time. For commands that are longer than that limit, you should
break up the message into 20 byte packets and instruct the SPOT X to enter multiple frame mode using the “f”
command. Once in multiple frame mode, send each frame separated by a small delay of at least 150 millisecond.
Once the last frame is sent in multiple frame mode, the app requires a termination byte and a new line feed.

4-1.1. Sending a Single Frame Command


Most of the simple functionality performed by the SPOT X device can be performed over BLE using a single frame
command. The term “Single Frame Command” means the length of the JSON command is less than the
programmed MTU size. I.E. 20 bytes. Examples of single frame commands are “ckin:” (check in) or “fn:” (fetch now).

Figure 4-1. SPOT X Bluetooth (BLE) Single Frame Workflow

4-1.2. Sending a Multiple Frame Command


Sometimes the JSON command length can be higher than 20 bytes. When it is, it is necessary to invoke the multiple
frame reception mode on the SPOT X device. In this mode, SPOT X will continue receiving characters with each frame
separated by a small delay of at least 150 millisecond, until a termination byte is sent.
NOTE: The termination byte explicitly needs to be 0xFF.Once the last frame is sent, the application
needs to send the termination byte and a new line feed.

I.E. Command: {"c":"nco","fname":"Andy","lname":"Smith","ccode":"1","rsms":"9802981232","mode":"sms"}


The total length of this example command is greater than 20 bytes, predicating the use of the multiple-frame mode.
1. Divide the command into 20-byte chunks. In our case that would be:
{"c":"nco","fname":"
Andy","lname":"Smith
n","ccode":"1","rsms
":"9802981232","mode
":"sms"}

SPOT X™ Software Design Guide Confidential & Proprietary Information 4-1


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

4. SPOT X BLUETOOTH INTERFACE WORKFLOWS


2. Send the multiple-frame start command {"f":"100"}
3. Send all the 20-byte frames from Step 1 sequentially.
NOTE: You will not receive and ACK’s for each frame
4. Once all 5 frames are sent (in our example above), send the terminator byte 0xFF
5. Now the ACK shall be received for “nt” command.
6. New command ACK

Figure 4-2. SPOT X Bluetooth (BLE) Multiple Frame Workflow

Table 4-1. Example Multi-Frame Command

Direction Sent Description


TX {"f":"6"} Enter multiple frame mode and expect 5 frames
RX {"c":"mrp","ack":"true"} Multi-frame mode ACK (note the "c" value is "mrp" not "f")
TX {"c":"nco","fname":" New command
Delay 150 ms
TX Andy","lname":"Smith New command continued
Delay 150 ms
TX n","ccode":"1","rsms New command continued
Delay 150 ms
TX ":"9802981232","mode New command continued
Delay 150 ms
TX ":"sms"} New command continued
4-2 Confidential & Proprietary Information SPOT X™ Software Design Guide
©2020 Globalstar, Inc.
8545-0217-01  

4. SPOT X BLUETOOTH INTERFACE WORKFLOWS


Table 4-1. Example Multi-Frame Command (Continued)

Direction Sent Description


TX 0xFF Send termination character (as byte)
TX \n\r Send new line feed
RX {"c":"nco","ack":"true"} New command ACK

4-1.3. Threads and Messages Handling


Messaging is one of the most complex functions that an application will implement. Basic implementation details:
1. Each command and response should be transmitted as a properly formatted JSON string.
2. Because the application may not immediately receive an entire response at once the application code
should buffer the response until it receives a valid complete JSON frame.
• Threads and Messages are uniquely identified using a timestamp.
• Threads are identified by the latest message. Tip: This will change every time you receive a message.
• gms & ppt commands extract any information about the messages on the device.

4-1.3.1. Thread Structure


Example of a message threads from gms command
{
"c": "gms",
"thread2": {
"time": "1600160001", // unix time stamp
"text": "Gg", // text
"Status": "0xdf", // status bits
"Options": "0x00", // option bits
"Msgtype": "1", // message type
"lat": "--.--", // latitude
"long": "--.--", // longitude
"route": "", // route
"index": "0x49;", // unique index
"hash": "0x393162dc;" // unique hash
},
"thread1": {
"time": "1601382665",
"text": "Qwertyuiipasdfghjkl",
"Status": "0xdf",
"Options": "0x00",
"Msgtype": "1",
"lat": "--.--",

SPOT X™ Software Design Guide Confidential & Proprietary Information 4-3


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

4. SPOT X BLUETOOTH INTERFACE WORKFLOWS


"long": "--.--",
"route": "1;3183647496",
"index": "0x10;",
"hash": "0xa5548fbe;"
}
}

4-1.3.2. Field Descriptions


1. Time: Unix timestamp using which the thread will be identified.
2. Text: Latest text message received or transmitted in this thread.
3. Status Bits: Bitwise flags that provide insight into this message. Typedef enum illustrates these bits.
typedef enum {
MESSAGE_GPS_LOW_CONFIDENCE = 1,
MESSAGE_GPS_BATTERY_LOW = 2,
//................these bits are DEVICE ONLY, so clear these bits for OTA message
MESSAGE_BIT2 = 4,
MESSAGE_BIT3 = 8,
MESSAGE_UNSYNCHED = 16,// synched the device since this message was created
MESSAGE_FAILED = 32,
MESSAGE_ACKD = 64,// FL- user viewed message, RL - message ACK'd
MESSAGE_SENT = 128,
} geo_message_statusbits_t;

4. Option Bits: These are another set of bit flags that define message characteristics. For example, if the GPS
data was transmitted with the message. Typedef enum illustrates these bits.
typedef enum {
MESSAGE_OPTION_ALTITUDE = 1,
MESSAGE_OPTION_GPSLOCATION = 2,
MESSAGE_OPTION_AERO_BIT = 4,
MESSAGE_OPTION_FB_BIT = 8,
MESSAGE_OPTION_TWITTER_BIT = 16,
MESSAGE_OPTION_BIT5 = 32,
MESSAGE_OPTION_BIT6 = 64,
MESSAGE_OPTION_BIT7 = 128,
} geo_message_optonbits_t;

5. Message Type: This flag defines the link type of message. Typedef enum illustrates this flag.
typedef enum {
GEO_MESSAGE_Return = 1,
GEO_MESSAGE_Foward = 2,
GEO_MESSAGE_Device = 3,
GEO_MESSAGE_DeviceBinary = 4,
} geo_message_link_type_t;

4-4 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

4. SPOT X BLUETOOTH INTERFACE WORKFLOWS


6. Latitude: Latitude for the message (if applicable)
7. Longitude: Longitude for the message (if applicable)
8. Route: Email or SMS route for the message. SMS routes include the country code with delimiter “;”
9. Index: Unique contact index for predefined contact (if the contact used is synced)
10. Hash: Unique contact hash for the contact of this thread

4-1.3.3. Understanding Application Scenarios


The following three scenarios demonstrate how the gms and ppt commands will function when called from
the application.

4-1.3.3.1. Application was disconnected from the device for the past 2 hours
In this case, we are using a hash map and might have received multiple messages on the device. Because the
device was disconnected, the application has not been updated.
1. Here, we would use the call gms command to update our device thread hashmap.
2. Once the device thread hashmap has been updated with the latest timestamps, it can be used with the
ppt command to fetch all messages that should have been received during the 2 hour disconnect.
4-1.3.3.2. Application is connected to device and issues a new Async message
In this case, we are connected and have Async notification that a new message was received.
1. The next step is to call gms command to update our message thread hashmap.
2. After this, we can use the newly acquired timestamp and call the ppt command to get the full thread
sync.
Tip: The latest message is delivered with the gms command; there is no need to call the ppt command.

4-1.3.3.3. Application is attempting to delete thread but receives an error


In this case, the device is trying to delete a thread with its cached data.
1. If you have just connected to the device, it is advisable to call the gms command proactively because
you may have received messages. Receiving message will change your thread structure in flash.
2. Now, calling the gms command will update our messages threads hashmap and we should be able to
delete the thread with the latest timestamp acquired.

SPOT X™ Software Design Guide Confidential & Proprietary Information 4-5


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

4. SPOT X BLUETOOTH INTERFACE WORKFLOWS


4-1.4. Contacts Handling
Contacts from the device are received in JSON format using the gcs command.

4-1.4.1. Contact Structure, example:


{
"c": "gcs",
"contact0": { // contact serial number
"fname": "Andy", // first name
"lname": "Welton", // last name
"type": "sms", // contact type
"ccode": "1", // country code
"route": "123456789", // route
"index": "1", // contact index if synced
"hash": "0x2522e977", // unique hash
"status": "1" // contact status
},
"contact1": {
"fname": "Andy",
"lname": "Welton SPOT X",
"type": "sms",
"ccode": "1",
"route": "2544600031",
"index": "2",
"hash": "0x8d57415f",
"status": "1"
}
}

4-6 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

4. SPOT X BLUETOOTH INTERFACE WORKFLOWS


4-1.4.2. Fields Descriptions
fname: First name of the contact
lname: Last name of the contact
type: Contact type is it sms or smtp. It can be either “sms” or “smtp”
ccode: Country code. Only for sms contacts
route: Route for the contact
index: Unique index for the contact. Only if the contact is synced with Back Office
hash: Unique hash for the contact
status: Current status of the contact. Here is an enum to understand it better
typedef enum sContactStatus{
contact_markedfordeletion =0,
contact_synched =1,
contact_device=2,
}sContactStatus;

4-1.4.3. Syncing the device


Steps to follow:
1. Ensure the SPOT X is in normal mode, i.e. not in multiple frame reception mode
2. Dump the config in JSON format. Send command {"c":"dumpconf"}
3. Dump the contacts in JSON format. Send command {"c":"dumpcon"}
4. Start the syncing mode. Send command {"c":"passon"}
5. Send the JSON data acquired form the back office. Looks like {"response":{"device":{"deviceId":"0-
2904591","authCode":83523761,"deviceType":"SPOTX","forwardGEOS":true,"mdn":125 . ...
6. The Syncing mode will end automatically. Wait for {"c":"synccomplete"} message from the SPOT X
7. Perform the comparisons and if everything looks good send {"c":"synctrue"} command to display the
sync successful screen on the device.

SPOT X™ Software Design Guide Confidential & Proprietary Information 4-7


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

4. SPOT X BLUETOOTH INTERFACE WORKFLOWS

4.2. SPECIAL CONSIDERATIONS FOR THE STATUS FLAGS COMMAND


The status flags command ("fg") will respond with a different "c" response. Additionally, SPOT X will send this
response asynchronously:
{"c":"sync","subModes":"0x11","outMsgs":"1","uReadMsgs":"0","Mode":"0","FetchRt"
:"OFF","TrkRt":"60","TrkPlan":"2","Twtr":"1","RdSideAsst":"0","VBatt":"410","Bat
tSOC":"8185","CgStatus":"0","bsync":"1","gpsstat":"1","gpsfail":"1"}

4.3. TIPS TO USE THE SPOT X JSON API’S


Bluetooth functionality is an “add-on” to the original stand-alone device. Hence, many scenarios can be impacted
due to RAM & ROM constraints.

The following tips should be considered when designing a central application that provides a smooth and stable end-
user experience:
• Keep the communication sequential.
• Have bailouts on each command as BLE interface may drop packets.
• If possible, try not to query all of the messages on the device due to the volume of data. Tip: Use the ppt com-
mand instead of gts command
• Try to limit fetching to only 15 messages per thread to facilitate a more stable experience with fewer laten-
cies. There is no restriction on fetching more data.
• ACK received from the device just means that you have provided a valid JSON frame. This does not mean the
device will act upon it.
• Double-check implementations on toggle commands or commands that don’t allow same operations twice;
such as a check-in message or track start. There are different behaviors.
• Develop with your device in-hand and if any new behavior is observed, contact Globalstar.
• When the device is placed in SOS mode, limit your communication to the device as much as possible.
• Utilize the async messages to update the status bar. There are no retries.
• Application shall be responsible for doing bounds check in the fields being used by the JSON API’s.
I.E. The length of an email cannot be greater than 50 character. It is incumbent on the application to check
for this bound. The device itself does not have any such error checks.
• Device timeouts should be mimicked in the application development. This will avoid any app lockups if the
BLE transaction did not occur as expected. Advisable timeouts on syncing and different transactions can be
found in the SPOT X Mobile App documentation.

4-8 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

5. GLOSSARY

5.1. ABBREVIATIONS & ACRONYMS


5. GLOSSARY

The following abbreviations, acronyms, and initialisims are commonly used throughout Globalstar publications.

REFERENCE EXPANSION
°C degrees Celsius
°F degrees Fahrenheit
Ω ohm
A or Amp Ampere
AO Authorized Oversize
API Application Programming Interface
APU Auxiliary Power Unit
AR As Required
ATT Attribute Protocol
AU Authorized Undersize
BLE Bluetooth Low Energy®
CFM Cubic Feet per Minute
DK Development Kit (Hardware)
DMM Digital Multimeter
DVM Digital Volt-ohm Meter
ECDSA Elliptical Curved Digital Signature Algorithm
EMI Electromagnetic Interference
ESN Electronic Serial Number
ft foot
ft. lbs. foot pounds
FAA Federal Aviation Administration
g gram
GAP Generic Access Profile
GATT Generic Attribute Profile
IAW In accordance with
in. Inch
in. Hg Inches of Mercury
in. lbs. Inch Pounds
kg kilogram
kPa kilopascal
kW kilowatt
L2CAP Logical link control and adaptation protocol
m meter
mm millimeter
MHS Material Handling Specifications
Nm Newton meter
NUS Nordic UART Service

SPOT X™ Software Design Guide Confidential & Proprietary Information 5-1


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

5. GLOSSARY

REFERENCE (Continued) EXPANSION (Continued)


OAT Outside Air Temperature
OD Outside Diameter
OEM Original Equipment Manufacturer
OTA Over the Air
PMA Parts Manufacturing Approval
ppm parts per million
psi pound per square inch
RMS Root Mean Square
RPM Revolutions per Minute
S1S SmartOne Solar™
SD Softdevice
SDK Software Development Kit
STANAG Standardization Agreement (STANAG)
UUID Universally Unique Identifier

5-2 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

5. GLOSSARY

5.2. TERMS & DEFINITIONS


The following standard terms are commonly used throughout Globalstar publications. See reference (in column 3) for
additional details.

TERM DEFINITION REFERENCE


2-Way Messaging SPOT X User guide,
Custom Messages Send and receive 140 character text messages and emails page 10

Predefined Messages These messages can only be edited in your SPOT MY ACCOUNT and
up to 14 Predefined Messages can be stored on your SPOT X. Syncing
SPOT X with your SPOT MY ACCOUNT is required for Predefined Mes-
sages to appear on your device.
Check-in Message A pre-programmed message and/or email stored on the device along SPOT X User guide,
with your GPS coordinates. The Check In message will include a link to page 13
Google Maps™ showing the SPOT X’s location. Set up this feature
before you go off the grid.

The Check In message can be edited and assigned to contacts via SPOT
MY ACCOUNT at any time.
Contacts SPOT X can hold up to 70 contacts and/or contact groups. Contacts can SPOT X User guide,
be manually added through the SPOT X or through SPOT MY page 8
ACCOUNT. If added through SPOT MY ACCOUNT, syncing is required
using the SPOT X Firmware Updater in order for the contacts to display
on the SPOT X.

If both Email and SMS/TEXT fields are filled in, the SPOT X will create
two separate contacts, one for each field

Deleting Contact If the SPOT X device had been previously synced with SPOT My page 9
Account and the contact was present in both locations, once a new sync
is performed the deleted contact will be also removed from the contact
list in SPOT My Account.
Custom Message An alternative Check-in message to the default message.
Device Status Bar List of Icons on the Status Bar SPOT X User guide,
page 5
Device Syncing Any device settings listed in the user manual that require syncing with the SPOT X User guide,
Backoffice can be synced via the API description in the document, includ- page 50
ing:
1.Pre defined Messages
2.Contacts
3.Waypoints
Fetching Contacts Adding/Deleting/Fetching contacts

SPOT X™ Software Design Guide Confidential & Proprietary Information 5-3


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

5. GLOSSARY

TERM DEFINITION REFERENCE


Fetching Interval A list of selectable times SPOT X will retrieve or download incoming mes- SPOT X User guide,
sages. The SPOT X default message fetching interval is Off/Manual page 19
Fetching. Depending upon your service plan, you can select from fetch-
ing intervals of 2½, 5, 10, 30, 60 minutes, 4 hrs, 24 hrs, or Off/Manual
fetching.
Fetching Message Automated message checking when the operator is not tracking or send-
ing a message. Every time SPOT X sends a track and/or a message,
SPOT X will also retrieve and download any incoming
messages. When you’re not Tracking or sending a message, the Mes-
sage Fetching function will check for messages for you.
Service Bulletin Service document that contains information considered by the product
manufacturer to constitute a substantial improvement.
Set/Get Track Interval The SPOT X default tracking interval is 10 minutes. Depending upon your SPOT X User guide,
service plan, you can select from tracking intervals of 2½, 5, 10, 30, or 60 page 17
minutes.
Setting System Time An alternate method to allow the connected device to set the time/date
with the API.
SOS Activation Activate the S.O.S. mode to begin communicating and sending alerts SPOT X User guide,
directly to GEOS International Emergency Response Coordination Cen- page 15-16
ter (IERCC). GEOS IERCC will notify the appropriate emergency
responders based on the SPOT X’s GPS location and your emergency
situation. Responders may include local police, Coast Guard, or Search
and Rescue teams. For full details about GEOS IERCC,
please visit FindMeSPOT.com/GEOS
Suspended Tracking Mode SPOT X only sends tracks when Tracking mode is active and the device SPOT X User guide,
is moving. When the device is stationary for more than 5 minutes, SPOT page 18
X will enter Suspended Tracking mode and you will see the suspend icon
in the Status Bar.
SYNC Syncing SPOT X with your SPOT MY ACCOUNT is required for pre-
defined messages to appear on your device. Fourteen predefined mes-
sage can be stored on your SPOT X.
Track Message Allows recipients to track your progress in near real-time using SPOT SPOT X User guide,
Share Page with Google Maps™ providing them a virtual breadcrumb page 17-18
trail of your adventure.

5-4 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

APPENDIX A
A.1. UNICODE (ASCII) TO SPOT X CHARACTER CONVERSION TABLES
The SPOT X character code allows for a limited set of special characters for messages and contacts. Most characters
will map directly from SPOT X to Unicode. Applications should permit translation between Unicode (ASCII) and SPOT
X characters.
• When sending commands to the device, use the SPOT X character set (column 4). When the SPOT X code is
blank (column 4), use the Unicode character code (as shown in column 3).
• When receiving commands, the application should convert the received data; from SPOT X characters (col-
umn 4) to the Unicode character set (column 3).
• Characters 1 through 152 are required for multi-language support. Characters 153 or above are device only.
• Device Strings may contain carriage returns (0x13, non-printable characters) sent in the OTA messages.
NOTE: Data is transmitted as ISO-8859-1 (https://en.wikipedia.org/wiki/ISO/IEC_8859-1) but should not be
treated as such. Table A-1 provides the conversion equivalence between Unicode and SPOT X characters:

Table A-1. Character Conversion Set (continued)


Table A-1. Character Conversion Set
 # Character Unicode SPOT X Code
 # Character Unicode SPOT X Code
26 9 57
1 (space) 32
27 : 58
2 ! 33
28 ; 59
3 " 34
29 < 60
4 # 35
30 = 61
5 $ 36
31 > 62
6 % 37
32 ? 63
7 & 38
33 @ 64
8 ' 39
34 A 65
9 ( 40
35 B 66
10 ) 41
36 C 67
11 * 42
37 D 68
12 + 43
38 E 69
13 , 44
39 F 70
14 - 45
40 G 71
15 . 46
41 H 72
16 / 47
42 I 73
17 0 48
43 J 74
18 1 49
44 K 75
19 2 50
45 L 76
20 3 51
46 M 77
21 4 52
47 N 78
22 5 53
48 O 79
23 6 54
49 P 80
24 7 55
50 Q 81
25 8 56

SPOT X™ Software Design Guide Confidential & Proprietary Information A-1


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01  

APPENDIX A
Table A-1. Character Conversion Set (continued) Table A-1. Character Conversion Set (continued)

 # Character Unicode SPOT X Code  # Character Unicode SPOT X Code


51 R 82 90 y 121
52 S 83 91 z 122
53 T 84 92 { 123
54 U 85 93 | 124
55 V 86 94 } 125
56 W 87 95 € 128 126
57 X 88 96 Œ 140 127
58 Y 89 97 œ 156 128
59 Z 90 98 ¡ 161 129
60 [ 91 99 £ 163 130
61 \ 92 100 ´ 180 131
62 ] 93 101 ¿ 191 132
63 ^ 94 102 À 192 133
64 _ 95 103 Á 193 134
65 ` 96 104 Â 194 135
66 a 97 105 Ã 195 136
67 b 98 106 Ä 196 137
68 c 99 107 Æ 198 138
69 d 100 108 Ç 199 139
70 e 101 109 È 200 140
71 f 102 110 É 201 141
72 g 103 111 Ê 202 142
73 h 104 112 Ë 203 143
74 i 105 113 Ì 204 144
75 j 106 114 Í 205 145
76 k 107 115 Î 206 146
77 l 108 116 Ï 207 147
78 m 109 117 Ñ 209 148
79 n 110 118 Ò 210 149
80 o 111 119 Ó 211 150
81 p 112 120 Ô 212 151
82 q 113 121 Õ 213 152
83 r 114 122 Ö 214 153
84 s 115 123 Ù 217 154
85 t 116 124 Ú 218 155
86 u 117 125 Û 219 156
87 v 118 126 Ü 220 157
88 w 119 127 ß 223 158
89 x 120 128 à 224 159

A-2 Confidential & Proprietary Information SPOT X™ Software Design Guide


©2020 Globalstar, Inc.
8545-0217-01  

APPENDIX A
Table A-1. Character Conversion Set (continued)

 # Character Unicode SPOT X Code


129 á 225 160
130 â 226 161
131 ã 227 162
132 ä 228 163
133 æ 230 164
134 ç 231 165
135 è 232 166
136 é 233 167
137 ê 234 168
138 ë 235 169
139 ì 236 170
140 í 237 171
141 î 238 172
142 ï 239 173
143 ñ 241 174
144 ò 242 175
145 ó 243 176
146 ô 244 177
147 õ 245 178
148 ö 246 179
149 ù 249 180
150 ú 250 181
151 û 251 182
152 ü 252 183
Box 127 184
153
Symbol
154 ° 176 185

SPOT X™ Software Design Guide Confidential & Proprietary Information A-3


NOV 2020 ©2020 Globalstar, Inc.
8545-0217-01

You might also like