Comm_EXT Firmware
The Comm_EXT firmware allows full access to all of the features of the Robot Turret using a simple serial
protocol and instruction set. This firmware that comes preloaded on Arbotix's that ship with Robot
Turret. You do not need to reprogram your Arbotix unless you intend to modify or design your own
firmware.
The firmware has two modes of operation built in: Commander Standard mode and Commander
Extended mode.
The Commander Standard protocol is built to be plug-n-play compatible with the Arbotix Commander
v2.0 Gamepad Controller. It uses the Right Joystick on the Arbotix Commander Gamepad to control the
Pan/Tilt and the buttons (R1, R2, R3, L4, L5, L6, RT, LT) are tied directly to digital outputs (d0-d7) on the
Robot Turret's Arbotix. Please note that the standard protocol is 'output only', there is no method for
reading the I/Os as input. It also has a lower servo resolution (0-255) than the Commander Extended
protocol. There is an alternate firmware available for use in this mode, Comm_EXT Proportional which
allows for proportional control of the pan/tilt- this is much better for 'aiming' as the joystick will not
auto-center and does not directly control the pan/tilt's position. For a full explanation of the
Commander Standard protocol, please refer to the Arbotix Commander GamePad Controller Manual.
The Commander Extended protocol is intended to be the preferred PC communication protocol and the
default protocol for the Robot Turret. It allows for full resolution (0-1023) control of your pan & tilt
servos, access/polling of digital & analog I/O, and DC motor speed & directional control.
The Packet Structure consists of 8 bytes sent to the Arbotix via serial connection. Please refer to the
tables below for a breakdown of the Commander Extended protocol.
Commander Extended Packet Structure:
Byte
Name
Value
1
Header
0xFF (255)
2
Tilt H
0x0-0x3 (0-3)
3
Tilt L
0x00-0xFF (0-255)
4
Pan H
0x0-0x3 = (0-3)
5
Pan L
0x00-0xFF (0-255)
6
Button Values
D7-D0=00000000(leave default 0x00 for Commander Ext)
7
Ext Instruction
See Table Below, default is 0x08
8
Checksum
= (255 - (byte2+byte3+byte4+byte5+byte6+byte7) Mod 256)
The Pan and Tilt servos use 0-1023 for positional commands; this value cannot be contained in a single
byte so it is spread over a Low and High Byte. The Ext Instruction Byte should default to 0x08, this will
keep the Arbotix in "Extended Mode" and retain full resolution of the Pan/Tilt. The Button Values Byte
(byte 6) should default to 0, as digital IO is handled by the Ext Instruction Byte while in Extended Mode.