Pololu Robotics & Electronics
My account Comments or questions? About Pololu Contact Ordering information Distributors

12V brushed DC motor motor control using Labview


I am very new to this topic area. i am currently using the Pololu (item #: 1442) motor to simply spin up a mechnical component on a fixture and am using Labview to measure and display the component’s RPMs. I am manually increasing/decreasing voltage on a power supply in order to achieve the desired RPM value. What is the easiest way to close-loop control this motor using Labview and power supply ? Should i be incorporating Pololu’s DRV8838 Single Brushed DC Motor Driver Carrier (item #: 2990) somehow. Would i be using Labview to input the PWM into the ENABLE input on this driver PCB ? Or, can i control the power supply (programmable Rigor DP832 pwr supply) with Labview and directly interface to motor from pwr supply to automatically increase/decrease voltage to achieve a desired spin rate?

Any guidance and/or technical literature references on this topic/application would be very appreciated. i’m not sure where to start, but since i already am using the Pololu motor with its encoder, i thought it best to start here on this blog.

thank-you very much for any help!



It sounds like you already have the encoder output being processed by LabVIEW to give you an RPM value and what you need is a motor driver or controller that can be controlled via LabVIEW as well. If you can output the appropriate PWM and digital logic signals, I do not see why you would not be able to use a driver that accepts those inputs; however, the DRV8838 carrier you mentioned is a bit under powered for those motors. We generally recommend a motor driver or controller that has a continuous current rating greater than your motor’s stall current. You might consider one of our High-Power Motor Drivers.

Another option would be to use a motor controller that accepts TTL Serial input, such as the Simple Motor Controllers.

Alternatively, you could consider using one of our Jrk Motor Controllers with Feedback. These controllers can be configured to do closed-loop speed control of a brushed DC motor using tachometer feedback (e.g. one wire of a quadrature encoder), so instead of processing the encoders with LabVIEW, you could send the jrk a target over TTL Serial and it would control the motor to go the target speed.



Thanks for your reply, Brandon. so, since i already have the motor/encoder, i just need to buy the “Pololu Jrk 21v3 USB Motor Controller with Feedback (Fully Assembled)” unit, correct? Does it come with software/GUI to program it over req’d serial interface?
do i need anything else, besides the power supply?

thanks again. you have been very responsive and helpful. boy do i need help in this area…i am totally a new-bee. i am a mech engineer, i design mechanical packaging mainly, structural stress analysis, thermal steady-state analysis, etc.




If you want to use the jrk motor controller, you could connect one wire of a quadrature encoder to it as tachometer feedback as I mentioned previously. Then, after configuring the jrk for your application using the Jrk Configuration Utility, you could send set target commands via TTL Serial from LabVIEW. The Jrk Configuration Utility software is available for free under the “Resources” tab of the jrk product page (in the “Jrk Motor Controller Windows Drivers and Software” download). More information for how to configure the jrk and the available serial commands can be found in the jrk’s user’s guide, also located in the “Resources” tab. Since the jrk is versatile, you will need to configure it for your specific application, so I recommend reading through some of that information to see if it sounds like something you are comfortable with setting up. You should not need anything else other than a power supply (aside from a USB cable).



great Brandon ! i will get some of these controllers and try out. i will assume i can send the “set of target commands” w/ or without Labview and just keep Labview as solely, a simple monitor/display of the motor’s output speed (in RPMs). Probably not very efficient this way but just the closed-loop feature will be alot better than running it manually.

thanks again,


You are correct. Your input signal does not need to come from LabVIEW. Also, the jrk accepts a few types of inputs, such as serial, analog voltage, and hobby RC signals. You can find information about these different options in the “Input Options” section of the jrk user’s guide.



excellant ! thanks again.




i got the “Pololu Jrk 21v3 USB Motor Controller with Feedback (Fully Assembled)” wired up and drivers & Jrk Configuration Utility software installed and can successfully run the Pololu (item #: 1442) motor but with only the “Analog Voltage” feedback option. i read the “Pololu jrk’s Motor Controller User’s Guide” [many times] but there is little information on how to setup the “Frequency (digital)” feedback option. [I beilieve i have it wired correctly: Yellow wire from motor encoder (A output) connected to controller’s FB input pin; and Green wire from motor encoder (GND) to GND input pin on controller (two pins from FB pin) - is this wiring correct for “Frequency (digital)” feedback option?] Are there examples or other documentation somewhere showing the use of the frequency (digital) feedback option as applied to the motor i am using (item #: 1442), or similar, and associated/typical settings for the “Feedback”, “PID”, and “Motor” tabs in the config utility program? Currently, i have only set the Proportional coeff = 1, other 2 coeffs are = 0. Have other customers been successful with applying the Frequency (digital) feedback option with this motor and controller combo ? Am i missing something [other than electronics experience]???

thanks for any additional guidance and assistance,


I noticed you posted this same question in another thread. To keep the forum organized, we can continue the discussion there.