Feature Turn Boost in IzzFloat

Background

After a week of riding this feature, I am addicted and I can’t live without it. I am almost certain this will make it to the main package so test it now to get your two cents in.

This was a very simple change to the float package. I took the booster and changed it to be based on roll instead of pitch. The result allows you to tune the board so that it accelerates into your turns. This works with the existing booster inputs.

Versions

0.9.1.1- Includes all my features. You cannot use turn tilt with this version. YOU MUST READ THIS POST TO CONFIGURE SURGE.

0.9.1.1a- Disables surge and sticky tilt so you don’t have to configure those. Allows turn tilt. This is essentially float package 0.9 with the turn boost feature.

Why is this important?

When you want to turn sharply, you have to lean to the inside of the turn. This puts your center of gravity on a smaller turn radius (the path your center of gravity takes) than the board, which will be taking a larger turn radius. A smaller turn radius is a shorter path to complete the turn so the board has to go faster (or your body slower) in order to make the turn. The harder the turn is, the larger the difference between the path length of the board vs. your center of gravity.

Normally, we accelerate the board by pushing the nose down but in some scenarios this will cause the nose to contact the ground, particularly at high roll angles. Turn boost compensates by using the roll so we don’t have to nose down. This allows for a smoother, natural-feeling turn that can also be programmed to be quite “boosty”.

Settings

The settings work very much like the traditional booster but with roll (side to side motion of the board) as the trigger. The boost will start at boost angle and increase at rate: boost current, divided by boost ramp. The boost current is now a percentage that is multiplied by the PID current demand so that turn boost does not override our PID control loop.

For acceleration boost, having a large boost ramp with settings, like boost angle 5 and boost ramp 10, will give a very rounded carvey feel. It will be loose but the extra current is there when you are really deep into a carve. On the other hand, a small ramp, like boost angle 5 and ramp 1, will give a very tight “race-like” feel. It keeps your carve very narrow and controlled. Both these settings will provide excellent low speed maneuverability.

For braking, the boost acts a little differently. Because we want the board to accelerate around our turns, the brake boost acts opposite to the PID control loop to release the braking force. I have not been able to experiment with this as much as I would like because I live somewhere pretty flat, but the results so far have been good. It feels much more like a snowboard in the way it accelerates through the apex of the carve. Doing a snowboard-like sideways stop also feels good. The settings I have used for braking are boost angle 5, boost ramp 3, boost current 60.

Please be careful using high boost current values for braking. As I mentioned, it is percent based and 100% could remove all braking force. In my tests this has not been a problem yet.

What else is included in this behavior?

Very little. I put in a condition so that brake boost does not engage at low erpm. This allows you to hard brake and perform a quick u-turn with the acceleration boost, which was previously inhibited by brake boost.

In the old booster behavior there was code for modifications to the booster strength based on speed. I removed this but consider if you think this would be helpful.

Enjoy!

Note that we abandoned pure roll-based turn tilt because it had lots of side effects on uneven terrain. Boosting the existing yaw based turn tilt may make sense, but I’m wondering if you have really tried out turntilt because the sensation you describe (“accelerate into your turns”) can be had purely with just turntilt.

I’m honestly surprised that you wrote up all this detail yet you fail to even mention turn tilt. In order for it to make sense to be incorporated into the main float package, I’d love to hear what it is you can achieve with this feature that you cannot achieve with turntilt. Having multiple alternate implementations of the same feature only adds confusion and little benefit for the user.

Just a heads up btw, if you based this feature on Float Package v0.9 and had Soft Start enabled, any effect on acceleration was placebo. Positive current Rate P and Booster (acceleration forwards or braking while backwards) was limited to 0 due to an issue thats been fixed in v1.0. There were also some fixes done to TurnTilt behavior, id encourage you to give it a shot again and try it out :call_me_hand:

