Encoder Guide
Encoders measure the movement of mechanical parts. This guide discusses how encoders work, encoder interfaces, types of encoders, and more.
The PhidgetEncoder Highspeed interfaces with any 5V quadrature encoder. A quadrature encoder is the most commonly used feedback device for a DC or stepper motor. With an encoder, you can keep track of how far your motor has turned, which then allows you to control the position and velocity in your code. This Phidget connects to your computer via USB.
You can protect your board from dust and debris by purchasing an enclosure. An enclosure will also prevent unintentional shorts caused by objects touching the pins on the bottom of the board or any terminal screws.
Product | Physical Properties | |
---|---|---|
Part Number | Price | Material |
Acrylic Enclosure for the 1057
|
$7.00 | Clear Acrylic |
The PhidgetEncoder HighSpeed can be used with any incremental quadrature encoder. For more details on the different kinds of encoders, have a look at the Encoder Guide. All of the encoders listed below are compatible with this Phidget:
Product | Encoder Properties | |||
---|---|---|---|---|
Part Number | Price | Output Circuit Type | Encoder Resolution | Encoder Speed Max |
Rotary Encoder - 8mm Hollow Shaft 1000CPR with Index
|
$50.00 | Push-Pull | 1000 CPR | 6000 RPM |
Rotary Encoder - 12mm Hollow Shaft 1000CPR with Index
|
$50.00 | Push-Pull | 1000 CPR | 6000 RPM |
Rotary Encoder - 12mm Solid Shaft 1000CPR with Index
|
$60.00 | Push-Pull | 1000 CPR | 2000 RPM |
Rotary Encoder - 4mm Solid Shaft 360CPR
|
$40.00 | Push-Pull | 360 CPR | 6000 RPM |
Rotary Encoder - 6mm Solid Shaft 1000CPR with Index
|
$40.00 | Push-Pull | 1000 CPR | 6000 RPM |
Rotary Encoder - 6mm Solid Shaft 600CPR
|
$25.00 | Push-Pull | 600 CPR | 6000 RPM |
Rotary Encoder - 8mm Solid Shaft 1000CPR with Index
|
$45.00 | Push-Pull | 1000 CPR | 6000 RPM |
Rotary Encoder - For 4mm Motor Shaft 300 CPR
|
$25.00 | Push-Pull | 300 CPR | 6000 RPM |
Rotary Encoder - For 4mm Motor Shaft 40 CPR
|
$10.00 | Push-Pull | 40 CPR | 6000 RPM |
Rotary Encoder - For 5mm Motor Shaft 1000CPR
|
$30.00 | Push-Pull | 1000 CPR | 5000 RPM |
These linear encoders can all be used with the 1057:
Product | Physical Properties | |
---|---|---|
Part Number | Price | Travel |
Linear Encoder - 300mm
|
$90.00 | 300 mm |
Linear Encoder - 500mm
|
$95.00 | 500 mm |
Linear Encoder - 700mm
|
$100.00 | 700 mm |
Linear Encoder - 900mm
|
$110.00 | 900 mm |
Linear Encoder - 1100mm
|
$120.00 | 1.1 m |
Linear Encoder - 1400mm
|
$340.00 | 1.4 m |
Linear Encoder - 1700mm
|
$360.00 | 1.7 m |
Linear Encoder - 2000mm
|
$380.00 | 2 m |
Here are all of the draw-wire encoders that can be used with the 1057:
Product | Encoder Properties | Physical Properties | |||
---|---|---|---|---|---|
Part Number | Price | Output Circuit Type | Length Resolution | Wire Pull Length | Weight |
Draw-Wire Encoder - 1000mm
|
$100.00 | Push-Pull | — | 1 m | 400 g |
Draw-Wire Encoder - 3000mm
|
$150.00 | Push-Pull | — | 3 m | 790 g |
This Phidget comes with a 5-wire encoder cable that you can use to easily connect to an encoder. If you need extras, you can find them below.
Product | Physical Properties | ||
---|---|---|---|
Part Number | Price | Cable Length | Cable Gauge |
HighSpeed Encoder Cable 50cm
|
$5.00 | 500 mm | 26 AWG |
Use a USB cable to connect this Phidget to your computer. We have a number of different lengths available, although the maximum length of a USB cable is 5 meters due to limitations in the timing protocol. For longer distances, we recommend that you use a Single Board Computer to control the Phidget remotely.
Product | Physical Properties | |||
---|---|---|---|---|
Part Number | Price | Connector A | Connector B | Cable Length |
USB-A to Mini-B Cable 28cm 24AWG
|
$3.00 | USB Type A | USB Mini-B | 280 mm |
USB-A to Mini-B Cable 28cm Right Angle
|
$3.50 | USB Type A | USB Mini-B (90 degree) | 280 mm |
USB-A to Mini-B Cable 60cm 24AWG
|
$3.50 | USB Type A | USB Mini-B | 600 mm |
USB-C to Mini-B Cable 60cm 28AWG
|
$5.00 | USB Type C | USB Mini-B | 600 mm |
USB-A to Mini-B Cable 83cm Right Angle
|
$4.50 | USB Type A | USB Mini-B (90 degree) | 830 mm |
USB-A to Mini-B Cable 120cm 24AWG
|
$4.00 | USB Type A | USB Mini-B | 1.2 m |
USB-A to Mini-B Cable 180cm 24AWG
|
$4.00 | USB Type A | USB Mini-B | 1.8 m |
USB-C to Mini-B Cable 180cm 28AWG
|
$6.00 | USB Type C | USB Mini-B | 1.8 m |
USB-A to Mini-B Cable 450cm 20AWG
|
$12.00 | USB Type A | USB Mini-B | 4.5 m |
Welcome to the 1057 user guide! In order to get started, make sure you have the following hardware on hand:
Next, you will need to connect the pieces:
Now that you have everything together, let's start using the 1057!
In order to demonstrate the functionality of the 1057, the Phidget Control Panel running on a Windows machine will be used.
The Phidget Control Panel is available for use on both macOS and Windows machines.
To open the Phidget Control Panel on Windows, find the icon in the taskbar. If it is not there, open up the start menu and search for Phidget Control Panel
To open the Phidget Control Panel on macOS, open Finder and navigate to the Phidget Control Panel in the Applications list. Double click on the icon to bring up the Phidget Control Panel.
For more information, take a look at the getting started guide for your operating system:
Linux users can follow the getting started with Linux guide and continue reading here for more information about the 1057.
After plugging the 1057 into your computer and opening the Phidget Control Panel, you will see something like this:
The Phidget Control Panel will list all connected Phidgets and associated objects, as well as the following information:
The Phidget Control Panel can also be used to test your device. Double-clicking on an object will open an example.
Double-click on the Encoder object, labelled PhidgetEncoder HighSpeed, in order to run the example:
General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:
Before you can access the device in your own code, and from our examples, you'll need to take note of the addressing parameters for your Phidget. These will indicate how the Phidget is physically connected to your application. For simplicity, these parameters can be found by clicking the button at the top of the Control Panel example for that Phidget.
In the Addressing Information window, the section above the line displays information you will need to connect to your Phidget from any application. In particular, note the Channel Class field as this will be the API you will need to use with your Phidget, and the type of example you should use to get started with it. The section below the line provides information about the network the Phidget is connected on if it is attached remotely. Keep track of these parameters moving forward, as you will need them once you start running our examples or your own code.
You are now ready to start writing your own code for the device. The best way to do that is to start from our Code Samples.
Select your programming language of choice from the drop-down list to get an example for your device. You can use the options provided to further customize the example to best suit your needs.
Once you have your example, you will need to follow the instructions on the page for your programming language to get it running. To find these instructions, select your programming language from the Programming Languages page.
The 1057 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 1057 reads a standard incremental non-differential TTL encoder.
The maximum rate of the 1057 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).
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 1057. Almost any incremental quadrature encoder will work but it is important to verify this before connecting it. Absolute encoders will not work with this device. Warning: The 1057 incorporates a 1kOhm 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 1057. 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 | www.Grayhill.com | Series 63R, Series 61R Series 63Q TTL Output |
US Digital (Recommended) | www.USDigital.com | S4, S5, E2, E3, E4, E4P, etc. |
Avago Technologies (Formerly Agilent) | www.avagotech.com | HEDS 5500 |
CUI Inc. | www.cui.com | AMT103-V |
The encoder input on the 1057 uses a 5-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.
If you want to know more about encoders, check out the Encoder Guide.
Board Properties | |
---|---|
Controlled By | USB (Mini-USB) |
USB Stack | PHIDUSB |
API Object Name | Encoder |
Encoder Interface | |
Number of Encoder Inputs | 1 |
Count Rate Max | 1E+06 pulses/s |
Encoder Interface Resolution | x4 |
Sampling Interval Min | 0.008 s/sample |
Sampling Interval Max | 1 s/sample |
Encoder Input Low Voltage Max | 1.7 V DC |
Encoder Input High Voltage Min | 2.1 V DC |
Pull-down Resistance (Line Driver) | 2.2 kΩ or 10 kΩ |
Pull-up Resistance (Open Collector) | 2.2 kΩ or 10 kΩ |
USB Speed | High Speed |
Electrical Properties | |
Current Consumption Max | 500 mA |
Current Consumption Min | 55 mA |
USB Voltage Min | 4.5 V DC |
USB Voltage Max | 5.3 V DC |
Physical Properties | |
Operating Temperature Min | -40 °C |
Operating Temperature Max | 85 °C |
Customs Information | |
Canadian HS Export Code | 8471.80.00 |
American HTS Import Code | 8471.80.40.00 |
Country of Origin | CN (China) |
Date | Board Revision | Device Version | Packaging Revision | Comment |
---|---|---|---|---|
January 2005 | 0 | 300 | Product Release | |
November 2009 | 1 | 302 | Increased pull-up resistance from 1kO to 2.2kO | |
January 2010 | 2 | 302 | Replaced USB connector with Mini-USB connector, made board slightly smaller. | |
January 2018 | 2 | 302 | B | Removed cables from packaging. |
June 2021 | 3 | 400 | B | Added IOMode support. Updated obsolete components on board; no longer supports Phidget21 |
May 2023 | 3 | 401 | B | USB bug fixes |
Channel Name | API | Channel |
---|---|---|
Encoder Input | Encoder | 0 |
Product | Encoder Interface | ||
---|---|---|---|
Part Number | Price | Number of Encoder Inputs | Count Rate Max |
Quadrature Encoder Phidget
|
$15.00 | 1 | 1E+06 pulses/s |
DC Motor Phidget
|
$75.00 | 1 | 400000 pulses/s |
4A DC Motor Phidget
|
$40.00 | 1 | 400000 pulses/s |
PhidgetEncoder HighSpeed
|
$50.00 | 1 | 1E+06 pulses/s |
PhidgetEncoder HighSpeed 4-Input
|
$75.00 | 4 | 1E+06 pulses/s |
PhidgetEncoder HighSpeed
|
$40.00 | 1 | 2E+06 pulses/s |
PhidgetEncoder HighSpeed 4-Input
|
$65.00 | 4 | 1E+06 pulses/s |
PhidgetMotorControl 1-Motor
|
$75.00 | 1 | 500000 cycles/s |