7800V2 TS-IRIDIUM: Difference between revisions

From embeddedTS Manuals
(→‎AT Command Set: Added +sbdix status codes.)
Line 86: Line 86:


=== AT Command Set ===
=== 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.
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 (should be available from your satellite service provider).


;A/ -- Repeat last AT command.
;A/ -- Repeat last AT command.
Line 217: Line 217:
;-MSSTM --    Request System Time.   
;-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.
:              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 your 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 (psst, turn on the radio with at*r1).
: 35: Transceiver is busy, try again (transceiver is probably doing auto-negotiation).
: 36: Reserved, but indicates failure.

Revision as of 17:38, 15 October 2019

Note: THIS SECTION UNDER ACTIVE CONSTRUCTION. PLEASE PARDON THE DUST.

The TS-7800-V2 coincides with enhanced support for the TS-IRIDIUM SBD transceiver module. 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

IRIDIUM Getting Started

To connect to the TS-IRIDIUM modem hardware, configure the TS-IRIDIUM jumper 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 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-IRIDIUM Hardware

XXX---insert link to jumpers table--XXX

TS SBDCTL

XXX---insert documentation for ts sbdctl utility here---XXX

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 (should be available from your 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
0=Numeric responses 1=Text responses.
Zn -- Soft Reset
0=restore config 0 1=restore config 1.
%R -- Displays all S registers XXX --- S Registers not defined anywhere?
&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 -- Event Reporting
+CIER=[<mode>[,<sigind>[,<svcind>[,<antind>[,<sv_beam_coords_ind>]]]]]
mode 0=disable 1=enable. See documentation. XXX ---This command needs more detail. Maybe its own section?
+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. XXX --- Iridium Epoch is not well defined anywhere?
+CSQ -- Signal Quality
+CSQ: 0-5 signal quality rating. 0=none 5=best
+CULK=n-- Unlock.
n=unlock code given by network provider.
<should NEVER need this on a 9602 from Technologic Systems / contact sat 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 documentation. XXX --- Need more detail here.
+SBDC -- Clear MOMSN (Mobile Originated Message Sequence Number).
+SBDDn -- Short Burst Data Clear SBD Message Buffer(s) +SBDD[<type>]
0=clear MO buffer 1=clear MT buffer 2=clear both buffers
Caveats: See docs. XXX --- Need more detail here.
+SBDDET -- Detach ISU from Gateway. See docs for error list.
+SBDDSC -- Delivery Short Code.
Complicated. See docs. XXX- --- Probably need to better explain this.
+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 docs for more response info. XXX --- more detail needed.
+SBDIX -- Extended SBDI.
Required if using SBD Ring Alerts. See docs. XXX --- Need details.
+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
err code list in docs. XXX--- Need to add err code list to wiki somewhere!
+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 docs. XXX --- Need more detail.
+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 sat 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>. 1=default commercial gateway. 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 radisu 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 your 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 (psst, turn on the radio with at*r1).
35: Transceiver is busy, try again (transceiver is probably doing auto-negotiation).
36: Reserved, but indicates failure.