TS-IRIDIUM: Difference between revisions

From embeddedTS Manuals
(Added subsection for TS-7800-V2.)
(Massive overhaul of whole page.)
Line 13: Line 13:


= Overview =
= Overview =
The TS-Iridium provides a UART connection over PC104.
The TS-IRIDIUM SBD transceiver provides satellite data communication from anywhere in the world provided its antenna has a full, clear view of the sky.
 
The IRIDIUM satellite constellation consists of 66 low orbit satellites, moving from north to south.  For best connectivity, the SBD antenna should have a clear view of approximately 95% of the open sky, or full sky visibility above 8.2 degrees from the horizon.
 
To check the height of potential obstructions, it is useful to hold a fist at arm's length with the wrist parallel to the horizon.  Obstructions larger than that fist above the horizon could interfere with the Iridium signal.  Cliffs, buildings, vehicles, and dense foliage will interfere with the satellite signal.  Smoke, clouds, fog, rain, and weather will not interfere with the satellite signal. 
 
[[ file:Iridium_infographic.jpg | 400px ]]


= Full Iridium Documentation =
= Full Iridium Documentation =
To receive the full documentation for this board you must contact your satellite service provider.  This documentation is only intended to get the UART connection established.
This product manual intends to provide a functioning knowledge of the TS-IRIDIUM product and its uses, however the product comprises of two technical portions:
#The TS-IRIDIUM PC104 peripheral from Technologic Systems.
#The IRIDIUM 9602 Satellite transceiver.
 
The TS-IRIDIUM PC104 peripheral from Technologic Systems is a PC104 to UART adapter designed to provide a PC104-equipped computer with an interface to the IRIDIUM 9602 modem.
 
The IRIDIUM 9602 Modem is a product of IRIDIUM.  Portions of this manual are paraphrases and reproductions created with permission from IRIDIUM, but for greater technical detail on the operation of the IRIDIUM 9602 modem, the downstream developer may need to reach out to their Satellite Service Provider for the latest 9602 modem documentation.
 
= IRIDIUM Getting Started =
The TS-IRIDIUM PC104 peripheral requires non-generic driver support.  Consult the product manual for the target SBC for driver details, as those details may be more appropriate to the target SBC than the generalized instructions and information presented here.  Unless stated otherwise, the examples herein will utilize the TS-7800-V2 as a working sample.
 
