Integrated Encoder Modules

More Views

Integrated Encoder Modules

Integrated Encoder Modules are designed to provide you with direct and detailed information from your robot's motors, the Integrated Encoder Module installs easily by replacing the plastic cap on your 2-Wire Motor 393. You can then use programming software to read what direction your motor is moving, how fast, and its distance traveled.

Availability: Discontinued

Product Name Availability Price Qty
Motor 393 Integrated Encoder Module (2-pack)




This Integrated Encoder Module replaces the plastic cap on the back of a VEX EDR 2-Wire Motor 393 with a quadrature encoder. Install this product and connect it to your Cortex Microcontroller via I2C to receive direct feedback from the motor. This encoder provides information on how fast the motor is going, how far it has traveled, and what direction it is moving.

  • Increased feedback from your motors allows for more control.
  • Communicates via I2C via included 4-wire Cable.
  • Not compatible with the PIC Microcontroller.
  • Programming Required! Consult your software provider for details.

Do not over-tighten screws when installing the Integrated Motor Encoder. Over-tightening can affect encoder performance.

Up to (8) I2C devices can be chained together and connected to (1) I2C port on the Cortex Microcontroller.

Firmware Error Note

We've recently discovered that some of our users are experiencing issues with their robot running after it is disabled. This error is due to the way that the VEX Cortex Microcontroller firmware handles a strange reset condition.

In very rare situations, the user processor inside the Cortex Microcontroller may encounter a partial reset (caused by a static shock, or intermittent power connection) while the master processor continues to operate normally. In this situation, the Cortex Microcontroller firmware could continue to send the last received command to the motor controllers, causing the motors to continue to run even if the robot has stopped communication with the joystick.

This error is rare, and very difficult to reproduce. We have identified that robots using the VEX Integrated Motor Encoders may be susceptible to this failure as the result of a static shock to the Cortex Microcontroller's I2C port. Users who experience such a failure should power-cycle their robots, which will reboot the Cortex processors and resume normal operation.

This is not something caused by user software programs.

VEXpro Gear Reference Guide
The Motor 393 Integrated Encoder Module utilizes a specific internal gear with a printed wheel separated into black and white quadrants. Other than the printed wheel, this gear is identical to the normal 2-Wire Motor 393’s internal gear.

Click here to download a page of replacement wheels. In the event of a lost or damaged wheel, this replacement can be printed on standard 8.5"x11" paper, cut out, and glued to any normal 2-Wire Motor 393 internal gear. Thank you to VEX forum user 4149G who suggested this idea - customer feedback is key to improving the VEX experience.

Kit Contents
393 Motor Integrated Encoder Module (276-1321)
  • (2) Motor Encoder Caps for the 2-Wire Motor 393
  • (2) Replacement Gears with White/Black Encoder Wheel
  • (10) M2x0.6x18mm Self Tapping Screws
  • (2) 12" Long, 4-Wire Extension Cable

Docs & Downloads
393 Motor Integrated Encoder Module

CAD File
393 Motor Integrated Encoder Module

Motor 393 Integrated Encoder Module (276-1321)
.06 lbs
Other Info
Motor 393 Integrated Encoder Module (276-1321)
  • Compatible with 2-Wire Motor 393, Cortex Microcontroller, and 4 Wire Extension Cables

  • 4-Wire Cable (Connect to I2C port on microcontroller or another encoder)
- Black: ground
- Red: +5V
- Yellow: control signal
- White: control signal

  • Function:
  • - Measures 627.2 ticks per revolution of the output shaft in High Torque Configuration
    - Measures 392 ticks per revolution of the output shaft in High Speed Configuration
    - Measures 261.333 ticks per revolution of the output shaft in Turbo Gear Configuration


The Integrated Encoder Module (IEM) defaults to address 0x60 and is terminated (on power-up). Once the address of the 1st device in the chain has been changed (via REG 0x4D), the terminator must be disabled (via REG 0x4B) in order to communicate to the next device in the chain. When the IEM is in the "Disable Terminator" state, it passes the I2C Clock and Data lines to the next device in the I2C chain. When a device is in the "Enable Terminator" state, it does not pass on the I2C Clock and Data lines. The last device in the chain must be terminated (via REG 0x4C).

The suggested address range must be from 0x20 to 0x5E and each device address must be an even number. All devices in the chain can be reset by using a general call address (0x00) followed by a reset command sequence (via REG 0x4E). All device configurations can be erased using the proper command sequence during a general call.

Once the device is powered up, the LED will remain yellow until a new address has been received (via REG 0x4D).

Scratch Pad Area Registers

  • 0x60-9B (RO) Read Scratch Pad Data (60 bytes)
  • 0xA0-DB (WO) Write Scratch Pad Data (60 bytes)

Read Only (RO) & Write Only (WO) Register Descriptions

  • 0x00-0x07 Version (ASCII Version #)
  • 0x08-0x0F Vendor (ASCII Vendor "VEX")
  • 0x10-0x18 Device ID (ASCII Device ID)
  • 0x20 Read Device Information

  • 0x20 is now an auto incrementing address
  • Byte0 Version #
  • Byte1 Type (1: IEM)
  • Byte2 Board Id (2: Small IEM, 3: Large IEM)
  • Byte3 Device Status
  • Bit 0 Termination (0:Not Terminated, 1:Terminated)
  • Bit 1 Overflow (0:No Overflow, 1:Overflow Occurred)
  • Bit 2 Diagnostic Mode (0:off, 1:on)
  • Bit 3-4 Direction (0=Idle, 1=CW, 2=CCW)
  • Bits 5-7 N/A

  • 0x3E-0x3F Read Signed Velocity (16bits)

  • Byte0 Velocity bits 15-08 (Msb)
  • Byte1 Velocity bits 07-00 (Lsb)

  • 0x40-0x43 Read Rotation Bits 48bits (0xXXFFFF)

  • Byte0 Rotation tics bits 15-08 (Msb)
  • Byte1 Rotation tics bits 07-00 (Lsb)
  • Byte2 Rotation tics bits 31-24 (Msb)
  • Byte3 Rotation tics bits 23-16 (Lsb)

  • 0x44-0x45 Read Unsigned Velocity (16bits)

  • Byte0 Velocity bits 15-08 (Msb)
  • Byte1 Velocity bits 07-00 (Lsb)

  • 0x46-0x47 Read Upper Rotation Bits (0xFFXXXX)
  • Byte0 Rotation tics bits 47-40 (Msb)
  • Byte1 Rotation tics bits 39-32 (Lsb)

  • 0x4A (WO) Clear Device Counters
  • 0x4B (WO) Disable Terminator (so next device on chain can be seen)
  • 0x4C (WO) Enable Terminator (Default, device is last in chain)
  • 0x4D (WO) Change device address

  • Byte0 New address (Range from 0x20 – 0x5E) *** Note: if the device is reset it will revert to factor default address.

LED Patterns

Yellow - Not Initialized (default Address)

Every 3 sec
Green Blink - initialized, valid I2C communications, in neutral
Green Double Blink - initialized, valid I2C communications, in neutral and terminated

Blinking Green - relative to speed
Solid Green - full speed in either direction

Yellow (same as Green patterns) - counter overflow

Solid Red - data is being written to EEPROM (1sec)
Blinking Red - address range error (a valid address will clear error)

Green Blip - I2C communications lost, initialized and in neutral
Green Double Blip - I2C communications lost, initialized, neutral and terminated