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).