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

Pololu USB Software Development Kit on Ubuntu


I recently bought a Pololu Jrk 21v3 to be used as the motor controller in my project. I am trying to run it on Ubuntu Linux but there doesn’t seem to be much information on this. Every document about configuring the Jrk is focused on Windows but says it also supports Linux. I found a General software kit here:

I took the latest zip and tried to follow the read me. The only thing it says about Linux is focused on the maestro which I do not have. Besides the make file not working I also cannot find a way to run the Jrk file. I tried xbuild on several files including Jrk.sln and Jrk.csproj. The .sln file gave me the following error:
(ValidateSolutionConfiguration target) ->
: error : Error initializing task Message : Not registered task Message.

This show the directory I am working with:

Any help would be greatly appreciated!

Thank you



While the jrk can be controlled from Windows, Linux, or Mac OS X, the configuration utility only works on Windows. You can see more information about the jrk’s supported operating systems in the “Supported Operating Systems” section of the Pololu Jrk USB Motor Controller User’s Guide.

If you have not done so yet, you will need to configure the jrk from a Windows computer. After that, it can be controlled from your Linux computer. One way to control the jrk is through its virtual serial port, which is documented in the “Using the Serial Interface” section of the jrk user’s guide. Except for configuration, you won’t need any of our software for this method. To use the USB SDK, please keep reading.

The Pololu USB SDK uses the jrk’s native USB interface. Once you configure the jrk on Windows and compile JrkCmd, you can control the jrk by simply running JrkCmd to send target values to the jrk.

The “Compiling C# code in Linux” section of the Pololu USB SDK’s README has instructions for how to compile and run jrk software on Ubuntu. That section is not focused on the Maestro; the Maestro is mentioned only as an example of how to run an executable after you compiled it, and you can run executables for the jrk the same way.

I am not sure why the SDK’s Makefile was not working for you, but I looked into it today and I found out that the SDK needed to be updated to make it work properly in Ubuntu 16.04. The main issue is that the names of the relevant mono packages have changed and Mono’s gmcs compiler is no longer available, so we have to use mcs instead. I have fixed those issues and posted a new version of the SDK here:

We are not familiar with xbuild. The .sln files in the Pololu USB SDK are only intended to be used with Visual Studio on Windows.



Thank you so much! I was running Ubuntu 16.04 so that fix worked perfectly. Would you happen to have any simple examples of running and stopping two motors with c code? Or is it only possible to run one motor? Keeping in mind they would not run simultaneously one would turn off and if need be the other would turn on. This is for controlling motors on a telescope so we need to be able to control vertical and horizontal motors.


We do not have any example C code that shows how to control two jrks. There is some example C code for the jrk’s USB serial interface in the “Serial Example Code” section of the user’s guide. You could adapt that code to control two jrks. You could also use the jrk’s native USB interface and the Pololu USB SDK to control two jrks.