That said, I totally get the thinking for this, and I def want to try it for myself sometime to see how it compares. I can see it sort of encouraging the rider to get their weight forward as you turn, if that makes sense. Hopefully I can find time to try it out sometime. You should keep your repo updated; makes it much easier to test individual features in different settings, like in the latest Float Package or wherever else

Very interesting about the soft start bug. I can see how that would mess things up but I didn’t really look into those lines of code. I can tell you it is not placebo just because I can physically do things that I cannot do without turn boost, but I can certainly see how bugged soft start would have an effect. I will set my debug to monitor pid_mod then update to 1.0 to see the difference. Probably won’t get to it for a couple weeks because I headed out on vacation soon.

1 Like

The purpose of all my feature posts is to provide plenty of information about the feature so that people can safely try it themselves. My intention isn’t really to compare features or influence people but to provide the community with fun features and the basis to compare things themselves.

That said I’m happy to discuss further. In fact, I can probably talk your head off about it because I think about this stuff way too much. I try to restrict myself.

To compare these features I would use an analogy. The board is a car. The front footpad (d->proportional) is the throttle. You are approaching a bend in the road and you want to maintain your speed. As you enter the turn:
-Situation 1. You have no turn modifiers. As you engage the turn, the car decelerates. To compensate you apply more throttle to maintain speed. You release the extra throttle at the exit of the turn.
-Situation 2. You have turn tilt. As you engage the turn, the car senses it and it moves the accelerator against your foot, as required to maintain speed. The throttle moves back to its normal position at the exit of the turn.
-Situation 3. You have turn boost. As you rotate the steering wheel the car automatically applies more acceleration without changes to the physical throttle. As the steering wheel returns to center the auto throttle is reduced back to zero.

I prefer the feel of situation 3. I also believe this is how the onewheel functions except it seems to be erpm limited so that it does not apply at low erpm. I notice this effect the most on the pint riding skyline mode.

1 Like

I think you’re overstating the differences between 2 and 3. Because in the end the effect of both is the same, the board accelerates more because you get more amps. Comparing it to a car is ignoring the fact that on a Onewheel the same motor is used to keep you balanced and to accelerate you, so a boost in current will be perceived as a lift of the nose whether it originates from a setpoint change or from a current boost (a setpoint change also produces a current boost)

You say “my intention isn’t to compare features” - but isn’t that a crucial piece when introducing a potentially redundant feature? Judging by your summary of Situation 1…3 I’m still not sure whether your “comparison” is based on actual experience or just speculation based on your understanding of the existing logic.

And yes, I’d love to chat more about this in person / on a zoom call because posts going back and forth aren’t very effective :sweat_smile:

It’s OK to be skeptical and your understanding is close to correct. I would invite you to try it and feel the difference.

It’s not important to me to compare the differences because I am not really concerned if it ends up in float package or not. I will have the features the way I want, one way or another. I appreciate the work ya’ll have put in because it is a ton of work. So much time and testing. I just want to pay it back how I can. By presenting what I have spent time on for you to consider. I expect you would be excited to try different solutions but you seem pretty resistant. That’s fine.

I will be back from vacation in a couple weeks and I will pick back up on my traction control work. Drop detection is going well BTW.

I’m always open to trying out new features and improvements. I just want to first understand the benefit. It takes a long time to truly test out a feature so when I’m reading about a feature that sounds like something we already have then I’m less motivated, that’s all…

But even if I don’t try it myself, if there’s enough people that do try this feature and report improvement over the existing functionality then I’m more than happy to try it myself and/or swap it out.

Just to follow up… I have updated to 1.0 and did the testing I mentioned. Turn boost was indeed working in 0.9 but in 1.0 it feels much crisper and more reactive. Likely, the dampening effect from the soft start bug. Took it for a trail ride this weekend and it feels great. Up to date here if you want to give it a try.

One major downside is that is messes with ATR pretty bad causing a lot of nose movement that makes the board feel unstable. I can see how ATR works better with turn tilt, but I like how turn boost feels compared to turn tilt. I’m planning on dropping ATR and going deeper into features for the remote to compensate. I’ll see where that takes me.