Intelyt orporated ITAGV33 GPS tracking device with 802.15.4 Radio and 3G cell modem User Manual iDAC Mode
iControl Incorporated GPS tracking device with 802.15.4 Radio and 3G cell modem iDAC Mode
Command List

iControl Incorporated
iTAG Command List
Revision 2.2
Date: January 2015

Command List 5-Aug-15
i
Command List Index
iTAG_Mode ...................................................................................................................................... 8
iTAG_ID ......................................................................................................................................... 10
No_OP............................................................................................................................................. 11
Forward_Packet .............................................................................................................................. 12
Load_Config ................................................................................................................................... 13
Send_Config ................................................................................................................................... 14
Network........................................................................................................................................... 15
Port_CFG ........................................................................................................................................ 17
Set_Time ......................................................................................................................................... 18
Net_Type......................................................................................................................................... 19
Power_Cfg ...................................................................................................................................... 20
IO_Addr .......................................................................................................................................... 21
Default_Dest ................................................................................................................................... 22
Power_Override .............................................................................................................................. 23
Power_Save..................................................................................................................................... 24
AT_Dial .......................................................................................................................................... 25
AT_Answer ..................................................................................................................................... 26
Modem_Type .................................................................................................................................. 27
Hangup_Modem ............................................................................................................................. 28
Enable_Schedule ............................................................................................................................. 29
Radio_Parameter ............................................................................................................................. 30
Broadcast_Address ......................................................................................................................... 31
LAN_Device ................................................................................................................................... 32
CMD_Retry..................................................................................................................................... 33
Phone_Number ............................................................................................................................... 34
Password ......................................................................................................................................... 35
Upload_ACL ................................................................................................................................... 36
Upload_Data ................................................................................................................................... 36
Upload_Macros ............................................................................................................................... 36
Upload_TextMsg ............................................................................................................................ 36
Upload_Schedules........................................................................................................................... 36
Save_Data ....................................................................................................................................... 37
Modem_Parms ................................................................................................................................ 38
iModem ........................................................................................................................................... 40
Serial_R/W ...................................................................................................................................... 41
General_R/W .................................................................................................................................. 42
Beacon............................................................................................................................................. 43
Track ............................................................................................................................................... 44
Test_Condition ................................................................................................................................ 46
MAC_Addr ..................................................................................................................................... 48
Stop_Macro ..................................................................................................................................... 49
Run_Macro ..................................................................................................................................... 50
Load_Macro .................................................................................................................................... 51
Delay_Sec ....................................................................................................................................... 52

Command List 5-Aug-15
ii
Delay_tSec ...................................................................................................................................... 53
Delay_mSec .................................................................................................................................... 54
Wait_While ..................................................................................................................................... 55
LCD_CMD ..................................................................................................................................... 57
Scale_Factors .................................................................................................................................. 58
Labels .............................................................................................................................................. 59
LCD_Strings ................................................................................................................................... 60
Text_Msg ........................................................................................................................................ 61
Reset_Buffer ................................................................................................................................... 62
Init_iTAG ........................................................................................................................................ 63
Commit_Flash ................................................................................................................................. 64
Load_Defaults ................................................................................................................................. 65
Load_Flash ...................................................................................................................................... 66
Set_Password .................................................................................................................................. 67
DataByte ......................................................................................................................................... 68
Check_Alarm .................................................................................................................................. 69
Check_Alarm_Save ........................................................................................................................ 69
Server_Addr .................................................................................................................................... 71
Load_Sched..................................................................................................................................... 72
Super_Reset .................................................................................................................................... 73

iControl Incorporated Confidential Page 1 5-Aug-15
iTAG Command List
iTAG Operation Description.
The iTAG is configured through the 802.15.4 radio interface for network management, trip
set-up, and checkout. The factory default radio channel is 802.15.4 channel 21. All
commands for controlling the radio are identified in the iTAG Command List.
Once a User as completed the initial iTAG configuration, complete control and operation
of the iTAG can be accomplished through the radio link interface using commands available
in the iTAG Command List.
The radio in the iTAG is nominally operated in a power saving mode with the receiver
periodically enabled and “listening” for commands or data requests. A key element to the
power saving mode is the principle of “tag-talks-last”. In this mode, battery power is
conserved by only responding to messages that are sent directly to the specific iTAG MAC
address or mutual broadcast address. For a majority of iTAG operation, the iTAG is in a
deep power saving mode (~98% of the time). The iTAG will only transmit when it receives
a properly encrypted message during its receiver active period. The encrypted message
directed to the iTAG may include information about which channel the iTAG should use for
further transmissions. Once, the communication parameters are exchanged, there will
typically be a period a several seconds of active radio transmission as the iTAG relays data.
The data transmitted may either be security data destined for government servers, and/or
commercial data destined for the end customer. This data may originate from internal flash
storage or it may be received and relayed from another compatible device.
Command Formats:
To enhance speed, minimize memory, and reduce network traffic, iTAG’s use binary codes
(command ID’s) to represent iTAG functions. Command codes eliminate the need to perform
string comparisons to determine a particular operation. When encrypted, command codes are
also harder to break since “named” commands are identifiable patterns.
iTAG User interfaces, (iControl’s iView and other applications) convert iTAG command
ID’s to “named” strings to aid in interpreting iTAG commands. Each command listed in this
document includes the iVIEW command name (ASCII string), the hexadecimal command
ID, and the decimal equivalent command used by PC terminal emulators. These command
descriptions are the minimum information required to configure and operate an iTAG using
the terminal emulator available on most PC’s (HyperTerminal).
iTAG’s may be commanded in either binary or ASCII mode. User interfaces with direct
serial interfaces to the iTAG use ASCII Decimal commanding. All commands and telemetry
transmitted over an iTAG network are commanded in binary.

iControl Incorporated Confidential Page 2 5-Aug-15
The iTAG OS provides multiple levels of security. The User is responsible for determining
the appropriate level protection when setting up an iTAG network.
Command Types:
destination cmd
| | |
ASCII Decimal: Z 0 0 0 0 1 2 3 4 97 1 1(ENTER)
ASCII decimal commands are the simplest to use when getting started. ASCII decimal
commands may be sent from any terminal emulator. No synchronization, time code, or CRC
is required.
Alternate ASCII: r 97 1 1(ENTER)
A command may also be entered using the r identifier. A leading ‘r’ or ‘R’ indicates that the
command is for the connected iTAG which is most often the case when connected to the
serial port of that iTAG.
Binary:
Binary commands require synchronization patterns, length, time code pads, and a CRC.
Binary commands may be encrypted.
ASCII Name: Run_Macro<parameter1><parameter2> etc
iControl’s iView provides command code translation to ASCII names. Any translation from
command code to ASCII name may be programmed using a customer provided application.
iView provides the necessary encryption of the final command format.

iControl Incorporated Confidential Page 3 5-Aug-15
ASCII Commands
The ASCII decimal format is the easiest to implement. ASCII commands do not require (or
support) a Cyclical Redundancy Code (CRC), Time Code pad, or encryption. Users may
deploy an iTAG using only ASCII commanding.
The only security feature available with ASCII commanding is password protection.
To send an ASCII command, a command file may be generated from any text editor, and
transferred to an iTAG using the “Transfer Text File” option in HyperTerminal. Each ASCII
command from a PC to an iTAG must use the “Z” or “R” command format. The “Z” prefix
signals the iTAG to send an ASCII formatted command to the indicated address. All
commands included in this list may be sent in ASCII mode with an “Z” or “R” at the start of
the command, “Space” as character delimiter, and a carriage return at the end.
Examples:
The following commands may be sent (using HyperTerminal) to an iTAG whose 8 byte ID is
Destination”. The Destination Address is the first 8 bytes, then command, and a carriage
return. The Destination Address must match the iTAG_ID for which the command is
intended. An iGATE will automatically forward commands it receives with different
destination iTAG_ID’s.
Z 0 0 0 0 0 1 2 255 1 5 5 Destination(0.0.0.0.0.1.2.255), Command (1 5 5)
Same command for the iTAG that we are directly connected to
R 1 5 5
Invalid commands,
1 2 3 4 5 5 6 (need ‘Z’ and command is too short )
Z 0 0 0 0 1 2 3 (too few characters, need full destination and command)
Z12345678123 (need spaces between each character)
Z 0 255 1000 1 1 2 3 4 1 2 (All numbers represent 1 byte, no number larger than 255)

iControl Incorporated Confidential Page 4 5-Aug-15
ASCII Command Files:
iTAG ASCII commands may be grouped in a file and loaded all at once with a terminal
emulator or other PC application. The command files may be built using common text
editors such as Notepad, Word, etc.
iTAG command files may include comment fields and up to 1k bytes of commands to be
sent. All characters following a “//” are considered comments and are ignored by the iTAG
processing functions.
The only iTAG serial ports which are enabled for ASCII commanding are User Port, Modem
Port, or DataPort. If password protection is enabled for ASCII commanding, include a
Password command at the beginning of the command file.
ASCII Command File Examples:
The following text may be copied and pasted into a text (.txt) file. If HyperTerminal (or
other application) sends this file to an iTAG (via modem, User Port etc) the iTAG will
process all commands and commit them to flash.
Example1.txt
// This File is an iTAG command file.
// To load, send file using any terminal emulator with a “Transfer Text” Option
// Send file once. The iTAG will begin running its schedule as long as schedule
// checking is enabled.
// R 253 0 255 255 255 255 23 30 0 97 6 1 // Run Macro 6 at 11:30:00 PM
R 253 1 255 255 255 255 4 15 0 97 0 1 // Run Macro 0 at 4:15:00 AM
R 253 2 255 255 255 255 19 15 97 0 1 // Run Macro 0 at 7:15:00 PM
R 99 0 16 2 18 0 2 17 1 4 100 0 2 120 2 17 0 1 20 // Load Macro 0
R 99 6 5 2 18 1 1 29 // Load Macro 6
R 240 // Commit to flash
Example2.txt
// This File is an iTAG command file.
// To load , send file using any terminal emulator with a “Transfer Text” Option
// Send file once.
// File loads Macro with Relay cycling Macro. Turns all relays off, delays 0.100 seconds,
// Turns all relays on
// R 99 0 15 4 8 2 0 0 4 101 0 0 1 4 8 2 255 255// Load Macro 0 w/Relay cmds
R 240 // Commit to flash
To run Example2, send the command; R 97 0 1 (Run_Macro[0] once)

iControl Incorporated Confidential Page 5 5-Aug-15
Binary Commands
Binary commands are sent between iTAG’s and between an iGATE and iTAG using the
radio interface. As such, this document does not cover binary commanding. This document
covers only user initiated commands.

iControl Incorporated Confidential Page 6 5-Aug-15
Power Considerations
As a remote asset, an iTAG will generally be powered by a battery with no means or very
minor means of being recharged. As such, operating in power savings mode is an important
concept.
The present iTAG firmware implements a power savings mode in which the iTAG will sleep
for most of each second (see commands 12, 15, and 16). During the remaining fraction, the
iTAG may come out of sleep by one of three actions: 1) It is time for a scheduled command
to be executed, 2) A radio packet addressed for this iTAG is received, or 3) There is user port
activity on the serial port.
When a scheduled command is executed, it may or may not cause the iTAG to come out of
power savings mode.
Each command is that will affect the sleep mode is noted in the section for each command.
In general, the iTAG will not sleep when a macro is running.
When the iTAG wakes up from sleep, it will remain awake for the number of seconds
indicated by command 16.

iControl Incorporated Confidential Page 7 5-Aug-15
iControl Products
There are a variety of iControl products. Each of these products implements the same basic
command set.
Due to functionality and processor based resource constraints, some products may or may not
implement certain functions.
Each command ID is identified as being implemented by each product by indicating one or
more of the following abbreviations.
Product Name
Abbreviation
iTAG
GEN2
3rd Generation iTAG
GEN3
iGATE
GATE
mLOCK
LOCK
miKEY
KEY
iCHIME
CHIME
iGATE Repeater
RPT

iControl Incorporated Confidential Page 8 5-Aug-15
Command List
iTAG_Mode: CMD_ID=0x01 (decimal 1)
Format: r 1 <iTAG_Mode> [Param]
iTAG_Mode sets the data reporting function on the iTAG. Additional functionality may
also be accomplished by appending Run_Macro commands to the end of the iTAG_Mode
command. If a User wishes to execute additional commands while the iTAG is in a broadcast
mode, other iTAG functions may be linked to the mode by pointing to a Macro at the end of
the iTAG mode command. While the iTAG mode is 0x00 (0) the iTAG is not broadcasting
data over the Local Area Network (LAN).
Definitions:
<Param>
<iTAG_Mode> 0x00 Silent N/A
0x01 One Sample N/A
0x02 Stream (1Hz): N/A
0x05 Stream “N” Samples (0<”N”<255)
(Once per second)
0x06 Stream Samples (0<”N”<255)
(For “N” minutes)
0x0a Send record to default destination
P1: IO MSB Address
P2: IO LSB Address
P3: Xmit Port
0x0b Send record to destination
P1: IO MSB Address
P2: IO LSB Address
P3: Xmit Port
P4-P7: Destination Address
0x0c Send record using repeater channel (RPT)
P1: IO MSB Address
P2: IO LSB Address
P3: don’t care
P5: 0, use repeater channel
Otherwise, indicates channel
Example:
Append the Run_Macro command at the end of the iTAG_Mode to cause the iTAG to
execute Macro_ID (3) once per second while transmitting data over the LAN.
r 1 2 97 3 1

iControl Incorporated Confidential Page 9 5-Aug-15
See Also: Run_Macro, Load_Macro, IO_Address
Last updated 11-Nov-08

iControl Incorporated Confidential Page 10 5-Aug-15
iTAG_ID: CMD_ID=0x03 (decimal 3)
Format: r 3 <D3> <D2> <D1> <D0> [DeviceType]
iTAG_ID sets the four byte iTAG identification number.
This ID may also be programmed from the Setup Menu. (GEN2, GATE, RPT)
Each iTAG should have a unique four byte address. Group calls for multiple iTAG’s may be
achieved by setting Group Call ID’s via the Broadcast_Address command.
This command also updates the first four bytes of the MAC_Addr with this entered
iTAG_ID value.
If DeviceType is included and it is ‘I’, ‘g’, or ‘G’, then the system Device Type variable is
also updated.
Description:
<D3> Most Significant Byte of iTAG address
<D2>
<D1>
<D0> Least Significant Byte of iTAG address
[DeviceType] If ‘I’, ‘g’, or ‘G’, then system device type is updated.
Example:
Program new iTAG_ID (0.1.2.3)
r 3 0 1 2 3
See Also: Broadcast_Address, Default_Dest, Server_Address, Commit_Flash
Last updated 11-Nov-08

iControl Incorporated Confidential Page 11 5-Aug-15
No_OP: CMD_ID=0x04 (decimal 4)
Format: r 4 [D3] [D2] [D1] [Dn]
An iTAG No_Op command is used to test the Network connection to an iTAG. Sending a
No_OP command from one iTAG to another causes the receiving iTAG to respond to the
Source ITAG with an ACK packet containing the iTAG_ID. A No_OP causes the iTAG to
perform no other functions. Data appended to the end of the No_Op command can be used to
perform a communication test. The user may send up to 236 bytes of data using the No_OP
command. The returned ACK will append the user data to the end of the ACK. A failed
CRC error will be written to the iTAG display if a communication error occurs.
Examples:
Send No_Op packet to iGate 0.0.0.0
This command is useful to establish whether a recently installed iTAG is connected to the
iTAG LAN. When an installer sets up an iTAG, the No_OP command can be sent to the
network iGATE while at the iTAG location. If networked, the iGATE will respond with an
ACK packet to the iTAG. The installed iTAG will print to the screen that an ACK has been
received from the iGATE. If available, the Radio signal strength will be displayed when the
ACK is received.
R 5 1 0 0 0 0 4 (standard No_OP command)
R 5 1 0 0 0 0 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 (No_OP with test data)
See Also: Forward_Packet
Last updated 11-Nov-08

iControl Incorporated Confidential Page 12 5-Aug-15
Forward_Packet: CMD_ID=0x05 (decimal 5)
Format: r 5 <Forward_Type> <Dest> <Forward Packet>
iTAG’s may forward data packets and commands to other iTAG’s or iGATEs using the
Forward_Packet command. The Forward_Packet provides all of the necessary routing
information for the packet to make multiple hops, command an iGATE, or send data to a
server through a complex network topology.
Decimal:
<Forward_Type>: ‘C’: Forward to an iCHIME (GEN2)
0: Forward packet once. Do not wait for an ACK. Use encryption
configured on iTAG (see Net_Type)
1: Forward packet using transmit buffer configured for timeout
and retries (see Command_Retry). Use encryption configured
on iTAG
‘s’: Forward packet once. Do not wait for an ACK. Do not
encrypt. (GEN2)
243: Forward packet once. Do not wait for an ACK. Use
encryption. Note 243 == 128 | ‘s’ (GEN2)
‘S’: Forward packet using transmit buffer configured for timeout
and retries. Do not encrypt (GEN2)
211: Forward packet using transmit buffer configured for timeout
and retries. Use encryption. Note 211 == 128 | ‘S’ (GEN2)
<Dest>: Four byte address which is the desired destination ID for the
packet.
< Forward Packet>: Data to be sent to other iTAG’s
Example:
Send No_Op packet to iGate 0.0.0.0
r 5 1 0 0 0 0 4
Send iTAG_Mode command to (4.5.6.7)
r 5 1 4 5 6 7 1 2
See Also: Command_Retry, Net_Type
Last updated 11-Nov-08

iControl Incorporated Confidential Page 13 5-Aug-15
Load_Config: CMD_ID=0x06 (decimal 6)
Format: R 7 <Lat> <Lon> <Alt>
iGATE location information may be sent using the Load_Config command. The
Load_Config command sets the iGATE position in memory.
The iGATE location is used as the default location when GPS has not been acquired. It is
also used to calculate distance relative to an iGATE.
Definitions:
<Lat> Latitude of the iGATE in degrees (ASCII formatted float)
<Lon> Longitude of the iGATE in degrees (ASCII formatted float)
<Alt> Altitude of the iGATE in degrees (ASCII formatted float)
Examples:
R 6 “30.5 -121.7 10.” Set the iGATE position to 30.5 degrees latitude, -121.7 degrees
longitude, and altitude of 10
R 6 51 48 46 53 32 45 49 50 49 46 55 32 49 48 46 Same command using ASCII codes
See Also: Appendix C, Packet ID 0x00 0xfa
Last updated 11-Nov-08

iControl Incorporated Confidential Page 14 5-Aug-15
Send_Config: CMD_ID=0x07 (decimal 7)
Format: r 7 <port> <param>
iTAG configuration data may be requested (or sent) using the Send_Config command. The
Send_Config command causes the iTAG to collect the specified data (defined by Param)
and send the data out the specified Port. Data format is automatically determined by the
function define for the specified port.
Any packet id (as defined in Appendix C) with the first byte of 0 can be sent using this
command.
Definitions:
<port> 0-2 Serial port used for configuration data transmission
<param> 6 Standard iTAG configuration data (Packet ID 0x00 0x06)
23 Broadcast ID’s (up to 20 four byte addresses) (ID 0x00 0x17)
27 Programmed Phone Number for Modem dial outs (ID 0x00 0x1b)
Examples:
r 7 1 6 Send the “standard” iTAG configuration parameters out serial port 1
r 7 2 23 Send all programmed Broadcast ID’s out serial port 2
See Also: Broadcast_ID, Phone_Number, Appendix C
Last updated 11-Nov-08

iControl Incorporated Confidential Page 15 5-Aug-15
Network: CMD_ID=0x08 (decimal 8)
Format: r 8 <Type> [Params]
iTAG’s use an 802.15.4 radio for LAN communications. Network commands are used to
configure the network.
Definitions:
Params
<Type> ‘A’ Force association to specified state (‘l’, ‘L’, ‘N’, ‘S’, ‘W’)
P0: association state
P1: Comm (Association) timer value – stay associated P1
seconds
‘C’ Set Commissioned state
P0: ‘Y’ or ‘N’: Commissioned state is Yes or No. See
Test_Condition
‘D’ Action when beacon received from specified address
P0: ‘E’-enable macro, ‘D’-disable, ‘C’-command enabled
P1-P4: 4 byte address to check against beacon sender
P5: Macro number for P0=‘E’, Command length for P0=’C’
P6: Command number for P0=’C’
P7-Pn: Command parameters for P0=’C’
‘I’ Setup Internetworking for meshing
‘J’ Insert a unit into ACL (Join)
P0-P7: 8 byte address to insert into the ACL
P8: 0x80 or 0 indicates whether to use encryption or not when
communicating with this unit
P9: Non zero indicates that this unit has power saving enabled.
Send wakeup packets to this unit before trying to communicate.
‘L’ Delete unit form the ACL (Leaving)
P0-P7: 8 byte address of unit to remove from the ACL
‘R’ If address is different from destination ID, send an association request
P0-P3: 4 byte address to send the association request to
‘T’ Set ACL Timer to specified value. Unit in ACL stay in ACL for this
specified number of seconds
P0: MSB of ACL timer (unsigned int)
P1: LSB of ACL timer (unsigned int)
Examples:
r 8 ‘C’ ‘Y’ Set commissioned state to Yes
r 8 ‘DC’ 14 0 0 1 3 249 10 11 Set DataByte[10]=11 when a beacon from 14 0 0 1 is
received

iControl Incorporated Confidential Page 16 5-Aug-15
r 8 ‘J’ 0 0 0 0 1 2 3 4 128 5 Add unit 0.0.0.0.1.2.3.4 to the ACL, unit uses encryption (128),
unit uses power save (5)
r 8 ‘T’ 1 5 Set units ACL Timer to 261 seconds
Last updated 11-Nov-08

iControl Incorporated Confidential Page 17 5-Aug-15
Port_CFG: CMD_ID=0x09 (decimal 9)
Format: r 9 <port> <baud> <cfg> <function> [Param]
Port_CFG remotely (or via a Macro) change a serial port configuration identified by <port>.
Once the Port_CFG is executed, the specified port is re-initialized.
The iTAG serial ports can be configured via the iTAG Setup Menu. (GEN2, GATE, RPT)
Definitions:
Param
<port> Serial port to be changed (0-2)
<baud> New baud rate, ranges from 1.2-115 Kbps (use baud/1200)
<cfg> For Radio (port 2) specify radio parameters
<function> 2: LANPort[0]
3: LANPort[1]
4: ModemPort
5: DataPort
P0: ‘T’ or ‘F’, enables checking of this serial port as a user
interface
6: LCD port
‘D’: Disable echo port (Not implemented)
P0: Port number to be used as an echo port
‘E’: Set Echo Port (Not implemented)
Example:
Set Serial Port 1, to 57.6KBps, use for LANPort[1]
R 9 1 48 0 3
See Also:
Last updated 11-Nov-08

iControl Incorporated Confidential Page 18 5-Aug-15
Set_Time: CMD_ID=0x0a (decimal 10)
Format: r 10 <D0> <D1> <D2> <D3> <D4> <D5> <D6>
Set_Time programs the iTAG real-time clock using seconds since 1980. This command is
not implemented.
Example:
Set timer to 1(month) 2(day) 3(year) 4(week day) 5(hour) 6(minute) 7(seconds): January 2,
1983, 05:06:07. Week Day is ignored.
r 10 1 2 3 4 5 6 7
See Also:
Last updated 12-Nov-08

