smorgasbord
Well-Known Member
- Region
- USA
EDIT: This revised post corrects and updates previous information. Thanks to @ProphetZarquon for his insights!
EDIT #2: See post #10 below for a How-To primer in case you don't want/need to understand but to try this out. Everyone should update their Base Voltage at least!
I've undertaken yet another attempt at better Ultra tuning. I've tried Karl, stock Luna, Biktrix, eBikeaholic, Mike/Frey, EveryAmp, etc. Part of my problem was that in not understanding what the parameters actually controlled, and having the explanations put forth either not making sense or just absent, I couldn't figure out how to change what I was feeling. I was adding to the great "Bafang Ultra "Smooth" tune by Mike at Frey" thread, but I think a number of smaller threads that concentrate on specific aspects will be more valuable.
In this thread, I put forth what I've learned about the top section of the Torque Tab, which deals with voltages and torque. The Ultra contains an internal torque sensor that outputs voltage based on the pedal force applied. The purpose of the Delta Voltage table is to enable calibration so that the system can accurately convert the voltage output by the sensor to the actual pedal force being applied by the rider. That pedal force is then fed into the Spd table (also on the Torque tab) which will then output a percentage of current to be multiplied by the PAS's current percentage, which is then multiplied by the "Limited Current" (in Amps) specified on the Basic tab. That current is sent to the motor to provide power assist. Viola!
Here's what the Delta Voltage table looks like in the EggRider app, which is what I use and recommend over the programming cable since it enables much faster tweaking of values since your EggRider is your display and you just whip out your phone, make changes and ride. No disconnecting and reconnecting each time like you have to do with a laptop and programming cable. Another advantage to the EggRider is that you can do a "Live Torque Data" display while actually the bike and if you record your phone screen you can then see what your actual riding max voltage produced is.
The values I show here were just ones I had when I started down this path. You can use these, but as different Ultras are each slightly different (whether due to age, wear, whatever), I do recommend following the step by step instructions on post #10 below (although there is now a Quick Start recommendation in the Master thread).
Let's start with Base Voltage, which should be the voltage output of the torque sensor when no force is being applied to the pedals. Turns out most Ultras' torque sensors output between 730mV and 760mV just sitting there powered on but idle. The best value to put in there is 1 or 2 mV higher than what your Ultra actually puts out when at rest. And you can measure this in the Torque Tab itself at the bottom (the TqVoltate field) with a "Continuous Get," or from the "Torque Live Data" page in your EggRider.
I have two Ultra-powered bikes: one reads 752 at rest, the other reads 757 at rest. So I put 753mV and 758mV in, respectively. That sets the start of the torque sensing range appropriately.
The next step is to fill in the Delta Voltage table. The maximum pedal pressure the Ultra torque sensor can measure is 60Kg. While Kg is not a unit of torque, this is apparently the force being applied to pedals located at the end of the Bafang standard 170mm cranks. What you want is to set the Delta Voltages such that the sum of them just reaches the maximum output by the torque sensor when your full pedal pressure is applied. Again, the "Continuous Get" or Torque Live Data" reading comes into play. Sit on the powered bike in a low PAS setting (try 0) and, with the brakes firmly applied, stand on one of the pedals with all your weight and note the highest reading. On my two bikes the readings were 3260mV and 3289mV. Alternatively, with the EggRider you can display Torque Live Data on your phone and go for a ride on some empty uphill road is mid/high gear so you have to stand (or almost stand) on the pedals while recording the screen. Look at the recording to see the maximum voltage produced while you ride, which may be less than the stationary value. This way you get to decide at what pedal force you get full motor support.
We can now calculate the Ultra's torque sensor voltage output range, which is the full-pedal-pressure reading minus the no-pedal-pressure reading. In my cases that's 3260-753=2507mV and 3289-758=2531mV.
OK, so what do you use this range for? The answer is the "Delta Voltage" table. There are 8 ranges of values to cover the Ultra torque sensor operating range of 0Kg to 60Kg. By putting in the Base Voltage, you've set the voltage that's output at 0Kg. Now we need to put in the voltage output for each range cell of pedal pressure. The first Delta Voltage value sets the voltage output when 5Kg of pedal force is applied. The second Delta Voltage value sets the additional voltage output when an additional 5Kg of pedal force is applied (the "5-10Kg" label). So, at 10Kg of pedal force, the voltage output from the controller will be:
Now, this is a linear Delta Voltage table. That is each 41.6mV of output from the sensor is interpreted at 1 Kg of force to be fed into the Spd table. I imagine the actual purpose of the Delta Voltage table is to adjust for any non-linearities in the torque sensor. If you have a variety of 5/10/20 Kg weights, you can place them on the pedal, measure the voltage, and enter the appropriate values into the table to that the system is correctly recognizing actual pedal forces.
With me so far?
Ideally, the sum of Base Voltage plus all the Delta Voltage Values together should equal your Max Voltage output that you read in Continuous Get/Torque Live Data, which should equate to 60Kg of pedal force on a 170mm crank.
Note that a recent web article from "EveryAmp" doesn't follow any real world torque/voltage mapping, and so ends up reaching maximum output well before reaching maximum pedal pressure, which is not what he intends, as it would map the highest pedal pressure to a lower pedal pressure value, thus not achieving the full potential of motor assist no matter what. There's also a subtle thing happening with the Delta Voltage cell ranges. The first 4 cells cover 5Kg of range each, but the last 4 cells cover 10Kg of range each. So, the default values of 200mV for the first four 5Kg ranges and 400 for the last four 10Kg ranges all equate to a constant 40mV of output per Kg of pedal pressure. "EveryAmp" didn't notice the range differences and just spread his values across both 5 & 10 range amounts equally, which results in an unequal decline in output per pressure with a double jumping at 20kg, which can't feel natural.
While the intention with the Delta Voltage table was almost certainly to be able to report proper torques into the system, the table could be used to have a purposely non-linear curve. For instance, Mike/Frey has his "smooth" delta voltage values starting high (900mV) and decreasing per Kg as pedal pressure increases. So, at low pedal pressures there is less assistance, but, as Mike notes: "As rider increase pedal pressure, system will offer progressively more assistance." Mike provided no information on how he arrived at his numbers, and the jump in range from 5Kg to 10Kg is perhaps ignored is concerning as well.
At any rate, now you know enough to change the Delta Voltage settings. I took (Max voltage - Base voltage) and divided by 12 to get the value for the first four Delta Voltage values, then doubled that for the last four. The result is a perfectly flat/linear Kg/voltage number at any pedal pressure, same as default except now we get full use of the available torque sensing range of the Ultra. That turned out to be 208/416mV for one bike and 210/420mV for the other bike.
Note that people using 0 for the Base Voltage are probably wasting the first 22% of the Ultra's torque sensing ability, and if they're using almost anyone's Delta Voltage values they're not reaching the maximum output of their motor. That is unless Bafang is somehow automatically putting in a value like 740 if 0 is entered for Base Voltage. This kind of 0=Default thing is done by Bafang in other places, like the Return(Kg) values, but this here seems hard to verify either way given the system complexity.
So what's left here? The Error Voltage range values defaults to 300 on the low end and 4300 at the high end. Since Ultras put out at least 730mV even at rest, seeing 300mV should indeed be an error. And since the max reading at full pedal pressure is always under 3300mV, seeing 4300mV should also be an error. I see no reason to change from these values.
Finally, there's "0 Speed Boost Time." Mike/Frey reports this as "Amount of time power is applied to motor when initial pedaling take place with bike starting speed as stationary. This is useful to program as hill-assist start." The value is in 10milliseconds, so 1 is 1/100th of a second. A default of 120 means you get a little over a second of hill assist boost. I haven't thoroughly tested different values here yet.
I hope this was helpful. My plan is to come back in a couple days time and start another thread on another aspect of Ultra tuning. I guess the Kg to Current(%) in Spd ranges would be logically next, but there's actually interesting information for the Basic tab, which is where newbies should start their Ultra tuning since the Basic settings are easily noticeable and very safe to adjust.
EDIT #2: See post #10 below for a How-To primer in case you don't want/need to understand but to try this out. Everyone should update their Base Voltage at least!
I've undertaken yet another attempt at better Ultra tuning. I've tried Karl, stock Luna, Biktrix, eBikeaholic, Mike/Frey, EveryAmp, etc. Part of my problem was that in not understanding what the parameters actually controlled, and having the explanations put forth either not making sense or just absent, I couldn't figure out how to change what I was feeling. I was adding to the great "Bafang Ultra "Smooth" tune by Mike at Frey" thread, but I think a number of smaller threads that concentrate on specific aspects will be more valuable.
In this thread, I put forth what I've learned about the top section of the Torque Tab, which deals with voltages and torque. The Ultra contains an internal torque sensor that outputs voltage based on the pedal force applied. The purpose of the Delta Voltage table is to enable calibration so that the system can accurately convert the voltage output by the sensor to the actual pedal force being applied by the rider. That pedal force is then fed into the Spd table (also on the Torque tab) which will then output a percentage of current to be multiplied by the PAS's current percentage, which is then multiplied by the "Limited Current" (in Amps) specified on the Basic tab. That current is sent to the motor to provide power assist. Viola!
Here's what the Delta Voltage table looks like in the EggRider app, which is what I use and recommend over the programming cable since it enables much faster tweaking of values since your EggRider is your display and you just whip out your phone, make changes and ride. No disconnecting and reconnecting each time like you have to do with a laptop and programming cable. Another advantage to the EggRider is that you can do a "Live Torque Data" display while actually the bike and if you record your phone screen you can then see what your actual riding max voltage produced is.
The values I show here were just ones I had when I started down this path. You can use these, but as different Ultras are each slightly different (whether due to age, wear, whatever), I do recommend following the step by step instructions on post #10 below (although there is now a Quick Start recommendation in the Master thread).
Let's start with Base Voltage, which should be the voltage output of the torque sensor when no force is being applied to the pedals. Turns out most Ultras' torque sensors output between 730mV and 760mV just sitting there powered on but idle. The best value to put in there is 1 or 2 mV higher than what your Ultra actually puts out when at rest. And you can measure this in the Torque Tab itself at the bottom (the TqVoltate field) with a "Continuous Get," or from the "Torque Live Data" page in your EggRider.
I have two Ultra-powered bikes: one reads 752 at rest, the other reads 757 at rest. So I put 753mV and 758mV in, respectively. That sets the start of the torque sensing range appropriately.
The next step is to fill in the Delta Voltage table. The maximum pedal pressure the Ultra torque sensor can measure is 60Kg. While Kg is not a unit of torque, this is apparently the force being applied to pedals located at the end of the Bafang standard 170mm cranks. What you want is to set the Delta Voltages such that the sum of them just reaches the maximum output by the torque sensor when your full pedal pressure is applied. Again, the "Continuous Get" or Torque Live Data" reading comes into play. Sit on the powered bike in a low PAS setting (try 0) and, with the brakes firmly applied, stand on one of the pedals with all your weight and note the highest reading. On my two bikes the readings were 3260mV and 3289mV. Alternatively, with the EggRider you can display Torque Live Data on your phone and go for a ride on some empty uphill road is mid/high gear so you have to stand (or almost stand) on the pedals while recording the screen. Look at the recording to see the maximum voltage produced while you ride, which may be less than the stationary value. This way you get to decide at what pedal force you get full motor support.
We can now calculate the Ultra's torque sensor voltage output range, which is the full-pedal-pressure reading minus the no-pedal-pressure reading. In my cases that's 3260-753=2507mV and 3289-758=2531mV.
OK, so what do you use this range for? The answer is the "Delta Voltage" table. There are 8 ranges of values to cover the Ultra torque sensor operating range of 0Kg to 60Kg. By putting in the Base Voltage, you've set the voltage that's output at 0Kg. Now we need to put in the voltage output for each range cell of pedal pressure. The first Delta Voltage value sets the voltage output when 5Kg of pedal force is applied. The second Delta Voltage value sets the additional voltage output when an additional 5Kg of pedal force is applied (the "5-10Kg" label). So, at 10Kg of pedal force, the voltage output from the controller will be:
10Kg = Base Voltage + "0-5Kg" Value + "5-10Kg" Value
In my programming (above), that would be 753+208+208 = 1169mV.Now, this is a linear Delta Voltage table. That is each 41.6mV of output from the sensor is interpreted at 1 Kg of force to be fed into the Spd table. I imagine the actual purpose of the Delta Voltage table is to adjust for any non-linearities in the torque sensor. If you have a variety of 5/10/20 Kg weights, you can place them on the pedal, measure the voltage, and enter the appropriate values into the table to that the system is correctly recognizing actual pedal forces.
With me so far?
Ideally, the sum of Base Voltage plus all the Delta Voltage Values together should equal your Max Voltage output that you read in Continuous Get/Torque Live Data, which should equate to 60Kg of pedal force on a 170mm crank.
Note that a recent web article from "EveryAmp" doesn't follow any real world torque/voltage mapping, and so ends up reaching maximum output well before reaching maximum pedal pressure, which is not what he intends, as it would map the highest pedal pressure to a lower pedal pressure value, thus not achieving the full potential of motor assist no matter what. There's also a subtle thing happening with the Delta Voltage cell ranges. The first 4 cells cover 5Kg of range each, but the last 4 cells cover 10Kg of range each. So, the default values of 200mV for the first four 5Kg ranges and 400 for the last four 10Kg ranges all equate to a constant 40mV of output per Kg of pedal pressure. "EveryAmp" didn't notice the range differences and just spread his values across both 5 & 10 range amounts equally, which results in an unequal decline in output per pressure with a double jumping at 20kg, which can't feel natural.
While the intention with the Delta Voltage table was almost certainly to be able to report proper torques into the system, the table could be used to have a purposely non-linear curve. For instance, Mike/Frey has his "smooth" delta voltage values starting high (900mV) and decreasing per Kg as pedal pressure increases. So, at low pedal pressures there is less assistance, but, as Mike notes: "As rider increase pedal pressure, system will offer progressively more assistance." Mike provided no information on how he arrived at his numbers, and the jump in range from 5Kg to 10Kg is perhaps ignored is concerning as well.
At any rate, now you know enough to change the Delta Voltage settings. I took (Max voltage - Base voltage) and divided by 12 to get the value for the first four Delta Voltage values, then doubled that for the last four. The result is a perfectly flat/linear Kg/voltage number at any pedal pressure, same as default except now we get full use of the available torque sensing range of the Ultra. That turned out to be 208/416mV for one bike and 210/420mV for the other bike.
Note that people using 0 for the Base Voltage are probably wasting the first 22% of the Ultra's torque sensing ability, and if they're using almost anyone's Delta Voltage values they're not reaching the maximum output of their motor. That is unless Bafang is somehow automatically putting in a value like 740 if 0 is entered for Base Voltage. This kind of 0=Default thing is done by Bafang in other places, like the Return(Kg) values, but this here seems hard to verify either way given the system complexity.
So what's left here? The Error Voltage range values defaults to 300 on the low end and 4300 at the high end. Since Ultras put out at least 730mV even at rest, seeing 300mV should indeed be an error. And since the max reading at full pedal pressure is always under 3300mV, seeing 4300mV should also be an error. I see no reason to change from these values.
Finally, there's "0 Speed Boost Time." Mike/Frey reports this as "Amount of time power is applied to motor when initial pedaling take place with bike starting speed as stationary. This is useful to program as hill-assist start." The value is in 10milliseconds, so 1 is 1/100th of a second. A default of 120 means you get a little over a second of hill assist boost. I haven't thoroughly tested different values here yet.
I hope this was helpful. My plan is to come back in a couple days time and start another thread on another aspect of Ultra tuning. I guess the Kg to Current(%) in Spd ranges would be logically next, but there's actually interesting information for the Basic tab, which is where newbies should start their Ultra tuning since the Basic settings are easily noticeable and very safe to adjust.
Last edited: