Jeremy McCreary
Well-Known Member
- Region
- USA
- City
- Carlsbad, CA
For our more math-minded Specialized mid-drive riders, here's an interactive graphical model of your bike's tunable power-sensing pedal assist system -- hereafter, just "PAS".
The model doesn't cover complex PAS responses to transient events like starting out or approaching PAS cut-off speed (e.g., 28 mph for Class 3). But I think it captures basic PAS operation quite well.
This PAS model resides on Desmos, a powerful online graphing calculator. You can view the graph and play with its underlying parameters via sliders at the link above without fear of altering the master copy on Desmos.
Looking forward to hearing what insights my fellow EBR members might glean from playing around with this tool. Comments and corrections welcome!
NB: Sorry, no way to keep this intro brief. I'll use pre-defined letter symbols like "Pr" and "Pm" to save words wherever possible. Hereafter, "power" will mean mechanical power in watts. Specialized's PAS terminolgy has changed in recent years. The terms used here follow the latest Specialized app (v. 1.31.1) and its online documentation.
The model graph
In the graph snapshot above, real-time rider power (Pr) plots on the horizontal x-axis. Power delivered to the crank in various ways plots on the vertical y-axis.
The ramp-like blue line is the motor power (Pm) delivered to the crank as a function of Pr, the main PAS input. This PAS is "power-sensing" in that it measures Pr with various onboard sensors and doles out Pm accordingly. This graphical model reveals the main parameters and algorithms behind this process.
The purple plot is Pt = Pr + Pm, the total power delivered to the crank as a function of Pr. This is the power delivered to the rear wheel by the drivetrain before losses. The red diagonal line shows Pr's direct contribution to Pt.
The orange vertical line marks the saturation power Prs — the rider power at which Pm "saturates" (maxes out) in a given assist mode (OFF, ECO, SPORT, TURBO, or MicroTune). Much more about saturation below.
NB: Saturation turns out to be key concept in this PAS. Keep an eye on it.
Model parameters
The mathematical relationship between Pm and Pr depends on 4 PAS parameters with adjustable sliders in the first 4 lines of Desmos "code" below the graph. The first two (Px and B) are motor constants that to my knowledge apply to any Specialized ebike with exactly the same motor -- e.g., the Vado SL 5.0 and Creo 1.
The other two are PAS settings (E and M) chosen as a pair when an assist mode is selected. To my knowledge, E and M work the same way in all Specialized mid-drives with this PAS. But the resulting Pm depends on the Px and B values specific to the motor involved.
You'll be able to explore all of this with the model's sliders.
Example ebikes
My Vado SL 5.0. This PAS model and its slider limits were designed to cover at least this bike and 4 other Specialized mid-drives:
There are 14 lines of Desmos "code" below the graph -- some with sliders like those above, and some with the PAS model's underlying equations.
The Pri slider just puts a gray vertical line at a Pr value of interest -- say, 200W, or your FTP. No effect on the Pr, Pm, or Pt plots.
NB: Play with the sliders all you like, but changing the equations will break your local copy of the graph.
Motor constants Px and B
Constant Px is the motor's built-in peak power — e.g., 240W for the SL and 320W for the Creo 2. Px is a hard upper limit on Pm.
Constant B goes by various names, but I call it "boost" for short. We'll see how boost affects Pm in a moment.
Assist mode settings E and M
These settings are percentages without the "%" signs. Both range from 0 to 100. More mode tuning info here:
E (for "ease" in current Specialized-speak) requests boost power Pb = (E / 100) B Pr from the motor. Whether the motor fully grants the request depends on its Px and how M is set.
M (for "motor power") caps Pm at the saturation power Ps = (M / 100) Px . Once Pm rises to Ps — i.e., once you saturate your bike at Pb = Ps — pedaling harder won't get you any more assist.
From the online app documentation, with E on the horizontal axis and M on the vertical. Three different assist modes are shown.
Specialized assist mode tunings like those above are often given in E/M format. For example, the factory Universal defaults on my SL were OFF = 0/0, ECO = 35/35, SPORT = 55/55, and TURBO = 100/100. Modes ECO, SPORT, and TURBO are tunable in the Specialized app. OFF is not.
MicroTune mode is always 50/50 on entry but can be adjusted from the SL handlebar remote thereafter -- always with E = M. Your bike may differ.
Line 8 above calculates saturation power Ps for the M setting in effect. Line 9 calculates boost power Pb as a function of Pr. Line 10 then calculates motor power Pm, capping it at Ps.
Lines 11 and 12 plot Pm and Pt, resp.
Saturation rider power Prs
The rider power at which Pm saturates is given by
Prs = (M / E) (Px / B) = (M / E) Prs1,
where Prs1 = Px / B is another useful motor constant. The orange vertical on the graph automatically marks Prs.
For the SL and Creo 1, Prs1 = 240W / 1.8 = 133W. For the Creo 2 and full Vado, it's 139W and 137W.
Interesting pattern: All of these bikes saturate at about the same Pr in any M = E assist mode!
Exploring the effects of E and M on Pm
The blue plot of Pm as a function of Pr always has the same basic shape -- a "ramp" of constant slope leading up from the origin to a horizontal "plateau" at Pm = Ps, with the break in slope always occurring at Pr = Prs.
Playing around with the E slider at constant M shows that increasing E with a given motor (fixed Px and B) steepens the ramp without affecting plateau height. This has the effect of extending the plateau to the left toward easier pedaling, thus reducing Prs without changing Ps. Meaning that it takes less effort to reach motor saturation at higher E, but the max available assist in that mode stays the same.
Conversely, playing with the M slider at constant E shows that increasing M at fixed Px and B steepens the ramp and raises the plateau at the same time while moving Prs to the right toward harder pedaling. Meaning that it takes more effort to reach motor saturation at higher M, but the max available assist in that mode also goes up.
Note that it would take a Tour de France-level sprinter to saturate any of the sample bikes in a 10/90 assist mode.
Exploring the effects of Px and B on Pm
I'll leave this as an exercise for the interested reader. Suffice it to say here that in practice, these motor constants have more to do with how much assist you get than with when you get it.
Special case: M = E
It's common to set M = E to conserve battery charge at high effort. All of my SL's default (Universal) modes use M = E, and so does MicroTune.
Interestingly, Prs becomes fixed at the motor-specific value Prs1 = Px / B whenever M = E. Practically speaking, since all the example bikes have similar Prs1 values, you'll saturate all of them at similar efforts regardless of the actual E setting involved! I find that pretty remarkable but doubt it's by chance.
You can confirm this by setting the Px and B sliders to your own motor's values and setting the Pri slider to put the gray vertical at the motor's Prs1. Then fiddle with the E and M sliders and watch the orange vertical marking Prs. No matter what E you choose, the orange vertical will always pass through the gray one just as you pass through M = E.
So what good is this? Well, I like to monitor Pr on my SL's Mastermind TCU as I pedal along in ECO to save battery. When I find myself wanting more assist in any E = M mode (the usual case), I now know that pedaling harder isn't going to get it if my Pr is already above 133W. I'll have to bump to an assist mode with higher M instead.
Special case: E = 100 / B
@Stefan Mikes really likes his SL's 55/55 mode. And that's how my SL's default (Universal) SPORT mode is set. Maybe not a coincidence.
When E = 100 / B = 56 on the SL, you get Pm = Pr, and Pt = 2 Pr all the way to saturation. Maybe just a fun fact, but man and machine in perfect harmony! Have to admit, my 55/55 has a nice feel.
Same effect on the Creo 2 at E = 100 / B = 43, and on the full Vado at E = 100 / B = 24. When you then set M = E on all 3 bikes, their graphs become identical.
Why not M < E?
I have yet to see someone use or recommend an assist mode with M < E. How come? Frankly, after over 400 mi of experience with this PAS and 2 weeks of playing around with this tool, I'm still not sure.
Mathematically, Prs < Prs1 when M < E. If nothing else, this means earlier saturation than in the M = E case. But my gut says it's more than that.
Thoughts?
Acknowledgments
First, any remaining errors or misunderstandings here are mine alone. I've relied on official documentation from Specialized whenever possible, but that's left many gaps. Special thanks to @Stefan Mikes , whose vast technical knowledge and understanding of all things Specialized has filled in many of those gaps. EBR members too numerous to mention have also contributed through their posts over the years.
The model doesn't cover complex PAS responses to transient events like starting out or approaching PAS cut-off speed (e.g., 28 mph for Class 3). But I think it captures basic PAS operation quite well.
Specialized mid-drive power-sensing assist
www.desmos.com
This PAS model resides on Desmos, a powerful online graphing calculator. You can view the graph and play with its underlying parameters via sliders at the link above without fear of altering the master copy on Desmos.
Looking forward to hearing what insights my fellow EBR members might glean from playing around with this tool. Comments and corrections welcome!
NB: Sorry, no way to keep this intro brief. I'll use pre-defined letter symbols like "Pr" and "Pm" to save words wherever possible. Hereafter, "power" will mean mechanical power in watts. Specialized's PAS terminolgy has changed in recent years. The terms used here follow the latest Specialized app (v. 1.31.1) and its online documentation.
The model graph
In the graph snapshot above, real-time rider power (Pr) plots on the horizontal x-axis. Power delivered to the crank in various ways plots on the vertical y-axis.
The ramp-like blue line is the motor power (Pm) delivered to the crank as a function of Pr, the main PAS input. This PAS is "power-sensing" in that it measures Pr with various onboard sensors and doles out Pm accordingly. This graphical model reveals the main parameters and algorithms behind this process.
The purple plot is Pt = Pr + Pm, the total power delivered to the crank as a function of Pr. This is the power delivered to the rear wheel by the drivetrain before losses. The red diagonal line shows Pr's direct contribution to Pt.
The orange vertical line marks the saturation power Prs — the rider power at which Pm "saturates" (maxes out) in a given assist mode (OFF, ECO, SPORT, TURBO, or MicroTune). Much more about saturation below.
NB: Saturation turns out to be key concept in this PAS. Keep an eye on it.
Model parameters
The mathematical relationship between Pm and Pr depends on 4 PAS parameters with adjustable sliders in the first 4 lines of Desmos "code" below the graph. The first two (Px and B) are motor constants that to my knowledge apply to any Specialized ebike with exactly the same motor -- e.g., the Vado SL 5.0 and Creo 1.
The other two are PAS settings (E and M) chosen as a pair when an assist mode is selected. To my knowledge, E and M work the same way in all Specialized mid-drives with this PAS. But the resulting Pm depends on the Px and B values specific to the motor involved.
You'll be able to explore all of this with the model's sliders.
Example ebikes
My Vado SL 5.0. This PAS model and its slider limits were designed to cover at least this bike and 4 other Specialized mid-drives:
- The Vado SL 5.0 ("SL" for short) and Creo 1 with the Mahle SL 1.1 motor, for which Px = 240W and B = 1.8.
- The Creo 2 with the newer Mahle SL 1.2 motor, for which Px = 320W and B = 2.3.
- The full-powered, non-SL Vado 5.0 ("full Vado" for short) with the Brose 2.2 motor, for which Px = 560W and B = 4.1.
There are 14 lines of Desmos "code" below the graph -- some with sliders like those above, and some with the PAS model's underlying equations.
The Pri slider just puts a gray vertical line at a Pr value of interest -- say, 200W, or your FTP. No effect on the Pr, Pm, or Pt plots.
NB: Play with the sliders all you like, but changing the equations will break your local copy of the graph.
Motor constants Px and B
Constant Px is the motor's built-in peak power — e.g., 240W for the SL and 320W for the Creo 2. Px is a hard upper limit on Pm.
Constant B goes by various names, but I call it "boost" for short. We'll see how boost affects Pm in a moment.
Assist mode settings E and M
These settings are percentages without the "%" signs. Both range from 0 to 100. More mode tuning info here:
E (for "ease" in current Specialized-speak) requests boost power Pb = (E / 100) B Pr from the motor. Whether the motor fully grants the request depends on its Px and how M is set.
M (for "motor power") caps Pm at the saturation power Ps = (M / 100) Px . Once Pm rises to Ps — i.e., once you saturate your bike at Pb = Ps — pedaling harder won't get you any more assist.
From the online app documentation, with E on the horizontal axis and M on the vertical. Three different assist modes are shown.
Specialized assist mode tunings like those above are often given in E/M format. For example, the factory Universal defaults on my SL were OFF = 0/0, ECO = 35/35, SPORT = 55/55, and TURBO = 100/100. Modes ECO, SPORT, and TURBO are tunable in the Specialized app. OFF is not.
MicroTune mode is always 50/50 on entry but can be adjusted from the SL handlebar remote thereafter -- always with E = M. Your bike may differ.
Line 8 above calculates saturation power Ps for the M setting in effect. Line 9 calculates boost power Pb as a function of Pr. Line 10 then calculates motor power Pm, capping it at Ps.
Lines 11 and 12 plot Pm and Pt, resp.
Saturation rider power Prs
The rider power at which Pm saturates is given by
Prs = (M / E) (Px / B) = (M / E) Prs1,
where Prs1 = Px / B is another useful motor constant. The orange vertical on the graph automatically marks Prs.
For the SL and Creo 1, Prs1 = 240W / 1.8 = 133W. For the Creo 2 and full Vado, it's 139W and 137W.
Interesting pattern: All of these bikes saturate at about the same Pr in any M = E assist mode!
Exploring the effects of E and M on Pm
The blue plot of Pm as a function of Pr always has the same basic shape -- a "ramp" of constant slope leading up from the origin to a horizontal "plateau" at Pm = Ps, with the break in slope always occurring at Pr = Prs.
Playing around with the E slider at constant M shows that increasing E with a given motor (fixed Px and B) steepens the ramp without affecting plateau height. This has the effect of extending the plateau to the left toward easier pedaling, thus reducing Prs without changing Ps. Meaning that it takes less effort to reach motor saturation at higher E, but the max available assist in that mode stays the same.
Conversely, playing with the M slider at constant E shows that increasing M at fixed Px and B steepens the ramp and raises the plateau at the same time while moving Prs to the right toward harder pedaling. Meaning that it takes more effort to reach motor saturation at higher M, but the max available assist in that mode also goes up.
Note that it would take a Tour de France-level sprinter to saturate any of the sample bikes in a 10/90 assist mode.
Exploring the effects of Px and B on Pm
I'll leave this as an exercise for the interested reader. Suffice it to say here that in practice, these motor constants have more to do with how much assist you get than with when you get it.
Special case: M = E
It's common to set M = E to conserve battery charge at high effort. All of my SL's default (Universal) modes use M = E, and so does MicroTune.
Interestingly, Prs becomes fixed at the motor-specific value Prs1 = Px / B whenever M = E. Practically speaking, since all the example bikes have similar Prs1 values, you'll saturate all of them at similar efforts regardless of the actual E setting involved! I find that pretty remarkable but doubt it's by chance.
You can confirm this by setting the Px and B sliders to your own motor's values and setting the Pri slider to put the gray vertical at the motor's Prs1. Then fiddle with the E and M sliders and watch the orange vertical marking Prs. No matter what E you choose, the orange vertical will always pass through the gray one just as you pass through M = E.
So what good is this? Well, I like to monitor Pr on my SL's Mastermind TCU as I pedal along in ECO to save battery. When I find myself wanting more assist in any E = M mode (the usual case), I now know that pedaling harder isn't going to get it if my Pr is already above 133W. I'll have to bump to an assist mode with higher M instead.
Special case: E = 100 / B
@Stefan Mikes really likes his SL's 55/55 mode. And that's how my SL's default (Universal) SPORT mode is set. Maybe not a coincidence.
When E = 100 / B = 56 on the SL, you get Pm = Pr, and Pt = 2 Pr all the way to saturation. Maybe just a fun fact, but man and machine in perfect harmony! Have to admit, my 55/55 has a nice feel.
Same effect on the Creo 2 at E = 100 / B = 43, and on the full Vado at E = 100 / B = 24. When you then set M = E on all 3 bikes, their graphs become identical.
Why not M < E?
I have yet to see someone use or recommend an assist mode with M < E. How come? Frankly, after over 400 mi of experience with this PAS and 2 weeks of playing around with this tool, I'm still not sure.
Mathematically, Prs < Prs1 when M < E. If nothing else, this means earlier saturation than in the M = E case. But my gut says it's more than that.
Thoughts?
Acknowledgments
First, any remaining errors or misunderstandings here are mine alone. I've relied on official documentation from Specialized whenever possible, but that's left many gaps. Special thanks to @Stefan Mikes , whose vast technical knowledge and understanding of all things Specialized has filled in many of those gaps. EBR members too numerous to mention have also contributed through their posts over the years.
Last edited: