SPOT X Dev
SPOT X Dev
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.
Published and printed in the U.S.A. by Globalstar, Inc.,1351 Holiday Square Blvd., Covington, LA 70433
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.
DISTRIBUTION STATEMENT
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
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
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
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.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
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.
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 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.
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.
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.
1. INTRODCTION
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:
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.
• 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.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
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.
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)
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:
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
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
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
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
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
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"}
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
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
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.
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
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
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.
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
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. 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-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.
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.
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
5. GLOSSARY
5. GLOSSARY
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
5. GLOSSARY
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:
APPENDIX A
Table A-1. Character Conversion Set (continued) Table A-1. Character Conversion Set (continued)
APPENDIX A
Table A-1. Character Conversion Set (continued)