Products for USB Sensing and Control Canada flag
Products for USB Sensing and Control

sales inquiries

quotes, distributor information, purchase orders
sales@phidgets.com

technical inquiries

support, advice, warranty, returns, misshipment
support@phidgets.com

website inquiries

corrections or suggestions
web@phidgets.com

Address

Unit 1 - 6115 4 St SE
Calgary AB  T2H 2H9
Canada

PHIDGETS Inc.

Unit 1 - 6115 4 St SE
Calgary AB  T2H 2H9
Canada
+1 403 282-7335

PhidgetEncoder HighSpeed 4-Input

ID: 1047_2B

This encoder interface with 4x digital inputs can measure 250,000 quadrature cycles per second at 125 Hz.

$75.00

Quantity Available: 737

Qty Price
5 $71.25
10 $67.50
25 $60.00
50 $52.50
100 $48.75
250 $45.00
500 $41.25
1000 $37.50
50+...

The PhidgetEncoder Highspeed 4-Input 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.

Features

  • 4 Quadrature encoder inputs, with count rate up to 250000 cycles per second
  • 4 Digital inputs for limit switches or buttons
  • High compatibility - line driver, open collector, or push-pull with configurable resistor values
  • Supports index channel, if present
  • Get encoder data at speeds of up to 125 Hz
  • Reports a timestamp in milliseconds for each position change event, for easy velocity calculation

Features:

  • Four digital inputs for reading limit switches or buttons
  • Works with all 0-5V quadrature encoders - simultaneously read four incremental encoders with line driver, open collector, or push-pull output circuits
  • Read at speeds of up to 250,000 quadrature cycles per second
  • Power Saving Options - You can turn it off via software when it's not turning. While disabled, this board draws 30mA of current.
  • Reports a timestamp in milliseconds for each position change event, for easy velocity calculation.

Comes Packaged with

Hardware

  • Hardware mounting kit:
  • 4x M3 Bolts (2cm Length)
  • 4x Plastic spacers (5mm Length)
  • 4x M3 Nuts

Guides

Enclosures

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
3809_2
Acrylic Enclosure for the 1047
$7.50 Clear Acrylic

Rotary Encoders

The PhidgetEncoder HighSpeed 4-Input can be used with any open collector or push-pull 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
3530_1
Rotary Encoder with 4mm Shaft (360 CPR)
$50.00 Push-Pull 360 CPR 3000 RPM
3531_0
Rotary Encoder - For 4mm Motor Shaft 300 CPR
$25.00 Push-Pull 300 CPR 6000 RPM
3532_1
Rotary Encoder with 8mm Bore (500 CPR)
$50.00 Push-Pull 500 CPR 4500 RPM
ENC4109_0
Rotary Encoder - For 4mm Motor Shaft 40 CPR
$10.00 Push-Pull 40 CPR 6000 RPM
ENC4121_0
Rotary Encoder - 6mm Solid Shaft 600CPR
$25.00 Push-Pull 600 CPR 6000 RPM
ENC4122_0
Rotary Encoder - 6mm Solid Shaft 1000CPR with Index
$40.00 Push-Pull 1000 CPR 6000 RPM
ENC4123_0
Rotary Encoder - 8mm Solid Shaft 1000CPR with Index
$45.00 Push-Pull 1000 CPR 6000 RPM
ENC4124_0
Rotary Encoder - 12mm Solid Shaft 1000CPR with Index
$60.00 Push-Pull 1000 CPR 2000 RPM
ENC4126_0
Rotary Encoder - 12mm Hollow Shaft 1000CPR with Index
$50.00 Push-Pull 1000 CPR 6000 RPM
ENC4127_0
Rotary Encoder - For 5mm Motor Shaft 1000CPR
$30.00 Push-Pull 1000 CPR 5000 RPM

Linear Encoders

These linear encoders can all be used with the 1047:

Product Physical Properties
Part Number Price Travel
ENC4110_0
Linear Encoder - 300mm
$90.00 300 mm
ENC4111_0
Linear Encoder - 500mm
$95.00 500 mm
ENC4112_0
Linear Encoder - 700mm
$100.00 700 mm
ENC4113_0
Linear Encoder - 900mm
$110.00 900 mm
ENC4114_0
Linear Encoder - 1100mm
$120.00 1.1 m
ENC4115_0
Linear Encoder - 1400mm
$340.00 1.4 m
ENC4116_0
Linear Encoder - 1700mm
$360.00 1.7 m
ENC4117_0
Linear Encoder - 2000mm
$380.00 2 m

Draw Wire Encoders

Here are all of the draw-wire encoders that can be used with the 1047:

Product Encoder Properties Physical Properties
Part Number Price Output Circuit Type Length Resolution Wire Pull Length Weight
ENC4118_0
Draw-Wire Encoder - 1000mm
$100.00 Push-Pull 1 m 400 g
ENC4119_0
Draw-Wire Encoder - 3000mm
$150.00 Push-Pull 3 m 790 g

Encoder Cables

These 5-wire encoder cables can be soldered onto an encoder in order to easily connect to the 1047.

Product Physical Properties
Part Number Price Cable Length Cable Gauge
3019_0
HighSpeed Encoder Cable 50cm
$5.00 500 mm 26 AWG

USB Cables

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
3017_1
Mini-USB Cable 28cm 24AWG
$3.00 USB Type A USB Mini-B 280 mm
3018_0
Mini-USB Cable 180cm 24AWG
$4.00 USB Type A USB Mini-B 1.8 m
3020_0
Mini-USB Cable 450cm 20AWG
$12.00 USB Type A USB Mini-B 4.5 m
3036_0
Mini-USB Cable 60cm 24AWG
$3.50 USB Type A USB Mini-B 600 mm
3037_0
Mini-USB Cable 120cm 24AWG
$4.00 USB Type A USB Mini-B 1.2 m
CBL4011_0
Mini-USB Cable 28cm Right Angle
$3.50 USB Type A USB Mini-B (90 degree) 280 mm
CBL4012_0
Mini-USB Cable 83cm Right Angle
$4.50 USB Type A USB Mini-B (90 degree) 830 mm
CBL4020_0
USB-C to Mini USB Cable 60cm
$5.00 USB Type C USB Mini-B 600 mm
CBL4021_0
USB-C to Mini USB Cable 180cm
$6.00 USB Type C USB Mini-B 1.8 m


Getting Started

Welcome to the 1047 user guide! In order to get started, make sure you have the following hardware on hand:


Next, you will need to connect the pieces:

1047 0 Connecting The Hardware.jpg
  1. Connect the encoder to the 1047 Encoder Phidget using an encoder cable (Soldering may be required).
  2. Connect your device to your computer using the USB cable.


Now that you have everything together, let's start using the 1047!

Using the 1047

Phidget Control Panel

In order to demonstrate the functionality of the 1047, 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.

Windows

To open the Phidget Control Panel on Windows, find the Ph.jpg icon in the taskbar. If it is not there, open up the start menu and search for Phidget Control Panel

Windows PhidgetTaskbar.PNG

macOS

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 Ph.jpg 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 1047.

First Look

After plugging the 1047 into your computer and opening the Phidget Control Panel, you will see something like this:

1047 Panel.jpg


The Phidget Control Panel will list all connected Phidgets and associated objects, as well as the following information:

  • Serial number: allows you to differentiate between similar Phidgets.
  • Channel: allows you to differentiate between similar objects on a Phidget.
  • Version number: corresponds to the firmware version your Phidget is running. If your Phidget is listed in red, your firmware is out of date. Update the firmware by double-clicking the entry.


The Phidget Control Panel can also be used to test your device. Double-clicking on an object will open an example.

Encoder

Double-click on the Encoder object, labelled Encoder Input, in order to run the example:

1047 Encoder Example.jpg


General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:

  • Toggle the Enabled checkbox to enable/disable the 1047.
  • Specify a counts per revolution (CPR) value to enable velocity calculation.
  • Position Change: the number of ticks (or quadrature cycles) that have occurred since the last change event.
  • Time Change: the amount of time in milliseconds that has elapsed since the last change event.
  • Position: the total position in ticks relative to where the encoder was when the window was opened.
  • Index Position: the position where the index channel was last encountered. Some encoders do not support index, check your encoder's datasheet for more information.
  • Velocity: the average velocity in rotations per second. A CPR must be specified to enable this functionality.


Digital Input

Double-click on a Digital Input object in order to run the example:

1047 DigitalInput Example.jpg

General information about the selected object will be displayed at the top of the window. You can also experiment with the following functionality:

  • This is an active-low device, therefore, it will be true when connected to ground, and false when connected to a high voltage.

For more information about Digital Inputs, take a look at the Digital Input Primer

Finding The Addressing Information

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.

The locate Phidget button is found in the device information box

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.

All the information you need to address your Phidget

Using Your Own Program

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.

Code Sample Choose Language.png


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.

Technical Details

General

The 1047 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 quadrature output channels (usually labeled A and B) and a third output channel (only on some encoders) to signal when the index pin (a reference point for zero position or a complete revolution) has been reached.


The 1047 is able to read four encoders simultaneously. Encoders are not powered up until all initialization of the device is complete. It is possible to enable some or all encoders, depending on how many of the channels are being used. This can also be used to reduce power consumption when certain encoders are not needed.


The 1047 has the added ability to time the duration between a group of quadrature changes. The time is returned in microseconds. This time value can be used to calculate velocity and acceleration with very high precision.


If the number of quadrature counts per revolution is unknown for a particular encoder, this value can be determined by using the index signal. In addition, it is possible to monitor how many counts have occurred since the last index. The index signal is an output only on certain encoders. Refer to the encoder’s description to check if this third output channel exists or not. If the encoder does not have this signal, it is still possible to use it with the 1046, but an event for the index will never get triggered.


The maximum rate of the 1046 is specified at 250,000 quadrature cycles per second. Since this device counts pulses rather than cycles, you could also say that it counts a maximum of 1,000,000 pulses per second (since there are four pulses in a cycle). In your application, these numbers relate 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 250, or 15,000 rpm (which, for the 1047, corresponds to 1000 position changes in software per second).


One of the most common problems encountered with connecting encoders to a 1047 is a strange jitter characterized by the encoder position appearing to switch back and forth between 0 and 1 or -1 and nothing else. This is usually indicative of a bad connection on either the A or B channel. You should check that the wiring is sound and try again.

Choosing Encoders

The 1046 incorporates a 10 kOhm pull-up resistor on each line from the encoder input connector. If your encoder is mechanical, these pull-up resistors eliminate the requirement to add your own external pull-up resistors.

Some optical encoders will have a simple photo-transistor/open-collector output. The 10 kOhm pull-up resistor may have to be augmented with a stronger parallel resistor if your optical encoder datasheet calls for it. Some open-collector outputs will not be strong enough to pull this resistor to ground. These encoders are not compatible with the 1047, and may only work initially, or not at all. If you have any doubts, please contact us.


Most optical encoders have a push-pull output, and the pull-up resistor is irrelevant, but weak enough not cause problems.


We have reviewed the following encoders, and found that they can be used with the PhidgetEncoder Highspeed 4-Input. This is not meant to be a comprehensive list but should be used as examples of the type of encoders that can be used with the 1047.


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

Connectors

Each Input 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.

Further Reading

If you want to know more about encoders, check out the Encoder Guide. If you'd like to know more about the digital inputs on the 1047, visit the Digital Input Guide.

