Item #: PH-1047
Availability: Back Order
Price: $75.00

    Quantity:

    Quantity

    5-910-2425-4950-99100+

     Price Each 

    $71.25$67.50$60.00$52.50$48.75

    Note: The 1047_1B is identical to the 1047_1 but no longer comes with associated cables.

    Cables sold separately: 3018 Mini USB Cable 180CM & 3019 HighSpeed Encoder Cable 50cm

    The PhidgetEncoder Highspeed 4-Input 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 an optional third output channel to signal when the index pin (a reference point for zero position or a complete revolution) has been reached.

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

    Both mechanical and optical encoders are available, with optical encoders dominating at > 100 counts per second. Review the data sheet for the encoder you are planning to use to ensure it is compatible with the PhidgetEncoder Highspeed 4-Input. 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.

    This particular revision of the 1047 has improved power switches to enhance system stability when turning off and on separate encoder inputs. It also has updated firmware with a few minor bug fixes.

    Product Specifications

    Encoder Interface
    API Object NameEncoder
    Number of Encoder Inputs4
    Count Rate Max1E+06 pulses/s
    Encoder Interface Resolutionx4
    Update Rate125 samples/s
    Time Resolution1 μs
    Encoder Input Low Voltage Max800 mV DC
    Encoder Input High Voltage Min2.1 V DC
    USB SpeedFull Speed
    Board
    Controlled ByUSB
    API Object NameEncoder
    Electrical Properties
    Encoder Pull-up Resistance10 kΩ
    Current Consumption Max470 mA
    Current Consumption Max (per encoder)200 mA
    Current Consumption Min30 mA
    USB Voltage Min4.8 V DC
    USB Voltage Max5.3 V DC
    Physical Properties
    Recommended Wire Size16 - 26 AWG
    Operating Temperature Min0 °C
    Operating Temperature Max70 °C
    Digital Inputs
    Number of Digital Inputs4
    Pull-up Resistance15 kΩ
    Low Voltage Max (True)800 mV DC
    High Voltage Min (False)2.1 V DC
    Low Voltage Trigger Length Min4 ms
    High Voltage Trigger Length Min16 ms
    Digital Input Voltage Max± 15 V DC
    Digital Input Update Rate125 samples/s

    Documents

    Library & Driver Downloads

    Code Samples

    API Language OS
    DigitalInput C Multiple Download
    Encoder C Multiple Download
    DigitalInput C# Windows Download
    Encoder C# Windows Download
    DigitalInput Java Multiple Download
    Encoder Java Multiple Download
    DigitalInput JavaScript Any Download
    Encoder JavaScript Any Download
    DigitalInput Objective-C macOS Download
    Encoder Objective-C macOS Download
    DigitalInput Python Multiple Download
    Encoder Python Multiple Download
    DigitalInput Visual Basic .NET Windows Download
    Encoder Visual Basic .NET Windows Download

    Projects

    Product History

    Date Board Revision Device Version Comment
    June 2010 0 100 Product Release
    May 2011 0 101 getLabelString fixed for labels of length >7
    January 2012 0 102 Fixed initial power state of channels 3 and 4
    June 2012 1 102 Replaced power switches for added stability
    March 2015 1 103 Fixed a timing bug

    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 one of the included encoder cables (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. If you would like to follow along, first 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.

    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.

    ManufacturerWeb PagePart Number
    Grayhillwww.Grayhill.comSeries 63R, Series 61R Series 63Q TTL Output
    US Digital (Recommended)www.USDigital.comS4, S5, E2, E3, E4, E4P, etc.
    Avago Technologies (Formerly Agilent)www.avagotech.comHEDS 5500
    CUI Inc.www.cui.comAMT103-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.

    ManufacturerPart NumberDescription
    Molex50-57-94055 Position Cable Connector
    Molex16-02-0102Wire Crimp Insert for Cable Connector
    Molex70543-00045 Position Vertical PCB Connector
    Molex70553-00045 Position Right-Angle PCB Connector (Gold)
    Molex70553-00395 Position Right-Angle PCB Connector (Tin)
    Molex15-91-20555 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 Primer. If you'd like to know more about the digital inputs on the 1047, visit the Digital Input Primer.

    What to do Next

    • Software Overview - Find your preferred programming language here to learn how to write your own code with Phidgets!
    • General Phidget Programming - Read this general guide to the various aspects of programming with Phidgets. Learn how to log data into a spreadsheet, use Phidgets over the network, and much more.
    • Phidget22 API - The API is a universal library of all functions and definitions for programming with Phidgets. Just select your language and device and it'll give you a complete list of all properties, methods, events, and enumerations that are at your disposal.