iControl Incorporated Confidential Page 19 5-Aug-15
Net_Type: CMD_ID=0x0b (decimal 11)
Format: r 11 <cmd> <Params>
Net_Type defines alternative addressing schemes available on iTAG’s along with an
encryption key. In most cases, Net_Type is not a command sent over the LAN. Typically,
Net_Type is one of many commands in an iTAG configuration file which programs iTAG’s
prior to deployment. It is possible to use Net_Type to periodically change an encryption key
to increase the security of a Network. Extreme caution should be used when sending
Net_Type over an established LAN network. Changing an iTAG address scheme or
encryption may render an iTAG unreachable until the Network iGATE has an updated
configuration also.
Definitions:
Params
<cmd> ‘I’|’Z’|’F’: Set Network type to iControl, Zigbee, or Fulton respectively
‘K’ Set encryption Key
P0: ASCII formatted index of encryption key to set
P1-P16: Encryption key
‘E’ Enable or disable encryption for the radio network
P0: 0 disables encryption, any non-zero enables
encryption
Examples:
Create an iTAG configuration file which defines the network type (wireless LAN) and sets
encryption key 0 to “myencryptionkey0”. The configuration file should also define the
iTAG_ID, and Radio_Type. Make sure that the configuration file commits the changes to
iTAG flash.
Note: The Default Broadcast_Address is (0.0.0.0).
The Configuration file would contain.
r 3 0 0 0 1 // Set the ITAG_ID to (0.0.0.1)
r 11 ‘I’ // Use iControl wireless LAN
r 11 ‘K0’ “myencryptionkey0” // load encryption key 0
r 25 “Z” // Use Zigbee Radio
r 240 // Commit changes to flash
See Also: Configuration Files, Broadcast Address, Network Security
Last updated 11-Nov-08

iControl Incorporated Confidential Page 20 5-Aug-15
Power_Cfg: CMD_ID=0x0c (decimal 12)
Format: r 12 <Normal> <Sleep> <Macro>
Power_Cfg sets the normal and Sleep mode power configuration. During normal operation,
the Radio, GPS, and ASIC are enabled. In this configuration the iTAG draws approximately
100 mamps. To reduce power, the iTAG may be placed in a sleep mode using a command or
programmable timeout. During Sleep, the iTAG either wakes up once per second to check
for radio traffic, a scheduled command, or serial port data. While in Sleep, an iTAG uses
approximately 10 mamps. Both the normal and sleep configurations may be set by the
Power_Cfg command.
Definitions:
Power mode setting for normal operation
<Normal> 0x01 Enable radio
0x02 Enable GPS
0x04 Enable ASIC
Power mode sitting during sleep operation
<Sleep> 0x01 Enable radio
0x02 Enable GPS
0x04 Enable ASIC
0x08 Enable deep sleep (Deprecated)
0x10 Enable sleep
<Macro> Not implemented
Example:
While awake, use a completely powered iTAG, while in Sleep, power down everything.
Note: This command only needs to be sent once to maintain this sleep/wake configuration.
r 12 7 16
See Also: Power_Save
Last updated 11-Nov-08

iControl Incorporated Confidential Page 21 5-Aug-15
IO_Addr: CMD_ID=0x0d (decimal 13)
Format: r 13 <BoardAddress> <ExtAddress>
Legacy hardware allowed a unit interface to a variety of Input and Output (IO) devices. Each
IO interface board had a unique address. An IO address would include a Board address and
an Extended address; thus the naming convention.
IO_Addr is typically used to set the default address of the iTAG IO. When the iTAG_Mode
is set to send data, the current value of IO_Addr is used to build the packet sent over the
LAN.
Definition:
<BoardAddress> and <ExtAddress> are equivalent to the two byte Packet ID shown in
Appendix C.
Example:
Set Default IO address to reflect an Analog-to-Digital status packet (56)(12).
r 13 56 12
See Also: Appendix C, iTAG_Mode, Save_Data, Upload_Record, DataByte
Last updated 11-Nov-08

iControl Incorporated Confidential Page 22 5-Aug-15
Default_Dest: CMD_ID=0x0e (decimal 14)
Format: r 14 <D3> <D2> <D1> <D0>
When the iTAG must send an un-requested data packet (like alarms) to the iGate or Server,
the iTAG uses the Default_Dest as the sending address. Typically, the Default_Dest should
be the same four byte address as the network’s iGate ID.
Definition:
<D0> Least significant Byte of Destination address
<D1>
<D2>
<D3> Most significant Byte of Destination address
Example:
Change the iTAG default destination ID to (0.0.0.0)
r 14 0 0 0 0
See Also: Check_Alrms, Run_Macros
Last updated 11-Nov-08

iControl Incorporated Confidential Page 23 5-Aug-15
Power_Override: CMD_ID=0x0f (decimal 15)
Format: r 15 <PowerCfg>
Power_Override sets the current power configuration to that specified by the PowerCfg
bitmask parameter.
Definitions:
<PowerCfg> 0x01 Enable radio
0x02 Enable GPS
0x04 Enable ASIC
0x08 Enable deep sleep (Deprecated)
0x10 Enable sleep
Example:
Enable only GPS and ASIC.
r 15 6
See Also: Power_Cfg
Last updated 11-Nov-08

iControl Incorporated Confidential Page 24 5-Aug-15
Power_Save: CMD_ID=0x10 (decimal 16)
Format: Z(Source) (Destination) (16) (Power_Save) (seconds)
The iTAG will enter Sleep mode after the sleep counter decrements from the Power_Save
count to zero. Setting Power_Save to zero disables the iTAG from transitioning into Sleep
mode. Any Power_Save value above zero, represents the number of seconds before the
iTAG will transition to Sleep.
While in Sleep mode, the iTAG checks to see if any Scheduled commands need to be
processed. Also, all serial ports are monitored to see if any activity indicates a transition to
normal operation may be required. When an iTAG is wakened, the Power configuration on
wake up is controlled by the Power_Cfg. The initial Power_Save count remains the same
value set by the Power_Save command. The power down count re-starts from the
Power_Save count. If there is no serial port activity, or executing macros, the iTAG will
return to sleep mode after the Power_Save counter decrements to zero.
Definitions:
<Power_Save> 0x00 Disable Power_Save
1-255 Transition to Power Save mode after (seconds)
Example:
Enable Sleep mode with a Power_Save count down of 10 seconds (0x0a).
S 0 0 0 0 1 2 3 4 16 10
Last updated 11-Nov-08

iControl Incorporated Confidential Page 25 5-Aug-15
AT_Dial: CMD_ID=0x11 (decimal 17)
Format: r 17 <Enable | Disable>
An iTAG that is configured with a modem uses the AT_Dial command to enable (or disable)
an attempt to communicate with iVIEW using the modem. If a modem is not enabled, the
AT_Dial command will be ignored. The number the modem uses to dial is set with the
Phone_Number command.
When AT_Dial is enabled, AT_Answer is automatically disabled.
Definitions:
<Enable/Disable>: 0x01= Enable modem dial out
0x00= Disable modem dial out
Example:
Command the modem to dial the stored Phone_Number
r 17 1
See Also: Phone_Number, AT_Answer, Set_Modem
Last updated 11-Nov-08

iControl Incorporated Confidential Page 26 5-Aug-15
AT_Answer: CMD_ID=0x12 (decimal 18)
Format: r 18 <Enable | Disable>
An iTAG that is configured with a modem utilizes the AT_Answer command to enable (or
disable) checking for connections on the modem. If a modem is not enabled, the AT_Answer
command will be ignored. An iTAG may leave the parameter AT_Answer equal to 0x01
(Answer enable) even if the modem is not receiving a call. The parameter AT_Answer
simple permits the iTAG to answer if a remote computer is attempting to communicate via
the modem.
Definition:
<Enable/Disable>: 0x01= Enable modem Answer
0x00= Disable modem Answer
Example:
r 18 1
See Also: Phone_Number, AT_Dial, Set_Modem
Last updated 11-Nov-08

iControl Incorporated Confidential Page 27 5-Aug-15
Modem_Type: CMD_ID=0x13 (decimal 19)
Format: r 19 <Modem_Type>
To enable the iTAG to use a modem, the Modem_Type command is sent to enable the
appropriate iTAG drivers. Before enabling the iTAG Modem_Type, the modem serial port
must be enabled for modem use and the corresponding modem baud rate should be selected.
Check the Set Up Menu to verify the modem serial port properties. (GEN2, GATE, RPT)
Definition:
< Modem_Type > ‘N’: No Modem
‘P’: PSTN
‘C’ Cellular connecting to remote PSTN
‘s’: Cellular using SMS
‘S’: Satellite
‘e’: Ethernet with DNS and DHCP enabled
‘E’: Ethernet
‘g’: GSM using GPRS
‘i’: Iridium SBD modem
‘I’: Iridium modem
Example:
Enable the iTAG to use the cellular modem using SMS.
r 19 “s”
See Also: AT_Answer, AT_Dial, Phone_Number, Hangup_Modem
Last updated 11-Nov-08

iControl Incorporated Confidential Page 28 5-Aug-15
Hangup_Modem CMD_ID=0x14 (decimal 20)
Format: r 20 [ModemState]
For general usage, the Hangup_Modem command ends the present modem connection. In
most cases, the ModemState is set to ‘S’ which will (shutdown) power down and disable the
modem.
For a PSTN modem, if the modem is connected, the iTAG may hang-up the modem and
return to command mode using the Hangup_Modem command. The Hangup_Modem
command is equivalent to the standard (AT modem command) ATH0. If the user wants to
override the modem state (in the iTAG software), an optional parameter can be provided
which controls the software state. This feature is useful for writing custom modem drivers
using macros, or adapting the iTAG to unsupported modem types.
Please Note: Overriding the modem state parameter does not control the external
modem, only the iTAG firmware state machine is affected by the ModemState
parameter i.e. (commanding ModemState=> Connect, does not mean the modem is
connected. The iTAG with “think” it is connected)
Definition:
< ModemState > ‘I’: Initialize modem
‘C’: Modem State is connected
‘G’: Modem command mode, while online
‘R’: Modem state = ready
‘O’: Modem is offline
‘D’: Modem is dialing a number
‘A’: Modem is answering a call
‘X’: Modem is waiting for a connection
‘S’: Shutdown modem
Example:
Send command to hang up modem, then reconfigure modem to Answer any incoming call.
r 20 // Hangup command
r 18 1 // AT_Answer = 1; Enable Answer
See Also: AT_Answer, AT_Dial, Phone_Number
Last updated 11-Nov-08

iControl Incorporated Confidential Page 29 5-Aug-15
Enable_Schedule: CMD_ID=0x15 (decimal 21)
Format: r 21 [Enable | Disable]
The iTAG Operating System supports stored commands which are executed at User specified
times. The stored commands utilize the clock/calendar function on the iTAG to determine
when a scheduled command should be executed. Enable_Schedule is used to enable or
disable the execution of stored commands. A User may wish to disable schedule checking to
prevent an iTAG from “Hanging up” during a commanded connection.
Definition:
<Enable/Disable>: 0x01= Enable Schedule Checking
0x00= Disable Schedule Checking
Example:
r 21 1 Enable Schedule checking
See Also: Load_Schedule, Dump_Schedule
Last updated 11-Nov-08

iControl Incorporated Confidential Page 30 5-Aug-15
Radio_Parameters: CMD_ID=0x16 (decimal 22)
Format: r 22 <TXpreamble> <TXtail> <bSpacing>
An iTAG configured with a LAN radio uses parameters to control the timing for transmit,
receipt and RX mode. TXpreamble is deprecated and no longer used, but is reserved for
future use. TXtail is the duration of time (milliseconds) that the iTAG waits before sending
an ACK. bSpacing is used in the Delay_mSec command.
Definitions:
<TXpreamble>: Deprecated
<TXtail>: 0-255 msec
<bSpacing>: 0-255 msec * DataByte[0] to delay in Delay_mSec command
Example:
Set Radio parameters
TXpreamble don’t care
TXtail to 150 msec
bSpacing 10 msec
r 22 0 150 10
See also: Delay_mSec
Last updated 11-Nov-08

iControl Incorporated Confidential Page 31 5-Aug-15
Broadcast_Address: CMD_ID=0x17 (decimal 23)
Format: r 23 <N_Addrs> <B03> <B02> <B01> <B00> … <Bn3> <Bn2> <Bn1> <Bn0>
An iTAG may be programmed with “Broadcast” addresses that are used as alternative
iTAG_ID’s. The iTAG will not respond with an ACK when commanded using a broadcast
address. Multiple iTAG’s may have the same broadcast address allowing groups of iTAG’s
to be commanded with a single command. Typical uses for broadcast addresses are
commanded time updates or Macro loads which all units in a group need. Up to 20 broadcast
addresses may be used per iTAG.
The factory default configuration defines one Broadcast_Address (0.0.0.0.). This allows
multiple iTAG’s to be programmed with the same Configuration File via the user interface.
iControl recommends retaining the first Broadcast_Address as a generic iTAG_ID for
configuration loading.
Definitions:
N_Addrs: 1-20 possible broadcast addresses (0 disables)
B00-B03: Broadcast address <0> (Bytes 1-4)
Bn0-Bn3: Broadcast address <n> (Bytes 1-4)
Example:
Program the following three broadcast addresses:
0.0.0.0
1.2.3.4
5.6.7.8
r 23 3 0 0 0 0 1 2 3 4 5 6 7 8
See Also: Configuration File
Last updated 11-Nov-08

iControl Incorporated Confidential Page 32 5-Aug-15
LAN_Device: CMD_ID=0x19 (decimal 25)
Format: r 25 <Device>
The iTAG LAN network device is an 802.15.4 compliant radio.
LAN device types are selected during iTAG initialization with the setup menu (GEN2,
GATE, RPT) or via a configuration command file.
Definitions:
<Device>: ‘N’: No Device (disables Devices)
‘Z’: 802.15.4 compliant device
Example:
Set LAN_Device for 802.15.4 compliant radio.
R 25 “Z”
See Also: iModem_Param
Last updated 11-Nov-08

iControl Incorporated Confidential Page 33 5-Aug-15
CMD_Retry: CMD_ID=0x1a (decimal 26)
Format: r 26 <TX_Attempts> <TX Retry Time> <MaxUploadFail>
Command transmissions are placed in the iTAG transmit queue. Commands are transmitted
immediately following the placement in the queue. After “TX_Attempts”, the packet is
discarded and a message is posted to the user interface. Each transmission attempt is
separated by “Retry Time” seconds. All commands forwarded from an iGate places
commands in the transmit queue. iTAG ACK’s are not placed in transmit queues.
Definitions:
< TX_Attempts > Number of times a packet may be sent before it is discarded
<TX Retry Time> Number of seconds to wait before attempting to send packet again
<MaxUploadFail> During a data upload attempt, the upload fails if the transmit fails
TX_Attemtps times. If this failure occurs MaxUploadFail times, the
iTAG is automatically disassociated
Example:
Set the transmit queue to discard messages after 4 attempts. After each transmission failure,
wait 8 seconds before attempting the next transmission. Allow four failed attempts at
uploading before disassociating.
R 26 4 8 4
See Also:
Last updated 11-Nov-08

iControl Incorporated Confidential Page 34 5-Aug-15
Phone_Number: CMD_ID=0x1b (decimal 27)
Format: r 27 ”(c0)(c1)(c2)(c3)….(cn)”
An iGATE or modem enabled iTAG can connect to either an ISP, modem bank , directly
to a customer phone line, connect using GPRS, or send an SMS message. All these
services use the Phone_Number command to set the default dial out number for
connections. Phone_Number is up to 20 ASCII characters long, and includes the
numbers 0-9 and “,”. Commas insert a 2 second delay between numbers while dialing.
Multiple commas may be inserted to allow switch board timing from internal phone
system to transition to external phone lines. Alternate numbers may be stored in Macros
which may be used in the event of a connection failure.
Examples:
Set the default dial out number to be 1 800 555 5555.
r 27 “18005555555”
Set the default dial out number to be, 9 wait 4 seconds then dial 555 1234.
r 27 “9,, 5551234”
See Also: Modem_Type, Appendix C
Last updated 11-Nov-08

iControl Incorporated Confidential Page 35 5-Aug-15
Password: CMD_ID=0x1c (decimal 28)
Format: r 28 <p0><p1><p2><p3>…<pn>
iTAG Set-Up and ASCII command functions may be password protected to prevent
accidental or deliberate commands from being executed. Password can be sent remotely
through the LAN or via the User Interface. The Password command is functionally the
same as entering the Set-Up Menu using the iTAG login via the User Interface. The
password is an ASCII alpha-numeric string with no more than 9 characters. Spaces and
control characters are not allowed in the password. When the Password command is
sent, both the Set Up menu and iTAG command processing functions are enabled. The
string which accompanies the Password command is the iTAG password. Sending a zero
length string disables both Set-Up Menu access and the command process functions.
The Factory default password settings are:
Password: “icontrol”.
SET-Up Menu: Password Required
ASCII Commanding: Access Permitted
Examples:
An iTAG has its password set to “yourword”. For security purposes, a User programmed
Macro[38] sends the password command “0” effectively disabling Set-Up menu access and
command processing. Send a command to the iTAG to re-enable ASCII commanding.
r 28 “yourword”
After the iTAG receives this command, access to the Set Up menu and command processing
is enabled. When the user is ready to disable access, send a zero length Password command.
R 28
Password may be used remotely to enable/disable iTAG access.
See Also: Set_Password, Run_Macro,Load_Macro
Last updated 11-Nov-08

iControl Incorporated Confidential Page 36 5-Aug-15
Upload_ACL: CMD_ID=0x1d (decimal 29)
Upload_Data: CMD_ID=0x1f (decimal 31)
Upload_Macros: CMD_ID=0x62 (decimal 98)
Upload_TextMsg: CMD_ID=0xc9 (decimal 201)
Upload_Schedules: CMD_ID=0xfe (decimal 254)
Format: r <cmd> <port> <n_packet>
To upload data to iVIEW (or other application),
Upload_ACL/Upload_Data/Upload_Macros/Upload_TextMsg/Upload_Schedules is
used to start the data transfer process. This command defines which serial port is used for the
upload. The user is responsible for knowing which port is required for the data transfer. The
port selected may be the UserPort, the LANPort, or the modemPort. The second parameter is
deprecated.
During the upload process, the MSB bit of the Board Address is set ‘high’ to indicate the data
is stored (not currently streaming).
Definitions:
<port>: 0: UserPort
1: ( modemPort, dataPort)
2: LANPort
<n_packet>: deprecated
Examples:
Command the iTAG to upload the ACL using port1.
r 29 1 4
Command the iTAG to upload the Macros using port2.
r 98 2 0
See Also: Network, Save_Data, Load_Macro, Text_Msg, Load_Schedule
Last updated 11-Nov-08

iControl Incorporated Confidential Page 37 5-Aug-15
Save_Data: CMD_ID=0x1e (decimal 30)
Format: r 30 <Board_Addr> <Ext_Addr>
Both iTAG’s and iGATE’s provide a flexible approach to save data for later upload. The
Save_Data command instructs the iTAG to collect data using the specified packet IDs. See
Appendix C for packet ID definitions. The Save_Data command may be sent in real-time, by
a stored command, or as a result of an event. All saved data is placed in a single data buffer
that places the data with a time tag (most recent first). The saved data buffer is a circular
buffer. When the data buffer is full, oldest data is over written first. When data is uploaded
from the stored data buffer, the MSB of the Board address is set “high” to signal the packet is
a stored data packet. Users are responsible for performing periodic uploads of the stored data
to prevent loss of mission critical information.
Description
See Appendix C for packet ID definitions.
Examples:
Load an iTAG program to save analog data from the motherboard every 15 minutes.
r 253 0 255 255 255 255 255 0 0 30 56 12 Top of hour
r 253 1 255 255 255 255 255 15 0 30 56 12 15 minutes
r 253 2 255 255 255 255 255 30 0 30 56 12 30 minutes
r 253 3 255 255 255 255 255 45 0 30 56 12 45 minutes
See Also: IO_Addr, Appendix C
Last updated 11-Nov-08

iControl Incorporated Confidential Page 38 5-Aug-15
Modem_Parms: CMD_ID=0x22 (decimal 34)
Format: r 34 <cmd> <Params>
The iTAG 802.15.4 radio may be configured using the Modem_Parms command. The
iTAG radio supports channels ranging from1 to 26. The iTAG will listen on a Default
Channel when it is awake. It will listen on the Sleep Channel when asleep. When
configured as a repeater, the iTAG will communicate with an iGATE on the Modem Channel
and operate as above when communicating with other iTAGs.
There is also the concept of a current channel. This value holds the channel that the radio is
currently operating on.
Some modem parameters may also be set using this command.
Definitions:
Params
<cmd>: ‘P’: Copy 802.15.4 radio initialization parameters. This command does not
actually initialize the radio with these parameters. It only copies the
parameters that may be used to initialize the radio using the
Radio_Config command
‘s’: Save the current channel for later restoring
‘r’: restore current channel to that saved with the ‘s’ command
‘S’: if Association is not ‘L’ change channel as in ‘C’
‘C’: change indicated channel
P0: ‘D’ – change default channel
‘S’ – change sleep channel
‘M’ – change modem channel (RPT)
P1: (1-26) Channel to change to
‘c’: Change the current channel
P0: (1-26) Channel to change to
‘D’: Reinitialize radio with default values
‘T’: Modem timeout – used for maximum time to wait for a valid modem
signal strength and registration on a network
P0: MSB of timeout (unsigned int)
P1: LSB of timeout (unsigned int)
‘R’: Flag indicating that an iGATE should store any upload data from a
remote tag in the iGATEs local flash. This data may be uploaded
through the iGATE modem at a later time.
P0: 0 indicates do not save data, otherwise do so
‘Q’: Query iVIEW for any commands through the modem
Examples:
Set the default radio to channel 11.

iControl Incorporated Confidential Page 39 5-Aug-15
R 34 ‘CD’ 11
See Also: Radio_Config
Last updated 11-Nov-08

iControl Incorporated Confidential Page 40 5-Aug-15
iModem: CMD_ID=0x23 (decimal 35)
Format: r 35 <mode> <len> <Params>
Definitions:
<mode>
Examples:
See Also:

iControl Incorporated Confidential Page 41 5-Aug-15
Serial_R/W: CMD_ID=0x27 (decimal 39)
Format: r 39 <R/W> <port> <data>
iTAG’s may send or receive data via the serial ports to communicate with smart sensors. For
most applications this operation is performed using the serial port configured as the DataPort.
With this command, users define the parameters necessary to prompt MODBUS devices or
PLC’s to return data for the iTAG to store or place in telemetry.
Definitions:
<R/W> (0) Sets message sync characters used for receiving data.
There are 3 sync characters. Two start characters and
a terminating character.
(1) Write <serial message> bytes out specified port
(2) Write contents of DataBytes out specified port
(3) Reset specified serial port to flush receive buffer
<port> 0-2 Serial port for data read write operations
Examples:
Prompt a GPS receiver to return data. Send appropriate prompt, wait 20 milliseconds, read
data into a stored data packet.
Assume:
a) GPS receiver is hooked to serial port 2
b) “#<ENTER>” Generates data prompt
c) Receiver needs 20 milliseconds to respond with data
d) Start of returned data packet is a “&=”.
e) The terminating character is <ENTER>
Load Macro 0 with the following commands, (in a text file they are decimal)
r 39 0 2 38 61 13 Sets the message sync and terminating characters
r 39 1 2 35 13 Send the Prompt (ASCII decimal #,enter)
r 102 20 Delay Macro[0] 20 milliseconds
r 30 0 32 Read/save data string from serial port 2 (0x20=32)
Each time the user wishes to save data from the GPS receiver, execute Macro 0 with a
Run_Macro command.
See Also: MS_Delay, Save_Data, Run_Macro
Last updated 11-Nov-08

iControl Incorporated Confidential Page 42 5-Aug-15
General_R/W: CMD_ID=0x28 (decimal 40)
Format: r 40 <R/W> <Addr> <data>
iTAG’s may read or write data to internal or external IO address space. At present,
General_R/W only writes to general purpose I/O pins.
Although implemented in hardware which can change with each revision, the GPIO 3 pin is
usually used to control the power to an installed modem.
Definitions:
<R/W> (4) Write to a general purpose I/O pin
<Addr> (3,4,10,15) GPIO Pin to write to
<data> (0 or 1) Set specified GPIO pin to 0 or 1
Examples:
Set GPIO pin 3 to high (1).
r 40 3 1
See Also: Save_Data, Load_Macro,Run_Macro
Last updated 11-Nov-08

iControl Incorporated Confidential Page 43 5-Aug-15
Beacon: CMD_ID=0x3c (decimal 60)
Format: r 60 <broadcast addr> <BeaconTimerMSB> <BeaconTimerLSB> <type> <Channel>
iTAGs join the iGATE 802.15.4 network by sending a beacon request. The only valid
parameter when sending a beacon request is the broadcast address.
An iGATE sends a Beacon signal to inform iTAGs of the channel that the iGATE is listening
on.
Definitions:
<broadcast addr> Index of broadcast address to use when sending beacon or beacon
request
<BeaconTimerMSB> Most significant byte of an unsigned int value indicating how many
seconds that the remote iTAG should remain associated
<BeaconTimerLSB> Least significant byte of an unsigned int value indicating how many
seconds that the remote iTAG should remain associated
<type> Beacon type: ‘W’ or ‘B’. W – send beacon using the Sleep Channel.
B – send beacon using the Default Channel
<Channel> Radio channel that remote iTAGs use to communicate with this
iGATE
Example:
Request a beacon using the first broadcast address.
r 60 0
Send a beacon on the Sleep Channel using broadcast address 0. Send a beacon timer of 900
seconds. Tell remote iTAGs to use Channel 14 to communicate with this iGATE.
r 60 0 3 132 ‘W’ 14
See Also: Broadcast_Address, Modem_Parms
Last updated 11-Nov-08

iControl Incorporated Confidential Page 44 5-Aug-15
Track: CMD_ID=0x3e (decimal 62)
Format: r 62 <Command> [params]
Program Track mode and motion sense parameters.
The motion sense parameters are used when the iTAG is equipped with an accelerometer.
The accelerometer is checked once per second. If the magnitude of the accelerometer axis
has changed more than MotionDetect, then increment a counter. If that counter is greater
than MotionTimer, indicate that motion has occurred. This counter is reset with each 63 ‘M’
command.
The track parameters are used to check for changes related to GPS. The 63 ‘T’ ‘P’ or the 62
‘t’ ‘P’ command uses the TrackRange value to determine if the iTAG has moved greater than
TrackRange meters from Waypoint[0]. Waypoint[0] is overwritten with the present location
if the iTAG is greater than TrackRange meters from the previous Waypoint[0] value.
The algorithm that uses the TrackVelocity, MovingFix, and StationaryFix is not
implemented.
The waypoints are used to calculate distance from the present position. These distances can
then be formatted into a data packet and used in the Check_Alarm command.
All parameters can be saved to non-volatile ram using the 240 command. (GEN2)
Definitions:
(Params)
<Command> C Set Velocity counters (Not presently implemented)
P0: Moving Fix MSB of unsigned int
P1: Moving Fix LSB of unsigned int
P2: Stationary Fix MSB of unsigned int
P3: Stationary Fix LSB of unsigned int
D Debug/Display parameters – only valid in DN display
M Set motion sense parameters
P0: Motion Detect MSB of unsigned int
P1: Motion Detect LSB of unsigned int
P2: Motion Timer MSB of unsigned int
P3: Motion Timer LSB of unsigned int
t Run track algorithm
P0: P | V | T
T Set Tracking parameters
P0: Track Range (string formatted float)
P1: Track Velocity (string formatted float)
W Program waypoints
P0: ‘C’ – clear all waypoints

iControl Incorporated Confidential Page 45 5-Aug-15
P0: Index of waypoint to program
P1: Waypoint Lat (string formatted float)
P2: Waypoint Long (string formatted float)
Example:
Set Track Range to 500 meters and Track Velocity to 10.3 meters per second.
r 62 ‘T’ “500. 10.3”
r 63 84 53 48 48 46 32 49 48 46 51
Set waypoint 2 to 35.12 and -90.01 degrees
r 62 ‘W’ 2 “35.12 -90.01”
r 62 87 2 51 53 46 49 50 32 45 57 48 46 48 49
Set motion detect to 60 and motion timer to 301.
r 62 ‘M’ 0 60 1 45
r 62 77 0 60 1 45
If DataByte[5]==8 and iTAG is associated and GPS is valid, execute macro 20, else do
nothing. Note that the ‘x’ value in “G=x” is a don’t care as GPS is either valid or not and this
state is not compared to any value that may be set in the firmware.
r ‘?d58?A=L?G=xrM’ 20 99
r 63 100 5 8 63 65 61 76 63 71 61 120 114 77 20 99
See Also: Test_Condition, Check_Alarm
Last updated 11-Nov-08

iControl Incorporated Confidential Page 46 5-Aug-15
Test_Condition: CMD_ID=0x3f (decimal 63)
Format: r 63 “<Object>=<Test>rM” <true Macro> <false Macro>
Alternate: r 63 “<Object>=<Test>rC” <Command>
Alternate: r 63 “d<Index><Value>rM” <true Macro> <false Macro>
Alternate: r 63 “d<Index><Value>rC” <Command>
iTAG’s have many conditions that may be tested for a certain condition. The Test_Condition
command allows logic that will execute a certain macro if a condition is true and a different
macro if the condition is false. Alternately, a command may be executed if the condition is
true.
Tests may be combined, where each test case will be checked in order. The true case is
executed if and only if all test cases are true.
Definitions:
<Object>: iTAG state to be tested
<Test>: State of Object for comparison
<true Macro>: Macro to run if above comparison is TRUE
<false Macro>: Macro to run if above comparison is FALSE
<Command>: Command to run if above comparison is TRUE
Object
Description
Possible States for Test
A
Is iTAG is associated in an 802.15.4
network
l: transitory state, iTAG is about to
become associated
L: iTAG is associated with an
iGATE
n: transitory state, iTAG is about to
become disassociated
N: iTAG is not associated
S: iTAG is scanning
T: iCHIME is associated
W: iGATE is associated in a Wide
Area Network
C
Is iTAG commissioned
N: iTAG has not been
commissioned
Any other 8-bit value can be
commanded and therefore tested
d
Test if DataByte[Index]==value
Any 8-bit value can be commanded
and therefore tested for
D
Is there stored data
None
G
Is GPS valid
None
M
Has there been motion sensed
N: no motion
Y: motion has occurred

iControl Incorporated Confidential Page 47 5-Aug-15
N
Check for a change in the number of
members in the ACL
None
t
Check Track status, save data if true
None
T
Check Track status
None
Power Considerations:
If either true or false Macro is a valid macro and that macro will be executed, the iTAG is
reset from power savings mode.
If a command is to be executed, the power savings mode will be reset according to that
specific command.
Example:
If iTAG is associated, execute macro 5, execute macro 6 otherwise.
r ‘?A=LrM’ 5 6
r 63 65 61 76 114 77 5 6
If iTAG is associated, execute command to change mode to flow 5 samples.
r ‘?A=LrC’ 1 5 5
r 63 65 61 76 114 67 1 5 5
If DataByte[5]==8, execute macro 20, else do nothing
r ‘?d58rM’ 20 99
r 63 100 5 8 114 77 20 99
If DataByte[5]==8 and iTAG is associated and GPS is valid, execute macro 20, else do
nothing. Note that the ‘x’ value in “G=x” is a don’t care as GPS is either valid or not and this
state is not compared to any value that may be set in the firmware.
r ‘?d58?A=L?G=xrM’ 20 99
r 63 100 5 8 63 65 61 76 63 71 61 120 114 77 20 99
See Also: Commissioned, Track, DataByte
Last updated 11-Nov-08

iControl Incorporated Confidential Page 48 5-Aug-15
MAC_Addr: CMD_ID=0x4d (decimal 77)
Format: r 77 <8 byte MAC>
All units in an 802.15.4 network have a unique 8 byte MAC address. The MAC_Addr
command is used to program the 8 byte MAC for the iTAG.
Definitions:
<8 byte MAC> MAC address of this unit. This value is entered in reverse byte order.
Example:
Set the MAC address of this unit to 63.0.1.2.10.11.12.13.
r 77 13 12 11 10 2 1 0 63
See Also:
Last updated 11-Nov-08

iControl Incorporated Confidential Page 49 5-Aug-15
Stop_Macro: CMD_ID=0x60 (decimal 96)
Format: r 96 <Macro_ID>
When a user (or the iTAG) wants to stop a running a Macro, the Stop_Macro command is
used. Stop_Macro will stop the Macro specified by Macro_ID. If the user wants to stop all
running Macros, a Macro_ID of 0xff will stop all non-Background Macros. To stop a
Background Macro configured for infinite operation, a Stop_Macro command is sent using
the specific ID of the Background Macro. There is no problem stopping an already stopped
Macro.
Definitions:
<Macro_ID> (0-39) Stops the Macro specified by the Macro_ID
(255) Stops all non-Background Macros
Example:
Stop Macro 3
r 96 3
See Also: Run_Macro, Load_Macro
Last updated 11-Nov-08

iControl Incorporated Confidential Page 50 5-Aug-15
Run_Macro: CMD_ID=0x61 (decimal 97)
Format: r 97 <Macro_ID> <Loop>
A User, remote command, Alarm condition, or another Macro may be used to start a loaded
Macro. Macro_ID is used to identify the desired Macro to run. Macros may be run multiple
times using the Loop parameter at the end of the Run_Macro Command. A loop value of
(255,<0xff>) causes the Macro to run in infinite Background mode.
There are two special purpose Macros. Macro[38] is run each time the iTAG reboots.
Background Macros and initialization parameters may be placed in Macro[38] to start each
time an iTAG reboots. Macro[39] may be used as a general purpose Macro. If the iTAG is
configured with a modem, Macro[39] is run when the modem establishes a connection. Any
command the user wishes to execute when an iTAG modem connects should be placed in
Macro[39]. Typical uses for Macro[39] are triggered data uploads, LAN network commands,
or backup timers which limit connection times. If an empty Macro is commanded to run, an
error message will be written to the screen.
Definitions:
<Macro_ID> (0-39) Runs the specified Macro
<Loop> (0-254) Runs the specified Macro up to 254 times before stopping
255 Places Macro in an infinite loop (Background)
Examples:
Command Macro(0) to run 20 times.
r 97 0 20
Command Macro(37) to run in Background mode.
r 97 37 255
See Also:
Last updated 11-Nov-08

iControl Incorporated Confidential Page 51 5-Aug-15
Load_Macro: CMD_ID=0x63 (decimal 99)
Format: r 99 <Macro_ID> <M_length> <Cmd0_len> <C00> <Cmd1_len> <C10> <C11>
Load_Macro is a simple load format for grouping iTAG commands into a single string. The
string may include any iTAG commands. When loaded, the Macro may be run with a single
“Run_Macro” command. Macros’s are stored in iTAG flash memory and will not be erased
when an iTAG is power down or reset. iTAG’s parse the commands using the total Macro
length (M_length), and each individual command length (Cmdn_len). All commands are
executed when encountered in the list. Delays and branching to other Macros are
accomplished using specific iTAG commands.
There are two special purpose Macros. Macro 38 is run each time the iTAG reboots.
Background Macros, and initialization parameters may be placed in Macro 38 to be started
each time an iTAG reboots. Macro 39 may be used as a general purpose Macro. If the iTAG
is configured with a modem, Macro 39 is run when the modem establishes a connection. A
command the user wishes to perform when the iTAG connects should be placed in Macro 39.
Typical uses for Macro 39 are triggered data uploads, LAN network commands, or backup
timers which limit connection times. If an empty Macro is commanded to run, a “Tried to
Run Empty Macro” message will be written to the iTAG terminal display. If Macro 38 is
empty, this message will appear with every reboot.
Definitions:
<Macro_ID> (0-39) Macro to be loaded, Use this ID to reference when run
<M_length> (1-128) Total Macro length, Maximum length is 128 bytes
<Cmd0_len> (1-32) Command length for individual iTAG command 0
<C00-C0n> iTAG command string
<Cmd1_len> (1-32) Command length for individual iTAG command 1
<C10-C1n> iTAG command string
<Cmdm_len> (1-32) Command length for individual iTAG command m
<Cm0-Cmn> Last command in iTAG command string
Example:
Load a Macro that on reboot, powers down all relays, delays 5 seconds, then starts a
background Macro loaded in Macro 37. Since Macro 38 is the only Macro run on a reboot,
Load_Macro Delay_Sec
|Total Length | Run_Macro 37
| | | |
r 99 38 13 3 8 1 0 4 100 38 0 5 3 97 37 255
| | | \
Macro_ID \Relay Cmd cmd len Macro 37->Infinite loop
Last updated 11-Nov-08

iControl Incorporated Confidential Page 52 5-Aug-15
Delay_Sec: CMD_ID=0x64 (decimal 100)
Format: r 100 <Macro_ID> <MSB_Delay> <LSB_Delay>
Delay_Sec inserts a delay between commands that are executing in a Macro string. Each
Delay_Sec command is tied to a particular executing Macro with the Macro_ID parameter.
When a Macro is executing a string of iTAG commands, all commands are executed until the
Macro is empty or a Delay command is encountered. Typically Delay_Sec commands are
only sent with a Load_Macro command, it is possible to send a Delay_Sec command
individually to override a running delay. Delay_Sec is a “non-blocking” command. Other
commands, serial port functions, and Macros may execute while waiting for a delay to
complete.
Definitions:
<Macro_ID> Macro which is to be delayed (0-39)
<MSB_Delay> Delay in seconds= MSB_Delay*256 + LSB_Delay
<LSB_Delay> (Maximum Delay is 6553 seconds)
Examples:
Load Macro 0 to delay 20 seconds, select a modem, delay 20 seconds, then enable dial-out.
Modem
cmd
| Enable Dial-out
| |
r 99 0 16 4 100 0 0 20 2 19 3 4 100 0 0 20 2 17 1
| |
| 20 seconds
| delay Macro(0)
total length
See Also: Delay_tSec, Delay_mSec, Run_Macro, Load_Macro
Last updated 11-Nov-08

iControl Incorporated Confidential Page 53 5-Aug-15
Delay_tSec: CMD_ID=0x65 (decimal 101)
Format: r 101 <Macro_ID> <MSB_Delay> <LSB_Delay>
Delay_tSec inserts tenth of a second delays between commands that are executing in a
Macro string. Each Delay_tSec command is tied to a particular executing Macro with the
Macro_ID parameter. When a Macro is executing a string of iTAG commands, all
commands are executed until the Macro is empty or a Delay command is encountered.
Typically Delay_tSec commands are only sent with a Load_Macro command. It is possible
to send a Delay_tSec command individually to override a running delay. Other commands,
serial port functions, and Macros may execute while waiting for a delay to complete.
Definitions:
<Macro_ID> Macro which is to be delayed (0-39)
<MSB_Delay> Delay in tenth-seconds= MSB_Delay*256+LSB_Delay
<LSB_Delay> (Maximum Delay is 655.3 seconds)
Examples:
Load Macro 1 to turn (board 1 / relay 1) “on”, delay 0.5 seconds, then turn (board 1 / relay 1)
“off”
Relay
load Cmd Relay
Macro | Cmd
| | |
r 99 1 13 3 8 1 1 4 101 1 0 5 3 8 1 0
| |
| | \ 5 x 0.1 seconds
| delay Macro(1)
total length
See Also: Delay_Sec, Delay_mSec, Run_Macro, Load_Macro
Last updated 11-Nov-08

iControl Incorporated Confidential Page 54 5-Aug-15
Delay_mSec: CMD_ID=0x66 (decimal 102)
Format: r 102 <MS_Delay>
Delay_mSec inserts milli-second delays between commands that are executing in a Macro
string. Delay_mSec commands are not tied to a particular Macro. When a Macro is
executing a string of iTAG commands, all commands are executed until the Macro is empty
or a Delay command is encountered. Delay_mSec commands are only sent with a
Load_Macro command. Delay_mSec is a blocking command, other commands and Macros
are suspended while Delay_mSec completes.
Definitions:
<MS_Delay> (1-50) Delay in milli-seconds
(Maximum Delay is 50 milli-seconds)
(>50) Delay is DataByte[0]*Bspacing seconds
Examples:
Load Macro 1 to turn (board 1/relay 1) “on”, delay 0.010 seconds, then turn (board 1/relay 1)
“off”
Relay
Load Cmd Relay
Macro | Cmd
| | |
r 99 1 11 3 8 1 1 2 102 10 3 8 1 0
| | \
| | 10 x 0.001 seconds
| delay Macro
total length
See Also: Delay_tSec, Delay_Sec, Run_Macro, Load_Macro, Radio_Parameters, DataByte
Last updated 11-Nov-08

iControl Incorporated Confidential Page 55 5-Aug-15
Wait_While: CMD_ID=0x67 (decimal 103)
Format: r 103 <Delay Macro “n”> <until Macro “m”> <timeout>
Wait_While is a non-blocking delay command which holds execution of Macro_ID “n”
until Macro_ID “m” completes. When a Macro is executing a string of iTAG commands, all
commands are executed until the Macro is empty or a Delay command is encountered.
Wait_While commands are only sent with a Load_Macro command. Serial port functions,
commands, and Macros all execute while waiting for a delay to complete. A Wait_While
command is placed in the Macro which is required to delay. Command processing will
resume after the Macro_ID[m] is finished.
The Wait_While command initiates a 65535 count 100 mSec delay for macro n (similar to a
102 n 255 255 command). Only one macro complete value is saved for each macro. The
delay is only reset when macro m completes. A Stop_Macro command deletes the
completion flag, but does not signal the waiting macro to continue.
To illustrate these issues, say macro 5 is to wait for macro 6. If another Wait_While
command is executed for macro 10 to wait for macro 6 before 6 completes, then macro 5 will
delay until 655.35 seconds have expired because each macro can only signal one other macro
after it has completed. Macro 10 will delay until macro 6 completes.
If macro 6 is stopped, then both macro 5 and macro 10 will delay until each has waited for
655.35 seconds since their respective 103 commands was executed.
There is no interaction when different macros are used for macro m, so macro 5 may wait for
macro 6 and macro 10 may wait for macro 20. In each case, macro 5 and macro 10 will
resume execution as expected when their respective macros complete execution.
Alternately, m may be replace with ‘A’, ‘G’, or ‘U’. In each case, macro n will wait until the
iTAG is Associated, GPS is acquired, or a data upload has completed. Only one macro is
saved for each flag. That is, a 103 A 5 command will delay macro 5 until Associated or for
timeout seconds whichever comes first. A subsequent 103 A 10 command that is executed
while macro 5 is still waiting for the iTAG to become associated will cause macro 10 to
delay until associated or for timeout seconds whichever comes first and macro 5 will only be
waiting for the timeout second timeout and will not continue when the iTAG becomes
associated. Furthermore, the associated and GPS delay states are checked every second. The
upload complete delay is only terminated when an upload has ended.
Definitions:
< Delay Macro “n”> (0-39) Macro which will wait until Macro[m] completes
< until Macro “m”> (0-39) Macro which is to be waited for completion
Example:

iControl Incorporated Confidential Page 56 5-Aug-15
Load Macro[4] which will start a second Macro(Macro[24]) . Macro[4] should wait until
Macro[24] is complete, then save the resulting data.
r 99 4 12 3 97 24 25 3 103 4 24 3 30 4 255 (waits until M24 completes)
r 99 24 20 4 8 2 255 0 4 101 24 0 2 4 8 2 0 0 4 101 24 0 2
Load Macro [4] which will initiate a data upload and delay until that upload is complete or
60 seconds whichever comes first.
r 103 4 ‘U’ 60 (waits up to 60 seconds until upload completes)
See Also: Delay_Sec, Delay_tSec, Delay_mSec, Run_Macro, Load_Macro, Upload_Data
Last updated 11-Nov-08

iControl Incorporated Confidential Page 57 5-Aug-15
LCD_CMD: CMD_ID=0x8c (decimal 140)
Format: r 140 <cmd> <Params>
Definition:
Example:
See Also:

iControl Incorporated Confidential Page 58 5-Aug-15
Scale_Factors: CMD_ID=0x95 (decimal 149)
Format: r 149 <Index> <Scale> <Offset>
Definition:
Example:
See Also:

iControl Incorporated Confidential Page 59 5-Aug-15
Labels: CMD_ID=0x96 (decimal 150)
Format: r 150 <Index> <displayString>
Definition:
Example:
See Also:

iControl Incorporated Confidential Page 60 5-Aug-15
LCD_Strings: CMD_ID=0x97 (decimal 151)
Format: r 151 <Index> <displayString>
Definition:
Example:
See Also:

iControl Incorporated Confidential Page 61 5-Aug-15
Text_Msg: CMD_ID=0xc8 (decimal 200)
Format: r 200 [‘#’] <“Text String to be Sent”>
Text_Msg is a command which places received text messages into battery backed RAM. The
text message buffer is 20 bytes x 40 bytes. Each message is placed on a new line when a
carriage return is encountered in the text message. The User at the receiving iTAG may
review the text message by using the Text Message Display option.
If the first byte after command 200 is a ‘#’ character, then program the unit ID instead of the
Text Message.
Definition:
“Text String” Any ACSII character string not exceeding 40 characters per line
String should terminate with a carriage return.
Example:
Send a text message.
r 200 “ET Phone Home!”
See Also:
Last updated 11-Nov-08

iControl Incorporated Confidential Page 62 5-Aug-15
Reset_Buffer: CMD_ID=0xca (decimal 202)
Format: r 202 <Buffer_ID>
iTAGs’ utilize numerous storage buffers for commanding, network traffic, and status
changes. These buffers reside in flash or RAM. If a User wishes to clear a particular buffer,
the Reset_Buffer command may be used.
Definitions:
<Buffer_ID> 0x00 Transmit Buffer
0x04 Clear stored data in Flash (if stored data saved in flash)
0x05 Clear Macros
0x06 Clear Stored Commands
0x08 Clear stored data in RAM (if stored data saved in RAM)
0x09 Stored Text Messages
Example:
A remote iTAG has its Cmd_Attempt count set too high (255). Since the number of retries is
so high, packets in it’s transmit buffer could take many minutes to clear. Send a command to
clear the iTAG’s transmit buffer, then reset the Cmd_Attempt count.
r 202 0
See Also: Load_Macros
Last updated 11-Nov-08

iControl Incorporated Confidential Page 63 5-Aug-15
Init_iTAG: CMD_ID=0xef (decimal 239)
Format: r 239
iTAGs’ may be commanded to restart without performing a hardware reset or commanding a
restart from the Setup Menu. Commanding an Init_iTAG forces the iTAG to restart using
all initialization parameters and data stored in flash memory. If Init_iTAG is commanded,
all currently running Macros will be stopped, serial ports will be re-initialized, and Macro 38
will be run as if a hard reboot occurred. Caution should be observed when commanding
Init_iTAG. If an iGATE is commanded to re-initialize while connected via a modem, the
modem will be commanded to hang-up. At this point communication with the iGATE would
be lost until a re-connection is commanded.
Example:
Load a scheduled command to re-initialize the iTAG once per day at 11:00:00 AM.
Stored Cmd ID
| 11:00:00
| / \
r 253 0 255 255 255 255 11 0 0 239
\ / |
mm/dd/yr/wkday Init_iTAG
don’t care
See Also: Load_Defaults, Commit_Flash, Super_Reset
Last updated 11-Nov-08

iControl Incorporated Confidential Page 64 5-Aug-15
Commit_Flash: CMD_ID=0xf0 (decimal 240)
Format: r 240
A majority of iTAG configure parameters are accessed from RAM but are stored in flash.
Once an iTAG is configured by a User, parameters that are set during configuration should
be saved to flash. The Setup Menu provides an approach to commit to flash. If a
configuration load file is used, the last command in the file should be a Commit_Flash. If
parameters are changed via network commands, a Commit_Flash should be sent after all
parameters have been changed. Execution of the Commit_Flash command may take up to 2
seconds. Commands sent immediately following the Commit_Flash should be delayed by a
few seconds, otherwise they may not be properly processed.
Example:
Build a configuration load file which sets several iTAG parameters. Commit the changes to
flash using Commit_Flash.
Load File:
r 25 ‘Z’ // Select Radio
r 19 ‘P’ // Select PSTN bus modem
r 27 “18005551234” // Set Dial-out number
r 240 // Commit to flash
See Also: Load_Defaults, Init_Device, Super_Reset
Last updated 11-Nov-08

iControl Incorporated Confidential Page 65 5-Aug-15
Load_Defaults: CMD_ID=0xf1 (decimal 241)
Format: r 241
To ensure minimal functionality during an iTAG reboot, default configurations are
programmed into the iTAG flash. Many of these parameters are over-written during the Set-
up process. If a User wishes to restore the factory defaults for an iTAG configuration, the
Load_Defaults command is sent. The User should exercise caution in using Load_Defaults.
Depending on the iTAG configuration, the User may lose communication capability if this
command is sent over the Network. If a User resets the iTAG configuration over the
Network, the User can restore Network operation parameters only through the Setup Menu
on the iTAG.
Example:
A User has corrupted an iTAG configuration when performing a firmware upload. Many of
the parameters in flash may be corrupted. To restore the iTAG parameters to the factory
defaults send the Load _Defaults command.
r 241
See Also: Commit_Flash, Super_Reset
Last updated 11-Nov-08

iControl Incorporated Confidential Page 66 5-Aug-15
Load_Flash: CMD_ID=0xf2 (decimal 242)
Format: r 242
During start up, an iTAG copies configuration data from flash into a global array in RAM.
While the iTAG is executing, the configuration data is accessed from the RAM parameters.
If the RAM variables are corrupted via a command or internal RAM errors, Load_Flash will
reload the global configuration data with data in Flash.
Load_Flash is also performed by Init_Device except the iTAG is not re-booted, serial ports
are not initialized, and Macros are not stopped.
Example:
A near-by lighting strike has effected an iTAG configuration. Many of the parameters in
RAM may be corrupted resulting in a loss of communication with the iGATE. The following
command (if residing) in the Stored Command buffer will execute once per hour (at the top
of the hour) to restore the Flash configuration to RAM.
r 253 10 255 255 255 255 255 0 0 242
See Also: Commit_Flash, Load_Defaults, Init_Device
Last updated 11-Nov-08

iControl Incorporated Confidential Page 67 5-Aug-15
Set_Password: CMD_ID=0x1c (decimal 248)
Format: r 28 “<p0><p1><p2><p3>….<pn>
The iTAG Set-Up Menu and ASCII command functions are password protected to
prevent accidental or deliberate commands from being executed. Set_Password changes
the default access password to a User configurable string. The maximum password length
is nine (9) characters. Spaces and control characters are not valid password characters.
Use caution when changing the password string. If a boot macro enables password
checking, sending a command to change the password will not be possible if a User
forgets the updated value. Make sure to use Commit_Flash to save the new password in
flash.
The Factory default password settings are:
Password: “icontrol”.
SET-Up Menu: Password Required
ASCII Commanding: No Password Required
See Also: ASCII Commands, Password, User Menu
Last updated 11-Nov-08

iControl Incorporated Confidential Page 68 5-Aug-15
DataByte: CMD_ID=0xf9 (decimal 249)
Format: r 249 <Index> <Value> [Params]
iTAG’s provide a global data structure which may be used to build user specified data
packets. DataByte is a 40 byte structure which may be loaded with data which is sent,
received, or alarmed. The DataByte command is used to set the value of a particular
Databyte, or if requested, increment or decrement the current DataByte value. A User
should make sure that other Macro’s or commands are not affecting the use of a particular
DataByte.
Definitions:
<Index> (0-39) Index identifying which DataByte[] to modify
<Value> ‘+’ Current value of DataByte[index] is incremented by one
‘-‘ Current value of DataByte[index] is decremented by one
‘s’ Copy command Params starting at DataByte[Index] to
DataByte[Index + number of Params]
‘c’ copy Packet data into DataByte[Index]
P0-P1: Packet ID bytes (see Appendix C)
P2: start byte in above data packet to start copy from
P3: number of bytes to copy
(0-255) If an integer is sent, DataByte[index] will be assigned
the new value)
Example:
Use DataByte[3] as an internal counter that is incremented every time Macro [4] is run.
Load into Macro[4]:
r 99 4 ”Macro Commands……” 249 3+
See Also: Load_Macros, Run_Macros
Last updated 11-Nov-08

iControl Incorporated Confidential Page 69 5-Aug-15
Check_Alarm: CMD_ID=0xfa (decimal 250)
Check_Alarm_Save: CMD_ID=0xfb (decimal 251)
Format: r 250 <Board Add> <Extended Add> <Index> <Op> <value> [value2] <Macro_ID>
Scheduled or background commands may be used to check iTAG input data or system
configuration for alarm conditions (or desired events). Check_Alarms retrieves data using
the specified Board Address and Extended Address, performs a comparison using the Op
character against the value parameter. If the Op condition is met, Macro[Macro_ID] will be
run once.
The Check_Alarm_Save command saves the retrieved data if the Op condition is met.
Definitions:
<Board Add> IO card address (See IO_Add)
<Extended Add> IO card address (See IO_Add)
5, 250, 251: copy native floating point for test value
83, 254: copy one byte into floating point test value
Default: format floating point test value using sFactors[Index] (See
Scale_Factors)
<Index> 0-12 Data[index] is value to be checked
<Op> > Runs Macro[ID] if Data[index]>value
< Runs Macro[ID] if Data[index]<value
= Runs Macro[ID] if Data[index]=value
! Runs Macro[ID] if Data[index]!=value
“A” Run Macro[ID] if Data[index] < value && Data[index] > value2
“O” Run Macro[ID] if Data[index] & value || Data[index] > value2
“&” Run Macro[ID] if Data[index] & value
“|” Run Macro[ID] if Data[index] | value
<value> “Threshold” value which triggers Macro[ID]
<value2> Second Threshold value
<Macro_ID> ID of Macro which is run on an alarm condition
Examples:
Load Macro[37] with a Check_Alarm command that calls Macro[36]. Macro[37] will be a
Background Macro which checks data once per second. The Check_Alarm command
executes when motherboard analog[1] is greater than value “128”.
Default scale factors are used which indicate to use counts for comparison.
r 99 36 7 3 96 37 2 17 1 Stop Macro[37], Enable Dialout
r 99 37 13 4 100 37 0 1 7 250 56 12 1> 128 36 Check_Alarm
r 99 38 3 97 37 255 Runs Macro[37] on boot up.
Loop counter 255 places Macro[37] in an infinite loop

iControl Incorporated Confidential Page 70 5-Aug-15
See Also: IO_Addr, Stop_Macro, Delay_Sec, Load_Macro, Scale_Factors
Last updated 11-Nov-08

iControl Incorporated Confidential Page 71 5-Aug-15
Server_Addr: CMD_ID=0xfc (decimal 252)
Format: r 252 <D3> <D2> <D1> <D1>
Server_Addr programs the four byte Server identification number used by an iGATE for
Internet connections. This ID may also be programmed from the Setup Menu. Server_ID is
used only if the iTAG is configured as an iGATE. If the iTAG is not configured as an
iGATE, the Server address is ignored.
Description:
<D3> Most Significant Byte of Server address
<D2>
<D1>
<D0> Least Significant Byte of Server address
Example:
Program the Server_Addr to 3.4.5.6
r 252 3 4 5 6
See Also: Broadcast_Address, Default_Dest, iTAG_ID
Last updated 11-Nov-08

iControl Incorporated Confidential Page 72 5-Aug-15
Load_Schedule: CMD_ID=0xfd (decimal 253)
Format: r 253 <Index> <M> <D> <Y> <WkD> <Hr> <Min> <Sec> <cmd……..>
Load_Schedule places iTAG commands into an iTAG command buffer used for scheduled
execution. The buffer holds up to 40 commands which are continually scanned for a valid
execution time. The index into the stored command is used for loading only. Execution of
the commands is determined by matching time tags with the current iTAG clock. If multiple
commands are to be called at the same time, use a Run_Macro command to link the
commands into a single call from the check schedule function.
Description:
<Index> (0-39) Index into storage buffer
<M> (1-12,255) Desired month for scheduled command, 255= don’t check
<D> (1-31,255) Desired day for scheduled command, 255= don’t check
<Y> (0-99,255) Desired year for scheduled command, 255= don’t check
<WkD> (0-6,255) Desired week day for scheduled command, 255= don’t check
<Hr> (0-23,255) Desired hour for scheduled command, 255= don’t check
<Min> (0-59,255) Desired minute for scheduled command, 255= don’t check
<Sec> (0-59,255) Desired second for scheduled command, 255= don’t check
Example:
Load a command into the Schedule buffer location (0) to perform a Save_Data command
once per minute (top of each minute).
Stored Index seconds
| |
r 253 0 255 255 255 255 255 255 0 30 56 12
|
Save Data
This command loads “don’t cares” in all time fields except the (seconds) field. The iTAG
will ignore this command until the iTAG clock (seconds) matches the “seconds” time field.
Every time the iTAG seconds equals “0” the command Save_Data (30)(56)(12) will be
executed.
See Also: Load_Macro, Dump_Schedule
Last updated 11-Nov-08

iControl Incorporated Confidential Page 73 5-Aug-15
Super_Reset: CMD_ID=0xff (decimal 255)
Format: r 255
In the event that an iTAG configuration has become corrupted to the point of non-
operation, (continual reboots), or loss of communication, a unit may be commanded to
perform a Super_Reset. A Super_Reset restores all protected variables, performs a
Load_Defaults, and reboots the system immediately after the restoration of the default
configuration. Users should exercise caution when sending the Super_Reset. Loss of
communication across the iTAG LAN may result if a Super_Reset is performed using a
LAN command.
Example:
A User has performed a series of configuration changes which results in an iTAG not
being able to successfully complete a reboot. Typical errors which may cause this are
corrupted protected variables, or boot-up macros that run in a background mode (high
speed infinite loop)
While the iTAG attempts to reboot, load and send a Super_Reset command to clear all
buffers and restore the protected variable values. Once sent, the iTAG should be able to
boot correctly and allow the User to correct the boot problems.
r 255
See Also: Load_Defaults
Last updated 11-Nov-08

iControl Incorporated Confidential Page 74 5-Aug-15
Appendix A
Security:
Password Protection:
The only level of protection available for ASCII commanding is password protection. The
factory default protection allows password access for the Set-Up Menu and open access to
ASCII commanding. To enable password access for commanding, the User should load and
enable a “Null” Password command in the boot up Macro (Macro[38]). Once the iTAG is
rebooted, password protection will be enabled. When password protection is set, a Password
command must be sent prior to sending any ASCII command. The Password command
enables commanding until a “Null” Password command is sent, the iTAG reboots, or until a
Stored Command executes a “Null” Password.
Encryption:
A majority of the wireless devices iControl provides include built in encryption. These
devices enable a DES encryption algorithm independent of the iTAG OS setting. Setting the
radio encryption key is covered by the Radio Manufacturers User Manual included with your
purchase.
In addition to the radio encryption, iControl offers both LAN and iGATE encryption
algorithms that may be used over cellular and satellite links. iControl ships each iTAG unit
with encryption disabled (a zero encryption key). Use the Net_Type command to set the
iTAG OS encryption key. In addition to the encryption key, Users should be aware of
Time_Window. Time_Window specifies the valid duration of time for an iTAG command.
Time_Window reduces the possibility of recorded (even if encrypted) commands being
recorded and played back by un-authorized parties.
See Also:
Password, Set_Password, Time_Window, Net_Type

iControl Incorporated Confidential Page 75 5-Aug-15
Appendix B
Cyclical Redundancy Code (CRC):
The following ‘C’ source code may be utilized by Users to develop binary protocols for
interfacing to iTAG’s and iGATE’s. Two bytes are returned which represent the 16 bit CRC
for any input string. iTAG’s apply CRC’s to all binary communication packets.
void getCRC(char *buf, int len, char *value)
{ //CCITT CRC
// buf: pointer to string which is to have CRC computed
// len: Number of bytes in buf which are used for CRC computation
// value: Two bytes representing 16 bit CRC
//
unsigned int crcval, temp;
int i;
crcval = 0xffff;
for (i=0; i<len; ++i)
{
temp = crcval ^ (unsigned int)buf[i];
temp = (temp ^ (temp << 4)) & 0xff;
crcval = (crcval >> 8) ^ (temp << 8) ^ (temp << 3) ^ (temp >> 4);
}
crcval = ~crcval;
value[0]= (char)(crcval & 0x00ff); // return LSB (sent first)
value[1]= (char)((crcval & 0xff00)>>8); // return MSB (sent second)
}

iControl Incorporated Confidential Page 1 5-Aug-15
Appendix C
I/O Packet Definitions:
Many iTAG commands use I/O data packets to make decisions or to format the information that the user is interested in seeing.
Below is a table showing each data packet and the information that is in each one.
Data packets are defined by a two byte address. Each data packets unique data starts at byte 12 and they all have the following bytes
inserted at the beginning.
Byte
0
1,2
3-9
10
11
Length
Packet ID
Time
TCW
Mode – see iTAG_Mode
Packet ID 0x00 0x0c
Network Beacon status from an iGATE to iVIEW
Length: 32
Byte
12,13
14,15
16-27
28
29
30
31
32
Beacon
Timer
Comm
Timer
Native floating point
Latitude, Longitude,
Altitude
Radio
Sleep
Channel
Present
Radio
Channel
Radio
LQI
Number of
units in
ACL
Difference in the number
of unit in ACL since last
beacon sent
Packet ID 0x00 0x10
Packet ID 0x00 0x20
Data read from serial port 1 (0x00 0x10) or serial port 2 (0x00 0x20)
Length: variable
The data in this packet depends on the fsync parameters (see Serial_R/W). There are three fsync values. If either of the first two
fsync values is non-zero then wait for those two bytes in succession before saving data. Once those two bytes are read, start saving
data until either the input UART is empty or until the maximum stored data buffer size is reached or until the third fsync byte value is
found (if the third fsync byte value is non-zero.
Note: You must allow enough time for the expected data to fill the UART as this read process does not allow for any timing. It simply
reads as fast as it can, terminating when no data is retrieved. You must also insure that you do not overflow the UART buffer.
Byte
12
Last byte
First byte after two byte sync or first byte read if
Last valid byte read from UART if third fsync value is zero or the last byte

iControl Incorporated Confidential Page 2 5-Aug-15
first two bytes of fsync are zero
read from UART which matches the third fsync byte
Packet ID 0x00 0x04
Tag Tracking and Status packet
Length: 23
Byte
12,13
14,15
16.17
18
19
20,21
22,23
Nav mode (native
unsigned int
format). Only
first byte is valid.
Second byte is
always zero
LastFix
variable (native
unsigned int
format).
Reserved for
future use
Comm. Timer
(native unsigned
int format).
Seconds to
remain
associated.
Count of visible
satellites in the
GPS
constellation
Reserved
for future
use.
Magnitude of
the GPS velocity
vector. (native
unsigned int
format)
Moved counter
variable (native
unsigned int
format). Used
in motion
sensing.
Packet ID 0x00 0x05
Distance to each waypoint in meters. There are 5 available waypoints in the present Gen 2 iTAG. This value will change depending
on need and memory constraints. This algorithm outputs the difference between the last recorded position and the waypoints saved
using the Track_Mode command. The last recorded position is set by executing any command that retrieves a GPS packet – Packet
IDs 0x00 0xfa, 0x00 0xfb, 0x00 0xfc.
Length: 11 + (4*(<num defined waypoints>-1))
Byte
12-15
…
12+(4*(<num defined waypoints> -1)) - 12+(4*(<num
defined waypoints> -1))+3
Floating point Number representing magnitude of the
distance between last recorded position (present position)
and waypoint 0
Floating point Number representing magnitude of the
distance between last recorded position (present position)
and waypoint N
Packet ID 0x00 0x06
iTAG configuration data
Length: 78
Byte
12-24
25-28
29-32
33-36
37
38
39
40
41
Version
String
iTAG_ID
Default_Dest
Server_Addr
Device Type
(iTAG_ID)
Pri LAN Port
(Port_Cfg)
Alt LAN Port
(Port_Cfg)
Modem Port
(Port_Cfg)
Data Port
(Port_Cfg)

iControl Incorporated Confidential Page 3 5-Aug-15
Byte
42-44
45
46
47
48
49
Baud rate of ports
0,1,2.
Value=Baud/12
Reserved for future
use
Tpreamble/4 Not
Used
TXTail
(Radio_Parameters)
Present radio
channel
(Modem_Parms)
Nav Mode. See
Chip doc
Byte
50
51
52
53
54
55
Power_Save
Wake Power Config
(Power_Config)
Sleep Power
Config
(Power_Config)
Present Power Config
(Power_Config,
Power_Override)
Radio Status Byte.
See chip doc
Lower 8 bits of
comm. Timer
Byte
56
57
58
59
60
61
Reboot counter –
incremented with
each soft reboot
TX_Attempts
(CMD_Retry)
TX Retry Time
(CMD_Retry)
Default Channel
(Modem_Parms)
Sleep Channel
(Modem_Parms)
Primary Radio
(LAN_Device)
Byte
62
63
64
65
66
67
Alt Radio
Enable_Schedule
Modem_Type
Modem State
AT_Answer
AT_Dial
Byte
68
69
70
71
72-76
77,78
Data Port User
Interface flag
(Port_Cfg)
Flag indicating flash
has been initialized
Network
‘E’: Encryption enabled
‘N’: Disabled
Bit mask indicating
Macro is running or
not
ACL Timer
(native unsigned
int format)
Packet ID 0x00 0x17
Broadcast IDs set with command 23
Length: 12 + (4*<number of broadcast groups>)
Byte
12
13-16
[13+(n*4)] – [16+(n*4)]
Number of valid Broadcast groups (n)
Broadcast Group 1
Broadcast Group n
Packet ID 0x00 0x22
Radio initialization parameters set with command 34
Length: 29
Packet ID 0x00 0x1b
Telephone number used for modem communication. Number starts at byte 12. Length does not include null terminator.
Length: 11 + length of telephone number
Packet ID 0x00 0xfa

iControl Incorporated Confidential Page 4 5-Aug-15
Difference between present GPS position and last recorded iGATE position. GPS solution must be valid, otherwise length of data
packet is zero.
Length: 42
Byte
12-15
16-19
20-23
24-27
28-31
32-35
36-39
40,41
42
Difference
in meters
between
iGATE
latitude and
latitude of
present
location
Difference
in meters
between
iGATE
longitude
and
longitude of
present
location
Altitude –
indeterminate
value
Northern
Velocity
as
measured
by present
GPS
solution
Eastern
Velocity
as
measured
by present
GPS
solution
Downward
Velocity as
measured
by present
GPS
solution
Magnitude
of distance
between
iGATE
position and
present
location in
meters.
Ignores
Altitude.
GPS Nav
Mode. See
Chip
documentation
for description.
Radio
LQI
Packet ID 0x00 0xfb
Packet ID 0x00 0xfc
GPS position. If GPS solution is invalid and associated with an iGATE, report the iGATE position. If GPS solution is invalid and not
associated with an iGATE, length of data is zero.
Length: 42
Byte
12-15
16-19
20-23
24-27
28-31
32-35
36-39
40,41
42
Lattitude
in
degrees
Longitude
in degrees
Altitude
Northern
Velocity as
measured by
present GPS
solution
Eastern
Velocity as
measured by
present GPS
solution
Downward
Velocity as
measured by
present GPS
solution
Magnitude
of the
present
velocities
GPS Nav Mode.
See Chip
documentation for
description.
Radio
LQI
Packet ID 0x00 0xfc (Deprecated)
Floating point State Variables
Length: 42
Packet ID 0x00 0xfe
DataByte variables. . The value of DataByte[0] defines the number of DataByte values to output in this packet.
Length: 11 + DataByte[0]

iControl Incorporated Confidential Page 5 5-Aug-15
Byte
12
…
12+DataByte[0]
DataByte[1]
DataByte[DataByte[0]]
Packet ID 0x20 0xXX (Deprecated)
Address of parallel processor connected via serial port
Packet ID 0x01 0xNN
Packet ID 0x30 0xNN (Deprecated)
Packet ID 0x38 0xNN
Status information including Analog-to-Digital converter data. NN defines the number of bits in each 2-byte A/D value. This NN
value is only used when decoding the A/D values as it records the maximum counts for the A/D values, it is not used by internal
firmware. Although the connections to the individual A/D channels is totally dependent on hardware connections, A8 (A0 being the
first channel) is connected to a voltage divider indicating the voltage powering the unit.
Length: 42
Byte
12-35
36
37
37
37
38
39
40
41
42
12
channels
of A/D
data (2-
bytes
each)
Reboot
counter –
incremented
with each soft
reboot
Lower
5 bits
of
comm.
timer
Bit 6 – flag
indicating in
range of an
802.15.4
radio
network
Bit 7 – flag
indicating
that there is
stored data
Clock
source
0: SW
1:
RTC
2:
GPS
Last
DataByte
value
Radio
LQI
Last RSSI
indicated
from an
attached
modem
‘N’ - not
commissioned
‘Y’ –
commissioned
Last updated 12-Nov-08

iControl Incorporated Confidential Page i 8/5/2015
Address
Default_Dest, 10, 22, 71
iDAC_ID, 3, 10, 11, 19, 31, 71
IO_Addr, 9, 21, 70
Server_Addr, 10, 71
Config
IDAC_Mode, 8, 12, 21
Init_iDAC, 63
Load_Defaults, 63, 64, 65, 66, 73
Load_Flash, 66
Load_Macro, 9, 35, 42, 49, 51, 52, 53, 54,
55, 56, 62, 68, 70, 72
Load_Sched, 29, 72
Net_Type, 19, 74
Port_CFG, 17
IO
Byte_R/W, 42
Check_Alarm, 69
DataByte, 21, 68
IO_Monitor, 40
Relay_Command, 15
Serial_R/W, 41
Text_Msg, 57, 58, 59, 60, 61
LAN
Broadcast_Address, 10, 19, 31, 71
CMD_Retry, 33
Forward_Packet, 11, 12
LAN_Device, 32
Radio_Parameter, 30
Status_Change, 38
Log
Dump_Schedule, 29, 72
Dump_Trace, 44, 46, 48
Save_Data, 21, 37, 41, 42, 72
Send_Config, 13, 14
Upload_Data, 36
Macro
Delay_mSec, 52, 53, 54, 56
Delay_Sec, 51, 52, 53, 54, 56, 70
Delay_tSec, 52, 53, 54, 56
No_OP, 11
Run_Macro, 1, 4, 8, 9, 22, 35, 41, 42, 49,
50, 51, 52, 53, 54, 56, 68, 72
Stop_Macro, 49, 70
Wait_While, 55
Power
Power_Cfg, 20, 24
Power_Save, 20, 23, 24
Program
ACK, 11, 30, 31, 33
Commit_Flash, 10, 63, 64, 65, 66, 67, 73
Enable_Schedule, 29
Password, 4, 35, 67, 74
Reset_Buffer, 62
Set_Password, 35, 67, 74
Super_Reset, 63, 64, 65, 73
Time
Set_Time, 18
Time_Window, 43, 74
WAN
AT_Answer, 25, 26, 27, 28
Hangup_Modem, 28
Modem_Type, 19, 27, 34
Phone_Number, 14, 25, 26, 27, 28, 34