Products for USB Sensing and Control
Products for USB Sensing and Control

PhidgetMotorControl HC

ID: 1064_0

Control up to two DC motors with this controller.

Replaced by 1064_1B

Replaced by the 1064 - PhidgetMotorControlHC.

The PhidgetMotorControl HC allows you to control the angular velocity and acceleration of up to two high-current DC motors.

Many variations of brushed DC motors exist: permanent magnet motors, electromagnet motors, coreless motors, linear motors... the PhidgetMotorController can be used with any of these, as well as other devices like small solenoids, incandescent light bulbs, and hydraulic or pneumatic devices like small pumps and valves.

  • Provides bi-directional control to 2 DC motors
  • Requires external 6 to 15VDC Power Supply
  • USB port is isolated from the motor control outputs
  • Over voltage, over temperature, over current conditions are fed back to the API on the PC
Output Controller Update Rate 50 updates/second
Velocity Resolution 1.5%
Acceleration Resolution 1.5% Velocity/Second2
Acceleration Limit (-100% to +100% velocity) 120ms
PWM Frequency 20kHz
Minimum Power Supply Voltage 6VDC
Maximum Power Supply Voltage 15VDC
Continuous Motor Current 14A
Peak Motor Current - 60 seconds 19A
Peak Motor Current - 10 seconds 25A
Peak Motor Current - 2 seconds 32
Motor Overcurent Trigger on Load< 100mΩ (50A typical)
Device Active Current Consumption 100mA max
Operating Temperature 0 - 70°C

Software Objects

Device Object Name Channel
DC Motor Output DCMotor 0 - 2


Code Samples


DCMotor Visual Studio GUI C# Windows Download
DCMotor Java Android Download
DCMotor JavaScript Browser Download
DCMotor Objective-C macOS Download
DCMotor Swift macOS Download
DCMotor Swift iOS Download
DCMotor Visual Basic .NET Windows Download
DCMotor Max/MSP Multiple Download
CurrentInput Visual Studio GUI C# Windows Download
CurrentInput Java Android Download
CurrentInput JavaScript Browser Download
CurrentInput Objective-C macOS Download
CurrentInput Swift macOS Download
CurrentInput Swift iOS Download
CurrentInput Visual Basic .NET Windows Download
CurrentInput Max/MSP Multiple Download

Product History

Date Board Revision Device Version Comment
October 20070100Product Release
May 2009 0A101Improved PWM Opto-isolators
May 2009 0A102Fixed acceleration bug
July 2011 1102Switch to Mini-USB connector

Getting Started

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

Next, you will need to connect the pieces:

1064 1 Connecting The Hardware.jpg
  1. Connect the motor to one of the PhidgetMotorControl's outputs.
  2. Connect the power supply to the terminal block on the board.
  3. Connec the Phidget to your computer using the USB cable.

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

Using the 1064

Phidget Control Panel

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


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 1064.

First Look

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

1064 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.

DC Motor

Double-click on the DC Motor object, labelled DC Motor Controller, in order to run the example:

1064 DCMotor 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 BackEMF Sensing checkbox to enable/disable back-EMF sensing on the 1064.
  • Drag the Target Velocity slider from -1 (full reverse) to 1 (full forward) to make the motor move.
  • Manipulate the Acceleration slider to increase/decrease the amount of time it takes the DC Motor to reach a target velocity.

Current Input

Double-click on the Current Input object , labelled DC Motor Current Sensor, in order to run the example:

1064 CurrentInput 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:

  • Modify the change trigger and/or data interval value by dragging the sliders. For more information on these settings, see the data interval/change trigger page.

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

For more information about DC motors and how to control them, check the DC Motor and Controller 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.

Software Objects

Channel NameAPIChannel
DC Motor Controller DCMotor 0 - 1
DC Motor Current Sensor CurrentInput 0 - 1


Back Forward
Print this API