ORBCOMM Satellite Modem Serial Interface Specification Document Number: 713306201 Revision: J Date: 02/18/2015 © 2014 ORBCOMM — All Rights Reserved. This publication, or any part thereof, may not be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, storage in an information retrieval system, or otherwise, without prior written permission by ORBCOMM, Inc. 395 W Passaic Street, Suite 325, Rochelle Park, NJ 07662 USA Phone 703-433-6325. Trademark Notice The ORBCOMM Company logo is a trademark of ORBCOMM, Inc. All other product names used throughout this material are trademarks of the respective companies. No such use of any trademark is intended to convey endorsement or other affiliation with these companies. Indemnity Notice This manual has been created in order to accommodate a range of container installations. Specific business practices and system configurations may differ slightly from what is represented in this manual. While ORBCOMM Inc. takes great care to ensure the accuracy of this manual, it is provided “as is” without warranty of any kind, either express or implied, including, but not limited to, warranties of merchantability or fitness for a particular purpose. ORBCOMM Inc. makes no warranties or representations that this manual will meet the requirements for installation or that the operations of the installed hardware will be uninterrupted or error free. Every effort was made to ensure that the information in this manual was accurate at the time of printing. However, information is subject to change without notice. Export Control Statement The contents of this document, in whole or in part, shall not be exported from the United States, which export shall include, but not be limited to, transmittal to any non-U.S. citizen wherever said person is located, except in accordance with all United States laws and regulations relating to exports and to all administrative acts of the U.S. Government pursuant to such laws and regulations. Diversion, re-export or transshipment of the contents of this document, in whole or in part, contrary to U.S. law is also strictly prohibited. More Information To obtain information additional information, please contact: Customer Service: customer.service@orbcomm.com, +1 703 433 6325 Sales: sales@orbcomm.com Visit us on the Internet: www.orbcomm.com ORBCOMM Satellite Modem Serial Interface Specification 2 2 2 Document History Version Issued By Issue Date Change Description F ORBCOMM April 1999 This version of the Serial Interface Specification represents a change in direction for the Subscriber Communicators (SCs). In an effort to support lower SC prices, ORBCOMM intends to eliminate requirements for functionality that is not frequently used. In addition, ORBCOMM wishes to promote a new, more robust serial packet retry mechanism and a more consistent status and configuration mechanism. Consequently, after March 1, 2000, ORBCOMM will no longer require SC’s to implement Doppler-based position determination and byte Mode. NOTE: should an SC Manufacturer elect to implement Doppler-based position determination or byte Mode, the implementation shall adhere to the specifications described herein. In addition, all SC’s Type-Approved after August 1, 1999 shall implement the following new functionality: Additional status_code values for the link level ack packet that indicate rejection of a packet (see Table 3.1); A new serial packet retry mechanism to correct a deficiency in the original method (see Section 2.4.1); and A consistent mechanism for evaluating the SC’s status and specifying it’s configuration: Creation of a new get parameter packet (Table 3.20); Creation of a new set parameter packet (Table 3.21); Creation of a new parameter response packet (Table 3.22); and ORBCOMM Satellite Modem Serial Interface Specification 3 3 3 Definition of additional, generally-useful, configuration parameters. Three new packets that can transfer to the DTE information useful to Satellite Pass Prediction (see Tables 3.23 – 3.25). Finally, in order to promote the standardization of Command Mode interfaces, this specification introduces an AT-style Command Mode whose implementation is optional. Note however, that if an SC manufacturer elects to implement any Command Mode interface, the AT-style format, as described in Section 2.3, shall be implemented. Additional manufacturer-specific Command Mode variations may also be implemented if desired. G ORBCOMM August 2005 Spelling and typographical errors corrected. More rigidly enforced Text Conventions (Section 1.2) and Terminology Clarifications (Section 1.3). Removed references to documents no longer supported or released by ORBCOMM. Removed all references to Byte Mode, Doppler-based position determination, and the AT Command set as no current SCs support this functionality. Added notes to the SC-ORIGINATED MESSAGE and SC-ORIGINATED DEFAULT MESSAGE packets specifying a maximum total packet length of 8192 bytes. Updated Figure 4.1 to illustrate the response of the SC to an invalid GET or SET PARAMETER packet. Updated Figure 4.7 to illustrate the handling of a recipient acknowledgment of an SC-ORIGINATED MESSAGE. Updated Figures 4.3, 4.8 and 4.12 to show the complete Acquire-Communicate cycle for all interactions between the SC and the Satellite. ORBCOMM Satellite Modem Serial Interface Specification 4 4 4 In Chapter 3, repeated the note regarding the Data Type byte found in the discussion of the SC-ORIGINATED MESSAGE packet in the relevant part of the SC-TERMINATED MESSAGE packet. Removed SC-ORIGINATED ENHANCED GLOBALGRAM and SC-TERMINATED ENHANCED GLOBALGRAM packets from Chapter 3 since ORBCOMM has no plans to support them. Revised diagrams and corresponding text in Note 11 at the end of Chapter 3. Added type_code 30 to the COMMUNICATIONS COMMAND which signals the SC to prepare for the removal of external power. Documented the SC’s response in Table 327. Clarified format and order of PIN code bytes in CONFIGURATION COMMAND packet. In Section 2.1, provided additional information about the order of the length and Fletcher checksum packet bytes. Clarified order of latitude and longitude code bytes in POSITION STATUS and SCORIGINATED POSITION REPORT packets and removed reference to the bytes formerly associated with Doppler-based position determination from the POSITION STATUS packet. Corrected latitude resolution in the POSITION REPORT packet. Added header byte for new serial packet retry mechanism to description of the POSITION DETERMINATION and POSITION STATUS packets. In Table 3.5, adjusted names of bytes 5 & 6 of the STATUS packet (sc_state and sc_diag_code) to match corresponding configuration parameters. Added reference to Appendix A for definition of these parameters. In Appendix A, changed the access type of the configuration parameters ser_max_retries (0x21) and ORBCOMM Satellite Modem Serial Interface Specification 5 5 5 max_pos_det_queue (0x78) from read-only to read-write. In the PARAMETER RESPONSE packet description in Chapter 3, corrected numbering of packet bytes and a typographical error in the Note. In Chapter 3, note 6, added reference associating IA5 data table with data type 5. Corrected the mean motion multiplier in the SATELLITE ORBITAL ELEMENTS packet In Appendix A, changed the default, minimum, or maximum values for the following parameters: desired_gwy, queued_ob_msgs, queued_ib_msgs, and time_bytes. In Appendix A, deleted parameter 0x25, ops_mod. Edited Figure 4.5 SC-Originated Globalgram to show delivery to GCC. Globally replaced references to GlobalGram with Globalgram. H ORBCOMM July 2014 I ORBCOMM August 2014 Changes to support the new OG2 Modem Hardware J ORBCOMM February 2015 Communications Command 0x04 added. ORBCOMM Satellite Modem Serial Interface Specification 6 Internal Release 6 6 Table of Contents 1 Introduction 1.1 2 3 Terminology Clarifications 10 1.1.2 Commonly Used Acronyms 10 1.2 Related Documentation 11 1.3 Revision Control 11 Protocol Description 12 2.1 Link Layer 12 2.2 Fletcher Checksum Algorithm 13 2.3 Inter-Character Communications Timeout 15 2.4 Communications Timeout 15 Physical Layer Signal Description 16 16 3.1.1 Data Terminal Ready (DTR) 16 3.1.2 Request To Send (RTS) & Clear To Send (CTS) 16 3.1.3 Carrier Detect (CD) 16 3.1.4 Data Set Ready (DSR) 17 3.1.5 Signal Ground (SG) 17 3.1.6 Transmit Data (TxD) 17 3.1.7 Received Data (RxD) 17 3.2 UART Settings 17 3.3 Storage 17 3.4 Modem Configuration 17 Packet Descriptions & Notes 4.1 OG1 Packet Descriptions 4.1.1 4.2 Commands Responses 4.2.2 5 9 1.1.1 3.1 4 Scope 9 19 19 19 55 Unsolicited Responses 69 Serial Interface Packet Diagrams 83 5.1 OG1 and OG2 Serial Interface Packet Diagrams ORBCOMM Satellite Modem Serial Interface Specification 7 83 7 7 6 Latitude and Longitude Conversion 90 7 Satellite Element Set Format Description 92 List of Figures Figure 1: Typical Modem packet format ................................................................................................ 13 Figure 2: Typical OG1 Modem packet format........................................................................................ 19 Figure 5.1: Get and Set Parameters Command/Response .................................................................. 83 Figure 5.2: OTA Communications Commands ..................................................................................... 84 Figure 5.3: Internal Modem Communications Commands .................................................................. 84 Figure 5.4: Modem-Originated Report ................................................................................................... 85 Figure 5.5: Modem-Originated Globalgram ........................................................................................... 86 Figure 5.6: Modem-Terminated Globalgram.......................................................................................... 86 Figure 5.7: Modem-Originated Message ................................................................................................ 87 Figure 5.8: Modem-Terminated Message .............................................................................................. 87 Figure 5.9: Modem-Terminated User Command ................................................................................... 88 Figure 5.10: Polling by GCC .................................................................................................................... 89 List of Tables Table 1: PING PACKET Structure ............................................................................................................... 20 Table 2: DTE ORIGINATED ACKNOWLEDGMENT PACKET Structure ............................................................. 21 Table 3: COMMUNICATIONS COMMAND PACKET Structure .......................................................................... 23 Table 4: MODEM ORIGINATED MESSAGE PACKET Structure ....................................................................... 32 Table 5: An Example of a MO MESSAGE PACKET..................................................................................... 35 Table 6: MODEM ORIGINATED REPORT PACKET Structure .......................................................................... 37 Table 7: MODEM ORIGINATED GLOBALGRAM PACKET Structure ................................................................. 41 Table 8: MODEM ORIGINATED POSITION REPORT PACKET Structure ........................................................... 44 Table 9: GET MODEM PARAMETER PACKET Structure ................................................................................ 46 Table 10: SET MODEM PARAMETER PACKET Structure............................................................................... 47 Table 11: GET MULTIPLE PARAMETER PACKET Structure .......................................................................... 49 Table 12: SET MULTIPLE PARAMETERS PACKET Structure ......................................................................... 51 Table 13: SET MULTIPLE PARAMETERS PACKET DATA FORMAT .................................................................... 52 Table 14: GPS POSITION UPDATE MODE PACKET Structure ...................................................................... 53 Table 15: MO ACKNOWLEDGMENT PACKET Structure ................................................................................ 55 Table 16: STATUS PACKET Structure ........................................................................................................ 57 Table 17: Example of a Gateway Information Block ............................................................................. 59 Table 18: PARAMETER RESPONSE PACKET Structure ................................................................................ 62 Table 19: MULTIPLE PARAMETER RESPONSE PACKET Structure ................................................................ 67 Table 20: Parameter Data Block ............................................................................................................. 68 Table 21: SYSTEM ANNOUNCEMENT PACKET Structure .............................................................................. 69 Table 22: SYSTEM RESPONSE PACKET Structure....................................................................................... 71 Table 23: MODEM TERMINATED MESSAGE PACKET Structure..................................................................... 75 Table 24: An Example Message of a MT MESSAGE PACKET ................................................................... 78 Table 25: MODEM TERMINATED USER COMMAND PACKET Structure .......................................................... 79 Table 26: MODEM TERMINATED GLOBALGRAM PACKET Structure .............................................................. 81 ORBCOMM Satellite Modem Serial Interface Specification 8 8 8 1 Introduction This document describes the interface between ORBCOMM-certified Modems and Data Terminal Equipment (DTE). The document is intended for both integrators of ORBCOMM modems and for designers of ORBCOMM modems in order to guarantee compatibility between modems and applications. 1.1 Scope The document is divided into four chapters and four appendices, which are summarized below: Section 1 Introduction defines the document scope, presents text conventions, provides terminology clarifications, and lists related documentation. Section 2 Protocol Description provides an introduction to the modem serial protocol. Section 3 Physical Layer describes the physical interface the DTE must use to communicate with the modem. Section 4 Packet Descriptions & Notes defines the OG1 and OG2 serial port packets exchanged between the modem and the Data Terminal Equipment (DTE). Section 5 Serial Interface Packet Diagrams presents ladder diagrams that detail the response of the Modem after receiving commands from the DTE and messages from the network. Section 6 Latitude and Longitude Conversions illustrates the process of converting between ORBCOMM encoded position format and geodetic position format. Section 7 Satellite Element Set Format Description defines the format of the Satellite Element Set used in the ORBCOMM Network. ORBCOMM Satellite Modem Serial Interface Specification 9 9 9 1.1.1 Terminology Clarifications This document uses the following terminology: 1.1.2 "Modem-Originated (MO) messages" o This term refers to data that originates from the modem and travels to the Satellites and the ORBCOMM System. "Modem-Terminated (MT) messages" o This term refers to data that transfers from the ORBCOMM System and Satellites to the modem. “Satellite Globalgram Mode” o The satellite is in Globalgram Mode when the satellite is unable to communicate with an ORBCOMM gateway. In this mode the modem is able to send Globalgrams to the satellite. The Globalgrams are stored on the satellite until it can communicate with the gateway specified in the Globalgram packet. “Messaging Mode” o The modem will be in messaging mode when the modem is communicating with a satellite that can communicate with an ORBCOMM gateway. Commonly Used Acronyms Acronym Description ACK Acknowledgment CR Carriage Return CTS Clear-To-Send DCE Data Communications Equipment DSR Data Set Ready DTE Data Terminal Equipment DTR Data Terminal Ready GCC Gateway Control Center GWY ORBCOMM Gateway MHA Message Handler Agent MO Modem Originated MT Modem Terminated MTA Message Transfer Agent OMS ORBCOMM Message Switch O/R Originator / Recipient address or Speed Dial Value RTS Request-To-Send SMTP Simple Mail Transfer Protocol UTC Coordinated Universal Time ORBCOMM Satellite Modem Serial Interface Specification 10 10 10 1.2 Related Documentation The following documents provide background information on the ORBCOMM System and provide information on the modem’s communication with Satellites: ORBCOMM System Overview (document no. A80TD0008). ORBCOMM Messaging Services Description (document no. A80MK0019). ORBCOMM Generation 2 Parameters Specification (document no. 713307401) ORBCOMM OG2 Modem Specification Document (document no. 772433001) 1.3 Revision Control Revision history is listed at the beginning of this document. ORBCOMM Satellite Modem Serial Interface Specification 11 11 11 2 Protocol Description In this document, the generic descriptions “data terminal” and “data terminal equipment” (DTE) refer to the device connected to the modem’s command port, and not to the modem itself. The DTE must manage sending commands to the modem and processing modem responses. Within this document the term “message handler agent” (MHA) refers to the process in the DTE which manages the sending and receiving of messages over the ORBCOMM network. The modem’s purpose is to allow customer applications to send and receive messages over the ORBCOMM network. Modems intended for use on the ORBCOMM network must implement the ORBCOMM specified serial interface. 2.1 Link Layer The protocol is designed exclusively for point-to-point links–only (one DTE and one modem can be connected to the serial link). In the protocol between the modem and the DTE, a packet should be acknowledged by the recipient before the sender may send another one. The only exception is if a timeout has occurred. For more information on link layer timeouts, reference sections 2.3 and 2.4. The least-significant bit of the least-significant packet byte is always transmitted first. The bytes of a packet are transmitted without an inter-character delay—the start bit of the next byte immediately follows the stop bit of the previous byte. All packets begin with a Header byte (byte 0) to enable the receiver to synchronize to the packet boundaries. Packets transmitted by the DTE shall begin with a Header byte of 0x86 and packets transmitted by the modem shall begin with a Header byte of 0x06.1 All packets also contain a unique Packet Type identifier (byte 1) and a two-byte Length field with the LSB located at byte 2 and the MSB located at byte 3. The value for the length is equal to all bytes within the packet including the header byte, checksum bytes and all bytes in between. For example, the PING PACKET in section 4.1.1.1 is always 7 bytes in length and includes the Header, the Packet Type, the two Length Bytes, the Packet Sequence Number and the two Checksum bytes. The largest packet the OG1 protocol supports is 8192 bytes and the smallest packet is 7 bytes. The Packet Sequence Number field of the serial interface packets (byte 4) is a unique value for each distinct message chosen by the packet sender. Messages having the same Packet Sequence Numbers are processed only once. Therefore, re-transmitted packets with the same Packet Sequence Number as their immediate predecessors are not processed by the modem. A status code in the ACKNOWLEDGEMENT PACKET indicates that the packet was a duplicate and had previously been processed. 1 Packet headers 0x85, 0x05 and the retry count byte are no longer supported. ORBCOMM Satellite Modem Serial Interface Specification 12 12 12 NOTE NOTE Be aware that when the modem boots up it believes the last Packet Sequence Number received is 0xFF; therefore, the DTE should send a Packet Sequence Number other than 0xFF after booting up the modem. The OG1 MO AND MT ACKNOWLEDGEMENT PACKETS are the only packets that do not require a Packet Sequence Number. Following the Packet Sequence Number there are N bytes of data that are different depending on the packet’s type. The protocol also mandates the use of a two byte modified Fletcher checksum to detect errors in the packet bytes. This checksum is calculated over all packet bytes and is computed per section 2.2. The following figure shows the format of a typical serial packet. Figure 1: Typical Modem packet format2 The packets exchanged by the modem and DTE are specified in Chapter 3. 2.2 Fletcher Checksum Algorithm The ORBCOMM serial port protocol uses FletcherEncode() to insert a checksum into a PacketBuffer and FletcherDecode() to verify the PacketBuffer has the correct checksum. The modified Fletcher encode algorithm used is as follows: boolean FletcherEncode(uint8_t* PacketBuffer, uint32_t PacketBufferSize) { uint32_t PacketBufferIdx; 2 OG1 Acknowledgement packets are an exception and do not include a packet sequence number. ORBCOMM Satellite Modem Serial Interface Specification 13 13 13 uint8_t ChecksumByte0 = 0; uint8_t ChecksumByte1 = 0; if((PacketBuffer == NULL) || (PacketBufferSize < 2)) return (FALSE); PacketBuffer[PacketBufferSize – 1] = 0; //Set Checksum Low Byte to 0 PacketBuffer[PacketBufferSize – 2] = 0; //Set Checksum High Byte to 0 for(PacketBufferIdx = 0; PacketBufferIdx < PacketBufferSize; PacketBufferIdx++) { ChecksumByte0 += PacketBuffer[PacketBufferIdx]; ChecksumByte1 += ChecksumByte0; } //Copy the calculated checksum bytes into the serial port packet PacketBuffer[PacketBufferSize – 2] = ChecksumByte0 – ChecksumByte1; PacketBuffer[PacketBufferSize – 1] = ChecksumByte1 – (2 * ChecksumByte0); return (TRUE); } NOTE The last two bytes of the buffer passed by reference into the function will be set by the function above. In addition, the buffer size must include the two byte checksum values. In the code above notice that the modified Fletcher encode algorithm requires the last two bytes in the buffer to be equal to 0x00 before starting to encode. The modified Fletcher decode algorithm used is as follows: boolean FletcherDecode(uint8_t* PacketBuffer, uint32_t PacketBufferSize) { uint32_t PacketBufferIdx; uint8_t ChecksumByte0 = 0; uint8_t ChecksumByte1 = 0; if(PacketBufferSize < 2) return (FALSE); for(PacketBufferIdx = 0; PacketBufferIdx < PacketBufferSize; PacketBufferIdx++) { ChecksumByte0 += PacketBuffer[PacketBufferIdx]; ORBCOMM Satellite Modem Serial Interface Specification 14 14 14 ChecksumByte1 += ChecksumByte0; } If(ChecksumByte0 || ChecksumByte1) return (FALSE); //PacketBuffer Does Not Have A Valid Checksum return (TRUE); //PacketBuffer Has A Valid Checksum } 2.3 Inter-Character Communications Timeout Once the modem receives a header byte the rest of the packet is expected to be sent to the modem. If the DTE takes more than 5ms to send any byte after the header byte, the modem will timeout and will ignore characters until it receives a header byte. The modem will also transmit an ACKNOWLEDGMENT PACKET to the DTE with a status code of 0x08 (packet was rejected due to an inter-character timeout error). 2.4 Communications Timeout To enable detection of a DTE communications failure, the modem implements a response timeout mechanism. After transmitting a packet to the DTE, the modem will wait 1 second. Should the DTE fail to respond within 1 second, the modem will re-transmit the packet, increment a failure count, and restart the response timer. The modem will attempt to deliver the packet nine times if the modem does not receive a DTE ACKNOWLEDGEMENT PACKET. After the ninth time the modem will assume the DTE did not receive the packet.3 Undelivered MT messages will be stored within the non-volatile memory of the modem. The modem will attempt to send undelivered messages on modem boot, the next time a MT message is received or when it receives a COMMUNICATIONS COMMAND PACKET with a command code of 0x1F (Request one MT Message/Report/Globalgram stored within the modem). 3 The timeout discussed in this paragraph excludes SET AND GET PARAMETER PACKETS, the PING PACKET and SET AND GET MULTIPLE PARAMETERS PACKETS. The DTE does not need to respond to these packets. ORBCOMM Satellite Modem Serial Interface Specification 15 15 15 3 Physical Layer It is expected that the DTE will be co-located with the modem. The modem’s command port is accessible through an asynchronous serial port. The serial port lines of the command port are at processor logic levels. Please refer to the modem hardware specification for exact voltages. If the desired application requires RS-232 signal levels, the DTE will have to provide line driver hardware. While a three-wire (TxD, RxD, and ground) interface is likely to meet the requirements of nearly all applications, flow control, if supported by the modem hardware, may be used to prevent data overruns. This implies manipulation of the Data Terminal Ready (DTR) and Request-To-Send (RTS) lines by the DTE and the Data Set Ready (DSR) and Clear-To-Send (CTS) lines by the DCE (modem). 3.1 Signal Description The following section identifies the optional and mandatory signals of the modem serial interface. Please refer to the modem hardware specification to determine which signals are supported. If a signal is supported, it must comply with this interface specification. NOTE Be aware that some of the signals defined in this section have non-standard definitions. In addition, not all signals are supported by every modem’s hardware. Refer to the specific modem’s hardware specification to determine which of the following signals are supported. 3.1.1 Data Terminal Ready (DTR) If the DTR signal is supported within hardware, the DTR signal can be used for normal RS232 flow control or it may be configured for different responsibilities depending on the Outbound Flow Control Parameter (Parameter 38) and the Modem Power Down Mode (Parameter 47). For more information on the non-standard options reference the ORBCOMM Satellite Modem Parameters Description Document. 3.1.2 Request To Send (RTS) & Clear To Send (CTS) CTS and RTS are signals that are hardware dependent. When CTS is present it is used in tandem with RTS to monitor flow control between the modem and the DTE. 3.1.3 Carrier Detect (CD) If CD is supported by hardware, the modem will activate the CD line whenever it is locked onto a Satellite and is receiving Gateway Information, Downlink Channel Information and Uplink Channel Information. ORBCOMM Satellite Modem Serial Interface Specification 16 16 16 3.1.4 Data Set Ready (DSR) If DSR is supported by hardware, the DSR signal can be used for normal RS232 flow control or it may be configured to indicate queued MT messages are stored within the modem. For more information, reference the Inbound Flow Control (parameter 39) and the DSR MT Message Alert Enabled (parameter 40) parameters located in the ORBCOMM Satellite Modem Parameters Description Document. 3.1.5 Signal Ground (SG) Signal ground assures a common ground reference between the modem and the DTE and is present on every modem. 3.1.6 Transmit Data (TxD) TxD conveys serial data from the DTE to the modem and is present on every modem. 3.1.7 Received Data (RxD) RxD conveys serial data from the modem to the DTE and is present on every modem. 3.2 UART Settings The modem supports UART settings of no parity, 8 bit data length, 1 stop bit and various baud rates. For more information on the baud rates the modem can support, reference the Command Serial Port Baud Rate parameter (parameter 41) in the ORBCOMM Satellite Modem Parameters Description Document. However, it should be noted, that all modems support the factory default baud rate of 4800 bps. The duration of bits transmitted by the modem and the DTE will not differ by more than 1% from the nominal duration derived from the selected baud rate. 3.3 Storage The modem contains non-volatile memory which is dedicated to the storage of MT and MO messages. For more information on the amount of non-volatile storage within the modem, reference the specific modem’s hardware specification. 3.4 Modem Configuration To support the widest variety of applications, the modem’s operational parameters are configurable. DTE’s can access the modem’s operating parameters and internal status via the GET PARAMETER, GET MULTIPLE PARAMETERS, SET PARAMETER, SET MULTIPLE PARAMETERS, PARAMETER RESPONSE PACKETS and MULTIPLE PARAMETER RESPONSE PACKETS. These packets reference parameters and status information in the table via indexes that correspond to the parameters’ locations within the table. The ORBCOMM Satellite Modem Parameters Description Document presents the parameters and status data that are accessible in this manner, their corresponding indexes, and their pre-set factory default values. ORBCOMM Satellite Modem Serial Interface Specification 17 17 17 NOTE GET MULTIPLE PARAMETERS, SET MULTIPLE PARAMETERS AND MULTIPLE PARAMETER RESPONSE PACKETS are a part of the OG2 modem and may not be present in all ORBCOMM modems. ORBCOMM Satellite Modem Serial Interface Specification 18 18 18 4 Packet Descriptions & Notes This section describes the packets available to the user on every ORBCOMM modem. 4.1 OG1 Packet Descriptions The packets described in this section will only send data over ORBCOMM’s OG1 network. The typical OG1 serial port packet format is shown in Figure 2. For more information on the OG1 serial port packet breakdown refer to section 2.1. For ladder diagrams that show examples of typical DTE and modem command response interactions refer to section 5. Figure 2: Typical OG1 Modem packet format NOTE The OG1 MO AND DTE ORIGINATED ACKNOWLEDGEMENT PACKETS are the only packets that do not require a packet sequence number. 4.1.1 Commands The following sections describe the packets a DTE is capable of sending to the modem. 4.1.1.1 Ping Packet (Packet Type 0x00) The PING PACKET is used as a way to test the serial connection between the DTE and the modem. The modem will send an ACKNOWLEDGEMENT PACKET in response to a PING PACKET from the DTE. ORBCOMM Satellite Modem Serial Interface Specification 19 19 19 Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Checksum Least Significant Byte 6 Checksum Most Significant Byte Table 1: PING PACKET Structure 4.1.1.1.1 PING PACKET STRUCTURE DESCRIPTION Packet Header: Every packet has a packet header and all Modem Command packets have a packet header of 0x86. Packet Type: Every packet has a specific packet type. A PING PACKET always has a packet type value of 0x00. Packet Length: Every packet has a two byte packet length. A PING PACKET will always have a packet length of 7 bytes. Therefore byte 2 will have a value of 0x07 and byte 3 will have a value of 0x00. In addition, notice that the packet length includes the checksum. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. NOTE This is an ORBCOMM OG2 packet. Other modem manufacturers may or may not support this packet. ORBCOMM Satellite Modem Serial Interface Specification 20 20 20 4.1.1.2 DTE Originated Acknowledgement Packet (Packet Type 0x01) The DTE ORIGINATED ACKNOWLEDGEMENT packet is sent to the modem after the DTE receives a packet from the modem. The only exceptions are when the DTE receives a PARAMETER RESPONSE PACKET, a MULTIPLE PARAMETER RESPONSE PACKET or a MODEM ORIGINATED ACKNOWLEDGMENT PACKET. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Status Code 5 Least Significant Byte of Checksum 6 Most Significant Byte of Checksum Table 2: DTE ORIGINATED ACKNOWLEDGMENT PACKET Structure 4.1.1.2.1 DTE ORIGINATED ACKNOWLEDGEMENT PACKET STRUCTURE DESCRIPTION Packet Header: Every packet has a packet header and all Modem Command packets have a packet header of 0x86. Packet Type: Every packet has a specific packet type. A DTE ORIGINATED ACKNOWLEDGEMENT PACKET always has a packet type value of 0x014. Packet Length: Every packet has a two byte packet length. A DTE ORIGINATED ACKNOWLEDGMENT PACKET will always have a packet length of 7 bytes. Therefore byte 2 will have a value of 0x07 and byte 3 will have a value of 0x00. In addition, notice that the packet length includes the checksum. Status Code: The following status code values are valid responses from the DTE: 0x00 – No Error 0x01 – The packet was received correctly, however, the DTE is busy and cannot process the packet at this time. Retry the packet with a new sequence number 30 seconds later. 0x02 – 0xFF: Reserved Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. 4 This is the same packet type as the Acknowledgment packet directed from the modem to the DTE ORBCOMM Satellite Modem Serial Interface Specification 21 21 21 4.1.1.3 Configuration Packet (Packet Type 0x02) This packet is no longer supported5,6. In order to set the Network Search Mode and Desired Gateway ID use the SET PARAMETER PACKET. If this packet is sent to the modem the DTE should expect a MODEM ORIGINATED ACKNOWLEDGMENT PACKET with a status code of “Packet Rejected, Unrecognized Packet Type” (0x06). 5 The Pin Code is no longer supported by the ORBCOMM switch. The CONFIGURATION PACKET used to allow the user to set the Pin Code, Desired Gateway ID, Gateway Search Mode (now Network Search Mode), Default Polled, Default Acknowledgement Level, Default Report OR Indicator, Default Priority, Default Message Body Type and Default Service Type. However, this packet has been removed since most of previous discussed parameters are no longer supported. 6 ORBCOMM Satellite Modem Serial Interface Specification 22 22 22 4.1.1.4 Communications Command Packet (Packet Type 0x03) The COMMUNICATIONS COMMAND PACKET allows a user to request and command the modem to do various operations. It should be noted that communications commands are not stored in non-volatile memory within the modem; therefore, Communications Commands do not persist over power cycles. For example, if the modem is processing a Communications Command before the unit is powered off; the modem will not attempt to process that Communications Command on the next power up. The operations the Communications Command supports are listed below. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Communications Command Code 6 Communications Command Code Data Least Significant Byte 7 Communications Command Code Data Middle Least Significant Byte 8 Communications Command Code Data Middle Most Significant Byte 9 Communications Command Code Data Most Significant Byte 10 Gateway ID 11 Checksum Least Significant Byte 12 Checksum Most Significant Byte Table 3: COMMUNICATIONS COMMAND PACKET Structure 4.1.1.4.1 COMMUNICATIONS PACKET STRUCTURE DESCRIPTION Packet Header: Every packet has a packet header and all Modem Command packets have a packet header of 0x86. Packet Type: Every packet has a specific packet type. A COMMUNICATIONS COMMAND PACKET has a packet type value of 0x03. Packet Length: Every packet has a two byte packet length. A COMMUNICATIONS COMMAND PACKET will always have a packet length of 13 bytes; therefore, byte 2 will have a value of 0x0D and byte 3 will have a value of 0x00. In addition, notice that the packet length includes the checksum. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Communications Command Code: This bytes value determines what the modem is supposed to do upon receiving this packet. The possible values for this byte are: ORBCOMM Satellite Modem Serial Interface Specification 23 23 23 0x00: Request all Modem Terminated Messages/Commands queued at the ORBCOM Gateway specified. The specified gateway number should be set in byte 10 of the Communications Command packet. Note, that a gateway ID of 0 is not a valid gateway ID. 0x01: Request all Modem Terminated Messages/Commands Queued with a size no greater than 150 bytes at the ORBCOMM Gateway. The desired gateway should be specified in byte 10 of the Communications Command packet. Note, that a gateway ID of 0 is not a valid gateway ID. 0x02: Request the first Globalgram with the provided gateway ID queued in the Satellite currently communicating with the modem. The desired gateway should be specified in byte 10 of the Communications Command packet. Note, that setting a gateway ID with a value greater than 0 is not valid for this command. This request does not perform anything if the modem is not currently communicating with a satellite in Satellite Globalgram mode. 0x03: Request Originator Recipient addresses specified at the time of provisioning from the gateway specified. The desired gateway should be specified in byte 10 of the Communications Command packet. Note, that a gateway ID of 0 is not a valid gateway ID. 0x047: Request status of MO Message, Report or Globalgram identified by MHA message reference number in value field. The MHA number to search should be specified in byte 6 of the communications command packet. 0x05: Reserved8 0x06: Request a list of Modem Terminated Message subjects, time and list of originators that are queued at the ORBCOMM Gateway. The desired ORBCOMM gateway should be specified in byte 10 of the Communications Command packet. Note, that a gateway ID of 0 is not a valid gateway ID. 0x07: Request a Single Modem Terminated Message identified by an index value. The index value is from the position of the message subject relative to other message subjects, starting with the value of 1. The index value should be specified in byte 6 and the desired ORBCOMM gateway number needs to be specified in byte 10 of the Communications Command packet. The list of subjects is obtained from sending a Communications packet with a Communications Command Code of 0x06. 0x08: Delete one Modem Terminated message identified by an index value. The index value is from the position of the message subject relative to other message subjects, starting with the value of 1. The index value should be specified in byte 6 and the desired ORBCOMM gateway number needs to be specified in byte 10 of the Communications Command packet. The list of subjects is obtained from sending a Communications packet with a Communications Command Code of 0x06. 0x09 – 0x0F: Reserved9,10 0x10: Request Status packet from the Modem. 0x11: Clear Active Modem Terminated or Modem Originated message being transferred between the modem and the ORBCOMM Gateway. 7 Communications Command 0x04 is valid in version 1.5 and later of the OG2 firmware. If the firmware on the OG2 modem is prior to version 1.5 ignore section 4.1.1.4.2.5 and reference section 4.1.1.4.2.6 for the modem’s response. 8 Communications Command Code 0x05 allowed a user to request the status of the MO Message/Report identified by the MHA reference number and specified gateway; however, this is no longer supported. 9 Communications Command Code 0x09 was previously a request to register with the ORBCOMM Gateway specified in byte 10. However, this Communications Command Code has been discontinued. 10 Communications Command Codes 0x0A – 0x0F were previously generic functions but have now been changed to reserved for backwards compatibility. ORBCOMM Satellite Modem Serial Interface Specification 24 24 24 0x12: Clear one Modem Originated Message stored within the modem identified by the MHA Reference Number. The MHA reference number should be specified in byte 6 of the Communications Command packet. 0x13: Clear all Modem Originated Messages queued within the modem. 0x14: Clear all Modem Terminated Messages queued within the modem. 0x15 – 0x16: Reserved11,12 0x17: Request the modem to perform a Loop-Back Test with a specified ORBCOMM Gateway. The desired ORBCOMM gateway number should be specified in byte 10 of the Communications Command packet. Note, that a gateway ID of 0 is not a valid gateway ID. o This request causes the modem to send a Report with a Speed Dial value of 0 to the specified ORBCOMM Gateway. The Gateway will then send a command with the first 5 Report Bytes. 0x18: Commands the modem to power down until DTR transitions from inactive to active. This command is only available with modems equipped with hardware that supports the DTR line. 0x19 – 0x1A: Reserved13,14 0x1B: Commands the modem to send a Position Report to the specified ORBCOMM Gateway with a service type of 0x02. The desired gateway should be specified in byte 10 of the Communications Command packet. Note, that a gateway ID of 0 is not a valid gateway ID. The data populated within this command is from the ORBCOMM Latitude and Longitude parameters. These values are currently not updated by the on board GPS, hardware permitting. ORBCOMM suggests using the Position Report packet (Section 4.1.1.11) when sending GPS information. 0x1C: Reserved15 0x1D: Force the modem to use the next Downlink. 0x1E: Command the modem to prepare for the Removal of External Power. This command is optional; however, commanding the modem to do this prior to removing power ensures the modem has backed up all vital information and is in an idle state. 0x1F: Request one MT Message/Report/Globalgram stored within the modem. 0x20: Have the Modem perform a software reset. 0x21– 0xFF: Reserved Communications Command Data (bytes 6-9): Some Communication command codes require up to 4 bytes of data. Bytes 6-9 are where this data is set. The data bytes are aligned so that byte 6 is the least significant byte. The following Communications Command Codes require data: 0x07, 0x08, 0x12 and 0x20. The modem will ignore these bytes for all other Communication Command Codes. 11 The Communications Command Code 0x15 allowed a user to request the modem perform a self-test. However, this is no longer supported. 12 The Communications Command Code 0x16 allowed a user to request the modem perform an internal loop-back. However, this is no longer supported. 13 Communications Command Code 0x19 use to allow the user to command the modem to power down for a number of seconds. However, this is no longer supported. 14 Communications Command Code 0x1A use to allow the user to power down the modem for at least a number of seconds and then awaken with the rise of the next satellite pass. However, this is no longer supported. 15 Previously commanded the modem to send Orbital Elements as a Modem Terminated Message (NASA 2-line format, Appendix A) to the DTE; however, currently this is not supported. ORBCOMM Satellite Modem Serial Interface Specification 25 25 25 Destination Gateway ID: This value instructs the modem that this specific command is for the ORBCOMM Gateway ID specified. The Communication Command codes 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x08, 0x17 and 0x1B require this field to be populated. The modem will ignore this byte for all other Communication Command Codes. Zero is not a valid gateway ID for commands requiring this value. Refer to the Communications Command Code Responses section to see the error response. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. 4.1.1.4.2 COMMUNICATIONS COMMAND CODE RESPONSES After a COMMUNICATIONS COMMAND PACKET is received by the modem, the modem will immediately respond with an ACKNOWLEDGEMENT PACKET. If the status code is 0x00 (success), then the DTE could expect another response from the modem at some later time depending on the Command Code. This section describes what the DTE should expect from the modem after the ACKNOWLEDGEMENT PACKET. 4.1.1.4.2.1 Responses to Command Code 0x00 If there are Modem Terminated Messages/Commands at the specified gateway then the modem will send the DTE the Modem Terminated Messages/Commands. If the specified gateway does not have any Modem Terminated Messages/Commands then the modem will send the DTE a SYSTEM RESPONSE PACKET with the following values: o Acknowledgement Originator: ORBCOMM Gateway (0x01) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: No Modem Terminated Messages/Commands Queued in ORBCOMM Gateway (0x77) If the user specifies an invalid gateway ID then the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Invalid Parameter 0x0B If the modem is unable to obtain a response from the gateway for whatever reason the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: For more details reference the SYSTEM RESPONSE PACKET. 4.1.1.4.2.2 Responses to Command Code 0x01 If there are Modem Terminated Messages/Commands that are no greater than 150 bytes at the specified gateway then the modem will send the DTE the Modem Terminated Messages/Commands. If the specified gateway does not have any Modem Terminated Messages/Commands that are no greater than 150 bytes then the modem will send the DTE a SYSTEM RESPONSE PACKET with the following values: o Acknowledgement Originator: ORBCOMM Gateway (0x01) o Status of Message Transfer: Response to a Communications Command (0x0B) ORBCOMM Satellite Modem Serial Interface Specification 26 26 26 o Message Transfer Diagnostic: No Modem Terminated Messages/Commands of size less than 150 bytes queued in ORBCOMM Gateway (0x78) If the user specifies an invalid gateway ID then the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Invalid Parameter (0x0B) If the modem is unable to obtain a response from the gateway for whatever reason the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: This value should describe the issue. For more details reference the System Response packet. 4.1.1.4.2.3 Response to Command Code 0x02 If there are Globalgrams stored within the satellite and the satellite is in Satellite Globalgram Mode then the modem will send the DTE a MODEM TERMINATED GLOBALGRAM PACKET. If the specified satellite does not have any Modem Terminated Globalgrams and the satellite is in Satellite Globalgram Mode, then the modem will send the DTE a SYSTEM RESPONSE PACKET with the following values: o Acknowledgement Originator: Satellite (0x00) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: No Globalgrams queued in current satellite (0x79) If the current satellite communicating with the modem can communicate with an ORBCOMM gateway, then the satellite is not in Satellite Globalgram Mode and the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Globalgram is not permitted at this time (0x72) If the modem is unable to obtain a response from the satellite for whatever reason the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: This value should describe the issue. For more details reference the System Response packet. If the user specifies a gateway ID other than 0 the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Invalid Parameter (0x0B) 4.1.1.4.2.4 Response to Command Code 0x03 If successful the modem will send a MT MESSAGE PACKET containing the ASCII Originator Recipient addresses to the DTE If the user specifies an invalid gateway ID then the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) ORBCOMM Satellite Modem Serial Interface Specification 27 27 27 o Message Transfer Diagnostic: Invalid Parameter (0x0B) If the modem does not receive a MT message then the modem will return a SYSTEM RESPONSE PACKET to the DTE with the following data: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: This value will give more information of why the modem did not receive a MT message. For more details reference the System Response packet. 4.1.1.4.2.5 Response to Command Code 0x04 If there is a message stored in the modem with the specified MHA number the modem will return the following SYSTEM RESPONSE PACKET to the DTE: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Message Received By Acknowledgement Originator (0x0F) o Message Transfer Diagnostic: No Additional Diagnostic Information Indicated (0x70) If the modem does not have a stored message with the provided MHA number, then the modem will return the following SYSTEM RESPONSE PACKET to the DTE: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Status Unknown (0x0C) o Message Transfer Diagnostic: No Active Session or MO Message MHA Number Error (0x6D) 4.1.1.4.2.6 Response to Command Code 0x05 The modem will always return the following SYSTEM RESPONSE PACKET to the DTE16: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Invalid Parameter (0x0B) 4.1.1.4.2.7 Response to Command Code 0x06 If there are Modem Terminated Messages at the specified gateway then the modem will send the DTE a MODEM TERMINATED MESSAGE PACKET containing the list of originators, the time the MT message was received and the subject for each message. If there are no Modem Terminated Messages at the specified gateway then the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: ORBCOMM Gateway (0x01) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: No Modem Terminated Messages/Commands Queued in Specified ORBCOMM Gateway (0x77) If the user specifies an invalid gateway ID then the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Invalid Parameter (0x0B) If the modem is unable to obtain a response from the satellite for whatever reason the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: 16 This communications command code is no longer supported but will still return a system response for backwards compatibility ORBCOMM Satellite Modem Serial Interface Specification 28 28 28 o o o Acknowledgement Originator: Modem (0x03) Status of Message Transfer: Response to a Communications Command (0x0B) Message Transfer Diagnostic: This value should describe the issue. For more details reference the System Response packet. 4.1.1.4.2.8 Response to Command Code 0x07 If the requested Modem Terminated Messages is stored at the specified gateway then the modem will send the DTE the requested MODEM TERMINATED MESSAGE PACKET. If the user specifies an invalid gateway ID then the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Invalid Parameter (0x0B) If the modem is unable to obtain a response from the satellite for whatever reason the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: This value should describe the issue. For more details reference the System Response packet. 4.1.1.4.2.9 Response to Command Code 0x08 If the requested Modem Terminated Message is stored at the specified gateway and successfully deleted then the modem will send the DTE a SYSTEM RESPONSE PACKET with the following values: o Acknowledgement Originator: ORBCOMM Gateway (0x01) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Requested Message Deleted (0x7A) If the user specifies an invalid gateway ID then the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Invalid Parameter 0x0B If the modem is unable to obtain a response from the satellite for whatever reason the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: This value should describe the issue. For more details reference the System Response packet. 4.1.1.4.2.10 Response to Command Codes 0x09 to 0x0F The modem will always return the following SYSTEM RESPONSE PACKET to the DTE: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Invalid Parameter (0x0B) 4.1.1.4.2.11 Response to Command Code 0x10 If the COMMUNICATIONS COMMAND PACKET is sent to the modem it will send a STATUS PACKET to the DTE. ORBCOMM Satellite Modem Serial Interface Specification 29 29 29 4.1.1.4.2.12 Response to Command Code 0x11 If successful the modem will not send an additional response to the DTE. 4.1.1.4.2.13 Response to Command Code 0x12 If successful the modem will not send an additional response to the DTE. If the MHA reference number sent to the modem does not exist then the modem will send a SYSTEM RESPONSE PACKET with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: No Active Session or MO Message MHA Reference Number Error (0x6D) 4.1.1.4.2.14 Response to Command Code 0x13 – 0x14 The modem will not send an additional response to the DTE. 4.1.1.4.2.15 Response to Command Code 0x15 – 0x16 The modem will always send a Status packet to the DTE.17 4.1.1.4.2.16 Response to Command Code 0x17 The modem will always send a STATUS PACKET to the DTE. o If successful both the Modem State and Modem Diagnostic Code will be 0x00 within the Status packet. o If unsuccessful the Modem Diagnostic Code will have an error value. For more details reference the Status packet. If the user specifies an invalid gateway ID then the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Invalid Parameter 0x0B 4.1.1.4.2.17 Response to Command Code 0x18 The modem will not send any additional responses to the DTE. o The modem will only turn off if the hardware supports DTR. 4.1.1.4.2.18 Response to Command Code 0x19 – 0x1A The modem will not send any additional responses to the DTE.18 4.1.1.4.2.19 Response to Command Code 0x1B If the user specifies an invalid gateway ID then the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Invalid Parameter 0x0B 17 Although Communications Command Codes 0x15 and 0x16 are no longer supported they will return a Status packet to maintain backwards compatibility. Note, the state and diagnostic code may not match previous versions. 18 These Communications Command Codes are no longer supported so the modem will not turn off as it previously supported. ORBCOMM Satellite Modem Serial Interface Specification 30 30 30 If the modem does not have a valid GPS position or the modem is unable to store the GPS position report the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Position Determination is Unavailable (0x75) If there are no errors the modem will send a POSITION REPORT PACKET with a service type of 0x02 immediately. The modem will then send a SYSTEM RESPONSE PACKET to the DTE on completion. 4.1.1.4.2.20 Response to Command Code 0x1C The modem will always return the following SYSTEM RESPONSE PACKET to the DTE: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Invalid Parameter (0x0B) 4.1.1.4.2.21 Response to Command Code 0x1D The modem will not send any additional responses to the DTE. 4.1.1.4.2.22 Response to Command Code 0x1E Once the modem has finished servicing this message the modem will send a SYSTEM RESPONSE PACKET to the DTE with the following values: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Ready for Power Removal (0x81) 4.1.1.4.2.23 Response to Command Code 0x1F This command will send one MT MESSAGE/REPORT/GLOBALGRAM/COMMAND PACKET to the DTE if there are any stored within the modem. If there are no MT Messages/Reports/Globalgrams/Commands stored within the modem then there will be no more additional packets sent to the DTE by the modem. 4.1.1.4.2.24 Response to Command Code 0x20 This command will tell the modem to perform a software reset. If byte 6 is 0x55, perform a software reset and remain in bootloader. 4.1.1.4.2.25 Response to Command Code 0x21 – 0xFF The modem will always return the following SYSTEM RESPONSE PACKET to the DTE: o Acknowledgement Originator: Modem (0x03) o Status of Message Transfer: Response to a Communications Command (0x0B) o Message Transfer Diagnostic: Invalid Parameter (0x0B) ORBCOMM Satellite Modem Serial Interface Specification 31 31 31 4.1.1.5 Modem Originated Message Packet (Packet Type 0x06) Sending a MODEM ORIGINATED MESSAGE PACKET to the modem will cause the modem to store the message within persistent memory. The values set within the MODEM ORIGINATED MESSAGE PACKET determine how the message is handled. Once the message is successfully transmitted to the specified gateway, the modem will send the DTE a SYSTEM RESPONSE PACKET (Section 4.2.2.2) if the user specified a gateway acknowledgment level of 0x01 or 0x02, then delete the message from persistent memory. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Destination Gateway ID 6 Polled By Gateway Or Transmit By Modem 7 Gateway Acknowledgement Level 8 Message Priority 9 Message Body Type 10 MHA Reference Number 11 Recipient Quantity 12 Subject Indicator 13 Recipient Addresses Byte 0 14 Optional – Recipient Addresses Byte 1 14+N Optional - Recipient Addresses Byte N (14+N)+1 (14+N)+(L+1)+1 Optional - Subject String Byte 0 of (N+1) bytes Message Body Byte 0 of (L+1) bytes (14+N)+(L+1)+(K+1)+1 Checksum Least Significant Byte (14+N)+(L+1)+(K+1)+2 Checksum Most Significant Byte Table 4: MODEM ORIGINATED MESSAGE PACKET Structure 4.1.1.5.1 MODEM ORIGINATED MESSAGE PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Command packets have a packet header of 0x86. Packet Type: Every packet has a specific packet type. A MODEM ORIGINATED MESSAGE PACKET has a packet type value of 0x06. ORBCOMM Satellite Modem Serial Interface Specification 32 32 32 Packet Length: Every packet has a two byte packet length. A MODEM ORIGINATED MESSAGE PACKET is variable length. The maximum size of this packet is 8192 bytes. A packet length greater than 8192 bytes will be acknowledged with a status code of “Packet Rejected, Message Size Exceeds Queue Capacity” (0x04). Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Destination Gateway ID: This value instructs the modem that this specific message is for the ORBCOMM Gateway ID specified. Zero is not a valid gateway ID and the modem will reply with an Acknowledgement packet with the status of 0x03 if the gateway ID is zero. Polled By Gateway or Transmit by Modem: The value set here determines whether the message remains within the modem until the specific ORBCOMM Gateway specified in byte 5 polls for the message or if the modem attempts to transmit the message immediately. The valid values for this byte are: 0x00 – Modem attempts to transmit Message immediately 0x01 – Message is stored within the modem until the specific ORBCOMM Gateway in byte 5 polls the Modem for messages. Gateway Acknowledgment Level: The value set here determines what type of acknowledgement the modem will receive after a message is sent. The valid values for this byte are19: 0x00 – No Acknowledgement Expected 0x01 – Only Non-Delivery to ORBCOMM Gateway Acknowledged 0x02 – Delivery to ORBCOMM Gateway Acknowledged Message Priority: The value set in this byte determines at what priority the Modem attempts to send the message. Valid values are: 0x00 – Non-Urgent (Lowest Priority) 0x01 – Normal 0x02 – Urgent 0x03 – Special Delivery (Highest Priority) Message Body Type: Valid message body types are: 0x00 – IA5TEXT o This body type is used to send plain text to a recipient. Each character must be from 0x00 to 0x7F o If IA5TEXT is specified, the first byte of the message body must be 0x05. 19 In previous versions of the serial interface specification values 0x03 – Only Non-Delivery to Recipient Acknowledged and 0x04 – Delivery to Recipient Acknowledged were also supported. These values no longer supported. However, the modem will accept the message but will never return a recipient acknowledgment. ORBCOMM Satellite Modem Serial Interface Specification 33 33 33 0x0E –Binary Data o This body type is used to send application specific binary data using 8 bit data bytes o No byte is placed in the first byte of the Message Body described later. MHA Reference Number: A number from 0 – 254 chosen by the DTE to identify a specific message. If there is already a Message/Report/Globalgram stored within the modem that has the same MHA Reference number as a new packet, then the new packet will be rejected and the modem will send an Acknowledgment packet with status code “Packet Rejected, Message/Report/Globalgram Duplicate MHA Reference Number” (0x0C). Recipient Quantity: The number of recipient addresses within this message. The maximum number is 6 recipient addresses/speed dial values and one originator address/speed dial values for a total maximum number of 7. The value can be zero. Subject Indicator: This byte specifies whether there is a subject within this message or not. Valid values for this byte are: 0x00 – Message Does Not Contain a Subject 0x01 – Message Contains a Subject Recipient Address String(s): A recipient address can be either a speed dial value or an explicit address. An explicit address must be an ASCII character string which adheres to the SMTP standard syntax. A 0x00, 0x80 or 0x90 must follow the last character of the string to indicate that the explicit address identifies a primary, blind, or copied recipient, respectively. If the lower nibble of the recipient speed dial value is set to 0 the user is requesting a message loopback; the ORBCOMM Gateway sends the received message back to the modem. If the lower nibble of the Recipient speed dial value is set to 1-8 then the message will be sent to the email address set up during provisioning. Recipient speed dial values 9-15 are reserved for ORBCOMM use. The upper nibble of the Recipient speed dial value is set to 0, 8, or 9 to indicate that the recipient speed dial value identifies a primary, blind, or copied recipient, respectively. Explicit addresses and recipient speed dial values are placed sequentially in the packet, without the use of length fields. The maximum explicit address length is 128 characters (all addresses included). The maximum quantity of explicit addresses and/or speed dial values per message is 7. There must be at least 1 originator recipient address or recipient speed dial value. Subject String: The subject string specifies the subject of the message and is an ASCII string with a maximum size of 80 bytes that is null-terminated. The null at the end of the string is included within the 80 byte limit. In addition, a subject should only be set within the message if the subject indicator (byte 12) was set to 0x01. ORBCOMM Satellite Modem Serial Interface Specification 34 34 34 Message Body: This contains the message data. If the Message Body Type is 0x00 (IA5TEXT) then the first byte of the message body must be 0x05. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. 4.1.1.5.2 EXAMPLE OF A MO MESSAGE In the following example of an MO Message, the message has no subject, includes a message body of "Hello”, five recipients identified by speed dial Value 1 (primary), speed dial Value 2 (primary), nullterminated explicit address "SALLY" (primary), null-terminated explicit address "BILL" (blind), and speed dial value 7 (blind). These bytes would be present in the MO Message packet user data fields, bytes 13 up to the Fletcher checksum. Hex and text representation: Index Byte Value Description 9 0x00 IA5TEXT 10 0x00 0 MHA Reference Number 11 0x05 5 Recipient Quantity 12 0x00 No Subject 13 0x01 1 1st Recipient, Speed Dial 1 14 0x02 2 2nd Recipient, Speed Dial 2 15 0x53 'S' 16 0x41 'A' 17 0x4C 'L' 18 0x4C 'L' 19 0x59 'Y' 20 0x00 NUL 21 0x42 'B' Message Body Type Subject Indicator 3rd Recipient address 22 0x49 'I' 23 0x4C 'L' 24 0x4C 'L' 25 0x80 Blind Termination 26 0x87 Blind 7 27 0x05 5 28 0x48 'H' 29 0x65 'e' 30 0x6C 'l' 31 0x6C 'l' 32 0x6F 'o' 4th Recipient, BCC 5th Recipient, Blind Speed Dial 7 Message Body Type defined as IA5TEXT, so 0x05 must begin message body Table 5: An Example of a MO MESSAGE PACKET ORBCOMM Satellite Modem Serial Interface Specification 35 35 35 4.1.1.6 Modem Originated Default Message (Packet Type 0x07) The modem no longer supports this packet. If this packet is sent to the modem the DTE should expect a MODEM ORIGINATED ACKNOWLEDGMENT packet with a status code of 0x06. ORBCOMM Satellite Modem Serial Interface Specification 36 36 36 4.1.1.7 Modem Originated Report Packet (Packet Type 0x08) Sending a MODEM ORIGINATED REPORT PACKET to the modem will cause the modem to store the report within persistent memory. The values set within the MODEM ORIGINATED REPORT PACKET determine how the message is handled by the modem and the gateway. Once the message is successfully transmitted to the specified gateway the modem will delete the message from persistent memory. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Destination Gateway ID 6 Polled By Gateway Or Transmit By Modem 7 Service Type 8 Originator Recipient Speed Dial Value 9 MHA Reference Number 10 User Data Byte 0 11 User Data Byte 1 12 User Data Byte 2 13 User Data Byte 3 14 User Data Byte 4 15 User Data Byte 5 16 Checksum Least Significant Byte 17 Checksum Most Significant Byte Table 6: MODEM ORIGINATED REPORT PACKET Structure 4.1.1.7.1 MODEM ORIGINATED REPORT PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Command packets have a packet header of 0x86. Packet Type: Every packet has a specific packet type. A MODEM ORIGINATED REPORT PACKET has a packet type value of 0x08. Packet Length: Every packet has a two byte packet length. A MODEM ORIGINATED REPORT PACKET is always 18 bytes. Therefore, byte 2 should equal 0x12 and byte 3 should equal 0x00. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. ORBCOMM Satellite Modem Serial Interface Specification 37 37 37 Destination Gateway ID: This value instructs the modem that this specific message is for the ORBCOMM Gateway ID specified. Zero is not a valid gateway ID and the modem will reply with an Acknowledgement packet with the status of 0x03 if the gateway ID is set to 0. Polled By Gateway or Transmit by Modem: The value set here determines whether the message remains within the modem until the specific ORBCOMM Gateway specified in byte 5 polls for the message or if the modem attempts to transmit the message immediately. The valid values for this byte are: 0x00 – Modem attempts to transmit Message immediately 0x01 – Message is stored within the modem until the specific ORBCOMM Gateway in byte 5 polls the Modem for messages. Service Type: The service type value determines what is sent back from the gateway, after a report is transmit and received by the desired gateway. The valid values for this byte are: 0x00: Normal priority, no acknowledgment expected 0x01: Normal priority, only non-delivery to ORBCOMM Gateway acknowledged acknowledgement generated by the modem based on lack of communication with satellite or ORBCOMM Message Switch (OMS) 0x02: Normal priority, delivery to ORBCOMM Gateway acknowledged 0x03 – 0x04: Reserved20,21 0x05: Same as 0x00, but indicates report sent in response to poll from ORBCOMM Gateway 0x06: Same as 0x01, but indicates report sent in response to poll from ORBCOMM Gateway 0x07: Same as 0x02, but indicates report sent in response to poll from ORBCOMM Gateway 0x08 – 0x09: Reserved22,23 0x0A: Special delivery priority, no acknowledgment expected 0x0B: Special delivery priority, only non-delivery to ORBCOMM Gateway acknowledged. 20 A service type of 0x03, normal priority, only non-delivery to recipient acknowledged (from X.400 MTA, via Internet, acknowledgement comes from Simple Mail Transfer Protocol (SMTP) Gateway) is no longer supported. If a report with this service type is sent to the modem the MO report will be sent; however, the modem will not receive a recipient acknowledgement packet. 21 A service type of 0x04, normal priority, delivery to recipient acknowledged is no longer supported. If a report with this service type is sent to the modem the MO report will be sent; however, the modem will not receive a recipient acknowledgement packet. 22 A service type of 0x08 was the same as 0x03, but indicated a report sent in response to a poll from the ORBCOMM Gateway is no longer supported. If a report with this service type is sent to the modem the MO report will be sent; however, the modem will not receive a recipient acknowledgement packet. 23 A service type of 0x09, was the same as 0x04, but indicated a report sent in response to a poll from the ORBCOMM Gateway is no longer supported. If a report with this service type is sent to the modem the MO report will be sent; however, the modem will not receive a recipient acknowledgement packet. ORBCOMM Satellite Modem Serial Interface Specification 38 38 38 0x0C – 0x0F: Reserved24,25,26,27 Originator Recipient Speed Dial Value: Is a value that represents an address that is specified at the time of provisioning. Valid values for this byte are: 0x00: Loop Back Test o The ORBCOMM Gateway will send the first five bytes of the received Report back to the modem in a User Command28 (with no acknowledgement expected). 0x01 – 0x03: User pre-defined address specified at the time of provisioning. MHA Reference Number: A number from 0 – 254 chosen by the DTE to identify a specific message. If there is already a Message/Report/Globalgram stored within modem storage that has the same MHA Reference number as a new packet then the new packet will be rejected and the modem will send an Acknowledgment response with status code 0x0C. User Data (Bytes 10 – 15): 6 bytes that must be specified by the user. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. 24 A service type of 0x0C, special delivery priority, delivery to ORBCOMM Gateway acknowledged is no longer supported. If a report with this service type is sent to the modem the MO report will be sent; however, the modem will not receive a recipient acknowledgement packet. 25 A service type of 0x0D, special delivery priority, only non-delivery to recipient acknowledged, is no longer supported. If a report with this service type is sent to the modem the MO report will be sent; however, the modem will not receive a recipient acknowledgement packet. 26 Service type 0x0E, special delivery priority, delivery to recipient acknowledged, is no longer supported. If a report with this service type is sent to the modem the MO report will be sent; however, the modem will not receive a recipient acknowledgement packet. 27 Service type 0x0F, cancel previous special delivery report (acknowledgment of delivery or non-delivery to recipient is no longer supported. If a report with this service type is sent to the modem the MO report will be sent; however, the modem will not receive a recipient acknowledgement packet. 28 Because a MT command can only contain 5 bytes, only the first 5 bytes of the report will be retransmitted back by the gateway. ORBCOMM Satellite Modem Serial Interface Specification 39 39 39 4.1.1.8 Modem Originated Default Report Packet (Packet Type 0x09) The modem no longer supports this packet. If this packet is sent to the modem the DTE should expect a MODEM ORIGINATED ACKNOWLEDGMENT packet with a status code of 0x06. ORBCOMM Satellite Modem Serial Interface Specification 40 40 40 4.1.1.9 Modem Originated Globalgram Packet (Packet Type 0x0A) Sending a MODEM ORIGINATED GLOBALGRAM PACKET to the modem will cause the modem to store the Globalgram within persistent memory. The values set within the MODEM ORIGINATED GLOBALGRAM PACKET determine how the message is handled by the modem and the gateway. Globalgrams are sent by the modem when it is connected to a satellite that is not simultaneously connected to a gateway. Once the Globalgram is acknowledged by the satellite, the Globalgram is deleted from persistent memory, the modem will send a SYSTEM RESPONSE PACKET to the DTE and the satellite will store the Globalgram until it comes within view of the destination gateway. Once the satellite is in view of the specified within the MOBILE ORIGINATED GLOBALGRAM PACKET, the Globalgram will be sent by the satellite to the gateway. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Destination Gateway ID 6 MHA Reference Number 7 Speed Dial Value 8 User Data Byte 0 8+N Optional-User Data Byte N 9+N Checksum Least Significant Byte 10+N Checksum Most Significant Byte Table 7: MODEM ORIGINATED GLOBALGRAM PACKET Structure 4.1.1.9.1 MODEM ORIGINATED GLOBALGRAM PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Command packets have a packet header of 0x86. Packet Type: Every packet has a specific packet type. A MODEM ORIGINATED GLOBALGRAM PACKET has a packet type value of 0x0A. Packet Length: Every packet has a two byte packet length. A MODEM ORIGINATED GLOBALGRAM PACKET can be a maximum of 239 bytes and the minimum packet size is 11 bytes. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Destination Gateway ID: This value instructs the modem that this specific message is for the ORBCOMM Gateway ID specified. Zero is not a valid gateway ID and the modem will reply with an acknowledge message with the status of 0x03 if the gateway ID is set to zero ORBCOMM Satellite Modem Serial Interface Specification 41 41 41 MHA Reference Number: A number from 0 – 254 chosen by the DTE to identify a specific message. If there is already a Message/Report/Globalgram stored within modem storage that has the same MHA Reference number as a new packet then the new packet will be rejected and the modem will send an Acknowledgment response with status code 0x0C. Recipient Speed Dial: A value that represents an address that is specified at the time of provisioning. Valid values for this byte are: 0x00: Reserved29 0x01 – 0x08: User pre-defined addresses specified at the time of provisioning. 0x09 – 0x0F: Reserved for ORBCOMM use. User Data (Bytes (N+8) – (N+9)): Between 1 and 229 bytes that are specified by the user. If the number of user bytes is greater than 229 the modem will respond with a System Status packet that will describe the error. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. 29 This used to allow the user to perform a Globalgram loop back test. The satellite does not allow a Globalgram loop back test therefore it is no longer supported. ORBCOMM Satellite Modem Serial Interface Specification 42 42 42 4.1.1.10 Position Determination Packet (Packet Type 0x0F) This packet was replaced by UPDATE GPS POSITION PACKET (Packet Type 0x22). If the modem is sent this packet the modem will return an ACKNOWLEDGEMENT PACKET with a status of “Packet Rejected, Packet Type Not Applicable or Not Supported by Hardware” (0x0B). ORBCOMM Satellite Modem Serial Interface Specification 43 43 43 4.1.1.11 Modem Originated Position Report (Packet Type 0x11) Sending a MODEM ORIGINATED POSITION REPORT PACKET to the modem will cause the modem to store the position report within persistent memory. The values set within the MODEM ORIGINATED POSITION REPORT PACKET determine how the message is handled by the modem and the gateway. Once the message is transmitted to the specified gateway, the modem will delete the message from persistent memory. It should be noted that the speed dial value for the MODEM ORIGINATED POSITION REPORT PACKET must be set within the modem parameters prior to sending this packet to the modem. The parameter that must be set is POSITION REPORT SPEED DIAL VALUE (parameter 87). This can be done by using a SET PARAMETER PACKET described in section 4.1.1.13. It should also be noted that the service type for a MODEM ORIGINATED POSITION REPORT PACKET is always 0x02 and the MO POSITION REPORT PACKET will be sent to the gateway specified in DESIRED GATEWAY ID (parameter 1). Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 MHA Reference Number 6 Encoded Latitude Byte 0 (LSB) 7 Encoded Latitude Byte 1 8 Encoded Latitude Byte 2 (MSB) 9 Encoded Longitude Byte 0 (LSB) 10 Encoded Longitude Byte 1 11 Encoded Longitude Byte 2 (MSB) 12 Checksum Least Significant Byte 13 Checksum Most Significant Byte Table 8: MODEM ORIGINATED POSITION REPORT PACKET Structure 4.1.1.11.1 MODEM ORIGINATED POSITION REPORT PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Command packets have a packet header of 0x86. Packet Type: Every packet has a specific packet type. A MODEM ORIGINATED POSITION REPORT PACKET has a packet type value of 0x11. Packet Length: Every packet has a two byte packet length. A MODEM ORIGINATED POSITION REPORT PACKET is always 14 bytes. Therefore, byte 2 should equal 0x0E and byte 3 should equal 0x00. ORBCOMM Satellite Modem Serial Interface Specification 44 44 44 Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. MHA Reference Number: A number from 0 – 254 chosen by the DTE to identify a specific message. If there is already a Message/Report/Globalgram stored within modem storage that has the same MHA Reference number as a new packet then the new packet will be rejected and the modem will send an Acknowledgment response with status code 0x0C. Encoded Latitude (Bytes 6 – 8): This is ORBCOMM’s method of representing the Earth’s Latitude within a 24 bit number. The least significant byte is byte 6 and the most significant byte is byte 8. The resolution of the Latitude is 1.2 meters; a value of 0 represents the North Pole and a value of 0x0FFFFFF represents the South Pole. The algorithm to convert between Encoded Latitude and Geodetic Latitude is located in Section 6. Encoded Longitude (Bytes 9 – 11): This is ORBCOMM’s method of representing the Earth’s Longitude within a 24 bit number. The least significant byte is byte 9 and the most significant byte is byte 11. The resolution of the Longitude is 2.4 meters and a value of 0 represents the Greenwich Meridian and as the values increase they move in an eastern direction. The algorithm to convert between Encoded Latitude and Geodetic Latitude is located in Section 6. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. ORBCOMM Satellite Modem Serial Interface Specification 45 45 45 4.1.1.12 Get Modem Parameter Packet (Packet Type 0x12) The modem allows access to several parameters. The contents of these parameters can be viewed by sending the GET PARAMETER PACKET to the modem. For more information on the modem parameters refer to the ORBCOMM Generation 2 Parameters Specification. If successful the modem will reply with a PARAMETER RESPONSE PACKET. Otherwise, the modem will reply with an ACKNOWLEDGEMENT PACKET with a status code greater than 0. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Parameter Number 6 Checksum Least Significant Byte 7 Checksum Most Significant Byte Table 9: GET MODEM PARAMETER PACKET Structure 4.1.1.12.1 GET MODEM PARAMETER PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Command packets have a packet header of 0x86. Packet Type: Every packet has a specific packet type. A GET MODEM PARAMETER PACKET has a packet type value of 0x12. Packet Length: Every packet has a two byte packet length. A GET MODEM PARAMETER PACKET is always 8 bytes. Therefore, byte 2 should equal 0x08 and byte 3 should equal 0x00. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Parameter Number: This byte is the parameter number to request. The acceptable parameter values are located in the ORBCOMM Generation 2 Parameters Specification. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. ORBCOMM Satellite Modem Serial Interface Specification 46 46 46 4.1.1.13 Set Modem Parameter Packet (Packet Type 0x13) The modem allows the user to set several parameters. In order to set a parameter the SET MODEM PARAMETER PACKET must be sent to the modem. For more information on which parameters are available refer to the ORBCOMM Generation 2 Parameters Specification. If successful the modem will reply with a PARAMETER RESPONSE PACKET. Otherwise, the modem will reply with an ACKNOWLEDGEMENT PACKET with a status code greater than 0. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Parameter Number 6 Parameter Data Size N 6+N Parameter Data Byte N 7+N Checksum Least Significant Byte 8+N Checksum Most Significant Byte Table 10: SET MODEM PARAMETER PACKET Structure 4.1.1.13.1 SET MODEM PARAMETER PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Command packets have a packet header of 0x86. Packet Type: Every packet has a specific packet type. A SET MODEM PARAMETER PACKET has a packet type value of 0x13. Packet Length: Every packet has a two byte packet length. A SET MODEM PARAMETER PACKET is variable depending on the parameter’s data size. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Parameter Number: This byte is the parameter number to request to set. The parameters that are editable through the DTE interface are shown in the ORBCOMM Generation 2 Parameters Specification. Parameter Data Size N: N is the number of parameter data bytes within the packet. This value must equal the size of the parameter described in the ORBCOMM Generation 2 Parameters Specification. Parameter Data Bytes: The N number of data bytes that are stored within the modem’s parameter. The first byte after Parameter Data Size is the least significant byte of the data stored within the parameter. ORBCOMM Satellite Modem Serial Interface Specification 47 47 47 Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. ORBCOMM Satellite Modem Serial Interface Specification 48 48 48 4.1.1.14 Get Multiple Parameters Packet (Packet Type 0x19) The GET MULTIPLE PARAMETERS PACKET is sent to the DTE from the modem to request the values of multiple parameters at once. Currently the maximum number of parameters allowed to be retrieved at once is 45. If any of the parameter numbers are incorrect, then the modem will return a MULTIPLE PARAMETER RESPONSE PACKET with an error status and no data. For more information on which parameters are available refer to the ORBCOMM Generation 2 Parameters Specification. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Reserved 6 Reserved 7 Reserved 8 Reserved 9 N Number of Parameters to Get 10 Parameter Number List 10+N Checksum Least Significant Byte 11+N Checksum Most Significant Byte Table 11: GET MULTIPLE PARAMETER PACKET Structure 4.1.1.14.1 GET MULTIPLE PARAMETERS PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Command Packets have a packet header of 0x86. Packet Type: Every packet has a specific packet type. A GET MULTIPLE PARAMETERS PACKET always has a packet type value of 0x19. Packet Length: Every packet has a two byte packet length. A GET MULTIPLE PARAMETER PACKET is variable in length. The length includes the size of the checksum. The maximum length of this packet is currently set at 57 bytes. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Reserved (Bytes 5 – 8): Set these bytes to 0x00. ORBCOMM Satellite Modem Serial Interface Specification 49 49 49 N Number of Parameters to Get: The number of parameter numbers that the DTE requests the modem to retrieve. If this byte is set to 0x00 the modem will send back an MO Acknowledgement packet with a status of Packet Rejected, Invalid Packet Parameter Received (0x03). Parameter Number List: A list of single byte parameter numbers in the order the DTE wants retrieved. For example, to read the Desired Gateway(1) and the Satellite ID In View(15) the message starting at byte 9 would be: byte 9 10 11 12 Value 0x02 0x01 0x15 checksum Description N Number of Parameters to Get Desired Gateway Satellite ID In View Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. NOTE This is an ORBCOMM OG2 packet. Other modem manufacturers may or may not support this packet. ORBCOMM Satellite Modem Serial Interface Specification 50 50 50 4.1.1.15 Set Multiple Parameters Packet (Packet Type 0x20) The SET MULTIPLE PARAMETERS PACKET is sent to the DTE from the modem to set the values of multiple parameters at once. This packet will only allow the parameter data block to be a maximum of 128 bytes in length. If any of the parameter numbers or values are incorrect, then the modem will return a MULTIPLE PARAMETER RESPONSE PACKET with an error status and none of the parameters will be set. For more information on which parameters are available refer to the ORBCOMM Generation 2 Parameters Specification. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Reserved 6 Reserved 7 Reserved 8 Reserved 9 Number of Parameters to Set 10 Parameter Data Block(N Bytes) 10+N Checksum Least Significant Byte 11+N Checksum Most Significant Byte Table 12: SET MULTIPLE PARAMETERS PACKET Structure 4.1.1.15.1 SET MULTIPLE PARAMETER PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Command packets have a packet header of 0x86. Packet Type: Every packet has a specific packet type. A SET MULTIPLE PARAMETERS PACKET always has a packet type value of 0x20. Packet Length: Every packet has a two byte packet length. A SET MULTIPLE PARAMETERS PACKET is variable in length. The length includes the size of the checksum. The maximum length of this packet is 141 bytes. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Reserved (Bytes 5 – 8): Set these bytes to 0x00. ORBCOMM Satellite Modem Serial Interface Specification 51 51 51 Number of Parameters to Set: The number of parameters set within this packet. If this byte is set to 0x00 the modem will send back an MO ACKNOWLEDGEMENT PACKET with a status of 0x03. Parameter Data: The Parameter data should be formatted in the following way: Byte Offset Packet Structure 10 Parameter Number 0 11 Parameter Number 0's Value Byte 0 (LSB) 12 Parameter Number 0's Value Byte 1 (MSB) . . . . N-1 N Parameter Number K Parameter Number K's Value Byte 0 Table 13: SET MULTIPLE PARAMETERS PACKET DATA FORMAT Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. NOTE This is an ORBCOMM OG2 packet. Other modem manufacturers may or may not support this packet. ORBCOMM Satellite Modem Serial Interface Specification 52 52 52 4.1.1.16 Update GPS Position Packet (Packet Type 0x22) The UPDATE GPS POSITION PACKET allows the DTE to cause the modem to attempt to update the Last Known GPS Position parameter. Before sending this command, the DTE should make sure the GPS Position Determination Configuration parameter is set to the desired values. In addition, the DTE should ensure that the GPS Position Update Mode parameter is not set to Disable GPS. If this packet is sent to the modem while the GPS is disabled the modem will return a MODEM ORIGINATED ACKNOWLEDGEMENT PACKET with a status code 0x03 (Packet Rejected, Invalid Packet Parameter Received). The values set within the GPS Position Determination Configuration parameter determines if a valid GPS position has been calculated by the GPS module. Other parameters to become familiar with include: GPS Hardware Software Version parameter GPS Position Update Mode GPS Status parameter GPS Last Known Position parameter For more information on these parameters reference the ORBCOM Satellite Modem Parameters Description Document. This packet is only supported by modems that include a GPS module on board. If the modem does not have a GPS module and this packet is sent to modem then the modem will respond with a Modem Originated GPS Acknowledgement packet with a status code of 0x0A (Packet Rejected, Packet Type Not Applicable or Not Supported by Hardware). Upon successful reception of this packet the modem responds to the DTE with a MODEM ORIGINATED GPS ACKNOWLEDGMENT PACKET with a status code of 0x00 (No Error). Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Packet Command Code 6 Checksum Least Significant Byte 7 Checksum Most Significant Byte Table 14: GPS POSITION UPDATE MODE PACKET Structure 4.1.1.16.1 GPS POSITION UPDATE PACKET STRUCTURE Packet Header: Every packet has a packet header and all DTE originated serial packets have a packet header of 0x86. ORBCOMM Satellite Modem Serial Interface Specification 53 53 53 Packet Type: Every packet has a specific packet type. An UPDATE GPS POSITION PACKET has a packet type value of 0x22. Packet Length: Every packet has a two byte packet length. A GPS Update Configuration packet will always have a packet length of 20 bytes. Therefore byte 2 will have a value of 0x14 and byte 3 will have a value of 0x00. In addition, notice that the packet length includes the checksum. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Packet Command Code: A GPS Update Configuration packet has a packet command code value of 0x01. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. NOTE This is an ORBCOMM OG2 packet. Other modem manufacturers may or may not support this packet. ORBCOMM Satellite Modem Serial Interface Specification 54 54 54 4.2 Responses The following sections describe the responses to commands from the DTE. 4.2.1.1 Modem Originated Acknowledgement Packet (Packet Type 0x01) The MODEM ORIGINATED ACKNOWLEDGEMENT PACKET is sent to the DTE after the modem receives a Command packet from the DTE. The only exceptions are when the DTE sends a GET/SET PARAMETER PACKET, GET/SET MULTIPLE PARAMETERS PACKET OR A DTE ORIGINATED ACKNOWLEDGEMENT PACKET. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Status Code 5 Least Significant Byte of Checksum 6 Most Significant Byte of Checksum Table 15: MO ACKNOWLEDGMENT PACKET Structure 4.2.1.1.1 MODEM ORIGINATED ACKNOWLEDGEMENT PACKET STRUCTURE DESCRIPTION Packet Header: Every packet has a packet header and all Modem Response packets have a packet header of 0x06. Packet Type: Every packet has a specific packet type. A MODEM ORIGINATED ACKNOWLEDGMENT PACKET always has a packet type value of 0x01. Packet Length: Every packet has a two byte packet length. A MODEM ORIGINATED ACKNOWLEDGMENT PACKET will always have a packet length of 7 bytes. Therefore byte 2 will have a value of 0x07 and byte 3 will have a value of 0x00. In addition, notice that the packet length includes the checksum. Status Code: The following status code values are valid responses: 0x00: 0x01: 0x02: 0x03: 0x04: 0x05: 0x06: 0x07: 0x08: No Error Packet Rejected, Wait 30 Seconds Then Send Again With New Sequence Number Packet Rejected, Invalid Checksum Packet Rejected, Invalid Packet Parameter Received Packet Rejected, Message Size Exceeds Queue Capacity Packet Rejected, Ill-Formed Packet Rejected, Unrecognized Packet Type Packet Rejected, Duplicated Packet Sequence Number Packet Rejected, Inter-Character Timeout Error ORBCOMM Satellite Modem Serial Interface Specification 55 55 55 0x09: 0x0A: 0x0B: 0x0C: Packet Rejected, Message Storage Full Hardware/Software Error, Try Again Packet Rejected, Packet Type Not Applicable Or Not Supported by Hardware Packet Rejected, Message/Report/Globalgram Duplicate MHA Reference Number Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. ORBCOMM Satellite Modem Serial Interface Specification 56 56 56 4.2.1.2 Modem Status Packet (Packet Type 0x05) The STATUS PACKET is used to retrieve general status information from the modem. The STATUS PACKET is sent by the modem to the DTE in response to a COMMUNICATIONS COMMAND PACKET with a command code of 0x10. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Modem State 6 Modem Diagnostic Code 7 Active MHA Reference Number 8 Current satellite ID in view 9 N Number of Gateways Connected 10 Gateway Information Block (2N Bytes Long) 10+2N Number of Modem Terminated Messages Queued 11+2N Number of Modem Originated Messages Queued 12+2N Modem’s UTC Time Week Byte 0 (LSB) 13+2N Modem’s UTC Time Week Byte 1 (MSB) 14+2N Modem’s UTC Seconds Byte 0 (LSB) 15+2N Modem’s UTC Seconds Byte 1 16+2N Modem’s UTC Seconds Byte 2 (MSB) 17+2N Total Number of Satellites in the System 18+2N Number of Stored Satellite Orbital Elements 19+2N Percentage of Received Packets per Downlink Interval 20+2N Checksum Least Significant Byte 21+2N Checksum Most Significant Byte Table 16: STATUS PACKET Structure 4.2.1.2.1 STATUS PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Response packets have a packet header of 0x06. Packet Type: Every packet has a specific packet type. A STATUS PACKET always has a packet type value of 0x05. ORBCOMM Satellite Modem Serial Interface Specification 57 57 57 Packet Length: Every packet has a two byte packet length. A STATUS PACKET has a variable size depending on the number of gateway IDs currently connected to the modem. The maximum numbers of Gateway IDs within the list are 5. Therefore, the maximum size a Status packet can be is 32 bytes. In addition, notice that the packet length includes the checksum. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Modem State: The modem can be in the following state: 0x00: Idle 0x01: Sending Modem Originated Message 0x02: Sending Modem Originated Report 0x03: Sending Modem Originated Globalgram 0x04: Receiving Modem Terminated Message 0x05: Receiving Modem Terminated Command 0x06: Receiving Modem Terminated Globalgram 0x07: Reserved30 0x08: Reserved31 0x09: Performing ORBCOMM Gateway Loop-Back Test (may require several minutes, depending on Satellite availability) Modem Diagnostic Code: The modem can return the following Diagnostic Codes: 0x00: No Indication 0x01: Reserved30 0x02: Reserved30 0x03: Reserved31 0x04: Remote Loop-Back Failed, No Satellite Visible 0x05: Remote Loop-Back Failed, Transmitter Probably Bad 0x06: Remote Loop-Back Failed, ORBCOMM Gateway Not Responding 0x07: Remote Loop-Back Failed, Tx/Rx Data Does Not Match 0x08 – 0x13: Reserved for ORBCOMM use 0x14: Modem Detected General Failure 0x15 – Above: Reserved for Modem Manufacturers Active MHA Reference Number: A number from 0 – 254 chosen by the DTE to identify a specific message. This value correlates to the Modem Originated Message’s, Globalgram’s or Report’s MHA reference number that is currently being transmit or received by the modem. Current Satellite ID in View: If the modem is currently communicating with a satellite this value will be greater than 0 and equate to the satellite ID. 30 31 Self-Test is no longer supported by the modem. Local Loop-Back Test is no longer supported by the modem. ORBCOMM Satellite Modem Serial Interface Specification 58 58 58 N Number of Gateways Connected: The current number of gateways the satellite can use to send and receive data. The maximum number of gateways the modem knows about at one time is 5. In addition, it should be noted that not all gateways provided in this message can be used by all users. Gateway Information Block: There is a gateway information block for each gateway that is connected to the Satellite communicating with the modem. If there are no viewable gateways, then the gateway information block will not be populated. The first byte of the gateway information block is the gateway ID and the second byte is the minimum priority allowed by that gateway. Byte Offset Packet Structure 10 Gateway ID 0 11 Gateway 0's Minimum Priority 12 Gateway ID 1 13 Gateway 1's Minimum Priority . . 10+2(N-1) Gateway ID N 11+2(N-1) Gateway ID N's priority Table 17: Example of a Gateway Information Block Since the maximum number of gateways is 5, the maximum number of gateway information blocks in a Status packet is also 5. Number of Modem Terminated Messages Queued: The number Modem Terminated Messages stored within the modem. Number of Modem Originated Messages Queued: The number of Modem Originated messages stored within the modem. Modem’s UTC Time Week (Bytes (9+2N)+3 - (9+2N)+4): The number of weeks since Sunday, January 6, 1980. Example: 0:00:00 Jan 6, 1980 = 0 weeks 17:46:12 Oct 14, 2013 = 1762 weeks Modem’s UTC Time Seconds (Bytes (9+2N)+5 - (9+2N)+7): Is a 24 bit integer representing the number of seconds since Sunday at 0:00:00 (UTC). This value will reset midnight Sunday which will in turn cause the UTC Time Week to increment. Example: 0:00:00 = 0 Seconds 17:46:12 = 150372 Seconds ORBCOMM Satellite Modem Serial Interface Specification 59 59 59 Total Number of Satellites In the System: The total number of satellites within the ORBCOMM network. Number of Stored Satellite Orbital Elements: This is now reserved and the value should be ignored. Percentage of Received Packet per Downlink Interval: This is the percentage of packets successfully received in a downlink interval. The higher the percentage the more likely the modem will be able to communicate with a satellite. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. ORBCOMM Satellite Modem Serial Interface Specification 60 60 60 4.2.1.3 Position Status Packet (Packet Type 0x10) This packet is no longer supported. If there is GPS hardware on board the modem, the GPS position status can be polled using the Get or Get Multiple Parameters packet. ORBCOMM Satellite Modem Serial Interface Specification 61 61 61 4.2.1.4 Parameter Response Packet (Packet Type 0x14) The PARAMETER RESPONSE PACKET is sent to the DTE from the modem in response to a GET PARAMETER OR SET PARAMETER PACKET as long as the SET/GET PARAMETER PACKETS do not have any protocol errors (i.e. checksum error, size error, etc.). Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Parameter Request Status 6 Parameter Number 7 Parameter Data Byte Count N 7+N Parameter Data Byte (N-1) 8+N Checksum Least Significant Byte 9+N Checksum Most Significant Byte Table 18: PARAMETER RESPONSE PACKET Structure 4.2.1.4.1 PARAMETER RESPONSE DESCRIPTION Packet Header: Every packet has a packet header and all Modem Response packets have a packet header of 0x06. Packet Type: Every packet has a specific packet type. A PARAMETER RESPONSE PACKET always has a packet type value of 0x14. Packet Length: Every packet has a two byte packet length. A PARAMETER RESPONSE PACKET is variable in length. The length includes the size of the checksum. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Parameter Request Status: There is always a value in this location in response to a GET OR SET PARAMETER PACKET. This value should be checked first before looking at the rest of the data within this packet. Expected values for this byte are: 0x00: 0x01: 0x02: 0x03: 0x04: 0x05: Parameter Get/Set Successful Parameter Number Not Supported Parameter Access Denied Parameter Number Out of Range The Parameter Value Attempting to Set is Invalid The Parameter Value Attempting to Set is the Incorrect Size ORBCOMM Satellite Modem Serial Interface Specification 62 62 62 Parameter Number: The parameter number that the DTE was attempting to Get or Set. Parameter Data Byte Count N: The number of bytes of Parameter data returned with the packet. This byte can be zero when no parameter data is returned. Parameter Data: If this packet is received in response to a GET PARAMETER PACKET and the Parameter Data Byte Count (Byte 7) is greater than 0, then this is where the parameter’s data will be located. The first byte of parameter data is the least significant byte. If this packet is received in response to a SET PARAMETER PACKET and byte 7 is greater than 0, then the parameter data will mirror what the DTE sent the modem in the Set Parameter packet. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. ORBCOMM Satellite Modem Serial Interface Specification 63 63 63 4.2.1.5 Satellite State Vector Packet (Packet Type 0x15) The modem no longer supports this packet. Satellite State Vector information can no longer be retrieved from an OG1 modem. ORBCOMM Satellite Modem Serial Interface Specification 64 64 64 4.2.1.6 Satellite Orbital Elements Packet (Packet Type 0x16) The modem no longer supports this packet. Satellite Orbital Elements information can no longer be retrieved from an OG1 modem. ORBCOMM Satellite Modem Serial Interface Specification 65 65 65 4.2.1.7 Satellite Plane Orbital Elements Packet (Packet Type 0x17) The modem no longer supports this packet. Satellite Plane Orbital Elements information can no longer be retrieved from an OG1 modem. ORBCOMM Satellite Modem Serial Interface Specification 66 66 66 4.2.1.8 Multiple Parameters Response Packet (Packet Type 0x21) The MULTIPLE PARAMETER RESPONSE PACKET is sent to the DTE from the modem in response to a GET MULTIPLE PARAMETERS or SET MULTIPLE PARAMETERS PACKET as long as the SET/GET MULTIPLE PARAMETERS PACKETS do not have any protocol errors (i.e. checksum error, size error, etc.). Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Parameter Request Status 6 Number of Parameters Retrieved 7 Parameter Data Block (N Bytes) 7+N Checksum Least Significant Byte 8+N Checksum Most Significant Byte Table 19: MULTIPLE PARAMETER RESPONSE PACKET Structure 4.2.1.8.1 MULTIPLE PARAMETER RESPONSE PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Response packets have a packet header of 0x06. Packet Type: Every packet has a specific packet type. A MULTIPLE PARAMETER RESPONSE PACKET always has a packet type value of 0x21. Packet Length: Every packet has a two byte packet length. A MULTIPLE PARAMETER RESPONSE PACKET is variable in length. The length includes the size of the checksum. The maximum length of this packet is currently set at 138 bytes. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Parameter Request Status: There is always a value in this location in response to a GET OR SET MULTIPLE PARAMETERS PACKET. This value should be checked first before looking at the rest of the data within this packet. Expected values for this byte are: 0x00: 0x01: 0x02: 0x03: 0x04: Parameter Get/Set Successful Parameter Number Not Supported Parameter Access Denied The Parameter Value Attempting to Set is Invalid The Parameter Value Attempting to Set is the Incorrect Size ORBCOMM Satellite Modem Serial Interface Specification 67 67 67 Number of Parameters Retrieved: The number of different parameters within the Parameter data. Parameter Data Byte Count N: The number of bytes of Parameter data returned with the packet. This byte can be zero in the case there is no parameter data returned. Parameter Data Blocks: If this packet is received in response to a GET MULTIPLE PARAMETERS PACKET and byte 7 is greater than 0, then this is where the parameter’s data will be located. The first byte of parameter data is the actual parameter number and the next byte after is the least significant byte of the parameter value. Therefore the format should look something like this: Byte Offset Packet Structure 7 Parameter Number 0 8 Parameter Number 0's Value Byte 0 (LSB) 9 Parameter Number 0's Value Byte 1 (MSB) . . 6+N-1 6+N Parameter Number K Parameter Number K's Value Byte 0 Table 20: Parameter Data Block If this packet is received in response to a SET MULTIPLE PARAMETERS PACKET and byte 7 is greater than 0, then the parameter data will mirror what the DTE sent to the modem in the SET MULTIPLE PARAMETERS PACKET. The parameter data will be in the same format as described above. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. NOTE This is an ORBCOMM OG2 packet. Other modem manufacturers may or may not support this packet. ORBCOMM Satellite Modem Serial Interface Specification 68 68 68 4.2.2 Unsolicited Responses The following sections describe the packets that are sent from the modem to the DTE upon receiving modem terminated packets from the network. 4.2.2.1 System Announcement Packet (Packet Type 0x04) The modem sends a SYSTEM ANNOUNCEMENT PACKET to the DTE to provide instructions on what the DTE should do next. SYSTEM ANNOUNCEMENT PACKETS are not stored within non-volatile memory and therefore do not persist over power cycles. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Announcement Code 6 Destination Gateway ID 7 Destination Speed Dial Value 8 Checksum Least Significant Byte 9 Checksum Most Significant Byte Table 21: SYSTEM ANNOUNCEMENT PACKET Structure 4.2.2.1.1 SYSTEM ANNOUNCEMENT PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Response packets have a packet header of 0x06. Packet Type: Every packet has a specific packet type. A SYSTEM ANNOUNCEMENT PACKET always has a packet type value of 0x0A. Packet Length: Every packet has a two byte packet length. A SYSTEM ANNOUNCEMENT PACKET will always have a packet length of 7 bytes. Therefore byte 2 will have a value of 0x07 and byte 3 will have a value of 0x00. In addition, notice that the packet length includes the checksum. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Announcement Code: This value specifies what that DTE should do next, but the DTE reaction is application specific. The valid values for this byte are: 0x00: Calculate position estimate then send Modem Originated Position Report 0x01: Send One Report 0x02 – 0x03: Reserved ORBCOMM Satellite Modem Serial Interface Specification 69 69 69 0x04: Send One Modem Originated Message 0x05: Send One Modem Originated Message or Report 0x06: Reserved32 0x07: Terminate Application Operation Immediately 0x08: Not Used 0x09 – 0x0F: Reserved 0x10 – Above: Modem Manufacturer Defined Destination Gateway ID: This value is the ORBCOMM gateway identification number the DTE should use to reply. Destination Speed Dial Value: This value should be used as the destination address for a response to this system announcement. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. 32 This was send pre-defined speed dial value; however this is no longer supported. ORBCOMM Satellite Modem Serial Interface Specification 70 70 70 4.2.2.2 System Response Packet (Packet Type 0x0B) A SYSTEM RESPONSE PACKET is an unsolicited message sent from the modem to the DTE. The purpose of this message is to give the DTE status information about a Modem Originated Globalgram, Report or Message. In addition, certain communications commands will also cause a SYSTEM RESPONSE PACKET to be sent to the DTE. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Acknowledgement Originator 6 Originator ID 7 Status of Message Transfer 8 Message Transfer Diagnostic Code 9 MHA Reference Number 10 Gateway Reference Number Byte 0 11 Gateway Reference Number Byte 1 12 Acknowledgement Mask 13 Checksum Least Significant Byte 14 Checksum Most Significant Byte Table 22: SYSTEM RESPONSE PACKET Structure 4.2.2.2.1 SYSTEM RESPONSE PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Response packets have a packet header of 0x06. Packet Type: Every packet has a specific packet type. A SYSTEM RESPONSE PACKET always has a packet type value of 0x0B. Packet Length: Every packet has a two byte packet length. A SYSTEM RESPONSE PACKET will always have a packet length of 15 bytes. Therefore byte 2 will have a value of 0x0F and byte 3 will have a value of 0x00. In addition, notice that the packet length includes the checksum. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Acknowledgement Originator: This byte tells the DTE what is acknowledging the reception of data. Values to expect in this byte are: ORBCOMM Satellite Modem Serial Interface Specification 71 71 71 0x00: 0x01: 0x02: 0x03: Current Satellite ORBCOMM Gateway Reserved33 Modem Originator ID: This value is either the ID of the satellite that acknowledged the Globalgram or the ID of the Gateway that acknowledged the Message or Report. Status of Message Transfer: This byte describes the status of the Modem Originated Message, Globalgram or Report previously sent. Values to expect in this byte are: 0x00: Transfer Failure 0x01: Unable to Transfer 0x02: Reserved34 0x03: Reserved 0x04: Reserved 0x05: Reserved 0x06: Reserved 0x07: Reserved 0x08: Reserved 0x09: Reserved 0x0A: Transfer Attempt Failed but Message has been Re-Queued and will be Attempted Again 0x0B: Response to Communications Command 0x0C: Status Unknown 0x0D: Reserved35 0x0E: Message Transfer Aborted By User 0x0F: Message was Received Acknowledgement Originator (byte 5 of this packet) Message Transfer Diagnostic Code: The diagnostic code gives the DTE more information as to why the Modem Originated Message, Globalgram or Report failed. 0x00: 0x01: 0x02: 0x03: 0x04: 0x05: 0x06: 0x07: 0x08: Unrecognized Originator/Recipient speed dial value or address Ambiguous Originator/Recipient Address MTA Congestion Loop Detected Reserved36 Transfer Timeout Body Type Specified in MT Message is not supported Content Too Long Reserved37 33 Modem Originated Message and Report Acknowledgement from a Recipient is no longer supported Conversion Not Performed is no longer supported. 35 A message transfer status of “No Acknowledgment from Recipient at this Time, Please Wait” is no longer supported. 36 A diagnostic code of “Recipient Unavailable” is no longer supported. 37 The “Convert Impractical”, “Convert Prohibited” and “Convert Not Registered” are no longer supported. 34 ORBCOMM Satellite Modem Serial Interface Specification 72 72 72 0x09: Reserved37 0x0A: Reserved37 0x0B: Invalid Parameter Specified in Received Packet 0x0C – 0x63: Reserved 0x64: Message-Level Checksum Failure 0x65: Modem Not Registered with Network 0x66: Reserved38 0x67: Current Satellite is not communicating with requested ORCOMM Gateway 0x68: Insufficient Message Priority 0x69: Satellite Not Responding 0x6A: Modem Access Restriction 0x6B: Modem Registration Expired 0x6C: Modem Originated Message Already Exists in ORBCOMM Gateway 0x6D: No Active Session, or Modem Originated Message MHA Number Error 0x6E: Error Occurred in ORBCOMM Gateway while Saving Message to Non-Volatile Memory 0x6F: Database Error Occurred in ORBCOMM Gateway 0x70: No Additional Diagnostic Information Indicated 0x71: Maximum Retries Attempted 0x72: Globalgram is Not Permitted at this Time 0x73: No Satellite in View at this Time 0x74: Position Report currently not available 0x75: Position Determination is Unavailable 0x76: Globalgram Size Exceeded 0x77: No Modem Terminated Messages/Commands Queued in ORBCOMM Gateway 0x78: No Modem Terminated Messages/Commands Queued in ORBCOMM Gateway of Size Less than 150 Bytes 0x79: No Globalgrams Queued in Current Satellite 0x7A: Requested Message Deleted 0x7B: No Stored Satellite Orbital Elements 0x7C: Registration Request Received, Please Wait 0x7D: Registration Granted by ORBCOMM Gateway 0x7E: Registration Rejected by ORBCOMM Gateway 0x7F: Maximum Number of Globalgrams (16) Stored in Current Satellite 0x80: Invalid Range of One or More Fields 0x81: Ready for Power Removal 0x82 – 0x8C: Reserved 0x8D – Above: Reserved MHA Reference Number: A number from 0 – 254 chosen by the DTE to identify a specific message. This value correlates to the Modem Originated Message’s, Globalgram’s or Report’s MHA reference number that caused the System Response packet to be generated by the modem. This value is valid if the Acknowledgement Originator byte is 0x00 or 0x01. Otherwise the MHA Reference Number is not valid and can be ignored. 38 The switch no longer supports Pin Codes; therefore, the “Pin Code Not Valid” diagnostic code is now reserved. ORBCOMM Satellite Modem Serial Interface Specification 73 73 73 Gateway Reference Number (Bytes 10 – 11): This two byte value holds the ORBCOMM gateway ID that sent the delivery confirmation. Byte 10 is the least significant byte and this number should be ignored if the value is 0xFFFF. The Gateway Reference Number is only valid when the Acknowledgement Originator is 0x01, otherwise; the Gateway Reference Number is not valid and can be ignored. Acknowledgement Mask: Reserved39 Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. 39 The Acknowledgment Mask is no longer supported and the value should be ignored. ORBCOMM Satellite Modem Serial Interface Specification 74 74 74 4.2.2.3 Modem Terminated Message Packet (Packet Type 0x0C) Receiving a MODEM TERMINATED MESSAGE PACKET from the gateway will cause the modem to store the message within persistent memory and attempt to deliver the message to the DTE. If the DTE responds with an ACKNOWLEDGMENT PACKET with a status code of 0x00, then the modem will delete the message from its persistent memory and the message is considered delivered. Otherwise, the modem will attempt to deliver the message nine times and leave the message within persistent memory until it is retrieved or deleted by the DTE. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Gateway ID 6 Subject Indicator 7 Message Body Type 8 Number of Originator Recipient Addresses/Speed Dial Values 9 Originator Recipient Address/Speed Dial Value Byte 0 9+N Originator Recipient Address/Speed Dial Value Byte N (9+N)+1 Message Subject String Byte 0 (9+N)+(1+ L) Message Subject String Byte L (9+N)+(1+ L)+1 Message Body Byte 0 (9+N)+(1+L)+(1+J) Message Body Byte J (9+N)+(1+L)+(1+J)+1 Checksum Least Significant Byte (9+N)+(1+L)+(1+J)+2 Checksum Most Significant Byte Table 23: MODEM TERMINATED MESSAGE PACKET Structure 4.2.2.3.1 MODEM TERMINATED MESSAGE PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Response packets have a packet header of 0x06. Packet Type: Every packet has a specific packet type. A MODEM TERMINATED MESSAGE PACKET always has a packet type value of 0x0C. Packet Length: Every packet has a two byte packet length. A MODEM TERMINATED MESSAGE PACKET is variable in length. The maximum size of this packet allowed is 8192 bytes. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. ORBCOMM Satellite Modem Serial Interface Specification 75 75 75 Gateway ID: The Gateway ID where the MT message was sent. Subject Indicator: This value determines if there is a Message Subject or not. Valid values for this byte are: 0x00: Message Does Not Contain a Subject 0x01: Message Contains a Subject o If the message does not contain a subject the bytes dedicated to Message Subject within the MODEM TERMINATED MESSAGE PACKET structure will not be present. Message Body Type: This value defines what type of data is within the Message Body of the MODEM TERMINATED MESSAGE PACKET. Valid values for this byte are: 0x00: IA5TEXT (One single byte data type parameter of 0x05 (ia5) will be in located at the first byte of the Message Body) 0x01-0x0D: Reserved 0x0E: Binary Data 0x0F – Externally Defined o If this is used one of the following single byte data type parameters must be placed in the first byte of the Message Body described later. o Possible Data Types are: o 0x02: The addresses for Originator/Recipient speed dial values 1 – 15 are placed in order, null-terminated, into a MT message. o 0x03: Date, Originator and Subject for each MT message queued in the ORBCOMM Gateway for this modem. Each attribute (date, originator and subject) of the message is null terminated. Non-existent attributes are identified by a single null character. o 0x04: Sets of orbital elements in NASA 2-line format as specified in section Error! eference source not found.. o 0x05: IA5Text o 0x10-Above: Reserved Number of Originator Recipient Addresses/Speed Dial Values: The number of recipient speed dial values/addresses and one originator address/speed dial values. The maximum number is 6 recipient addresses/speed dial values and one originator address/speed dial values for a total maximum number of 7. The value can be zero. Originator Recipient Address/Speed Dial Value: The originator and recipients of a Modem Terminated Message are structured according to the following rules: An explicit address must be an ASCII character string (w/o null terminating) which adheres to the SMTP standard syntax. A 0x00 or 0x90 follows the last character of the string to indicate that the explicit address identifies a primary or copied recipient, respectively. An originator recipient speed dial value must be a number between 0 and 15, occupying the lower nibble of one byte in the packet. The upper nibble is set to zero or 9 to indicate that the speed dial value identifies a primary or copied recipient, respectively. Explicit addresses and originator recipient speed dial values are placed sequentially in the packet, without the use of length fields. ORBCOMM Satellite Modem Serial Interface Specification 76 76 76 The first explicit address or speed dial value identifies the originator (speed dial value of 0 indicates that the originator address is not being sent. This case occurs when the originator cannot be matched to any of the originator/recipient speed dial values associated with the modem, but the modem user has specified that he/she does not want the explicit addresses of the originator or the copied recipients transmitted with any message. The remaining addresses or speed dial values are the copied recipients (up to a total of 6 in this case). Note that there is never a blind recipient filled into a Modem-Terminated Message. The maximum explicit address length is 128 characters (null included). The maximum quantity of explicit addresses and/or speed dial values per message is seven. A Modem Terminated Message does not have to have any explicit address or speed dial value. Message Subject String: A Null terminated string with a maximum size of 80 bytes, including the null terminator. If byte 6 of this packet is set to 0 then there is no subject string. Message Body: This is the actual message. Note, in the case when byte 7 is set to 0x00 or 0x0F a one byte data type must be at the beginning of the message body. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. 4.2.2.3.2 EXAMPLE OF A MT MESSAGE In the following example of an MT Message, the text message (message body type = 0 and data type parameter = 5) has a subject "TEST", a message body "Hello", an originator revealed by speed dial value 4, and four primary recipients identified by speed dial value 3, null-terminated explicit address "SALLY", null-terminated explicit address "BILL", and speed dial value 7. These bytes would be present in the MT Message packet bytes 7 up to the Fletcher Checksum. ORBCOMM Satellite Modem Serial Interface Specification 77 77 77 Hex and text representation: Index Byte Value 6 0x01 Subject included 7 0x00 IA5TEXT 8 0x05 5 Recipient Quantity 9 0x04 4 Originator, Speed Dial 4 10 0x03 3 1st Recipient, Speed Dial 3 11 0x53 'S' 12 0x41 'A' 13 0x4C 'L' 14 0x4C 'L' 15 0x59 'Y' 16 0x00 NUL 17 0x42 'B' 18 0x49 'I' 19 0x4C 'L' 20 0x4C 'L' 21 0x90 NUL 22 0x97 7, CC 23 0x54 'T' 24 0x45 'E' 25 0x53 'S' 26 0x54 'T' 27 0x00 NUL 28 0x05 5 29 0x48 'H' 30 0x65 'e' 31 0x6C 'l' 32 0x6C 'l' 33 0x6F 'o' Description Subject Indicator Message Body Type 2nd Recipient address 3rd Recipient address, CC 4th Recipient, Speed Dial 7, CC Subject Message Body Type defined as IA5TEXT, so 0x05 must begin message body Table 24: An Example Message of a MT MESSAGE PACKET ORBCOMM Satellite Modem Serial Interface Specification 78 78 78 4.2.2.4 Modem Terminated User Command Packet (Packet Type 0x0D) A MODEM TERMINATED USER COMMAND PACKET is meant to allow a user to send 5 bytes of user defined data to the DTE. When the modem receives a Modem Terminated User Command from the gateway, the modem will store the User Command within persistent memory and then attempt to deliver the MODEM TERMINATED USER COMMAND PACKET to the DTE. If the DTE responds with a DTE ORIGINATED ACKNOWLEDGMENT PACKET indicating a status code of 0x00, then the modem will delete the message from its persistent memory and the message is considered delivered. Otherwise, the modem will attempt to deliver the message nine times and leave the message within persistent memory until it is retrieved or deleted by the DTE through the use of a Communications Command. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Gateway ID 6 User Data Byte 0 7 User Data Byte 1 8 User Data Byte 2 9 User Data Byte 3 10 User Data Byte 4 11 Checksum Least Significant Byte 12 Checksum Most Significant Byte Table 25: MODEM TERMINATED USER COMMAND PACKET Structure 4.2.2.4.1 MODEM TERMINATED USER COMMAND PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Response packets have a packet header of 0x06. Packet Type: Every packet has a specific packet type. A MODEM TERMINATED USER COMMAND PACKET always has a packet type value of 0x0D. Packet Length: Every packet has a two byte packet length. A MODEM TERMINATED USER COMMAND PACKET will always have a packet length of 13 bytes. Therefore byte 2 will have a value of 0x0D and byte 3 will have a value of 0x00. In addition, notice that the packet length includes the checksum. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. Gateway ID: The Gateway ID where the User Command was sent. ORBCOMM Satellite Modem Serial Interface Specification 79 79 79 User Data (Bytes 6 – 10): Data defined by the user and understood by the DTE. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. ORBCOMM Satellite Modem Serial Interface Specification 80 80 80 4.2.2.5 Modem Terminated Globalgram Packet (Packet Type 0x0E) A MODEM TERMINATED GLOBALGRAM PACKET is meant to allow a user to send up to 182 bytes of user defined data to the DTE. After the modem receives a Modem Terminated Globalgram from the gateway, the modem will store the Globalgram within persistent memory and attempt to deliver the MODEM TERMINATED GLOBALGRAM PACKET to the DTE. If the DTE responds with a DTE ORIGINATED ACKNOWLEDGMENT PACKET containing a status code of 0x00, then the modem will delete the message from its persistent memory and the Globalgram is considered delivered. Otherwise, the modem will attempt to deliver the message nine times and leave the message within the modem’s persistent memory until it is retrieved or deleted by the DTE. Byte Offset Packet Structure 0 Packet Header 1 Packet Type 2 Least Significant Byte of Packet Length 3 Most Significant Byte of Packet Length 4 Packet Sequence Number 5 Gateway ID 6 Gateway Globalgram Reference Number 7 Originator Recipient Indicator 8 User Data Byte 0 9 User Data Byte 1 8+N User Data Byte N 9+N Checksum Least Significant Byte 10+N Checksum Most Significant Byte Table 26: MODEM TERMINATED GLOBALGRAM PACKET Structure 4.2.2.5.1 MODEM TERMINATED GLOBALGRAM PACKET DESCRIPTION Packet Header: Every packet has a packet header and all Modem Response packets have a packet header of 0x06. Packet Type: Every packet has a specific packet type. A MODEM TERMINATED GLOBALGRAM PACKET always has a packet type value of 0x0E. Packet Length: Every packet has a two byte packet length. A MODEM TERMINATED GLOBALGRAM PACKET is variable in length. The maximum size of this packet allowed is 192 bytes. Packet Sequence Number: A number from 0 – 255 chosen by the DTE. The modem will not process a packet if two consecutive packets have the same packet sequence number. ORBCOMM Satellite Modem Serial Interface Specification 81 81 81 Gateway ID: The Gateway ID where the MT Globalgram was sent. Gateway Globalgram Reference Number: A number assigned by the ORBCOMM Gateway. This value can be used to identify and filter duplicate Globalgrams. Originator Recipient Indicator: Is a value that represents an address that is specified at the time of provisioning. Valid values for this byte are: 0x00: No speed dial value included 0x01 – 0x08: User pre-defined address specified at the time of provisioning. 0x09 – 0x0F: Reserved User Data (Bytes 8 – (N+8)): Data defined by the user and intended to be understood by the DTE. The maximum amount of user data allowed is 182 bytes. Checksum: Every packet has a two byte Fletcher checksum at the end of the packet. The second to last byte of the packet is the least significant byte of the checksum and the last byte of the packet is the most significant byte of the checksum. ORBCOMM Satellite Modem Serial Interface Specification 82 82 82 5 Serial Interface Packet Diagrams 5.1 OG1 and OG2 Serial Interface Packet Diagrams This Chapter presents ladder diagrams illustrating the command/response of some serial packets. Figure 5.1: Get and Set Parameters Command/Response ORBCOMM Satellite Modem Serial Interface Specification 83 83 83 Figure 5.2: OTA Communications Commands Figure 5.3: Internal Modem Communications Commands ORBCOMM Satellite Modem Serial Interface Specification 84 84 84 Figure 5.4: Modem-Originated Report ORBCOMM Satellite Modem Serial Interface Specification 85 85 85 Figure 5.5: Modem-Originated Globalgram Figure 5.6: Modem-Terminated Globalgram ORBCOMM Satellite Modem Serial Interface Specification 86 86 86 Figure 5.7: Modem-Originated Message Figure 5.8: Modem-Terminated Message ORBCOMM Satellite Modem Serial Interface Specification 87 87 87 Figure 5.9: Modem-Terminated User Command ORBCOMM Satellite Modem Serial Interface Specification 88 88 88 Figure 5.10: Polling by GCC ORBCOMM Satellite Modem Serial Interface Specification 89 89 89 6 Latitude and Longitude Conversion From Geodetic To ORBCOMM Encoded: boolean ConvertGeodeticToORBCOMM_Encoded(float GeodeticLatitude, float GeodeticLongitude, uint32_t* ORBCOMM_EncodedLat, uint32_t* ORBCOMM_EncodedLong) { /////////////////////////////////////////////////////////////////////////// // Name: ConvertGeodeticToORBCOMM_Encoded // // Description: This function converts geodetic latitude and longitude // to ORBCOMM encoded latitude and longitude // // Returns: // TRUE - GPS Points Converted // FALSE - Error Occurred // //////////////////////////////////////////////////////////////////////////// float GeodeticLat; float GeodeticLong; float TempVal; boolean success = FALSE; if((ORBCOMM_EncodedLat != NULL) && (ORBCOMM_EncodedLong != NULL)) { GeodeticLat = (float)GeodeticLatitude / (float)0x00FFFFFF; GeodeticLong = (float)GeodeticLongitude / (float)0x00FFFFFF; if(GeodeticLong < 0) { //Position Located in Western Hemisphere TempVal = (GeodeticLong + 360.0) / 360.0; } else { //Position Located in Eastern Hemisphere TempVal = GeodeticLong / 360.0; } *ORBCOMM_EncodedLong = (uint32_t)(TempVal * 0x00FFFFFF) & 0x00FFFFFF; TempVal = -(GeodeticLat - (180/2)) / 180; *ORBCOMM_EncodedLat = (uint32_t)(TempVal * 0x00FFFFFF) & 0x00FFFFFF; success = TRUE; } return (success); }//end boolean ConvertGeodeticToORBCOMM_Encoded() ORBCOMM Satellite Modem Serial Interface Specification 90 90 90 From ORBCOMM Encoded to Geodetic: boolean ConvertORBCOMM_EncodedToGeodetic(uint32_t ORBCOMM_EncodedLat, uint32_t ORBCOMM_EncodedLong, float* GeodeticLatitude, float* GeodeticLongitude) { /////////////////////////////////////////////////////////////////////////// // Name: ConvertORBCOMM_EncodedToGeodetic // // Description: This function converts ORBCOMM encoded latitude and // longitude to geodetic latitude and longitude. // // Returns: // TRUE - GPS Points Converted // FALSE - Error Occurred // //////////////////////////////////////////////////////////////////////////// boolean success = FALSE; float GeoLat = 0; float GeoLong = 0; if((GeodeticLatitude != NULL) && (GeodeticLongitude != NULL)) { GeoLat = (float)(NUM_DEGS_LAT/2) - (((float)ORBCOMM_EncodedLat / (float)0x00FFFFFF) * 180); GeoLong = ((float)ORBCOMM_EncodedLong / (float)0x00FFFFFF) * 360; if(GeoLong > 360/2) { GeoLong -= 360; } *GeodeticLatitude = (float)(GeoLat * 10000000); *GeodeticLongitude = (float)(GeoLong * 10000000); } return (success); }//end boolean ConvertORBCOMM_EncodedToGeodetic() ORBCOMM Satellite Modem Serial Interface Specification 91 91 91 7 Satellite Element Set Format Description The satellite ephemeris data consists of two lines in the following format (not including the two-line column “ruler”). Multiple element sets should repeat the formatting above— i.e., a two-line element set for the first satellite, followed by a two-line element set for the second satellite, etc. All element sets should be sent from the modem in the form of a Modem-Originated Message. This Message should be sent with a blank ID, no ORIGINATOR and no SUBJECT. The Message body field should contain the twolined element sets with no additional characters. Column Number: Element 1 2 3 4 5 6 123456789012345678901234567890123456789012345678901234567890123456789 1 NNNNNU NNNNNAAA NNNNN.NNNNNNNN +.NNNNNNNN +NNNNN-N +NNNNN-N N NNNNN 2 NNNNN NNN.NNNN NNN.NNNN NNNNNNN NNN.NNNN NNN.NNNN NN.NNNNNNNNNNNNNN Set Format: EXAMPLE: Actual F2 element set as received from USSPACECOM. 1 2 3 4 5 6 123456789012345678901234567890123456789012345678901234567890123456789 1 23546U 95017B 97072.53586170 .00000056 00000-0 32865-4 0 02534 2 23546 069.9776 265.2990 0013272 169.5560 190.5848 14.45508865102583 Format Description: Line 1 Column Description 01 Line Number of Element Data 02 Blank 03-07 Satellite Number (corresponds to the satellite_# when sent by modem. Zero fill all leading characters.) 08 Classification of Element Set (U = unclassified) 09 Blank 10-11 International Designator (last two digits of launch year)-N/A 12-14 International Designator (Launch number of the year)-N/A ORBCOMM Satellite Modem Serial Interface Specification 92 92 92 15-17 International Designator (Piece of launch)-N/A 18 Blank 19-20 Epoch Year (last two digits of year)— calculated from data in SATELLITE PLANE ORBITAL ELEMENTS 21-32 Epoch (Julian Day and fractional portion of the day)— calculated from data in SATELLITE PLANE ORBITAL ELEMENTS 33 Blank 34-43 Decay from SATELLITE PLANE ORBITAL ELEMENTS. 44 Blank 45-52 Second Time Derivative of Mean Motion— N/A 53 Blank 54-61 BSTAR drag term if GP4 general perturbation theory was used— N/A 62 Blank 63 Ephemeris type— N/A 64 Blank 65-68 Element set number— N/A 69 checksum (Modulo 10) Line2 Column Description 01 Line Number of Element Data 02 Blank 03-07 Satellite Number (same as above) 08 Blank 09-16 Inclination (degrees)— from SATELLITE PLANE ORBITAL ELEMENTS 17 Blank ORBCOMM Satellite Modem Serial Interface Specification 93 93 93 18-25 Right Ascension of the Ascending Node (degrees)— from SATELLITE PLANE ORBITAL ELEMENTS 26 Blank 27-33 Eccentricity (decimal point assumed)— from SATELLITE PLANE ORBITAL ELEMENTS 34 Blank 35-42 Argument of Perigee (degrees)— from SATELLITE PLANE ORBITAL ELEMENTS 43 Blank 44-51 Mean Anomaly (degrees) — from satellite orbital elements 52 Blank 53-63 Mean Motion (revs per day) — from satellite orbital elements 64-68 Orbit number at epoch (revs) — from satellite plane orbital elements 69 checksum (Modulo 10) NOTES: 1. To calculate checksum: letters, blanks, periods = 0; minus sign =1; plus sign = 2. 2. The International Designator and other complete data fields not required by the tracking algorithm are sent as blank spaces or zeros. 3. All epochs are Coordinated Universal Time (UTC). 4. In fields where there may be leading zeros, blanks cannot be substituted for those leading zeros. 5. Fields designated as N/A (not applicable) are not required and should be zero filled. 6. Plus signs (+) are optional. 7. Minus signs (-) are required. 8. A carriage return (CR) and a line feed (LF) must be appended to the end of each line. ORBCOMM Satellite Modem Serial Interface Specification 94 94 94