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

PhidgetMotorControl 1-Motor

ID: 1065_0B

Control one motor as well as an encoder and up to 2 analog and 2 digital sensors. Connects to a USB port.

Replaced by 1065_1B

Replaced by the 1065_1B - PhidgetMotorControl 1-Motor. It is the same device, but comes with a built-in heatsink to prevent overheating.

The 1065 lets you control the direction, velocity and acceleration of one DC Motor. The motor is powered by an external power supply (9 to 28VDC).

Brushed DC Motors are very simple to understand, but very difficult to control precisely. By applying a voltage, or pulsing a voltage rapidly, at the terminals of the motor, current flows through the motor, and it will begin rotating. Depending on the direction of the current, the motor will rotate clockwise or counterclockwise. The 1065 changes the effective voltage by changing the percentage of time the full supply voltage is applied to the motor. By switching the voltage very quickly (a technique called PWM), the controller is made smaller, more efficient, and cheaper.

Rough control of actual motor speed can be achieved automatically in software by using the Back EMF property, or current sensing.

Precise control of DC motors can be achieved by using encoders. You can implement control loops through software by using the data provided by the on-board digital inputs, analog inputs and encoder input. There is an event that triggers every 16 ms that returns the back-EMF value for the attached motor, which can be very useful for PID control. For more information, see the API in the User Guide.

The 1065 also provides over-current, over-voltage, and over-temperature protection to insure that the board and motor is not damaged.

Comes Packaged with

Hardware

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

Enclosure

We do not carry enclosures for the 1065, because motor controllers are prone to overheating when kept in enclosed spaces for extended periods of time with no airflow.

DC Motors

We offer a wide variety of DC motors that can be used with this Phidget. Motors with higher gearbox ratios will have higher torque at the cost of lower speed. If you want a motor that has an encoder attached to it, skip ahead to the next table.

Product Motor Properties Physical Properties Gearbox Specifications
Image Part Number Price Maximum Speed at Rated Voltage Rated Torque Shaft Diameter Weight Gear Ratio Gearbox Type
3254_0 $10.00 230 RPM 200 g·cm 6 mm 128 g 10 : 1 Spur
3255_0 $10.00 127 RPM 310 g·cm 6 mm 133 g 18 : 1 Spur
3256_0 $11.00 46 RPM 820 g·cm 6 mm 137 g 50 : 1 Spur
3257_0 $11.00 23 RPM 1.6 kg·cm 6 mm 136 g 100 : 1 Spur
3260_0 $15.00 73 RPM 6.1 kg·cm 6 mm 284 g 50 : 1 Spur
3261_0 $18.00 1080 RPM 240 g·cm 6 mm 144 g 3 1217 : 1 Planetary
3262_1 $18.00 285 RPM 900 g·cm 6 mm 170 g 13 212289 : 1 Planetary
3263_1 $20.50 78 RPM 3.1 kg·cm 6 mm 193 g 50 801895 : 1 Planetary
3264_1 $20.50 28 RPM 8.5 kg·cm 6 mm 192 g 139 1841221 : 1 Planetary
3265_0 $38.00 670 RPM 540 g·cm 8 mm 416 g 3 1217 : 1 Planetary
3266_0 $42.00 175 RPM 1.9 kg·cm 8 mm 464 g 13 212289 : 1 Planetary
3266_1 $42.00 175 RPM 1.9 kg·cm 8 mm 464 g 13 212289 : 1 Planetary
3267_0 $43.00 49 RPM 6.6 kg·cm 8 mm 526 g 50 801895 : 1 Planetary
3267_1 $43.00 49 RPM 6.6 kg·cm 8 mm 526 g 50 801895 : 1 Planetary
3268_1 $43.00 18 RPM 17.3 kg·cm 8 mm 526 g 139 1841221 : 1 Planetary
3269_3 $69.00 588 RPM 5.1 kg·cm 12 mm 1.3 kg 4 14 : 1 Planetary
3270_1 $66.00 192 RPM 14.3 kg·cm 12 mm 1.5 kg 12 2425 : 1 Planetary
3272_1 $72.00 53 RPM 51 kg·cm 12 mm 1.7 kg 46 82125 : 1 Planetary
3273_2 $72.00 33 RPM 82.6 kg·cm 12 mm 1.7 kg 76 4964 : 1 Planetary
3274_1 $76.00 15 RPM 173 kg·cm 12 mm 2 kg 167 601625 : 1 Planetary
DCM4000_0 $40.00 3280 RPM 2.5 kg·cm 8 mm 1.4 kg
DCM4001_0 $80.00 241 RPM 34 kg·cm 12 mm 1.9 kg 4.25:1 Planetary
DCM4002_0 $82.00 182 RPM 45 kg·cm 12 mm 2.1 kg 18:1 Planetary
DCM4003_0 $84.00 50 RPM 162.5 kg·cm 12 mm 2.2 kg 65:1 Planetary
DCM4004_0 $50.00 3000 RPM 4.4 kg·cm 10 mm 2.7 kg
DCM4005_0 $60.00 3563 RPM 6.1 kg·cm 10 mm 3.3 kg

DC Motors with Encoders

These DC motors all have encoders attached to the rear shaft, allowing for closed-loop position control of your motor. These encoders will connect to the encoder input on the 1065 via the cable included with each motor.

Product Motor Properties Physical Properties Gearbox Specifications
Image Part Number Price Maximum Speed at Rated Voltage Rated Torque Shaft Diameter Weight Gear Ratio Gearbox Type
3255E_0 $40.00 127 RPM 310 g·cm 6 mm 136 g 18 : 1 Spur
3256E_0 $41.00 46 RPM 820 g·cm 6 mm 140 g 50 : 1 Spur
3261E_1 $48.00 1080 RPM 240 g·cm 6 mm 147 g 3 1217 : 1 Planetary
3262E_0 $48.00 285 RPM 900 g·cm 6 mm 174 g 13 212289 : 1 Planetary
3263E_1 $50.50 78 RPM 3.1 kg·cm 6 mm 193 g 50 801895 : 1 Planetary
3265E_0 $68.00 670 RPM 540 g·cm 8 mm 419 g 3 1217 : 1 Planetary
3266E_0 $72.00 175 RPM 1.9 kg·cm 8 mm 467 g 13 212289 : 1 Planetary

DC Linear Actuators

Linear actuators are simply DC motors that are hooked up to a linear screw which causes the shaft to move laterally instead of rotating. Unlike a rotary DC motor, linear actuators have a minimum and maximum position at which the shaft cannot contract or extend any further. On its own, the motor would not be smart enough to stop before attempting to push beyond these limits, possibly damaging the motor. That's why each linear actuator also has a built-in feedback potentiometer so you can monitor the position of the shaft and prevent the actuator from stalling out at its limits. The potentiometer can be read by the analog input on the 1065.

Product Motor Properties Electrical Properties Physical Properties
Image Part Number Price Stroke Length Maximum Speed Peak Power Point Peak Efficiency Point Gear Ratio Rated Voltage Weight
3545_0 $100.00 150 mm 24 mm/s 350 N 24 V DC 995 g
3546_0 $100.00 150 mm 10 mm/s 750 N 24 V DC 1 kg
3547_0 $100.00 300 mm 24 mm/s 350 N 24 V DC 1.2 kg
3548_0 $100.00 300 mm 10 mm/s 750 N 24 V DC 1.2 kg
3570_0 $80.00 50 mm 32 mm/s (@ 16 mm/s) 50 N (@ 24 mm/s) 24 N 35:1 12 V DC 56 g
3571_0 $80.00 100 mm 32 mm/s (@ 16 mm/s) 50 N (@ 24 mm/s) 24 N 35:1 12 V DC 74 g
3572_0 $80.00 140 mm 32 mm/s (@ 16 mm/s) 50 N (@ 24 mm/s) 24 N 35:1 12 V DC 84 g
3573_0 $80.00 50 mm 20 mm/s (@ 10 mm/s) 75 N (@ 15 mm/s) 38 N 63:1 12 V DC 56 g
3574_0 $80.00 100 mm 20 mm/s (@ 10 mm/s) 75 N (@ 15 mm/s) 38 N 63:1 12 V DC 74 g
3575_0 $80.00 140 mm 20 mm/s (@ 10 mm/s) 75 N (@ 15 mm/s) 38 N 63:1 12 V DC 84 g
3576_0 $80.00 50 mm 8 mm/s (@ 4 mm/s) 175 N (@ 7 mm/s) 75 N 150:1 12 V DC 56 g
3577_0 $80.00 100 mm 8 mm/s (@ 4 mm/s) 175 N (@ 7 mm/s) 75 N 150:1 12 V DC 74 g
3578_0 $80.00 140 mm 8 mm/s (@ 4 mm/s) 175 N (@ 7 mm/s) 75 N 150:1 12 V DC 84 g

