Iridium Edge Communication Protocol
Iridium Configuration Parameters
Information here includes the naming of the configurable parameter in accordance to it's number.
| Parameter ID | Parameter Type | Default Values | Min Value | Max Value | Value | Description |
|---|---|---|---|---|---|---|
| 99420 | Uint8 | 0 | 0 | 1 | 0 - OFF 1 - ON |
(FMx125/FMx225) TSM232 and Iridium edge (FMx6xx) Short Burst data settings TSM232 and Iridium edge |
| 99421 | Uint16 | 1440 | 0 | 1440 | Minutes | Save/Send period |
| 99422 | Uint16 | 0 | 0 | 1574 | 0 - Nothing 2 - DIN1 4 - DIN2 32 - DOUT1 512 - Speed 1024 - Crash |
Save/Send period |
| 99423 | Uint16 | 8000 | 0 | 3000 | Bytes | SBD Upload Limit (B) |
| (FMx6xx) 99424 |
Unit8 | 0 | 0 | 4 | 0 - None 1 - None 2 - DOUT1 3 - DOUT2 4 - DOUT3 5 - DOUT4 |
(FMx6xx) Power Control DOUT |
| 150 | Unit8 | 0 | 0 | 2 | 0 - Disable 1 - RS232 2 - RS485 |
(valid only for FMx125/FMx225) Enable RS232 mode for the Iridium terminal |
| 151 | Unit8 | 0 | 0 | 26 | FMx125 7 - Satellite backup FMx650 16 - Satellite backup |
(FMx125/FMx225) RS232 Mode Satellite backup (Fmx6xx) RS232 Settings COM2 Settings Satellite backup |
| (FMx6xx) 152 |
Uint24 | 0 | 0 | 128000 | 1920 kbps | Baudrate required for Satellite backup is 1920 kbps |
| (FMx6xx) 173 |
Unit8 | 0 | 0 | 26 | FMx650 - 16 | RS232 Settings COM2 Settings Satellite backup |
| (FMx6xx) 174 |
Uint24 | 0 | 0 | 128000 | 1920 kbps | Baudrate required for Satellite backup is 1920 kbps |
Communication Protocol
| SBD Packet structure | ||||||
|---|---|---|---|---|---|---|
| Timestamp | Longitude | Latitude | SBD AVL ID and flags | DIN/DOUT info | Reserved | Speed |
| 4 bytes | 3 bytes | 3 bytes | 1 bytes | 1 bytes | 1 bytes | 1 bytes |
Data Sending Parameters
Information here includes the data sending parameters which identifies the naming of the parameter in accordance to its number.
Parsing of the Iridium SBD record
“Hercules” Software or similar is required to listen your pc port.
Also, Iridium must be set up to send packets to your pc.
Run "Hercules":
- Select TCP server tab
- Insert your PC port
- Right click in “Sent Data” window
- Select Special characters/Hexadecimal
- This will enable the “HEX enable” selection, enable this option.
Now Iridium packets can be captured by Hercules.
Hercules will receive the full Iridium packet, but only last 14 bytes are needed:
Full packet looks like this:
{01}{00}{3E}{01}{00}{1C}{7F}{DA}{96}{A1}{33}{30}{30}{32}{33}{34}{30}{36}{34}{30}{37}{30}{38}{33}{30}{00}{0A}{E9}{00}{00}{63}{57}{6A}{E3}{03}{00}{0B}{00}{36}{A5}{A7}{19}{2F}{E9}{00}{00}{00}{04}{02}{00}{0E}{AD}{69}{57}{63}{91}{F6}{A0}{CD}{CC}{64}{00}{00}{FF}{00}
There blue part of record is satellite device generated data and green is actual record payload which was sent to server.
Only the green part (last 14 bytes) is needed for analysis:
{AD}{69}{57}{63}{91}{F6}{A0}{CD}{CC}{64}{00}{00}{FF}{00}
Packet Parsing
Packet:
{AD}{69}{57}{63}{91}{F6}{A0}{CD}{CC}{64}{00}{00}{FF}{00}
| SBD Packet structure | ||||||
|---|---|---|---|---|---|---|
| Timestamp | Longitude | Latitude | SBD AVL ID and flags | DIN/DOUT info | Reserved | Speed |
| 4 bytes | 3 bytes | 3 bytes | 1 bytes | 1 bytes | 1 bytes | 1 bytes |
| AD695763 | 91F6A0 | CDCC64 | 00 | 00 | FF | 00 |
Timestamp
Indicates when record was generated
{AD}{69}{57}{63}{91}{F6}{A0}{CD}{CC}{64}{00}{00}{FF}{00}
First 4 bytes are timestamp in hex:
AD695763
Converter: https://www.epochconverter.com/hex
Converted Data:
- GMT: Sunday, March 12, 2062 4:07:05 AM
- Your time zone: Sunday, March 12, 2062 6:07:05 AM GMT+02:00
- Decimal timestamp/epoch: 2909362025
Longitude
Longitude - encoded in 3 bytes data. Server which gets this data should divide result from 46603,375 and subtract 180 in order to get actual longitude value. This coefficient is got in following way: 16777215(maximum 3 bytes value) divided from 360 (maximum longitude value then 180 is added). This calculation is used to fit negative and positive values to 3 bytes width variable.
{AD}{69}{57}{63}{91}{F6}{A0}{CD}{CC}{64}{00}{00}{FF}{00}
5-7th bytes are longitude:
91F6A0 convert to decimal -> 6525430
(6525430/46603.375) - 180= -39.9794542777
Latitude
Latitude - calculated in same way as longitude but since latitude maximum value is two times smaller than longitude it can produce a bit more accurate data. Coefficient for latitude is 93206,75. This coefficient is got in following way: 16777215(maximum 3 bytes value) divided from 180 (maximum latitude value then 90 is added). This calculation is used to fit negative and positive values to 3 bytes width variable.
{AD}{69}{57}{63}{91}{F6}{A0}{CD}{CC}{64}{00}{00}{FF}{00}
8-10th bytes are latitude:
CDCC64 convert to decimal -> 10538444
(10538444/93206.750)-90=23.0652447382
SBD AVL ID And Flags
SBD AVL ID and flags – Custom id that will indicate what caused the record to be generated (if periodic record are generated, id is not used).
From 03.28.06.Rev.320 supported all AVL ID's listed below.
{AD}{69}{57}{63}{91}{F6}{A0}{CD}{CC}{64}{00}{00}{FF}{00}
11-th byte is SBD AVL ID
00 convert to decimal -> 0
DIN/DOUT Info
Din/Dout info - Displays configured IO elements in parameter id 99422
{AD}{69}{57}{63}{91}{F6}{A0}{CD}{CC}{64}{00}{00}{FF}{00}
12-th byte is DIN\DOUT info
00 converted to binary is 00000000
00000000 -> bits presenting DINs and DOUTs state in 1 - high, 0 - low or turned off (if not configured to be sent in SBD record), DINs and DOUTs are represented in this order in DIN/DOUT info bits DIN1, DIN2, DIN3, DIN4, DOUT1, DOUT2, DOUT3, DOUT4
| Hex | 00 | Converted to binary = | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|
| DIN1 | DIN2 | DIN3 | DIN4 | DOUT1 | DOUT2 | DOUT3 | DOUT4 | |||
Examples with a different value:
| Hex | 16 | Converted to binary = | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|
| DIN1 | DIN2 | DIN3 | DIN4 | DOUT1 | DOUT2 | DOUT3 | DOUT4 | |||
| Hex | 69 | Converted to binary = | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 |
|---|---|---|---|---|---|---|---|---|---|---|
| DIN1 | DIN2 | DIN3 | DIN4 | DOUT1 | DOUT2 | DOUT3 | DOUT4 | |||
| Hex | 42 | Converted to binary = | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|
| DIN1 | DIN2 | DIN3 | DIN4 | DOUT1 | DOUT2 | DOUT3 | DOUT4 | |||
Reserved
Reserved - Not used anywhere, but left due to compatibility with fm6 project.
{AD}{69}{57}{63}{91}{F6}{A0}{CD}{CC}{64}{00}{00}{FF}{00}
13-th byte is reserved for FM devices and on FMB platform not used, therefore it is always FF.
Speed
Speed – Indicates the speed of the vehicle if configured.
{AD}{69}{57}{63}{91}{F6}{A0}{CD}{CC}{64}{00}{00}{FF}{00}
14-th byte need to be converted from HEX to decimal, only GNSS Speed used, if no GNSS fix FF - 255 sent, if not configured to send as SBD IO element 0 sent.
SBD AVL ID’s
| ID | IO Element |
|---|---|
| 0 | Periodic record |
| 1 | Digital Input 1 |
| 2 | Digital Input 2 |
| 24 | Speed |
| 179 | Digital Output 1 |
| 247 | Crash |
Additional Information
- 1 Iridium data packet uses 14 bytes of data, this means when using SBD8 service plan we get 8000/14=571 records, please keep this in mind when testing out the iridium terminal.
- The device is able to generate 1 record every minute. That is about 9,5 hours of continuous record generation (once every minute), which can deplete the plan.
- Exceeding the plan will introduce overdraft fees, unless SBD upload limit is configured.
- Once device reaches SBD limit it will stop sending records via Iridium terminal.


