ERG Mode Power Smoothing - "Keep Everyone Together" Irregularity

So today I finally figured out what the weird band feeling is on “Keep Everyone Together” rides where the bike (Wahoo KICKR Bike - may apply to other Wahoo devices or smart trainers) keeps reducing resistance and not allowing me to push more than 2.7 W/kg or less (sometimes 1.0), even up steep hills.

I toggled “ERG Mode Power Smoothing” off and on during “The 6 Train” meetup (rolling hills with some steep pushes) and was quite amused in the immediate change in resistance application ability. Turn it on, my ability to apply power at high cadence dropped significantly. Turn it off, hills felt normal and I could ride at more than 60 RPM to get more power.

This may be obvious to some; this is something I suspected for a while but didn’t try until now. I tragically despise the Wahoo app.

There is something clearly not quite compatible between “ERG Mode Power Smoothing” algorithm and the “Keep Everyone Together” algorithm for meetups on Zwift.

Wahoo describes the function as “ERG Mode Power Smoothing: this setting enables smoothing reported power to eliminate small inconsistencies in pedal strokes, making power graphs appear less erratic. Enabling is a personal preference, will not impact overall trainer functionality, and not required.”

The wording is vague - but to summarize, the system is a closed-loop feedback mechanism where power is adjusted based on your input force and cadence. “Keep Everyone Together” is a controlled ERG ride with very fast changes in resistance adjustment based on band and local draft.

So for meet ups that are “Keep Everyone Together”, the impact of this is NOT insignificant as Wahoo suggests - workouts have small changes of power within a set target. “Keep Everyone Together” will make several requests to adjust power per second.

If you find that the band feels “wonky” and you’re on a Wahoo device, I suggest togging “ERG Mode Power Smoothing” OFF and seeing if your situation improves.

On my KICKR Bike, the difference is remarkable.

Can Zwift HQ review this implementation and provide feedback or improvement?

This has made “Keep Everyone Together” meetups miserable for me for months where I couldn’t get more than about a 1.2W/kg average, leaving me with a sore keister and freezing cold from lack of significant increases in heart rate. I frequently overrode this by setting workouts during meetups, but that was only practical or fun on meetups like Alpe du Zwift, where I could apply a fixed resistance value and deal with it, so I could get my cadence to increase and still apply power.

Images attached: 3.8 W/kg was unattainable with this setting turned on, my increase in cadence would result in a decrease of power.

“Keep Together” rides have nothing to do with ERG mode. Zwift is not running your trainer in ERG modes for these rides. What it does do is alter your avatar’s speed to achieve the keeping together.

Sure, you can use a workout in a Keep Together ride, and thereby use ERG mode, but that’s a different matter.

1 Like

Are you 100% sure about this from an engineering perspective?

I know about the differences between SIM and ERG mode.

I’m not about to debate those because that’s very well defined.

But there is clearly some mechanism within the software control algorithm that reduces resistance, as an example, when you get pulled forward up a hill by “the band”.

This cannot be pure SIM mode, or as you pedal through, you’d feel the gradient change in this instance, and it does not occur.

Moreover, the gradient tilt effect for the bike angle - that is driven by the gradient metric value, and that is softened during “Keep Everyone Together” functions unless you drop a lot of watts - thus, why I suspect (and from the limited information I can see in the Zwift logs) that this is a controlled ERG mechanism. And in order to drop a lot of watts about 70% of the time for “Keep Everyone Together” meetups, I have had to reduce my cadence SIGNIFICANTLY over regular events or free riding in order to increase power.

That’s good to be the case this morning until I toggled this function off.

What I’m alluding to is that if this was not the case, this is not merely a placebo to toggle this option off and suddenly have the ability to push power at higher cadence, and hold that power.

My heart rate would not go up if it were a placebo.

The difference with this off and on during the same hill was absolutely night and day, and I repeated this many times this morning throughout my ride, and I’m sure to be able to do it consistently for the forthcoming meet ups to come.

I have more meet ups today.

Ultimately, when the meet ups end, suddenly my resistance tends to go up quite a bit.

If this is pure SIM mode, that would not be the case, right?

Or, if it is not an ERG function, perhaps it is some software variable function of the “Trainer Difficulty” parameter.

Regardless, when this “ERG Mode Power Smoothing” is turned on in the Wahoo app, I can clearly reproduce this.

I intend to leave the function off but I implore this to be investigated because the experience is not good, and I’m not the only one who has complained about the “wonky band”, and it seems to be many of us on Wahoo devices, particularly KICKR Bikes.

Hi @GregRajkovic

Since this behavior in Zwift happens when toggling a feature in the Wahoo app, my best advice would be that you contact Wahoo Support and raise the issue with them (if you haven’t already done so).

Based on your explanation of the issue, it’s logical to surmise that this unusual behavior in Zwift is triggered by an application layer, feature, or option that is third-party and therefore not something Zwift can directly support. That said, Wahoo Support is likely a better resource for continued support on this issue.

I hope that helps, and I’d personally be curious to know what Wahoo has to say on the matter. I have to wonder if Wahoo might simply say something to the effect of “we don’t recommend using ERG Mode Power Smoothing in apps that aren’t utilizing ERG mode”.

