Notice: This page contains information for the legacy Phidget21 Library. Phidget21 does not support VINT Phidgets, and will not support any new Phidgets. Phidget21 will be maintained until 2020. We recommend that new projects be developed against the Phidget22 Library.

Click on the 2phidget22.jpg button in the menu bar to go to the Phidget22 version of this page.


1057 User Guide

From Phidgets Legacy Support
Jump to: navigation, search
Go to this device's product page

Getting Started

Checking the Contents

You should have received:

  • A PhidgetEncoder HighSpeed board
  • A Mini-USB cable
  • A 5-wire encoder cable

In order to test your new Phidget you will also need:

  • An Incremental Encoder with Quadrature output (with a known pinout)

Connecting the Pieces

  1. Connect your Encoder to the PhidgetEncoder board using the 5-wire cable.
  2. Connect the PhidgetEncoder board to your computer using the USB cable.

1057 2 Connecting The Hardware.jpg

Testing Using Windows 2000 / XP / Vista / 7

Make sure you have the current version of the Phidget library installed on your PC. If you don't, follow these steps:

  1. Go to the Quick Downloads section on the Windows page
  2. Download and run the Phidget21 Installer (32-bit, or 64-bit, depending on your system)
  3. You should see the Ph.jpg icon on the right hand corner of the Task Bar.

Running Phidgets Sample Program

Double clicking on the Ph.jpg icon loads the Phidget Control Panel; we will use this program to ensure that your new Phidget works properly.

The source code for the Encoder-full sample program can be found in the quick downloads section on the C# Language Page. If you'd like to see examples in other languages, you can visit our Languages page.

Updating Device Firmware

If an entry in this list is red, it means the firmware for that device is out of date. Double click on the entry to be given the option of updating the firmware. If you choose not to update the firmware, you can still run the example for that device after refusing.

Double Click on the Ph.jpg icon to activate the Phidget Control Panel and make sure that the Phidget High Speed Encoder is properly attached to your PC.

1057 2 Control Panel Screen.jpg
  1. Double Click on Phidget High Speed Encoder 1 encoder in the Phidget Control Panel to bring up the Encoder-full example and check that the box labelled Attached contains the word True. Please note that this is only an example program and is not intended to be used in applications. It is meant to show how the API calls can be used and can be a starting point for your own application.
  2. Rotate the encoder and the relative change will display positive when rotated clockwise and will display negative when rotated counter-clockwise.
  3. The example will display the time in microseconds that has elapsed since the last position change update received from the device.
  4. Encoder position will display the absolute position of the encoder since it was initially enabled. Position will increase when the encoder is rotated clockwise and decrease when rotated counter-clockwise.
  5. This feature is not supported.
  6. Counts/second displays the current velocity of the encoder measured in encoder counts per second.
1057 2 Encoder Screen.jpg

Testing Using Mac OS X

  1. Go to the Quick Downloads section on the Mac OS X page
  2. Download and run the Phidget OS X Installer
  3. Click on System Preferences >> Phidgets (under Other) to activate the Preference Pane
  4. Make sure that the Phidget High Speed Encoder is properly attached.
  5. Double Click on Phidget High Speed Encoder in the Phidget Preference Pane to bring up the Encoder-full Sample program. This program will function in a similar way as the Windows version.

Using Linux

For a step-by-step guide on getting Phidgets running on Linux, check the Linux page.

Using Windows Mobile / CE 5.0 / CE 6.0

For a step-by-step guide on getting Phidgets running on Windows CE, check the Windows CE page.

Technical Details

The PhidgetEncoder HighSpeed can be used with a wide assortment of mechanical and optical encoders. The encoder should be of quadrature output type, indicating that there will be two output channels (usually labeled A and B). Specifically, the PhidgetEncoder HighSpeed reads a standard incremental non-differential TTL encoder.

The maximum rate of the 1057 PhidgetEncoder is specified at 500,000 cycles per second. In your application, this number relates directly to the number of revolutions per second you wish to measure, and the number of counts per revolution specified for your encoder. If your encoder's wheel has 1000 counts per revolution, then the limit on measurable revolutions per second is 500, or 30,000rpm (which, for the 1057, corresponds to 2000 position changes in software per second).

Choosing Encoders

Both mechanical and optical encoders are available, with optical encoders prevailing in quality at higher revolution speeds. Review the data sheet for the encoder that your are selecting carefully before purchasing it to ensure it is compatible with the PhidgetEncoder HighSpeed. Almost any incremental quadrature encoder will work but it is important to verify this before connecting it to the Phidget. Absolute encoders will not work with this device. Warning: The PhidgetEncoder HighSpeed incorporates a 1kiloOhm pull-up resistor on each line from the encoder input connector. Some encoders will not be able to sink enough current to reliably signal to the 1057. They may work initially, or not at all.

We have reviewed the following encoders, and found that they can be used with the PhidgetEncoder HighSpeed.

This is not meant to be a comprehensive list but should be used as a comparison with other encoders.

Manufacturer Web Page Part Number
Grayhill Series 63R, Series 61R Series 63Q TTL Output
US Digital (Recommended) S4, S5, E2, E3, E4, E4P, etc.
Avago Technologies (Formerly Agilent) HEDS 5500
CUI Inc. AMT103-V


Each Input uses a 3-pin, 0.100 inch pitch locking connector. The connectors are commonly available - refer to the Table below for manufacturer part numbers.

Manufacturer Part Number Description
Molex 50-57-9405 5 Position Cable Connector
Molex 16-02-0102 Wire Crimp Insert for Cable Connector
Molex 70543-0004 5 Position Vertical PCB Connector
Molex 70553-0004 5 Position Right-Angle PCB Connector (Gold)
Molex 70553-0039 5 Position Right-Angle PCB Connector (Tin)
Molex 15-91-2055 5 Position Right-Angle PCB Connector - Surface Mount

Note: Most of the above components can be bought at Digikey.

Connector Pinout Diagram

1057 2 Functional.jpg

Further Reading

If you want to know more about encoders, check out the Encoder Primer.


We document API Calls specific to this product in this section. Functions common to all Phidgets and functions not applicable to this device are not covered here. This section is deliberately generic. For calling conventions under a specific language, refer to the associated API manual in the Quick Downloads section for that language. For exact values, refer to the device specifications.


int EncoderCount() [get] : Constant

Returns the number of encoders supported by this PhidgetEncoder. The 1057 supports one optical encoder.

int Position(int EncoderIndex) [get,set]

Returns/sets the position of an encoder. This is an absolute position as calcutated since the encoder was plugged in. Dividing position by the number of increments per revolution will give the number of rotations the encoder has travelled.
Position can be set, typically used when an encoder has reached an identifiable (through external means, such as a limit switch) home position. This call does not send information to the device, as an absolute position is maintained only in the library. After this call, position changes from the encoder will use the new value to calculate absolute position.


OnPositionChange(int EncoderIndex, int Time, int PositionChange) [event]

An event that is issued whenever a change in encoder position occurs. This event returns the length of time that the change took (in milliseconds), and the amount of change (positive/negative encoder increments).

Product History

Date Board Revision Device Version Comment
January 2005 0 300 Product Release
April 2007 0 301 Added index channel
November 2009 1 302 Increased pull-up resistance from 1kΩ to 2.2kΩ
January 2010 2 302 Replaced USB connector with Mini-USB connector, made board slightly smaller.