What to do Next

  • Programming Languages - Find your preferred programming language here and learn how to write your own code with Phidgets!
  • Phidget Programming Basics - Once you have set up Phidgets to work with your programming environment, we recommend you read our page on to learn the fundamentals of programming with Phidgets.


Product Specifications

Board Properties
Controlled By USB (Mini-USB)
API Object Name Encoder
Encoder Interface
Number of Encoder Inputs 4
Count Rate Max 1E+06 pulses/s
Encoder Interface Resolution x4
Sampling Interval Min 0.008 s/sample
Sampling Interval Max 60 s/sample
Encoder Input Low Voltage Max 1.1 V DC
Encoder Input High Voltage Min 2 V DC
USB Speed Full Speed
Electrical Properties
Encoder Pull-up Resistance 10 kΩ
Current Consumption Max 500 mA
Current Consumption Max (per encoder) 200 mA
Current Consumption Min 10 mA
USB Voltage Min 4.5 V DC
USB Voltage Max 5.3 V DC
Physical Properties
Recommended Wire Size 16 - 26 AWG
Operating Temperature Min -40 °C
Operating Temperature Max 85 °C
Digital Inputs
Number of Digital Inputs 4
Pull-up Resistance 15 kΩ
Low Voltage Max (True) 1 V DC
High Voltage Min (False) 1.8 V DC
Low Voltage Trigger Length Min 4 ms
High Voltage Trigger Length Min 16 ms
Digital Input Voltage Max 5.3 V DC
Customs Information
Canadian HS Export Code 8471.80.00
American HTS Import Code 8471.80.40.00
Country of Origin CN (China)

Documents

Product History

Date Board Revision Device Version Packaging Revision Comment
June 2010 0100Product Release
May 2011 0101getLabelString fixed for labels of length >7
January 2012 0102Fixed initial power state of channels 3 and 4
June 2012 1102Replaced power switches for added stability
March 2015 1103Fixed a timing bug
September 20171103BRemoved cables from packaging
June 2021 2200BUpdated obsolete components on board; no longer supports Phidget21
May 2023 2301BUSB and timing fixes

Code Samples



Example Options


Downloads

				Make your selections to display sample code.
					

Code Samples

Language:

APIDetailLanguageOS
Encoder Visual Studio GUI C# Windows Download
Encoder JavaScript Browser Download
Encoder Objective-C macOS Download
Encoder Swift macOS Download
Encoder Swift iOS Download
Encoder Visual Basic .NET Windows Download
Encoder Max/MSP Multiple Download
DigitalInput Visual Studio GUI C# Windows Download
DigitalInput JavaScript Browser Download
DigitalInput Multi-Channel Example JavaScript Browser Download
DigitalInput Objective-C macOS Download
DigitalInput Swift macOS Download
DigitalInput Swift iOS Download
DigitalInput Visual Basic .NET Windows Download
DigitalInput Max/MSP Multiple Download

Software Objects

Channel NameAPIChannel
Encoder Input Encoder 0 - 3
Digital Input DigitalInput 0 - 3

API


Back Forward
Print this API

Have a look at our encoder interfaces:

Product Encoder Interface
Part Number Price Number of Encoder Inputs Count Rate Max
1047_1B
PhidgetEncoder HighSpeed 4-Input
$80.00 4 1E+06 pulses/s
1047_2B
PhidgetEncoder HighSpeed 4-Input
$75.00 4 1E+06 pulses/s
1057_2B
PhidgetEncoder HighSpeed
$55.00 1 2E+06 pulses/s
1057_3B
PhidgetEncoder HighSpeed
$50.00 1 1E+06 pulses/s
1065_1B
PhidgetMotorControl 1-Motor
$75.00 1 500000 cycles/s
DCC1000_0
DC Motor Phidget
$75.00 1 400000 pulses/s
DCC1002_0
4A DC Motor Phidget
$40.00 1 400000 pulses/s
ENC1001_0
Quadrature Encoder Phidget
$15.00 1 1E+06 pulses/s