1 Like

Thank you!

For the record, this is what I see in the logs:
Pre-toggle off:
[4:19:45] FE-C 224 received
[4:19:45] FE-C SIM GRADE 0.018
[4:19:46] ANT : [PowerMeter] CrankPower: EC: 006 WT: 006 Period: 22593 AccumTorque: 49031
[4:19:46] ANT : [PowerMeter] Vang = 8.44 radians/sec Tavg: 15.66 nm Pavg: 132.10 watts
[4:19:46] Starting critical power curve search job (363850701) mTimeStamp = 1198.62219 m_lastSearchTime = 1198.62219 calculating=false
[4:19:46] FE-C 17 received
[4:19:46] ANT : Transfer Completed.
[4:19:46] ANT : FET grade set successfully
[4:19:46] ANT : [PowerMeter] CrankPower: EC: 007 WT: 007 Period: 24125 AccumTorque: 49423
[4:19:46] ANT : [PowerMeter] Vang = 8.40 radians/sec Tavg: 12.25 nm Pavg: 102.89 watts

Post-toggle off:
[4:27:45] FE-C SIM GRADE 0.018
[4:27:46] FE-C 224 received
[4:27:46] ANT : Transfer Completed.
[4:27:46] ANT : FET grade set successfully
[4:27:46] ANT : [PowerMeter] CrankPower: EC: 113 WT: 113 Period: 23884 AccumTorque: 34666
[4:27:46] ANT : [PowerMeter] Vang = 9.26 radians/sec Tavg: 27.94 nm Pavg: 258.81 watts
[4:27:46] FE-C 224 received

I assure you I wasn’t suddenly 2.5x stronger and spinning at 10% more RPMs 8 minutes later.

Great suggestion, I just opened ticket 1376015 with Wahoo and also directed them to this thread. I’m curious to see what they come back with.

1 Like

That bit you see that says “FE-C SIM GRADE 0.018” is the command from Zwift to set the resistance on the trainer. As both your pre and post toggle log snippets show the same gradient percentage commands, the resistance on the trainer should feel the same for both of them which is the expected behavior when doing a Keep Together Meetup.

1 Like

That’s what my logic is as well, but when I shift up through the trainer on the virtual gears before the toggle, as I increase my revolutions per minute the resistance in the trainer decreases.

Toggling the function off allows me to increase the revolutions and get increased resistance from the trainer.

As you can see, the angular velocity is faster and reported power is higher with the option toggled off, as there is more applied torque.

The part that I can’t see is the resistance the trainer actually provides.

Therein is what lies the problem, this is where I’m saying the issue is and I think it’s within the Wahoo firmware or the Wahoo app.

Though from a software integration perspective, I wasn’t sure if it started on the Zwift side or on the Wahoo side so I thought I would ask here.

Here is what Wahoo support said…

They said that the app function can conflict even though it’s not using ERG mode…

Thanks for reaching out. The keep everyone together mode is like a pace partner ride on Zwift. There is a set target wattage, but the bike should be set in SIM mode as this is not set up like a structured workout. If you have the wahoo fitness app open and have the bike set to ERG/power smoothing then it will be getting confusing commands when zwift tries to also feed resistance commands for elevation changes.

You will always want to close all other paired apps before launching zwift, and have the bike set to SIM mode unless you are doing a structured workout which will disable gradient change commands for your avatar.

Please let me know if you have any other questions.

The problem is that the Headwind fan uses the same app and I launch the app while riding my bike so I can control the fan manually.

I flick out of the Wahoo app on my iPhone every single time I’m done using it… terminate the process entirely.

I can’t fathom a design conflict with software like this, when the fan is using the same mobile software as the bike and when you launch the app it connects to both automatically.

It kind of defeats the purpose of having an app controllable fan. :rofl:

Sorry, but this is nonsense. There is definitely no “target wattage” in a Zwift Keep Together Meetup. Some people might be doing huge wattage and others quite small watts, but be moving at the same speed in-game.

There’s a target speed almost certainly, but that’s calculated by Zwift and your trainer knows nothing about speed.

I think that Wahoo have their wires crossed here.

I’m not surprised and I kind of expected that - that’s why I asked here first.

There is a target resistance but you should in theory be able to shift to pedal more into it.

The problem with the KICKR Bike is that this is software controlled within the bike; there isn’t a real derailleur or anything like that.

So the bike can do anything it wants to control the amount of power that you are allowed to effectively input.

That is where the problem and the implementation lies, no matter who is at fault, it doesn’t happen on a trainer straight up - in my experience.

I never experienced this on my Tacx Neo2T.

Only the KICKR Bike, and I am not the only one; that’s why I brought it up.

The experience is that we have to lower our cadence to be able to push more power when this issue occurs.

Many rides where I have “legs” but I get no resistance, almost like trainer difficulty is slid almost all the way down - but it isn’t. Really steep hills will partly resolve it, but not like they would be in solo riding the same route.

If we increase our cadence, the bike will automatically reduce resistance for whatever reason, when this issue occurs.

It is annoying.

I turned erg mode smoothing off in the wahoo app, but zwift is still smoothing the power. Any ideas what might be up?

Setting to smoothing power in Zwift on (3 sec)?