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

Jrk 12v3 reading current consumpion nonlinearity



I have motor driver Jrk 12v3. I have configured it to get input data throught the TTL serial line,
because I need to get actual current throught the motor. I use driver without feedback, also I
set directly the PWM. When I set the PWM so, that digital A-meter displays aprox. 400 mA,
than the driver send value 0x01 to current query. When I set the PWM so, that digital A-meter
displays aprox.1 A, than the driver send value 0x09 to current query. When I set the PWM so,
that digital A-meter displays aprox. 2 A, than the driver send value 0x22 to current query.

I thought, the error is caused by the A-meter, because of non-sinusoidal waveshape of
output current at PWM driver. So I tried to supply the motor from linear DC laboratory power
suply. It displays cca 4,2 V at 2 A of current consumpiton. Then I set the PWM at Jrk 12V3 so,
that mean value was cca 4,2 V. The A-meter displays aprox. 2 A too.

Also, the actual current consunption readed from Jrk 12v3 is very non-linear. Is it OK, or
is it mulfunction? Or I do something wrong?

Thank You for Your reply



It is possible that the ammeter could be causing what you see. However, your results do not look particularly abnormal. You can find a graph of your points plotted here.

- Jeremy



as I wrote in my query, I have tested, that the ammeter didn’t caused any measurement error. I tested it by using osciloscope and linear DC power supply. When the osciloscope shows aprox. 4.2 V mean value at output voltage of Jrk, then the ammeter shows aprox. 2A. When I supply the motor directly from linear DC power supply, it shows aprox. 4.2V at 2A too.

Results of current measurement from Jrk are relatively OK, it shows aprox. 400 mA when ammeter shows aprox. 400 mA. The problem is the resolution. It starts at 1 = 400 mA (Jrk sends 1 at read current command and aprox. at the same time, the plot in Jrk configuration utility jumps from 0 to 400 mA). The resolution goes throught 0x09 = 1A (also 1 = aprox. 111 mA) and it finishes at 0x22 = 2A (also aprox. 1 = 59 mA). I need constant resolution in whole range. Is it possible?


Do you have a way to measure the current with the oscilloscope? The current signal is likely very noisy, and if the ammeter is averaging it differently from the jrk, that could be part of the reason for the variation.

The current sense is provided by the motor driver IC itself, and it is intended mostly as a rough estimate (also, it is not likely to be very accurate at low currents). You can find more information on the feedback feature of the motor driver on its datasheet.

If you are looking for a more accurate way of measuring current, you might consider our ±5A current sensor.

- Jeremy


Maybe I wrote my question wrong …

I used 2 method for power the motor.
1st: I powered the motor by linear DC power supply with adjustable output voltage. I measured the output current of Jrk by ammeter. When I set up the voltage aprox. 1.9V, then the ammeter displayed aprox. 1A. When I set up teh voltage aprox. 4.2V, then the ammeter displayed aprox. 2A.
2nd: I powered the motor by Jrk. I used the osciloscope for voltage measurement and the same ammeter as in 1 for current measurement (DC range). When I set up such PWM, that the osciloscope displayed mean value of output voltage at Jrk aprox. 1.9V, then the ammeter displayed aprox. 1A as in 1. When I set up such PWM, that the osciloscope displayed mean value of output voltage at Jrk aprox. 4.2V, then the ammeter displayed aprox. 2A as in 1. Also I proved, the ammeter measure well.

The problem #1 is the nonlinearity of current measurements of Jrk. I send the current reading response from Jrk vs current at output of Jrk plot as an attachment. There You can see, the curve is nonlinear. In MC33926 datasheet is wroten, that at FB pin of this IC is 0.24% of load current - also the curve should be linear.
The problem #2 is, that I am not able to measure currents under 400 mA with my Jrk, but I found at web site pololu.com/picture/view/0J1749, that Jrk can measure currents in range +/- 500 mA in much better resolution, than my Jrk.

Thank You for Your patience and Your reply :wink:



I was able to get accurate results (and a linear relationship) using a resistive load with the jrk 21v3, and it was able to measure currents well below 400 mA. I suspect that your ammeter and lab power supply are not able to very accurately measure your motor current, and this accounts for the perceived nonlinearity. Could you see what happens if you keep your motor from spinning and gradually increase the duty cycle from zero while monitoring the motor current with the jrk Configuration Utility? A screenshot of the corresponding graph window would be helpful.

Just to rule out any potential problems with your jrk settings, could you post your jrk settings file so I can take a look?

- Jeremy


I send plot of current and duty cycle from Jrk configuration utility and the configuration file as an attachment. In current plot you can see, the resolution is small, first jump from 0 is to aprox. 250 mA (here pololu sends 0x01 up to aprox. 400 mA). Maybe I have entered some values in configuration utility wrong, but I don’t know what are those.

Elsyst - Jrk 12v3 setup file.txt (1.39 KB)


I’m sorry, I send wrong Jpeg… here is the current plot from Jrk.



It looks like there is some offset, which is expected from the ADC. Do you get better results if you revert back to default settings in the jrk Configuration Utility?

Again, the current sensor on the jrk is intended mostly as a rough estimate, and you should really consider one of our current sensor if you need higher resolution.

- Jeremy


I have tried default settings, but nothing has changed. Also I have tried to download firmware v 1.3 again, but nothing has changed. Other AD channels (input and FB) operate well.
Yesterday I found, the pololu can’t do falling ramp, also the parameter “acceleration” control only rise ramp of PWM. When I set up target to 2248 in configuration utility, I see in plot that duty cycle slowly (I have PID period 100 ms and acceleration 5) grows up to final value, whet I set up target back to 2048, the duty cycle fall immediately down to zero. Is there any way to have same ramps for acceleration and deceleration?


Yes, one of our engineers has made a custom version of the firmware that includes deceleration. You can find more information in this thread.

- Jeremy