Releases: lukash/refloat
Release list
Refloat 1.3.0
Refloat 1.3 reworks a lot of the core control mechanisms and adds Setpoint Smoothing to all Tilts. Boards will behave slightly differently and tunes might need adjusting.
Use at your own risk!!!
Features
-
Move core (PID) balancing control to the IMU callback
This removes a source of timing inaccuracies stemming from an arbitrary delay between a new IMU sample arriving and being used. -
Introduce setpoint smoothing for all Tilts (Torque tilt, ATR, Brake Tilt, Turn Tilt and Remote)
-
Add separate configurable downhill/braking tilt speeds for Torque Tilt and ATR
-
New ATR Transition Boost
The ATR Transition Boost feature didn't fit the new Setpoint Smoothing algorithm. It was reworked and the multiplier now applies to the smoothing constants as well as the angling rates. -
The ATR Response Boost config option was dropped
It is deemed unnecessary with the new Setpoint Smoothing allowing faster speeds in general. -
Use torque instead of current in balance calculations (6.06+)
On firmware 6.06+ calculate motor torque based on the calibrated flux linkage and configured motor poles.This compensates for different motors' torque constants and should make tunes behave more consistently across different motors (not taking into account saturation, that is, the maximum torque a given motor can produce, which remains a major differentiator that can't be accounted for). As a consequence, with this feature (on FW 6.06+) the tune behavior will change slightly according to the motor being used.
Config options related to current are now internally converted to a torque equivalent of a motor Flux Linkage of 27 mWb (a middle value for the common Onewheel motors). The more your Flux Linkage value differs from this, the more will your tune be adjusted.
The following config options are affected. To retain previous tune behavior, calculate
k = Flux Linkage / 27and adjust:Divide by
k(likely noticeable, recommended to adjust):- Torque Tilt Strength and Strength (Regen)
Multiply by
k(subtle, adjust if needed):- Angle P
- Rate P
- Angle I
- I Term Limit
- Booster (Acceleration/Braking) Current Boost
- Torque Tilt Start Current Threshold
- ATR Amps to Acceleration/Deceleration Ratio
Make sure your Motor Cfg -> Additional Info -> Setup -> Motor Poles value is correct! The correct value for all Onewheel motors to date is 30.
On firmware 6.05 and older the behavior remains the same.
-
New and more consistent Reverse Stop implementation
-
Add the Control Loop dt, Control Loop Latency and Control Loop Frequency to realtime data
The dt (delta time) is the time between control loop iterations. The frequency is based off that, just smoothed out. Both of these values are defined by IMU Sample Rate.Control Loop Latency shows how much later than usual the control loop processed each IMU sample. Ideally it stays near zero, spikes mean the processing of a sample was delayed. Note the value is relative to the best case observed, it shows the variation of the delay, not an absolute delay. It requires a firmware which timestamps IMU samples on arrival (7.01+ and a controller with HW SPI), otherwise the value will be close to zero.
Control Loop Frequency can be used to check the actual frequency a particular configure IMU Sample Rate has resulted in.
Control Loop Latency and dt can be checked to see how jittery the timing is, but the Data Recording firmware is needed for that, as the dt needs to be recorded precisely (normal data logging at 10x per second can't accurately show it). Besides IMU Sample Rate, Motor ZVF has a big impact on the Control Loop jitter.
-
Add an option to swap left/right footpad ADCs
-
Remove the Loop Hertz config option
The value no longer directly influences motor control and is now hard-coded to 500 Hz. -
Remove the Turn Tilt Max Tiltback Speed option
It is replaced by the Smoothing Time Constant, which effectively limits speed in addition to defining the overall smoothness. -
Remove the Remote Tiltback Speed option
It is replaced by the Smoothing Time Constant. -
Add a "Keep Defaults" button to the automatic config restore dialog (to stay on defaults and stop the dialog from popping up)
-
Add the Decimation parameter to Data Recording
Decimation controls how often samples are recorded - a value of N records every Nth sample, allowing longer recording periods at reduced resolution. It can be set via long-pressing the Record button in the realtime data plot.The decimation defaults to a value which results in about 10 seconds of data being recorded.
-
Implement scaling groups for the realtime data plot in the UI
All pitch values (including sentpoints) and all motor current values will now scale together. -
Custom scaling for realtime data plot
The scaling can be accessed by long-pressing on a series in the series visibility menu. -
Add a fullscreen remote overlay to package UI
-
Rework the remote moving (wheel turning) and implement a new way to control remote (both tilting and moving) from apps
There is now a single slider in the package UI for remote which controls both tilting and moving the same way a remote does. -
Flash the last remaining LED on the status battery bar if battery percentage goes below that point [acheronfail]
-
Show motor and battery current saturation (together with the duty cycle called motor utilization) on the status bar [acheronfail]
Motor saturation is pink, battery saturation is teal and duty cycle is amber in color. -
Turn Flywheel off on a single sensor press instead of requiring both halves to be pressed
-
Change the Refloat UI default tune slot number to 6 (can be adjusted in the Settings)
-
Set App Config IMU Mahony KP to 0.2 if high Mahony KP config is detected
This is set on Refloat startup and serves to reset the App Config (not Refloat Config) to regular Mahony values after doing the IMU Setup wizard. Previously, value of 0.4 was used, but 0.2 is deemed the better default (it only affects the Booster and the tilt checks, like roll/pitch faults, the quickstop angle, etc.).
Fixes
- Make internal package calculations independent of the loop frequency
Ensures consistent behavior regardless of what frequency the package is running at. - Add recalculation of filter constants according to actual measured loop frequency
Due to technical details actual frequencies at which the package is running can differ significantly from the configured ones, this ensures the filtering is consistent and accurate. - Fix sending up to full motor current when turning off Flywheel via the app button
- When using a physical remote to move the motor, don't immediately release the motor (applying brake current) in neutral position (1s timeout is used)
- Fix BMS Integration sometimes reporting Connection Error and not recovering or potentially getting stuck on another error
- A number of hardening/correctness fixes [Mika Cohen]
Refloat 1.3.0-beta3
Refloat 1.3 reworks a lot of the core control mechanisms and adds Setpoint Smoothing to all Tilts. Boards will behave slightly differently and tunes might need adjusting.
WARNING: This is a test version of the package. Bugs may be present.
Use at your own risk!!!
1.3.0-beta3
Fixes
- A number of hardening/correctness fixes [Mika Cohen]
1.3.0-beta2
Features
- Change the Refloat UI default tune slot number to 6 (can be adjusted in the Settings)
- Set App Config IMU Mahony KP to 0.2 if high Mahony KP config is detected
This is set on Refloat startup and serves to reset the App Config (not Refloat Config) to regular Mahony values after doing the IMU Setup wizard. Previously, value of 0.4 was used, but 0.2 is deemed the better default (it only affects the Booster and the tilt checks, like roll/pitch faults, the quickstop angle, etc.).
Fixes
- Fix external (LCM) LEDs not turning on at startup
- Fix footpad sensor single sensor mode (setting one of ADC1/2 Switch Voltage to 0) incorrectly reporting the disabled half to be always on
1.3.0-beta1
Features
-
Move core (PID) balancing control to the IMU callback
This removes a source of timing inaccuracies stemming from an arbitrary delay between a new IMU sample arriving and being used. -
Introduce setpoint smoothing for all Tilts (Torque tilt, ATR, Brake Tilt, Turn Tilt and Remote)
-
Add separate configurable downhill/braking tilt speeds for Torque Tilt and ATR
-
New ATR Transition Boost
The ATR Transition Boost feature didn't fit the new Setpoint Smoothing algorithm. It was reworked and the multiplier now applies to the smoothing constants as well as the angling rates. -
The ATR Response Boost config option was dropped
It is deemed unnecessary with the new Setpoint Smoothing allowing faster speeds in general. -
Use torque instead of current in balance calculations (6.06+)
On firmware 6.06+ calculate motor torque based on the calibrated flux linkage and configured motor poles.This compensates for different motors' torque constants and should make tunes behave more consistently across different motors (not taking into account saturation, that is, the maximum torque a given motor can produce, which remains a major differentiator that can't be accounted for). As a consequence, with this feature (on FW 6.06+) the tune behavior will change slightly according to the motor being used.
Config options related to current are now internally converted to a torque equivalent of a motor Flux Linkage of 27 mWb (a middle value for the common Onewheel motors). The more your Flux Linkage value differs from this, the more will your tune be adjusted.
The following config options are affected. To retain previous tune behavior, calculate
k = Flux Linkage / 27and adjust:Divide by
k(likely noticeable, recommended to adjust):- Torque Tilt Strength and Strength (Regen)
Multiply by
k(subtle, adjust if needed):- Angle P
- Rate P
- Angle I
- I Term Limit
- Booster (Acceleration/Braking) Current Boost
- Torque Tilt Start Current Threshold
- ATR Amps to Acceleration/Deceleration Ratio
Make sure your Motor Cfg -> Additional Info -> Setup -> Motor Poles value is correct! The correct value for all Onewheel motors to date is 30.
On firmware 6.05 and older the behavior remains the same.
-
New and more consistent Reverse Stop implementation
-
Add the Control Loop dt and Control Loop Frequency to realtime data
The dt (delta time) is the time between control loop iterations. The frequency is based off that, just smoothed out. Both of these values are defined by IMU Sample Rate.Control Loop Frequency can be used to check the actual frequency a particular configure IMU Sample Rate has resulted in.
Control Loop dt can be checked to see how jittery the timing is, but the Data Recording firmware is needed for that, as the dt needs to be recorded precisely (normal data logging at 10x per second can't accurately show it). Besides IMU Sample Rate, Motor ZVF has a big impact on the Control Loop jitter.
-
Add an option to swap left/right footpad ADCs
-
Remove the Loop Hertz config option
The value no longer directly influences motor control and is now hard-coded to 500 Hz. -
Remove the Turn Tilt Max Tiltback Speed option
It is replaced by the Smoothing Time Constant, which effectively limits speed in addition to defining the overall smoothness. -
Remove the Remote Tiltback Speed option
It is replaced by the Smoothing Time Constant. -
Add a "Keep Defaults" button to the automatic config restore dialog (to stay on defaults and stop the dialog from popping up)
-
Add the Decimation parameter to Data Recording
Decimation controls how often samples are recorded - a value of N records every Nth sample, allowing longer recording periods at reduced resolution. It can be set via long-pressing the Record button in the realtime data plot.The decimation defaults to a value which results in about 10 seconds of data being recorded.
-
Implement scaling groups for the realtime data plot in the UI
All pitch values (including sentpoints) and all motor current values will now scale together. -
Custom scaling for realtime data plot
The scaling can be accessed by long-pressing on a series in the series visibility menu. -
Add a fullscreen remote overlay to package UI
-
Rework the remote moving (wheel turning) and implement a new way to control remote (both tilting and moving) from apps
There is now a single slider in the package UI for remote which controls both tilting and moving the same way a remote does. -
Flash the last remaining LED on the status battery bar if battery percentage goes below that point [acheronfail]
-
Show motor and battery current saturation (together with the duty cycle called motor utilization) on the status bar [acheronfail]
Motor saturation is pink, battery saturation is teal and duty cycle is amber in color. -
Turn Flywheel off on a single sensor press instead of requiring both halves to be pressed
Fixes
- Make internal package calculations independent of the loop frequency
Ensures consistent behavior regardless of what frequency the package is running at. - Add recalculation of filter constants according to actual measured loop frequency
Due to technical details actual frequencies at which the package is running can differ significantly from the configured ones, this ensures the filtering is consistent and accurate. - Fix sending up to full motor current when turning off Flywheel via the app button
- When using a physical remote to move the motor, don't immediately release the motor (applying brake current) in neutral position (1s timeout is used)
Refloat 1.3.0-beta2
Refloat 1.3 reworks a lot of the core control mechanisms and adds Setpoint Smoothing to all Tilts. Boards will behave slightly differently and tunes might need adjusting.
WARNING: This is a test version of the package. Bugs may be present.
Use at your own risk!!!
1.3.0-beta2
Features
- Change the Refloat UI default tune slot number to 6 (can be adjusted in the Settings)
- Set App Config IMU Mahony KP to 0.2 if high Mahony KP config is detected
This is set on Refloat startup and serves to reset the App Config (not Refloat Config) to regular Mahony values after doing the IMU Setup wizard. Previously, value of 0.4 was used, but 0.2 is deemed the better default (it only affects the Booster and the tilt checks, like roll/pitch faults, the quickstop angle, etc.).
Fixes
- Fix external (LCM) LEDs not turning on at startup
- Fix footpad sensor single sensor mode (setting one of ADC1/2 Switch Voltage to 0) incorrectly reporting the disabled half to be always on
1.3.0-beta1
Features
-
Move core (PID) balancing control to the IMU callback
This removes a source of timing inaccuracies stemming from an arbitrary delay between a new IMU sample arriving and being used. -
Introduce setpoint smoothing for all Tilts (Torque tilt, ATR, Brake Tilt, Turn Tilt and Remote)
-
Add separate configurable downhill/braking tilt speeds for Torque Tilt and ATR
-
New ATR Transition Boost
The ATR Transition Boost feature didn't fit the new Setpoint Smoothing algorithm. It was reworked and the multiplier now applies to the smoothing constants as well as the angling rates. -
The ATR Response Boost config option was dropped
It is deemed unnecessary with the new Setpoint Smoothing allowing faster speeds in general. -
Use torque instead of current in balance calculations (6.06+)
On firmware 6.06+ calculate motor torque based on the calibrated flux linkage and configured motor poles.This compensates for different motors' torque constants and should make tunes behave more consistently across different motors (not taking into account saturation, that is, the maximum torque a given motor can produce, which remains a major differentiator that can't be accounted for). As a consequence, with this feature (on FW 6.06+) the tune behavior will change slightly according to the motor being used.
Config options related to current are now internally converted to a torque equivalent of a motor Flux Linkage of 27 mWb (a middle value for the common Onewheel motors). The more your Flux Linkage value differs from this, the more will your tune be adjusted.
The following config options are affected. To retain previous tune behavior, calculate
k = Flux Linkage / 27and adjust:Divide by
k(likely noticeable, recommended to adjust):- Torque Tilt Strength and Strength (Regen)
Multiply by
k(subtle, adjust if needed):- Angle P
- Rate P
- Angle I
- I Term Limit
- Booster (Acceleration/Braking) Current Boost
- Torque Tilt Start Current Threshold
- ATR Amps to Acceleration/Deceleration Ratio
Make sure your Motor Cfg -> Additional Info -> Setup -> Motor Poles value is correct! The correct value for all Onewheel motors to date is 30.
On firmware 6.05 and older the behavior remains the same.
-
New and more consistent Reverse Stop implementation
-
Add the Control Loop dt and Control Loop Frequency to realtime data
The dt (delta time) is the time between control loop iterations. The frequency is based off that, just smoothed out. Both of these values are defined by IMU Sample Rate.Control Loop Frequency can be used to check the actual frequency a particular configure IMU Sample Rate has resulted in.
Control Loop dt can be checked to see how jittery the timing is, but the Data Recording firmware is needed for that, as the dt needs to be recorded precisely (normal data logging at 10x per second can't accurately show it). Besides IMU Sample Rate, Motor ZVF has a big impact on the Control Loop jitter.
-
Add an option to swap left/right footpad ADCs
-
Remove the Loop Hertz config option
The value no longer directly influences motor control and is now hard-coded to 500 Hz. -
Remove the Turn Tilt Max Tiltback Speed option
It is replaced by the Smoothing Time Constant, which effectively limits speed in addition to defining the overall smoothness. -
Remove the Remote Tiltback Speed option
It is replaced by the Smoothing Time Constant. -
Add a "Keep Defaults" button to the automatic config restore dialog (to stay on defaults and stop the dialog from popping up)
-
Add the Decimation parameter to Data Recording
Decimation controls how often samples are recorded - a value of N records every Nth sample, allowing longer recording periods at reduced resolution. It can be set via long-pressing the Record button in the realtime data plot.The decimation defaults to a value which results in about 10 seconds of data being recorded.
-
Implement scaling groups for the realtime data plot in the UI
All pitch values (including sentpoints) and all motor current values will now scale together. -
Custom scaling for realtime data plot
The scaling can be accessed by long-pressing on a series in the series visibility menu. -
Add a fullscreen remote overlay to package UI
-
Rework the remote moving (wheel turning) and implement a new way to control remote (both tilting and moving) from apps
There is now a single slider in the package UI for remote which controls both tilting and moving the same way a remote does. -
Flash the last remaining LED on the status battery bar if battery percentage goes below that point [acheronfail]
-
Show motor and battery current saturation (together with the duty cycle called motor utilization) on the status bar [acheronfail]
Motor saturation is pink, battery saturation is teal and duty cycle is amber in color. -
Turn Flywheel off on a single sensor press instead of requiring both halves to be pressed
Fixes
- Make internal package calculations independent of the loop frequency
Ensures consistent behavior regardless of what frequency the package is running at. - Add recalculation of filter constants according to actual measured loop frequency
Due to technical details actual frequencies at which the package is running can differ significantly from the configured ones, this ensures the filtering is consistent and accurate. - Fix sending up to full motor current when turning off Flywheel via the app button
- When using a physical remote to move the motor, don't immediately release the motor (applying brake current) in neutral position (1s timeout is used)
Refloat 1.2.3
Use at your own risk!!!
Fixes
- Fix external (LCM) LEDs not turning on at startup
Refloat 1.3.0-beta1
Refloat 1.3 reworks a lot of the core control mechanisms and adds Setpoint Smoothing to all Tilts. Boards will behave slightly differently and tunes might need adjusting.
WARNING: This is a test version of the package. Bugs may be present.
Use at your own risk!!!
Features
-
Move core (PID) balancing control to the IMU callback
This removes a source of timing inaccuracies stemming from an arbitrary delay between a new IMU sample arriving and being used. -
Introduce setpoint smoothing for all Tilts (Torque tilt, ATR, Brake Tilt, Turn Tilt and Remote)
-
Add separate configurable downhill/braking tilt speeds for Torque Tilt and ATR
-
New ATR Transition Boost
The ATR Transition Boost feature didn't fit the new Setpoint Smoothing algorithm. It was reworked and the multiplier now applies to the smoothing constants as well as the angling rates. -
The ATR Response Boost config option was dropped
It is deemed unnecessary with the new Setpoint Smoothing allowing faster speeds in general. -
Use torque instead of current in balance calculations (6.06+)
On firmware 6.06+ calculate motor torque based on the calibrated flux linkage and configured motor poles.This compensates for different motors' torque constants and should make tunes behave more consistently across different motors (not taking into account saturation, that is, the maximum torque a given motor can produce, which remains a major differentiator that can't be accounted for). As a consequence, with this feature (on FW 6.06+) the tune behavior will change slightly according to the motor being used.
Config options related to current are now internally converted to a torque equivalent of a motor Flux Linkage of 27 mWb (a middle value for the common Onewheel motors). The more your Flux Linkage value differs from this, the more will your tune be adjusted.
The following config options are affected. To retain previous tune behavior, calculate
k = Flux Linkage / 27and adjust:Divide by
k(likely noticeable, recommended to adjust):- Torque Tilt Strength and Strength (Regen)
Multiply by
k(subtle, adjust if needed):- Angle P
- Rate P
- Angle I
- I Term Limit
- Booster (Acceleration/Braking) Current Boost
- Torque Tilt Start Current Threshold
- ATR Amps to Acceleration/Deceleration Ratio
Make sure your Motor Cfg -> Additional Info -> Setup -> Motor Poles value is correct! The correct value for all Onewheel motors to date is 30.
On firmware 6.05 and older the behavior remains the same.
-
New and more consistent Reverse Stop implementation
-
Add the Control Loop dt and Control Loop Frequency to realtime data
The dt (delta time) is the time between control loop iterations. The frequency is based off that, just smoothed out. Both of these values are defined by IMU Sample Rate.Control Loop Frequency can be used to check the actual frequency a particular configure IMU Sample Rate has resulted in.
Control Loop dt can be checked to see how jittery the timing is, but the Data Recording firmware is needed for that, as the dt needs to be recorded precisely (normal data logging at 10x per second can't accurately show it). Besides IMU Sample Rate, Motor ZVF has a big impact on the Control Loop jitter.
-
Add an option to swap left/right footpad ADCs
-
Remove the Loop Hertz config option
The value no longer directly influences motor control and is now hard-coded to 500 Hz. -
Remove the Turn Tilt Max Tiltback Speed option
It is replaced by the Smoothing Time Constant, which effectively limits speed in addition to defining the overall smoothness. -
Remove the Remote Tiltback Speed option
It is replaced by the Smoothing Time Constant. -
Add a "Keep Defaults" button to the automatic config restore dialog (to stay on defaults and stop the dialog from popping up)
-
Add the Decimation parameter to Data Recording
Decimation controls how often samples are recorded - a value of N records every Nth sample, allowing longer recording periods at reduced resolution. It can be set via long-pressing the Record button in the realtime data plot.The decimation defaults to a value which results in about 10 seconds of data being recorded.
-
Implement scaling groups for the realtime data plot in the UI
All pitch values (including sentpoints) and all motor current values will now scale together. -
Custom scaling for realtime data plot
The scaling can be accessed by long-pressing on a series in the series visibility menu. -
Add a fullscreen remote overlay to package UI
-
Rework the remote moving (wheel turning) and implement a new way to control remote (both tilting and moving) from apps
There is now a single slider in the package UI for remote which controls both tilting and moving the same way a remote does. -
Flash the last remaining LED on the status battery bar if battery percentage goes below that point [acheronfail]
-
Show motor and battery current saturation (together with the duty cycle called motor utilization) on the status bar [acheronfail]
Motor saturation is pink, battery saturation is teal and duty cycle is amber in color. -
Turn Flywheel off on a single sensor press instead of requiring both halves to be pressed
Fixes
- Make internal package calculations independent of the loop frequency
Ensures consistent behavior regardless of what frequency the package is running at. - Add recalculation of filter constants according to actual measured loop frequency
Due to technical details actual frequencies at which the package is running can differ significantly from the configured ones, this ensures the filtering is consistent and accurate. - Fix sending up to full motor current when turning off Flywheel via the app button
- When using a physical remote to move the motor, don't immediately release the motor (applying brake current) in neutral position (1s timeout is used)
Refloat 1.2.2
A bugfix release with quite a number of small fixes that have accumulated.
A notable change is the renaming of the VESC Tool AppUI tab to "Refloat".
Use at your own risk!!!
Features
- Rename the AppUI tab title to Refloat [contactsimonwilson]
- Don't disable LEDs if both sensors are pressed at startup [Eli Parker]
This mechanism was in place for the potential case of the LED initialization locking up the board in a way that would prevent the user from connecting to fix the problem. This has proven unneeded, so the feature is being removed. - Allow external apps to set the following values in runtime, without writing the config (used by Float Control) [Dado Mista]
- Roll KP
- Turn Tilt start angle
- Disable Moving Faults
- Sensor beep
- Parking Brake mode
- Negative variable tilt
- Speed pushback threshold
- Faster on/off speeds
Fixes
- Fix haptic strength speed scaling being applied incorrectly when riding in reverse [Dado Mista]
- Set more sensible limits of 45-90° for Pitch and Roll Axis Fault Cutoffs
- Fix toggling LEDs or Headlights On via the UI or konami being stored in the config under some circumstances
The toggles are now only temporary and once toggled, writing the config won't override the current state either. - Exclude the Persistent Fatal Error config option from being stored in tunes
To remove it from existing tunes, the tunes need to be resaved. - Drive beeper pin low after init to prevent unintended beep [0x41kravchenko]
- Fix a potential extra short beep on startup
- Stop the "last beep reason" text from disappearing once the beep condition stops for users running Float Accessories [Eli Parker]
- Fix the Tips & Tricks all being displayed over each other
Refloat 1.3.0-preview3
WARNING: This is a test version of the package. Bugs may be present.
This is a feature preview of the timing rework, new setpoint smoothing and a few other smaller features and improvements.
Please read the release post for more details.
1.3.0-preview3
Features
- Fine tuning the Smoothing and angling speed defaults for Torque Tilt and ATR
- Flash the last remaining LED on the status battery bar if battery percentage goes below that point [acheronfail]
- Show motor and battery current saturation (together with the duty cycle called motor utilization) on the status bar [acheronfail]
Motor saturation is pink, battery saturation is teal and duty cycle is amber in color. - Turn Flywheel off on a single sensor press instead of requiring both halves to be pressed
Fixes
- Fix Torque Tilt Strength and Strength (Regen) only being applied at about 37% of their intended value
The strengths should result in behavior close to Refloat 1.2. They are affected by the torque normalization enough to be noticeable though. To calculate equivalent new values, divide the old values byk = motor_flux_linkage / 27(if your flux linkage is greater than 27, you need to knock the Strengths down a notch). - Fix sending up to full motor current when turning off Flywheel via the app button
- Minor unlisted improvements and cleanups
1.3.0-preview2
Features
-
Usable, close to final defaults for all the Smoothing config options
-
Remove the Loop Hertz config option
The value no longer directly influences motor control and is now hard-coded to 500 Hz. -
Remove the Turn Tilt Max Tiltback Speed option
It is replaced by the Smoothing Time Constant, which effectively limits speed in addition to defining the overall smoothness. -
Add the Decimation parameter to Data Recording
Decimation controls how often samples are recorded - a value of N records every Nth sample, allowing longer recording periods at reduced resolution. It can be set via long-pressing the Record button in the realtime data plot.The decimation defaults to a value which results in about 10 seconds of data being recorded.
-
Implement scaling groups for the realtime data plot in the UI
All pitch values (including sentpoints) and all motor current values will now scale together. -
Custom scaling for realtime data plot
The scaling can be accessed by long-pressing on a series in the series visibility menu. -
Add a fullscreen remote overlay to package UI
-
Rework the remote moving (wheel turning) and implement a new way to control remote (both tilting and moving) from apps
There is now a single slider in the package UI for remote which controls both tilting and moving the same way a remote does.
Fixes
- A number of minor fixes and improvements on top of what was in preview1
1.3.0-preview1
Features
-
Move core (PID) balancing control to the IMU callback
This removes a source of timing inaccuracies stemming from an arbitrary delay between a new IMU sample arriving and being used. -
Introduce setpoint smoothing for all Tilts (Torque tilt, ATR, Brake Tilt, Turn Tilt and Remote)
-
Add separate configurable downhill/braking tilt speeds for Torque Tilt and ATR
-
New ATR Transition Boost
The ATR Transition Boost feature didn't fit the new Setpoint Smoothing algorithm. It was reworked and the multiplier now applies to the smoothing constants as well as the angling rates. -
The ATR Response Boost config option was dropped
It is deemed unnecessary with the new Setpoint Smoothing allowing faster speeds in general. -
Use torque instead of current in balance calculations (6.06+)
On firmware 6.06+ calculate motor torque based on the calibrated flux linkage and configured motor poles.This compensates for different motors' torque constants and should make tunes behave more consistently across different motors (not taking into account saturation, that is, the maximum torque a given motor can produce, which remains a major differentiator that can't be accounted for). As a consequence, with this feature (on FW 6.06+) the tune behavior will change slightly according to the motor being used.
Config options related to current are now internally converted to a torque equivalent of a motor Flux Linkage of 27 mWb (a middle value for the common Onewheel motors). The more your Flux Linkage value differs from this, the more will your tune be adjusted.
The following config options are affected:
- Angle P
- Rate P
- Angle I
- I Term Limit
- Booster (Acceleration/Braking) Current Boost
- Torque Tilt Strength and Strength (Regen)
- Torque Tilt Start Current Threshold
- ATR Uphill/Downhill Strength
- ATR Amps to Acceleration/Decceleration Ratio
Make sure your Motor Cfg -> Additional Info -> Setup -> Motor Poles value is correct! The correct value for all Onewheel motors to date is 30.
On firmware 6.05 and older the behavior remains the same.
-
New and more consistent Reverse Stop implementation
-
Add the Control Loop dt and Control Loop Frequency to realtime data
The dt (delta time) is the time between control loop iterations. The frequency is based off that, just smoothed out. Both of these values are defined by IMU Sample Rate.Control Loop Frequency can be used to check the actual frequency a particular configure IMU Sample Rate has resulted in.
Control Loop dt can be checked to see how jittery the timing is, but the Data Recording firmware is needed for that, as the dt needs to be recorded precisely (normal data logging at 10x per second can't accurately show it). Besides IMU Sample Rate, Motor ZVF has a big impact on the Control Loop jitter.
-
Rename the AppUI tab title to Refloat [contactsimonwilson]
-
Don't disable LEDs if both sensors are pressed at startup [Eli Parker]
This mechanism was in place for the potential case of the LED initialization locking up the board in a way that would prevent the user from connecting to fix the problem. This has proven unneeded, so the feature is being removed. -
Add an option to swap left/right footpad ADCs
Fixes
- Make internal package calculations independent of the loop frequency
Ensures consistent behavior regardless of what frequency the package is running at. - Add recalculation of filter constants according to actual measured loop frequency
Due to technical details actual frequencies at which the package is running can differ significantly from the configured ones, this ensures the filtering is consistent and accurate. - Fix haptic strength speed scaling being applied incorrectly when riding in reverse [Dado Mista]
- Set more sensible limits of 45-90° for Pitch and Roll Axis Fault Cutoffs
- Stop the "last beep reason" text from disappearing once the beep condition stops for users running Float Accessories [Eli Parker]
- Drive beeper pin low after init to prevent unintended beep [0x41kravchenko]
- Fix a potential extra short beep on startup
Refloat 1.3.0-preview2
WARNING: This is a test version of the package. Bugs may be present.
This is a feature preview of the timing rework, new setpoint smoothing and a few other smaller features and improvements.
Please read the release post for more details.
1.3.0-preview2
Features
-
Usable, close to final defaults for all the Smoothing config options
-
Remove the Loop Hertz config option
The value no longer directly influences motor control and is now hard-coded to 500 Hz. -
Remove the Turn Tilt Max Tiltback Speed option
It is replaced by the Smoothing Time Constant, which effectively limits speed in addition to defining the overall smoothness. -
Add the Decimation parameter to Data Recording
Decimation controls how often samples are recorded - a value of N records every Nth sample, allowing longer recording periods at reduced resolution. It can be set via long-pressing the Record button in the realtime data plot.The decimation defaults to a value which results in about 10 seconds of data being recorded.
-
Implement scaling groups for the realtime data plot in the UI
All pitch values (including sentpoints) and all motor current values will now scale together. -
Custom scaling for realtime data plot
The scaling can be accessed by long-pressing on a series in the series visibility menu. -
Add a fullscreen remote overlay to package UI
-
Rework the remote moving (wheel turning) and implement a new way to control remote (both tilting and moving) from apps
There is now a single slider in the package UI for remote which controls both tilting and moving the same way a remote does.
Fixes
- A number of minor fixes and improvements on top of what was in preview1
1.3.0-preview1
Features
-
Move core (PID) balancing control to the IMU callback
This removes a source of timing inaccuracies stemming from an arbitrary delay between a new IMU sample arriving and being used. -
Introduce setpoint smoothing for all Tilts (Torque tilt, ATR, Brake Tilt, Turn Tilt and Remote)
-
Add separate configurable downhill/braking tilt speeds for Torque Tilt and ATR
-
New ATR Transition Boost
The ATR Transition Boost feature didn't fit the new Setpoint Smoothing algorithm. It was reworked and the multiplier now applies to the smoothing constants as well as the angling rates. -
The ATR Response Boost config option was dropped
It is deemed unnecessary with the new Setpoint Smoothing allowing faster speeds in general. -
Use torque instead of current in balance calculations (6.06+)
On firmware 6.06+ calculate motor torque based on the calibrated flux linkage and configured motor poles.This compensates for different motors' torque constants and should make tunes behave more consistently across different motors (not taking into account saturation, that is, the maximum torque a given motor can produce, which remains a major differentiator that can't be accounted for). As a consequence, with this feature (on FW 6.06+) the tune behavior will change slightly according to the motor being used.
Config options related to current are now internally converted to a torque equivalent of a motor Flux Linkage of 27 mWb (a middle value for the common Onewheel motors). The more your Flux Linkage value differs from this, the more will your tune be adjusted.
The following config options are affected:
- Angle P
- Rate P
- Angle I
- I Term Limit
- Booster (Acceleration/Braking) Current Boost
- Torque Tilt Strength and Strength (Regen)
- Torque Tilt Start Current Threshold
- ATR Uphill/Downhill Strength
- ATR Amps to Acceleration/Decceleration Ratio
Make sure your Motor Cfg -> Additional Info -> Setup -> Motor Poles value is correct! The correct value for all Onewheel motors to date is 30.
On firmware 6.05 and older the behavior remains the same.
-
New and more consistent Reverse Stop implementation
-
Add the Control Loop dt and Control Loop Frequency to realtime data
The dt (delta time) is the time between control loop iterations. The frequency is based off that, just smoothed out. Both of these values are defined by IMU Sample Rate.Control Loop Frequency can be used to check the actual frequency a particular configure IMU Sample Rate has resulted in.
Control Loop dt can be checked to see how jittery the timing is, but the Data Recording firmware is needed for that, as the dt needs to be recorded precisely (normal data logging at 10x per second can't accurately show it). Besides IMU Sample Rate, Motor ZVF has a big impact on the Control Loop jitter.
-
Rename the AppUI tab title to Refloat [contactsimonwilson]
-
Don't disable LEDs if both sensors are pressed at startup [Eli Parker]
This mechanism was in place for the potential case of the LED initialization locking up the board in a way that would prevent the user from connecting to fix the problem. This has proven unneeded, so the feature is being removed. -
Add an option to swap left/right footpad ADCs
Fixes
- Make internal package calculations independent of the loop frequency
Ensures consistent behavior regardless of what frequency the package is running at. - Add recalculation of filter constants according to actual measured loop frequency
Due to technical details actual frequencies at which the package is running can differ significantly from the configured ones, this ensures the filtering is consistent and accurate. - Fix haptic strength speed scaling being applied incorrectly when riding in reverse [Dado Mista]
- Set more sensible limits of 45-90° for Pitch and Roll Axis Fault Cutoffs
- Stop the "last beep reason" text from disappearing once the beep condition stops for users running Float Accessories [Eli Parker]
- Drive beeper pin low after init to prevent unintended beep [0x41kravchenko]
- Fix a potential extra short beep on startup
Refloat 1.2.2-beta2
A bugfix release with quite a number of small fixes that have accumulated.
A notable change is the renaming of the VESC Tool AppUI tab to "Refloat".
WARNING: This is a test version of the package. Bugs may be present.
Use at your own risk!!!
Features
- Rename the AppUI tab title to Refloat [contactsimonwilson]
- Don't disable LEDs if both sensors are pressed at startup [Eli Parker]
This mechanism was in place for the potential case of the LED initialization locking up the board in a way that would prevent the user from connecting to fix the problem. This has proven unneeded, so the feature is being removed.
Fixes
- Fix haptic strength speed scaling being applied incorrectly when riding in reverse [Dado Mista]
- Set more sensible limits of 45-90° for Pitch and Roll Axis Fault Cutoffs
- Fix toggling LEDs or Headlights On via the UI or konami being stored in the config under some circumstances
The toggles are now only temporary and once toggled, writing the config won't override the current state either. - Exclude the Persistent Fatal Error config option from being stored in tunes
To remove it from existing tunes, the tunes need to be resaved. - Drive beeper pin low after init to prevent unintended beep [0x41kravchenko]
- Fix a potential extra short beep on startup
- Stop the "last beep reason" text from disappearing once the beep condition stops for users running Float Accessories [Eli Parker]
- Fix the Tips & Tricks all being displayed over each other
Refloat 1.3.0-preview1
WARNING: This is an experimental version of the package. Bugs may and will be present. Use at your own risk!
This is a feature preview of the timing rework, new setpoint smoothing and a few other smaller features and improvements.
Please read the release post for more details.
Features
-
Move core (PID) balancing control to the IMU callback
This removes a source of timing inaccuracies stemming from an arbitrary delay between a new IMU sample arriving and being used. -
Introduce setpoint smoothing for all Tilts (Torque tilt, ATR, Brake Tilt, Turn Tilt and Remote)
-
Add separate configurable downhill/braking tilt speeds for Torque Tilt and ATR
-
New ATR Transition Boost
The ATR Transition Boost feature didn't fit the new Setpoint Smoothing algorithm. It was reworked and the multiplier now applies to the smoothing constants as well as the angling rates. -
The ATR Response Boost config option was dropped
It is deemed unnecessary with the new Setpoint Smoothing allowing faster speeds in general. -
Use torque instead of current in balance calculations (6.06+)
On firmware 6.06+ calculate motor torque based on the calibrated flux linkage and configured motor poles.This compensates for different motors' torque constants and should make tunes behave more consistently across different motors (not taking into account saturation, that is, the maximum torque a given motor can produce, which remains a major differentiator that can't be accounted for). As a consequence, with this feature (on FW 6.06+) the tune behavior will change slightly according to the motor being used.
Config options related to current are now internally converted to a torque equivalent of a motor Flux Linkage of 27 mWb (a middle value for the common Onewheel motors). The more your Flux Linkage value differs from this, the more will your tune be adjusted.
The following config options are affected:
- Angle P
- Rate P
- Angle I
- I Term Limit
- Booster (Acceleration/Braking) Current Boost
- Torque Tilt Strength and Strength (Regen)
- Torque Tilt Start Current Threshold
- ATR Uphill/Downhill Strength
- ATR Amps to Acceleration/Decceleration Ratio
Make sure your Motor Cfg -> Additional Info -> Setup -> Motor Poles value is correct! The correct value for all Onewheel motors to date is 30.
On firmware 6.05 and older the behavior remains the same.
-
New and more consistent Reverse Stop implementation
-
Add the Control Loop dt and Control Loop Frequency to realtime data
The dt (delta time) is the time between control loop iterations. The frequency is based off that, just smoothed out. Both of these values are defined by IMU Sample Rate.Control Loop Frequency can be used to check the actual frequency a particular configure IMU Sample Rate has resulted in.
Control Loop dt can be checked to see how jittery the timing is, but the Data Recording firmware is needed for that, as the dt needs to be recorded precisely (normal data logging at 10x per second can't accurately show it). Besides IMU Sample Rate, Motor ZVF has a big impact on the Control Loop jitter.
-
Rename the AppUI tab title to Refloat [contactsimonwilson]
-
Don't disable LEDs if both sensors are pressed at startup [Eli Parker]
This mechanism was in place for the potential case of the LED initialization locking up the board in a way that would prevent the user from connecting to fix the problem. This has proven unneeded, so the feature is being removed. -
Add an option to swap left/right footpad ADCs
Fixes
- Make internal package calculations independent of the loop frequency
Ensures consistent behavior regardless of what frequency the package is running at. - Add recalculation of filter constants according to actual measured loop frequency
Due to technical details actual frequencies at which the package is running can differ significantly from the configured ones, this ensures the filtering is consistent and accurate. - Fix haptic strength speed scaling being applied incorrectly when riding in reverse [Dado Mista]
- Set more sensible limits of 45-90° for Pitch and Roll Axis Fault Cutoffs
- Stop the "last beep reason" text from disappearing once the beep condition stops for users running Float Accessories [Eli Parker]
- Drive beeper pin low after init to prevent unintended beep [0x41kravchenko]
- Fix a potential extra short beep on startup