TS-IRIDIUM
Product Page | |
Documents | |
---|---|
Schematic |
Overview
The TS-IRIDIUM Short Burst Data (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.
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:
- 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) 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 any 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 (hence Short Burst Data). Network operations are largely obfuscated from the downstream developer such that communication with the modem requires very little software support. Communication to the remote device is achieved through an email to data@sbd.iridium.com
, where the subject is the IMEI of the target modem, and the message to be sent is a 320 byte file attachment with the suffix .sbd
. Communication from the remote device is achieved by the modem (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.
Communication to the remote device is generally refered to as a Mobile Terminated (MT) message.
Communication from the remote device is generally referred to as a Mobile Originated (MO) message.
With this description in mind, a typical round-trip communication might look something like this:
- Fixed operator sends an email to
data@sbd.iridium.com
, subject: 1234567890, file attachmenthelloworld.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 modem. - The SBC requests the modem to make periodic checkins and pull in most recent message from SBD mailbox, updating message counter.
- SBC (such as the TS-7800-V2) application reads the modem status and copies MT data from message buffer.
- SBC parses message buffer and prepares response.
- SBC writes response back to the 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.
SBC-Specific Documentation
TS-72XX
This series will automatically detect the COM port and create it with /dev/tts/<COM number>. The COM number will depend on the jumper 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'
. The output should be 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.
TS-IRIDIUM Hardware
Jumpers
COM and IO Jumpers:
COM | Address | JP1 | JP2 | JP3 |
---|---|---|---|---|
COM1 | 0x3F8 | Off | Off | Off |
COM2 | 0x2F8 | On | Off | Off |
COM3 | 0x3E8 | Off | On | Off |
COM4 | 0x2E8 | Off | On | On |
COM5 | 0x3A8 | Off | Off | On |
COM6 | 0x2A8 | On | Off | On |
COM7 | 0x3A0 | Off | On | On |
COM8 | 0x2A0 | On | On | On |
PLD Base Address Selection:
JP4 Off | JP4 On |
---|---|
0x140 to 0x14F | 0x190 to 0x19F |
TS-IRIDIUM PLD Registers
Base + 0 will always return 0x9. This can be used to detect the presence of the board.
Base + 1 will return 0x6 on the first access, 0x7 on the second, 0x8 on the third, and on the 4th access it will return the PLD version.
Base + 2:
Bit | Access | Function |
---|---|---|
0 | R | JP1 On |
1 | R | JP2 On |
2 | R | JP3 On |
3 | R | JP4 On |
Base + 3:
Bit | Access | Function |
---|---|---|
0 | RW | Modem Power Toggle |
1 | R | Modem Power Status |
2 | R | LED Status (1 on) |
3 | R | JP5 On |
Iridium Power Consumption
With JP5 installed, the Iridium modem will receive power by default. With either configuration of that jumper the developer can always toggle the power from the PLD. The modem typically takes 750 ms to power on, and can take up to 3 s 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.
TS SBDCTL
The sbdctl application is an example application that can send and receive data on the IRIDIUM network. It requires an IRIDIUM 9602 modem and an appropriate account through a third-party satellite network provider. The source code example is located on the Technologic Systems public github here.
The sbdctl
application uses multiple command line switches, and uses stdin/stdout where input or output are necessary:
root@ts7800-v2:~# sbdctl Usage: sbdctl [options] ... Technologic Systems SBD Control Utility Status output goes to stderr. All other IO uses stdin/stdout. Options are executed in the order given on the command line. For example: sbdctl -D <data_len_bytes> -c < myfile.bin This would read myfile.bin into the MO buffer, then initiate an SBD session (if possible) to transmit the data to the network. NOTE: Maximum input is 340 bytes for either text or binary transmissions. NOTE2: The MO and MT buffers can only contain one message each. -p, --port </dev/ttyEX1> Define which serial port to use. -c, --connect Connect to satellite and initiate SBD session. -t, --tread Read text from SBD modem's receive buffer. -d, --dread Read binary data from SBD modem's receive buffer. -T, --twrite <len> Write <len> bytes text data from stdin to SBD modem's transmit buffer. -D, --dwrite <len> Write <len> bytes binary data from stdin to SBD modem's tx buffer. -r, --rssi Request new RSSI reading from SBD modem. -s, --status Get local MO and MT message queue status. -e, --events Enable unsolicited event reporting from modem. -i, --info Dump modem-related info in BASH-compatible variables. -x, --indexes Report message index number for MO and MT. -y, --clearindex Clear Mobile Originated Message Sequence Number. -k, --clearbuffers Clear both MO and MT buffers. -l, --clearmobuf Clear Mobile Originated (MO) buffer. -m, --clearmtbuf Clear Mobile Terminated (MT) buffer. -a, --cpymomtbuf Copy MO to MT buffer on modem. root@ts7800-v2:~#
SBDCTL Example
To sanity-check the TS-IRIDIUM without transmitting messages over the satellite network, the IRIDIUM module includes a data transfer function, copying data from the transmit buffer to the receive buffer. The sbdctl
utility can be used to exercise this function:
root@ts7800-v2:/u/home/mpeters/code/iridium# sbdctl --info MODEM_FIRMWARE=ate0v1&k0q1TA16005 MODEM_HARDWARE=IRIDIUM 9600 Family MODEM_HW_INFO=BOOT07d2/9602NrvA-D/04/RAW0d IMEI=<<REDACTED>> RSSI=0 GW_TYPE=EMSS RAW_MSGEO=-1968,-4940,3504,0x720d20d1 MSSTM=0xbea06a10 RAW_SBDSX=0,0,0,-1,0,0 INBOX_STATUS=0 OUTBOX_PENDING=0 SERVER_MSG_PENDING=0 root@ts7800-v2:/u/home/mpeters/code/iridium# sbdctl -D 10 < qwerty.txt root@ts7800-v2:/u/home/mpeters/code/iridium# sbdctl -a MOMTCP_BYTES=10 root@ts7800-v2:/u/home/mpeters/code/iridium# sbdctl -d | hexdump -c 0000000 q w e r t y u i o p 004 i 000000c root@ts7800-v2:/u/home/mpeters/code/iridium#
Usage with 3rd party devices
Please note that while efforts are made to follow the PC/104 specification this peripheral is not tested with third party SBCs or connected peripherals. This card is not guaranteed to operate as intended when third party PC104 peripherals or SBCs are connected.