Power Supplies

This Phidget requires a power supply between 9 and 28V DC. We recommend that you use a 12V DC power supply for smaller motors and a 24V supply for larger motors. Check your motor's specifications if you're not sure. For best performance, you should get a 5 amp supply. Select the power supply from the list below that matches your region's wall socket type.

Product Electrical Properties Physical Properties
Image Part Number Price Power Supply Voltage Min Power Supply Voltage Max Power Supply Current Wall Plug Style
3022_0 $10.00 11.4 V DC 12.6 V DC 2 A Australian
3023_1 $10.00 11.4 V DC 12.6 V DC 2 A European
3024_1 $10.00 11.4 V DC 12.6 V DC 2 A North American
3025_0 $10.00 11.4 V DC 12.6 V DC 2 A British
3084_0 $1.50 11.4 V DC 12.6 V DC 500 mA European
3085_0 $1.50 11.4 V DC 12.6 V DC 500 mA North American
3086_0 $10.00 22.8 V DC 25.2 V DC 1 A North American
PSU4013_0 $20.00 22.8 V DC 25.2 V DC 2.5 A
PSU4014_0 $40.00 22.8 V DC 25.2 V DC 5 A
PSU4015_0 $20.00 21.6 V DC 26.4 V DC 1 A
PSU4016_0 $40.00 21.6 V DC 28.8 V DC 15 A
PSU4017_0 $75.00 20 V DC 26.4 V DC 15 A
PSU4018_0 $20.00 11.4 V DC 12.6 V DC 5 A

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
Image Part Number Price Connector A Connector B Cable Length
3017_1 $3.00 USB Type A USB Mini-B 280 mm
3018_0 $4.00 USB Type A USB Mini-B 1.8 m
3020_0 $12.00 USB Type A USB Mini-B 4.5 m
3036_0 $3.50 USB Type A USB Mini-B 600 mm
3037_0 $4.00 USB Type A USB Mini-B 1.2 m


Getting Started

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


Next, you will need to connect the pieces:

1065 0 Connecting The Hardware.jpg
  1. Connect the positive wire (usually red) of the motor to the "+" terminal on the side of the Phidget opposite the USB port. Connect the negative wire (usually black) to the "-" terminal next to the red wire.
  2. Connect your device to your computer using the USB cable.
  3. Plug the DC power supply into the barrel jack, or if it doesn't have a jack, connect the loose leads to the "+" and "G" terminals between the barrel jack and USB port.
  4. Ensure that the DC power supply is plugged in.


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

Using the 1065

Phidget Control Panel

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

First Look

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

1065 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:

1065 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 1065.
  • 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.


Encoder

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

1065 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:

  • 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.
  • Specify a counts per revolution (CPR) value to enable velocity calculation.

Current Input

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

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

Digital Input

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

1065 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

Voltage Input (Supply Voltage)

Double-click on the Voltage Input object, lablled Supply Voltage Sensor, in order to run the example:

1065 VoltageInputSupply 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.

