Float Hub - Documentation

This article serves as documentation to the suggested values used in Float Hub (VESC Setup App, more details coming soon) and other relevant behaviors throughout Setup.

If there’s any questions on how things behave or why things are the way they are, or feedback on things that you think should be changed or improved, please feel free to share in this thread. While the app is closed source, I want to stay as transparent as possible in how the app works behind the curtain so the community can verify and we can all be on the same page.

Also feel free to join the Float Hub Discord Server for more updates and discussion: Float Hub App


LAST UPDATED: 3/18/25 - v0.8.10



Controllers:

Controller Sample Rate (Hz) Rated Max Current (A) Default Motor Default Battery Default Tire Diameter (mm)
Floatwheel ADV 800 180 CannonCore V2 (ADV1) Floatwheel ADV (20s2p LR2170LA) 290
Floatwheel ADV2 832 225 CannonCore V3 (ADV2) Floatwheel ADV2 (20s2p 50S) 290
GTV Power Kit 800 180 Hypercore GT (18s2p P42A) 280
XRV Power Kit 800 180 Hypercore XR / PintX (15s2p VTC6) 280
PintV Power Kit 800 180 Hypercore Pint (15s2p VTC5D) 265
Thor300 832 300 SuperFlux Mk3 HS Funwheel X7 (20s2p P28A) 280
Thor400 832 400 SuperFlux Mk3 HT 30s1p P45B 280
Cheap FOCer v3 832 150 Hypercore XR / PintX (15s2p VTC6) 280
Little FOCer v3 800 250 Hypercore XR / PintX (15s2p VTC6) 280
Little FOCer v3.1 832 250 Hypercore XR / PintX (15s2p VTC6) 280
Little FOCer v4 832 250 Hypercore XR / PintX (15s2p VTC6) 280
Tronic 250R 832 250 Hypercore XR / PintX (15s2p VTC6) 280
Tronic X12 24S 832 650 SuperFlux Mk3 HS ‘777’ VOW GT (24s2p P45B) 280
Tronic X12 30S 832 350 SuperFlux Mk3 HT 30s1p P45B 280
Ubox 85 800 250 Hypercore XR / PintX (15s2p VTC6) 280
Ubox 100 800 150 Hypercore XR / PintX (15s2p VTC6) 280
Ennoid MK8 30S 800 200 SuperFlux Mk3 HT 30s1p P45B 280
Ennoid MK8 Pro 30S 800 350 SuperFlux Mk3 HT 30s1p P45B 280
JetFleet F6 832 220 SuperFlux Mk3 HT 30s1p P45B 280
Raiden 7 800 250 Hypercore XR / PintX (15s2p VTC6) 280



Motors:
The expected FOC Values are used for warnings in FOC Detection and follow this format: Min / Max / Margin. If beyond the Min / Max but only by less than the Margin, a yellow Caution will be displayed. If beyond the Min / Max by greater than the Margin, a red Caution will be displayed.

NOTE: The following Motors have limited publicized FOC Detection results, and thus have wider than typical expected value ranges. More data should be gathered on these for more accurate warnings:

  • Hypercore v2
  • Superflux Mk3 HT
  • CannonCore V3
Motor Current Max (A) Poles Resistance Inductance Inductance Diff Flux Linkage
Hypercore 120 30 80 / 105 / 5 190 / 230 / 30 25 / 55 / 45 26.5 / 29 / 2
Hypercore v2 (S-Series / XRC) 120 30 65 / 85 / 15 140 / 200 / 20 25 / 55 / 45 26.5 / 29 / 2
SuperFlux Mk1 160 30 27 / 35 / 5 105 / 126 / 10 - 23.5 / 24.5 / 2
SuperFlux Mk2 HS 160 30 33 / 43 / 5 120 / 144 / 10 - 25 / 26 / 2
SuperFlux Mk2 HT 160 30 45 / 59 / 5 175 / 210 / 10 - 29 / 30 / 2
SuperFlux Mk3 HS 160 30 33 / 40 / 5 105 / 125 / 10 - 23.5 / 24.5 / 2
SuperFlux Mk3 HT 160 30 45 / 59 / 20 175 / 210 / 40 - 28 / 30 / 5
CannonCore V1 (1st Batch) 160 30 90 / 117 / 10 190 / 228 / 10 - 36.5 / 38 / 2
CannonCore V2 (ADV1) 160 30 65 / 85 / 10 130 / 156 / 10 - 29.5 / 30.5 / 2
CannonCore V3 (ADV2) 160 30 55 / 75 / 10 75 / 105 / 10 - 24.5 / 27 / 2



Batteries:

Category Battery Cell Type Config
Floatwheel Floatwheel ADV LR2170LA / DG40 20s2p
Floatwheel Floatwheel ADV Pro Molicel P42A 20s2p
Floatwheel Floatwheel ADV2 Samsung 50S 20s2p
Fungineers Funwheel X7 Molicel P28A 20s2p
Stock GT S-Series Molicel P45B 27s1p
Stock GT Molicel P42A 18s2p
Stock XR Classic Molicel P30B 18s2p
Stock XR / PintX Murata VTC6 / Samsung 30Q 15s2p
Stock Pint Murata VTC5D 15s1p
IndySpeedControl 32s1p Molicel P45B 32s1p
IndySpeedControl 30s1p Molicel P45B 30s1p
IndySpeedControl GT Pack Molicel P45B 20s2p
IndySpeedControl XR Split Pack Molicel P45B 20s2p
IndySpeedControl 20s2p Battery Kit Molicel P28A 20s2p
IndySpeedControl XRV PnP Kit Molicel P45B 18s2p
IndySpeedControl 18s2p Molicel P45B 18s2p
The Board Garage FAS Pack Molicel P50B 30s1p
The Board Garage ‘777’ VOW GT Molicel P45B 24s2p
The Board Garage GT ME4T Pack Samsung 50S 20s2p
The Board Garage Extra Regular Pack Molicel P30B 20s2p
The Board Garage Regular Pack Molicel P28A 20s2p
The Board Garage XR ME4T Pack Samsung 50S 18s2p
The Board Garage Power Pack Molicel P45B 18s2p
Z Battery Solutions Speed Pack Molicel P28A 20s2p
Z Battery Solutions Torque Pack [P42A] Molicel P42A 18s2p
Z Battery Solutions Torque Pack [P45B] Molicel P45B 18s2p
ChiBatterySystems CBCSO Murata VTC6 / Samsung 30Q 20s2p
ChiBatterySystems CBXR - Original Molicel M35A / Sanyo 18650GA 15s3p
ChiBatterySystems CBXR - VESC Power Molicel P28A 15s3p
ChiBatterySystems CBXR Mini Sanyo 20700B 15s2p
ChiBatterySystems CBSP Molicel P42A 15s1p
ChiBatterySystems Quart - Standard Molicel P42A 15s1p
ChiBatterySystems Quart - S Edition Samsung 50S 15s1p



Cell Types:
NOTE: Discharge Max is also used to calculate defaults for Charge Max and Field Weakening Current Max, as explained later in the documentation below.

Cell Discharge Max (A) Capacity (Ah)
Samsung 50S 35 5.0
Molicel P42A 40 4.2
Molicel P45B 45 4.5
Molicel P50B 50 5.0
Ampace JP40 60 4.0
LR2170LA / DG40 (ADV1) 40 4.0
Molicel P28A 30 2.8
Molicel P30B 35 3.0
Molicel M35A / Sanyo 18650GA 10 3.5
Murata VTC6 / Samsung 30Q 15 3.0
Murata VTC5D 25 2.8
Sanyo 20700B 20 4.0



- SETUP SCREENS -

Motor Setup:

  • Motor Current Max / Regen Max tries to default to the Current Max in the Motor table above, with the Absolute Max Current 150% of this value (for safety headroom for current overshoot). If this would set Abs Max higher than the Controller’s configured Rated Max Current, Absolute Max Current is instead set to Rated Max Current, and Motor Current / Regen Maxes are brought down such that this is new Abs Max is 150% of their value (Motor Current Max = Abs Max / 1.5).
  • If unchanged manually, Absolute Max Current will remain 150% of Motor Current Max or Regen Current Max (whichever is greater), up to the Controller’s Rated Current Max where it caps out (can still be raised beyond manually).
  • A warning (red borders) will display on Motor / Regen Current Max anytime they are within less than 50% margin of Absolute Max Current.
  • If Motor Current Max and Regen Current Max are equal and you manually tweak Motor Current Max, Regen Current Max will change as well to match unless changed manually. (This currently only works with + / - buttons, not text field entry).



Battery Setup:

  • Discharge Current Max Default = Cell’s Discharge Max * P-Count
  • Charge Current Max = -Cell’s Discharge Max * P-Count, or capped at either -35A for 1p, -45A for 2p, or -20A * P-Count for 3p+.
    • This is a pretty rudimentary approach, but acts as a balance between some of the different viewpoints on battery current maxes in the community. Would like to flesh out a better approach, community feedback would be appreciated here.
  • If P-Count is changed, Current Maxes are updated to the new defaults, even if they were manually tweaked prior
  • S-Count is used along with the Voltage Cutoffs to calculate the Voltage Cutoff saved to the Motor Config (Cell Voltage Cutoff * S-Count)
  • Voltage Cutoff Defaults:
    • Cutoff Start: 2.7V / Cell
    • Cutoff End: 2.5V / Cell



Configure FOC Parameters:

  • Recommended Tweaks:
    • Half Observer Gain: If Observer Gain is detected as above or equal to 1.0, default to setting Observer Gain to half of the detected value.
    • Hypercore Crunch Fix: If Hypercore is selected, default to Resistance of 100, Inductance of 190, and matching Current KP/KI. Additionally, sets default Observer Type to Ortega Original and disable Saturation Compensation. These values aim to minimize motor crunch on hard accel/braking, but without the loss of power that we see when using Saturation Compensation.
  • Current KP Default = Inductance / 1000
  • Current KI Default = Resistance



Misc Parameters:

  • Temperature Cutoff Defaults:

    • Controller Cutoff Start: 70°C
    • Controller Cutoff End: 80°C
    • Motor Cutoff Start: 80°C
    • Motor Cutoff End: 90°C
  • Field Weakening Defaults:

    • Duty Start: 65%
    • Ramp Time: 500ms
    • Current Max default is currently set in intervals, based on total Discharge Max across all cell series (Discharge Max * P-Count). Open to feedback on this:
      if (dischargeMax >= 80) {
          return 45
      } else if (dischargeMax >= 60) {
          return 40
      } else if (dischargeMax >= 40) {
          return 35
      } else if (dischargeMax >= 30) {
          return 30
      } else {
          return dischargeMax
      }
  • Hall Sensor Defaults:

    • Hall Interpolation ERPM: 300 ERPM
    • Sensorless ERPM: 2000 ERPM
  • Observer Defaults:

    • Hypercore (If Hypercore Crunch Fix is Enabled):
      • Observer Type: Ortega Original
      • Saturation Compensation: Disabled
    • CannonCore V3:
      • Observer Type: MXLemming Lambda Comp
      • Saturation Compensation: Disabled
    • Otherwise:
      • Observer Type: Ortega Lambda Comp
      • Saturation Compensation: Lambda
  • Advanced Defaults:

    • Zero Vector Frequency: 28.0 kHz
      • ADV2: 25.0 kHz
    • Fault Stop Time: 50ms
    • Calibrate on Boot: Off



- OTHER BEHAVIORS -

At the conclusion of Setup, the following values are also written to the Motor CFG behind the scenes:

  • Sensorless ERPM Start (6.05+ Only): 0.9 * Sensorless ERPM
  • Gear Ratio: 1.0
  • Acceleration Temp Decrease: 0%
  • Temperature Compensation: Enabled
  • Field Weakening Q Current Factor: 2.0%
  • BMS Limit Modes: All Disabled
  • Speed Tracker Position Source:
    • FW 6.05+: Corrected Position
    • Otherwise: Observer
  • Maximum Input Voltage: 200V (truncated to firmware’s defined hardware limit)
  • Minimum Input Voltage: 18V
  • [Thor400 ONLY] Current Sample Mode: All Sensors Combined
8 Likes