Ultra Tuning: Decoding the Voltage Section of Torque Tab

Not following. Have some screenshots to explain for us thick headed folk?
 
Not following. Have some screenshots to explain for us thick headed folk?
I admit that there is some head scratching that needs to go into tuning an M620 for your needs. Before Smorgasboard took the time to understand the parameters and lay down the facts that he came up with and shared here it was really a catch as catch can deal sorting through a bunch of other "methods" that were quite frankly shots in the dark. I know as I went through them all and although I finally settled on a tune that by default really worked better than any of the screenshots I copied it was by modifying them blindly until I got what I could live with.

If you take your time and read and understand each line item starting from the basic tab onwards you will get there. I would say that setting up your Continuous Get to establish your base voltage is the most critical step and also the easiest to do by following his directions. After some trials I got an entirely different result than my original tune that suits me way better as it is much more based on torque input over cadence and I feel I am getting more even power output and even better wh/mi usage than before.

So hang in there and even if you think you are thick headed if you apply yourself I think you can do it!
 
If you take your time and read and understand each line item starting from the basic tab onwards you will get there. I would say that setting up your Continuous Get to establish your base voltage is the most critical step and also the easiest to do by following his directions.
Thanks, and yes I agree that the often misunderstood Voltage table needs to be setup right to make any of the subsequent tunings workable.

In case @keithj69 was asking where to start, I have two answers:

Overall Ultra tuning, start with this thread:

If asking about just the Voltage section, start with the 10th post in this thread, which is a step-by-step, here:
 
Reread what you wrote yesterday now that I am not distracted with tropical storm prep and I now get it.
 
As a result of an off-board discussion, here is some additional information that might help you grok the Delta Voltage table. It's a different enough way to think about it that did some edits to the first and tenth post in this thread.

While the table is laid out such that the input is pedal force and the output is torque sensor voltage, it's better to think of that operation in reverse. That is, the Delta Table doesn't change the voltage that the torque sensor produces at any given pedal pressure, but rather changes how that voltage is re-interpreted back to pedal force. This is important, because the SPDxx table uses pedal force as its input to determine at any given wheel rpm what the motor current percentage should be.

To use the table backwards requires thinking about things somewhat differently. This worked with the person I was talking to:
1) The "Continuous Get" function on the programming software is always the output of the torque sensor, in milliVolts (mV).
2) Take the value produced at any given moment (call it "X"), and start by subtracting the Base Voltage from it to produce value "Y".
3) If "Y" is zero or less, report 0kg to the SpdXX table.
4) If "Y" is greater than or equal to the value in the 0-5kg entry, subtract the 0-5kg entry from "Y" to produce a new "Y."
5) Repeat for the 5-10kg, 10-15kg, etc. entries, until "Y" is no longer greater than the next table's entry.
6) If "Y" is zero, then the force sent to the SPDXX table is the high range value in the last entry subtracted.
7) Otherwise, divide Y by the next entry's to produce interpolated value "Z" (which will between 0 and 1). Use "Z" to interpolate between the two kg values in the next entry, the math for which is (low range value + high range value) * Z.

Some examples, using the values in the image in the first post of this thread (BaseVoltage=753, next 4 ranges all at 208, final 4 ranges at 416):
A) Live voltage read (X) is 1169mV:
• 1169 - 753(BaseVoltage) = 416 (Y)
• Y is greater than the 0-5kg range's value (208), so subtract to get a new Y: 416-208 = 208 (new Y)
• Y is equal to the 5-10kg range's value (also 208), so the force fed to the SPDxx table is 10kg

B) Live voltage read (X) is 1273mv:
• 1273-753 = 520 (Y)
• Y is greater than the 0-5kg range's value (208), so subtract to get a new Y: 520-208 = 312 (new Y)
• Y is greater than the 5-10kg range's value (208) so subtract to get a new Y: 312-208 = 104 (new Y)
• Y is not greater than 10-15kg's range's value (208), so divide Y by the 10-15kg's value, 208. That's 104/208 = 0.5 (Z)
• Resulting Force is (10+15)*0.5 = 12.5kg is fed to the SPDxx table.

Some ramifications:
• Bafang probably does something special if Base Voltage is left at 0mV, otherwise the SPDxx table would be producing some motor current even at a stand-sill. Setting Base Voltage too low probably overrides that special condition, so don't do that. It's pretty easy with the software or EggRider to see what the motor produces when you have no pressure on the pedals and then choose a value 1 or 2 mV above that. From a few reports, it seems that most values are 760 or less, so if for some reason you don't want to measure, put a value at or above 760 in.
• With the proper Base Voltage setting, as soon as you put any pressure on the pedals you'll get some motor output. How much depends on the entries in the SPD0 column, your PAS level, and until the pedal actually moves, the effects of 0 Speed Boost.
• Larger values in the lower ranges in the Delta Voltage table will reduce the pedal force fed to the SPDxx table. This is desirable both for getting a smooth start as well as for controllability since us humans can modulate lower pressures more effectively than higher pressures. It's pretty easy for us to modulate between 5 and 10 kg of force, for instance, but it's really hard for us to modulate between 55 and 60kg of force. This effect is also why the table entries start out at a 5kg spacing (0-5, 5-10, etc.) but end up at a 10 kg spacing (40-50, 50-60).
• If all the values you enter in the Delta Voltage table plus the Base Voltage sum up to greater than the maximum voltage the torque sensor produces (typically just under 3300mv), then you'll never have the 60kg force level sent to the SPDxx table. If you're a weaker/lighter rider, then you'll want a lower produced voltage number to reach that 60kg level so that you get full programmability in the SPDxx table. For instance, if you can only put about 50kg of force on the pedal, then your max voltage reading may be 2700mV and you'd want to use the instructions in posts #1 and #10 so that 2700mV is communicated as 60kg (which you'll get if all the numbers add up to 2700).
 
Last edited:
2A) For EggRider, Go to the Torque Settings tab, then click the "speedometer” looking link at the top right. This will bring up the "Torque Live Data" tab, which looks like this:
Just for reference, at the moment this screen doesn't display correct data on the current app/firmware. Eggrider devs have not finished on it yet. Believe everyone should see 1217 mV and no change with pressure.
 
Back