Voltage Input

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

1065 VoltageInputSensor 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.
  • If you have an analog sensor connected that you bought from us, you can select it from the Sensor Type drop-down menu. The example will then convert the voltage into a more meaningful value based on your sensor, with units included, and display it beside the Sensor Value label. Converting voltage to a Sensor Value is not specific to this example, it is handled by the Phidget libraries, with functions you have access to when you begin developing!


For more information about Voltage Inputs, check out the Voltage Input Primer.

Voltage Ratio Input

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

1065 VoltageRatioSensor 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:

  • The voltage ratio is reported in Volts per Volt. For example, if the Phidget is providing 5V and the sensor is sending back 2.5V, the ratio will be 0.5V/V.
  • 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.
  • If you have an analog sensor connected that you bought from us, you can select it from the Sensor Type drop-down menu. The example will then convert the voltage into a more meaningful value based on your sensor, with units included, and display it beside the Sensor Value label. Converting voltage to a Sensor Value is not specific to this example, it is handled by the Phidget libraries, with functions you have access to when you begin developing!


For more information about Voltage Ratio Inputs, check out the Voltage Ratio 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 examples:

This Phidget is compatible with the following examples:


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 Software Overview page.

Technical Details

Connections

The ports and terminal blocks on this board are labelled on the underside to save space:

1065 0 Under.jpg

Further Reading

For more information on the analog inputs on the 1065, check the Analog Input Primer.

For more information about encoders, check the Encoder Primer.

For more information about DC motors and how to control them, check the DC Motor and Controller Primer.

What to do Next

  • Software Overview - Find your preferred programming language here and learn how to write your own code with Phidgets!
  • 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.

Documents

Library & Driver Downloads

Code Samples

Language:

APIDetailLanguageOS
DCMotor C Multiple Download
DCMotor C# Windows Download
DCMotor Java Multiple Download
DCMotor Java Android Download
DCMotor JavaScript Nodejs Download
DCMotor JavaScript Browser Download
DCMotor Objective-C macOS Download
DCMotor Swift macOS Download
DCMotor Swift iOS Download
DCMotor Python Multiple Download
DCMotor Visual Basic .NET Windows Download
DCMotor Max/MSP Multiple Download
DigitalInput C Multiple Download
DigitalInput C# Windows Download
DigitalInput Java Multiple Download
DigitalInput Java Android Download
DigitalInput JavaScript Nodejs 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 Python Multiple Download
DigitalInput Visual Basic .NET Windows Download
DigitalInput Max/MSP Multiple Download
Encoder C Multiple Download
Encoder C# Windows Download
Encoder Java Multiple Download
Encoder Java Android Download
Encoder JavaScript Nodejs Download
Encoder JavaScript Browser Download
Encoder Objective-C macOS Download
Encoder Swift macOS Download
Encoder Swift iOS Download
Encoder Python Multiple Download
Encoder Visual Basic .NET Windows Download
Encoder Max/MSP Multiple Download
VoltageInput C Multiple Download
VoltageInput C# Windows Download
VoltageInput Java Multiple Download
VoltageInput Java Android Download
VoltageInput JavaScript Nodejs Download
VoltageInput Multi-Channel Example JavaScript Browser Download
VoltageInput JavaScript Browser Download
VoltageInput Objective-C macOS Download
VoltageInput Swift macOS Download
VoltageInput Swift iOS Download
VoltageInput Python Multiple Download
VoltageInput Visual Basic .NET Windows Download
VoltageInput Max/MSP Multiple Download
VoltageRatioInput C Multiple Download
VoltageRatioInput C# Windows Download
VoltageRatioInput Load Cell Calibrator C# Windows Download
VoltageRatioInput Java Multiple Download
VoltageRatioInput Java Android Download
VoltageRatioInput JavaScript Nodejs Download
VoltageRatioInput JavaScript Browser Download
VoltageRatioInput Objective-C macOS Download
VoltageRatioInput Swift macOS Download
VoltageRatioInput Swift iOS Download
VoltageRatioInput Python Multiple Download
VoltageRatioInput Visual Basic .NET Windows Download
VoltageRatioInput Max/MSP Multiple Download
CurrentInput C Multiple Download
CurrentInput C# Windows Download
CurrentInput Java Multiple Download
CurrentInput Java Android Download
CurrentInput JavaScript Nodejs Download
CurrentInput JavaScript Browser Download
CurrentInput Objective-C macOS Download
CurrentInput Swift macOS Download
CurrentInput Swift iOS Download
CurrentInput Python Multiple Download
CurrentInput Visual Basic .NET Windows Download
CurrentInput Max/MSP Multiple Download

Projects

Product History

Date Board Revision Device Version Packaging Revision Comment
June 20110100Product Release
June 20110101getLabelString fixed for labels longer than 7 characters
January 20180101BRemoved USB cable from packaging

Product Specifications

Controller Properties
API Object Name MotorControl
Motor Type DC Motor
Number of Motor Ports 1
Velocity Resolution 0.39 % Duty Cycle
Acceleration Resolution 24.5 % Duty Cycle/s
Acceleration Min 24.5 % Duty Cycle/s
Acceleration Max 6250 % Duty Cycle/s
Acceleration Time Min 31.3 ms
Acceleration Time Max 8.2 s
Board Properties
Controlled By USB (Mini-USB)
API Object Name DCMotor
Encoder Interface
Number of Encoder Inputs 1
Count Rate Max 500000 cycles/s
Encoder Interface Resolution x1
Update Rate 125 samples/s
Time Resolution 0.33 ms
Encoder Input Low Voltage Max 800 mV DC
Encoder Input High Voltage Min 2.1 V DC
Encoder Pull-up Resistance 2.4 kΩ
Electrical Properties
Supply Voltage Min 9 V DC
Supply Voltage Max 28 V DC
Continuous Motor Current Max 5 A
Overcurrent Trigger 8 A
Current Consumption Min 20 mA
Current Consumption Max 100 mA
USB Speed Full Speed
Physical Properties
Recommended Wire Size (Power Terminal) 12 - 24 AWG
Operating Temperature Min 0 °C
Operating Temperature Max 70 °C
Voltage Inputs
Number of Voltage Inputs 2
Input Impedance 900 kΩ
5V Reference Error Max 0.5 %
Update Rate 125 samples/s
Digital Inputs
Number of Digital Inputs 2
Pull-up Resistance 15 kΩ
Low Voltage Max (True) 800 mV DC
High Voltage Min (False) 2.1 V DC
Low Voltage Trigger Length Min 4 s
High Voltage Trigger Length Min 16 s
Digital Input Voltage Max ± 15 V DC
Digital Input Update Rate 125 samples/s
Recommended Wire Size 16 - 26 AWG

Software Objects

Channel NameAPIChannel
DC Motor Controller DCMotor 0
Digital Input DigitalInput 0 - 1
Encoder Input Encoder 0
Voltage Input VoltageInput 0 - 1
Supply Voltage Sensor VoltageInput 2
Voltage Ratio Input VoltageRatioInput 0 - 1
DC Motor Current Sensor CurrentInput 0

API


Back Forward
Print this API

Have a look at our DC motor controllers:

Product Controller Properties Electrical Properties Board Properties
Image Part Number Price Number of Motor Ports Velocity Resolution Acceleration Resolution Continuous Motor Current Max Controlled By
1064_1B $115.00 2 0.79 % Duty Cycle 1.9 % Duty Cycle/s (per motor) 14 A USB (Mini-USB)
1065_1B $75.00 1 0.39 % Duty Cycle 24.5 % Duty Cycle/s 5 A USB (Mini-USB)
DCC1000_0 $75.00 1 0.001 Duty Cycle 1 % Duty Cycle/s 25 A VINT
DCC1001_0 $40.00 1 0.001 Duty Cycle 0.1 Duty Cycle/s 2 A VINT