To connect to the TS-IRIDIUM modem hardware, configure the TS-IRIDIUM jumper (see [#Jumpers|jumpers]) configuration and load the serial port driver thus:
 
<pre style="font-family:monospace,Courier New ;background:black; width:18cm; white-space: pre-wrap; white-space: -moz-pre-wrap; word-wrap: break-word; color:white; ">
source /sbin/ts7800.subr
pc104on
modprobe ts7800_isa16550 irq=5 io=0x3f8
</pre>
 
Once the driver has been loaded, a quick test of modem functionality can be achieved by using your choice of terminal emulator and querying the modem using some AT commands, for example:
 
<pre style="font-family:monospace,Courier New ;background:black; width:18cm; white-space: pre-wrap; white-space: -moz-pre-wrap; word-wrap: break-word; color:white; ">
root@ts7800-v2:~# picocom -b 19200 /dev/ttyS12
picocom v1.7
 
port is        : /dev/ttyS12
flowcontrol    : none
baudrate is    : 19200
parity is      : none
databits are  : 8
escape is      : C-a
local echo is  : no
noinit is      : no
noreset is    : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv
imap is        :
omap is        :
emap is        : crcrlf,delbs,
 
Terminal ready
at+gmm
IRIDIUM 9600 Family SBD Transceiver
 
OK
at+gmr
Call Processor Version: TA16005
 
Modem DSP Version: 1.7 svn: 2358
 
DBB Version: 0x0001 (ASIC)
 
RFA Version: 0x0007 (SRFA2)
 
NVM Version: KVS
 
Hardware Version: BOOT07d2/9602NrvA-D/04/RAW0d
 
BOOT Version: TA16005 (rev exported)
 
OK
</pre>
 
The modem's IMEI is available using at+gsn.  This number identifies the modem on the satellite network and will be used both during setup with the satellite provider, and in sending/receiving data on the modem device.
 
== Theory of Operation ==
The IRIDIUM SBD system is a satellite radio network primarily used for short data reporting or command and control applications.  Network operations are largely obfuscated from the downstream developer such that communication with the modem requires very little software supportCommunication with the remote device (mobile terminated messages) is achieved through an email to data@sbd.iridium.com, where the subject is the IMEI of the target IMU, and the message to be sent is a 320 byte file attachment with the suffix ".sbd".  Communication from the remote device (mobile originated messages) is achieved by the IMU (the 9602 satellite modem) sending up to 320 bytes to the satellite network.  The destination for this data is determined when the satellite account for that modem was set up, and is typically either a short list of email addresses (typically up to 5 email addresses), or a fixed IP network socket.
 
With this description in mind, a typical round-trip communcaiton might look something like this:


= Configuration =
#Fixed operator sends an email to data@sbd.iridium.com, subject: 1234567890, file attachment "helloworld.sbd".  The Iridium network checks the .sbd file and IMEI (1234567890) for validity and sends it to the satellite network for dissemination to the target IMU.
You must alter IRQ and the IO address to reflect your pin configuration.
#IMU (the satellite modem) makes periodic checkin and pulls in most recent message from SBD mailbox, updating message counter.
##SBC (such as the TS-7800-V2) application reads IMU status and copies MT data from message buffer. 
##SBC parses message buffer and prepares response.
##SBC writes response back to IMU (modem)
#IMU performs periodic checkin per SBC instruction and transmits MO (Mobile Originated) message to Satellite network.
#Satellite network sends MO message via email to predefined destination email address list (or IP address).
#Fixed operator receives email from sbdservice@sbd.iridium.com containing attachment data from IMU 1234567890.


== TS-72XX ==
= TS-72XX =
This series will automatically detect the COM port and create it with /dev/tts/<COM number>.  The COM number will depend on your pin configuration.
This series will automatically detect the COM port and create it with /dev/tts/<COM number>.  The COM number will depend on your pin configuration.


== TS-7800 ==
= TS-7800 =
This example is from Debian:
This example is from Debian:
<source lang=bash>
<source lang=bash>
Line 43: Line 124:
The TS-7800-V2 has a chapter of its own documentation dedicated to the TS-IRIDIUM.  That documentation is found [https://docs.embeddedarm.com/TS-7800-V2#TS-IRIDIUM here].
The TS-7800-V2 has a chapter of its own documentation dedicated to the TS-IRIDIUM.  That documentation is found [https://docs.embeddedarm.com/TS-7800-V2#TS-IRIDIUM here].


== Testing the Iridium ==
= Testing the Iridium =


To test communication, you can use picocom or any similar serial control application.  Connect at 19200 8n1 with no flowcontrol and send an "AT".  The modem should echo back "OK".  Replace the tty device with the corrected location for your device.
To test communication, you can use picocom or any similar serial control application.  Connect at 19200 8n1 with no flowcontrol and send an "AT".  The modem should echo back "OK".  Replace the tty device with the corrected location for your device.
Line 68: Line 149:
</source>
</source>


== COM/IO Selection ==
= TS-IRIDIUM Hardware =
 
== Jumpers ==
COM and IO Jumpers:
{{Iridium_com_io_jumper_table}}
{{Iridium_com_io_jumper_table}}
 
PLD Base Address Selection:
== PLD Base Address ==
{{Iridium_PLD_Jumper}}
{{Iridium_PLD_Jumper}}
 
== TS-IRIDIUM PLD Registers ==
== PLD Registers ==
{{TS-IRIDIUM_PLD_Regmap}}
{{TS-IRIDIUM_PLD_Regmap}}


== Iridium Power ==
== Iridium Power Consumption ==
With JP5 enabled, the Iridium modem will receive power by default.  With either configuration of that jumper you can always toggle the power from the PLD.  The modem typically takes 750ms to power on, and can take up to 3s to turn off.
With JP5 enabled, the Iridium modem will receive power by default.  With either configuration of that jumper you can always toggle the power from the PLD.  The modem typically takes 750ms to power on, and can take up to 3s to turn off.
= AT Command Set =
{{:TS-IRIDIUM_AT_Command_set}}
==Status Codes==
{{:TS-IRIDIUM_Status_Codes}}

Revision as of 11:26, 30 March 2020

TS-Iridium
Ts-iridium.gif
Product Page
Documents
Schematic
Celestech

Overview

The TS-IRIDIUM SBD transceiver provides satellite data communication from anywhere in the world provided its antenna has a full, clear view of the sky.

The IRIDIUM satellite constellation consists of 66 low orbit satellites, moving from north to south. For best connectivity, the SBD antenna should have a clear view of approximately 95% of the open sky, or full sky visibility above 8.2 degrees from the horizon.

To check the height of potential obstructions, it is useful to hold a fist at arm's length with the wrist parallel to the horizon. Obstructions larger than that fist above the horizon could interfere with the Iridium signal. Cliffs, buildings, vehicles, and dense foliage will interfere with the satellite signal. Smoke, clouds, fog, rain, and weather will not interfere with the satellite signal.

Iridium infographic.jpg

Full Iridium Documentation

This product manual intends to provide a functioning knowledge of the TS-IRIDIUM product and its uses, however the product comprises of two technical portions:

  1. The TS-IRIDIUM PC104 peripheral from Technologic Systems.
  2. The IRIDIUM 9602 Satellite transceiver.

The TS-IRIDIUM PC104 peripheral from Technologic Systems is a PC104 to UART adapter designed to provide a PC104-equipped computer with an interface to the IRIDIUM 9602 modem.

The IRIDIUM 9602 Modem is a product of IRIDIUM. Portions of this manual are paraphrases and reproductions created with permission from IRIDIUM, but for greater technical detail on the operation of the IRIDIUM 9602 modem, the downstream developer may need to reach out to their Satellite Service Provider for the latest 9602 modem documentation.

IRIDIUM Getting Started

The TS-IRIDIUM PC104 peripheral requires non-generic driver support. Consult the product manual for the target SBC for driver details, as those details may be more appropriate to the target SBC than the generalized instructions and information presented here. Unless stated otherwise, the examples herein will utilize the TS-7800-V2 as a working sample.

To connect to the TS-IRIDIUM modem hardware, configure the TS-IRIDIUM jumper (see [#Jumpers|jumpers]) configuration and load the serial port driver thus:

source /sbin/ts7800.subr
pc104on
modprobe ts7800_isa16550 irq=5 io=0x3f8

Once the driver has been loaded, a quick test of modem functionality can be achieved by using your choice of terminal emulator and querying the modem using some AT commands, for example:

root@ts7800-v2:~# picocom -b 19200 /dev/ttyS12
picocom v1.7

port is        : /dev/ttyS12
flowcontrol    : none
baudrate is    : 19200
parity is      : none
databits are   : 8
escape is      : C-a
local echo is  : no
noinit is      : no
noreset is     : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv
imap is        :
omap is        :
emap is        : crcrlf,delbs,

Terminal ready
at+gmm
IRIDIUM 9600 Family SBD Transceiver

OK
at+gmr
Call Processor Version: TA16005

Modem DSP Version: 1.7 svn: 2358

DBB Version: 0x0001 (ASIC)

RFA Version: 0x0007 (SRFA2)

NVM Version: KVS

Hardware Version: BOOT07d2/9602NrvA-D/04/RAW0d

BOOT Version: TA16005 (rev exported)

OK

The modem's IMEI is available using at+gsn. This number identifies the modem on the satellite network and will be used both during setup with the satellite provider, and in sending/receiving data on the modem device.

Theory of Operation

The IRIDIUM SBD system is a satellite radio network primarily used for short data reporting or command and control applications. Network operations are largely obfuscated from the downstream developer such that communication with the modem requires very little software support. Communication with the remote device (mobile terminated messages) is achieved through an email to data@sbd.iridium.com, where the subject is the IMEI of the target IMU, and the message to be sent is a 320 byte file attachment with the suffix ".sbd". Communication from the remote device (mobile originated messages) is achieved by the IMU (the 9602 satellite modem) sending up to 320 bytes to the satellite network. The destination for this data is determined when the satellite account for that modem was set up, and is typically either a short list of email addresses (typically up to 5 email addresses), or a fixed IP network socket.

With this description in mind, a typical round-trip communcaiton might look something like this:

  1. Fixed operator sends an email to data@sbd.iridium.com, subject: 1234567890, file attachment "helloworld.sbd". The Iridium network checks the .sbd file and IMEI (1234567890) for validity and sends it to the satellite network for dissemination to the target IMU.
  2. IMU (the satellite modem) makes periodic checkin and pulls in most recent message from SBD mailbox, updating message counter.
    1. SBC (such as the TS-7800-V2) application reads IMU status and copies MT data from message buffer.
    2. SBC parses message buffer and prepares response.
    3. SBC writes response back to IMU (modem)
  3. IMU performs periodic checkin per SBC instruction and transmits MO (Mobile Originated) message to Satellite network.
  4. Satellite network sends MO message via email to predefined destination email address list (or IP address).
  5. Fixed operator receives email from sbdservice@sbd.iridium.com containing attachment data from IMU 1234567890.

TS-72XX

This series will automatically detect the COM port and create it with /dev/tts/<COM number>. The COM number will depend on your pin configuration.

TS-7800

This example is from Debian:

. /initrd/ts7800.subr
pc104on
modprobe ts7800_isa16550 irq=7 io=0x3F8

To view if it loaded correctly, run 'dmesg' and you should find a line similar to this:

serial8250: ttyS2 at MMIO 0xee0003f8 (irq = 71) is a 16550A

So in this case the COM device will be /dev/ttyS2.

TS-7800-V2

The TS-7800-V2 has a chapter of its own documentation dedicated to the TS-IRIDIUM. That documentation is found here.

Testing the Iridium

To test communication, you can use picocom or any similar serial control application. Connect at 19200 8n1 with no flowcontrol and send an "AT". The modem should echo back "OK". Replace the tty device with the corrected location for your device.

root@ts7800:# picocom /dev/ttyS2 -b 19200
picocom v1.4

port is        : /dev/ttyS2
flowcontrol    : none
baudrate is    : 19200
parity is      : none
databits are   : 8
escape is      : C-a
noinit is      : no
noreset is     : no
nolock is      : no
send_cmd is    : ascii_xfr -s -v -l10
receive_cmd is : rz -vv

Terminal ready
AT
OK

TS-IRIDIUM Hardware

Jumpers

COM and IO Jumpers:

PLD Base Address Selection:

TS-IRIDIUM PLD Registers

Iridium Power Consumption

With JP5 enabled, the Iridium modem will receive power by default. With either configuration of that jumper you can always toggle the power from the PLD. The modem typically takes 750ms to power on, and can take up to 3s to turn off.

AT Command Set

When interfacing with the Iridium 9602 SBD directly, the communication protocol is a serial AT command set. The commands supported by the Iridium 9602 are described here in brief. See the official IRIDIUM 9602 modem user's manual for full descriptions (The latest should be available from the satellite service provider).

A/ -- Repeat last AT command.
AT -- Command prefix used for all other commands. Returns "OK<CR><LF>"
En -- Echo characters to DTE. n=0 no echo n=1 echo.
In -- Indentification. Requests ISU to display information about itself.
n=0 2400
n=1 0000
n=2 OK
n=3 "XXXXXXXX" Software revision level (TA16005)
n=4 IRIDIUM 9600 Family
n=5 8816
n=6 "XXX" Factory Identity (1OK)
n=7 "XXXXXXXX" Hardware specification (BOOT07d2/9602NrvA-D/04/RAW0d)
Qn -- Quiet Mode
n=0 ISU responses are sent to the DTE. n=1 ISU resopnses are NOT sent to the DTE.
Vn -- Verbosity
n=0 Numeric responses n=1 Text responses.
Zn -- Soft Reset
n=0 restore config 0 n=1 restore config 1.
%R -- Displays all S registers
&Dn -- DTR Control
n=0 DTR off, n=1 DTR on (DTR not supported on TS-IRIDIUM)
&Fn -- Restore Default Configuration (n = 0 or 1)
&Kn -- Flow Control
n=0 Disable n=3 RTS/CTS N=4 XON/XOFF n=6 Both
&V -- View active and stored configurations.
&Wn -- Store Active Configuration in profile slot n (0 or 1)
&Yn -- Designate default reset profile (0 or 1)
*F -- Flush to Eeprom
Modem shutdown prep / save volatile buffer data.
*Rn -- Radio Enable
n=0 disable radio n=1 enable radio.
+CCLK -- Real-Time Clock
+CCLK=
+CCLK? -- Query RTC (see +cclk).
+CGMI -- Query Manufacturer Information
+CGMM -- Model Identification
+CGMR -- Query Revision Information
+CGSN -- Query IMEI
+CIER -- Unsolicited Event Reporting
Causes modem to actively report changes in status when changes are detected.
+CIER=[<mode>[,<sigind>[,<svcind>[,<antind>[,<sv_beam_coords_ind>]]]]]
mode 0=disable 1=enable. See IRIDIUM documentation for more detail.
+CRIS -- Ring Indication Status
+CRIS[X]:<tri>,<sri>,[X]<timestamp>
tri not used on 9602
sri: 0=no ring, 1=ring
timestamp = number of seconds since IRIDIUM epoch.
+CSQ -- Signal Quality
+CSQ: 0-5 signal quality rating. 0=none 5=best
+CULK=n-- Unlock.
n=unlock code given by network provider.
+CULK? -- Query if unlock is needed.
0 = not locked (all modems shipped from Technologic Systems are unlocked).
+GEMON -- Power Consumption Meter.
+GEMON function was removed by Iridium in firmware version TA16005.
+GMI -- Get Manufacturer Information. See +CGMI.
+GMM -- Get Model Information. See +CGMM
+GMR -- Get Revision Information. See +CGMR
+GSN -- Get IMEI. See +CGSN
+IPR=n -- ISU Data rate (default 19200 baud).
+IPR=<rate> rates from 0=600 baud to 7=38400 baud. 6 is default at 19200 baud.
+SBDAREG=n -- Short Burst Data Automatic Registration. +SBDAREG=<mode>
0=disable 1=automatic 2=ask 3=auto w/event report 4=ask w/event report
See IRIDIUM documentation.
+SBDC -- Clear MOMSN (Mobile Originated Message Sequence Number).
+SBDDn -- Short Burst Data Clear SBD Message Buffer(s) +SBDD[<type>]
n=0 clear MO buffer n=1 clear MT buffer n=2 clear both buffers
Caveats: See IRIDIUM documentation.
+SBDDET -- Detach ISU from Gateway. See docs for error list.
+SBDDSC -- Delivery Short Code.
IRIDIUM documentation.
+SBDI -- Initiate SBD session.
Connect ISU to ESS, download oldest message from ESS to MT buffer.
Transmit/upload MO buffer to ESS. ISU is modem, ESS is satellite service.
Detach automatically after operation complete.
See IRIDIUM documentation.
+SBDIX -- Extended SBDI.
Required if using SBD Ring Alerts. See IRIDIUM documentation
+SBDMTA -- Mobile-terminated alert
enable/disable ring alerts +sbdmta=0 disable =1 enable see docs.
+SBDRB -- Read binary data from ISU. outpts MT binary. Format is high order byte first
{2-byte length} + {binary message} + {2 byte checksum}
Caveats. See docs.
+SBDREG -- Force manual network registration. Optional include location data.
+sbdreg[=<location>] where <location> is [+|-] DDMM.MMM,[+|-]ddmm.mmm
DD deg lat (00-89) MM minutes lat (00-59) MMM 1/1000 min lat (000-999)
ddd deg lon (000-179) mm min lon (00-59) mmm 1/1000 min lon (000-999)
Resonse is +SBDREG:<status>,<err> 0=det 1=not reg 2=reg 3=denied, 0=no err
See below for error code list.
+SBDREG? -- Check for current registration.
0=detached 1=not reg'd 2=reg'd 3=reg denied
+SBDRT -- Read text from MT buffer.
Format: +SBDRT:<CR>{MT buffer}
+SBDS -- Checks state of MT and MO buffers.
Response +SBDS:<MO flag>,<MOMSN>,<MT flag>,<MTMSN>
Flags: 0=no message 1=message in buffer MTMSN=-1 means nothing in buffer.
+SBDST -- Set Session Timeout
+sbdst=<timeout> in seconds. See IRIDIUM documentation.
+SBDSX -- SBD Status Extended. It's +sbds with ring alert status and waiting msg count.
Note waiting msg count updated after every SBD session (sbdi/sbdix/sbdreg/sbddet).
+SBDTC -- Transfer MO buffer to MT buffer.
Mostly used to test software without using satellite network.
+SBDWB -- Write binary to ISU MO buffer.
+sbdwb=[<sbd msg len in bytes>] len does not inc checksum.
Modem will respond "READY<CR><LF>"
Send {binary sbd message} + {2 byte checksum}.
Checksum calculation is least significant 2 byte sum of whole message.
Send high order byte first.
example: "hello" in ascii would be sent as:
hex 68 65 6c 6c 6f 02 14
Modem will emit 0 on success, 1 on timeout of 60 seconds.
+SBDWT -- Write text message to ISU MO buffer.
Two usages:
  • +sbdwt alone will allow full length 340 bytes
Modem will emit "READY<CR><LF>" After <LF> send text message terminated by <CR>.
  • +sbdwt=[<text message>] <text message> maximum 120 bytes if sent this way.
Modem will emit "OK" on success or "ERROR" if something went wrong.
+SBDGW[n] -- Query what gateway this iridium is configured to use.
Responses are +SBDGW <gateway_text> either "EMSS" or "non-EMSS".
if 'n' version is used: +SBDGWN: <1 or 2>. n=1 default commercial gateway. n=2 some other gateway.
+SBDLOE -- Iridium Traffic Management Status.
Returns +SBDLOE:<status>,
If traffic management is NOT in effect,
-MSGEO -- Request Geolocation. Response -MSGEO
<x>,<y>,<z>,<stime_stamp>
x,y,z is geolocation grid code from a Cartesian coordinate system.
The axes are aligned suhch that at 0 lat and 0 lon, both y and z are 0 and x is +6376, representing the nominal earth radius in KM. Coords are minimum -6376, max +6376, with a resolution of 4.
-MSSTM -- Request System Time.
32 bit integer expressing number of seconds since the most recent Iridium Epoch Rollover. Should not be used to calculate current date and time. Use +cclk for current date and time.

Status Codes

AT+SBDIX Status Codes
<these come from the gateway>
0: MO message successful send.
1: MO message sent successful, but the MT message queue was too big to receive.
2: MO message sent, but requested location update was not accepted.
3-4:Reserved, but indicates MO session success.
5-8:Reserved, but indicates MO session failure.
10: Gateway reported timeout.
11: MO message queue full at gateway.
12: MO message has too many segments.
13: Gateway reported session did not complete.
14: Invalid segment size.
15: Access Denied!
<these come from the transceiver>
16: Transceiver is locked and may not make SBD calls (see +CULK). AKA call the service provider.
17: Gateway not responding (local session timeout).
18: Connection lost (RF drop).
19-31: Reserved, but indicate MO session failed.
32: No network service, unable to initiate call.
33: Antenna fault, unable to initiate call.
34: Radio is disabled, unable to initiate (turn on the radio with at*r1).
35: Transceiver is busy, try again (transceiver is probably doing auto-negotiation).
36: Reserved, but indicates failure.