FOC ABS_OVER_CURRENT at high RPM + inconsistent sensorless behavior — highly salient 11" direct-drive hub motor (FSESC 75100 Pro)
SETUP
- ESC: Flipsky FSESC 75100 Pro, FW 6.06 (no_hw_limits build), STM32F405
- Battery: 16S LiFePO4, ~52V full / sags to ~50V under load
- Motor: 11" direct-drive brushless hub, Hall sensors, 23 pole pairs (46 poles)
[brand/model: unknown 11" hub — will update if I find out]
- Sensor Mode: Hall Sensors, Sensorless ERPM crossover = 2000
- Control: ADC throttle, Current control. Hall table valid. Phase filter DISABLED.
- All testing is free-spin (wheel in air), motor cold (24-28°C). Not thermal.
SYMPTOM
- At high RPM / full throttle: FAULT_CODE_ABS_OVER_CURRENT.
- The motor "runs away" (rapid uncommanded-feeling acceleration) then cuts.
- Fault dumps show INSTANTANEOUS current spiking to the ABS limit (~130A)
while FILTERED current is only 60-80A. Example trips:
Current 130.7 / filtered 80.8 / duty 0.62 / 13122 ERPM / 24°C
Current 132.7 / filtered 81.0 / duty 0.56 / 18739 ERPM / 24°C
Current 131.6 / filtered 63.9 / duty 0.75 / 19999 ERPM / 23°C
=> large gap inst vs filtered = current ringing / observer loss of sync.
- Trips cluster at high duty (0.56–0.80), near the voltage ceiling.
DETECTION IS UNRELIABLE (salient motor)
- R and λ fairly stable: R ~69-74 mΩ, λ ~2.62-2.83 mWb.
- L and Lq-Ld swing WILDLY between detection sessions:
one session L=75µH / Lq-Ld=60µH
another L=100µH / Lq-Ld=119µH
i.e. L detection is strongly rotor-position dependent (high saliency).
WHAT I'VE TRIED (none fully fixes it)
1. Fresh accurate detection + write -> marginal.
2. Reduced L by 30% with high gains -> WORSE oscillation.
3. Gentle current gains (KP 0.05 / KI 50) -> still trips at high RPM.
4. Lowered Observer Gain 125 -> 40 -> 70:
- 125: reaches ~19k ERPM but with violent spikes.
- 40: smoother climbs but cuts earlier (~13.5k).
- 70: INCONSISTENT — 3 identical free-spin runs gave 3 very different
results (one clean climb to 13k, two with chaotic oscillation at
2k-5k ERPM that never climbed).
QUESTIONS
- How do people stabilize the sensorless observer at high RPM on a HIGHLY
SALIENT hub motor when standstill L/Lq-Ld detection is unreliable?
- Is the L/Lq-Ld detection scatter the root cause? Best way to nail it for
a salient motor?
- Recommended observer type / settings (FW 6.06) for this case?
- Is the Hall->sensorless crossover (2000 ERPM) worth raising, given the
low-RPM chaos clusters there?
- Should this simply be tuned under load rather than free-spin?
