I think you could within a few minutes add a Learn… button to the PID tab in the configuration utility. That is, it would configure your PID for your current application (load). If your PID:s are way off you might damage your Jrk.

It could look like this in the Jrk configurator:

user MUST first set limits properly

user enters the P (propotional), target current.

Jrk configurator will automatically set I (integral) and D (derivative) to zero

Jrk configurator will automatically run the motor and look for the best period, look for constant oscillation

once best period is found it will set I and D and report: I found this period for the suggested P, the period is ± off. Report good/bad attempt

There could also be a dropdown box of predefined PID charts like:

I feel like it will take quite a bit longer than a few minutes to make that feature. If you’d like, you should be able to make a stand-alone application with those features, by using the Pololu USB SDK.

Q1: The integral term in the configuration plot, how is it calculated? Your document say The integral is computed as the sum of the error over all PID cycleshttps://www.pololu.com/docs/0J38/all#3.d. Is it computed in % using the PID period count (read from Jrk), PID period (ms) variable and Integral limit variable. Could you submit the algorithm how the x integral is calculated in the plot.

The algorithm for computing the Integral (a.k.a. errorSum) runs once per PID period and it is basically this:

error = scaledFeedback - target
errorSum += error

The pseudocode above doesn’t show the various limits that get applied to the Integral, which are set in the PID tab of the configuration utility.

The Integral is plotted on the graph just like any other variable. The 100% point corresponds to the number in the box to the right of the word “integral”, which is 1000 by default because the default integral limit is 1000.

The datasheet of the jrk’s microcontroller (PIC18F14K50) says that the EEPROM is rated for 100,000 erase/write cycles.

so in the plot the Integral[%] = (errorSum / Integral limit) * 100. Integral limit is the “user scaling factor” in the plot (max 1000). The errorSum is read from the Jrk API variables?