Skip to content
Chris edited this page Jul 30, 2023 · 5 revisions

Motor twitching at very high RPMs

When motors are spinning at around 83.000 rpm they start twitching. To reproduce this, run motors without load (props) only then you will be able to reach such high RPMs.

The following table shows a couple of experiments with different Motors/Firmware configurations (Bluejay version v0.16; BLHeli_S version 16.7):

Firmware/Motor Motor 1 twitching Motor 2 twitching
Bluejay 48khz bidir
0802 - 19500kv 85000RPM - 1421 throttle - 1,1A 83000RPM - 1491 throttle - 1,1A
1102 - 19000kv 83000RPM - 1474 throttle - 1,5A 83000RPM - 1544 throttle - 1,2A
Bluejay 48khz no bidir
0802 - 19500kv 1386 throttle 1456 throttle
1102 - 19000kv 1474 throttle 1561 throttle
Bluejay 24khz bidir
0802 - 19500kv 83000RPM - 1474 throttle - 1,8A 84000rpm - 1500 throttle - 1,6A
1102 - 19000kv 83000RPM - 1561 throttle - 2A 84000rpm - 1600 throttle - 1,8A
Bluejay 24khz no bidir
0802 - 19500kv 1474 throttle - 1,8A 1500 throttle - 1,6A
1102 - 19000kv 1561 throttle - 2A 1600 throttle - 1,8A
Blheli_S
0802 - 19500kv 1500 throttle - 1,7A 1600 throttle - 1,7A
1102 - 19000kv 1600 throttle - 2A 1600 throttle - 2A

Observations

  • 19000kv Motors get unstable at 83000rpm, but they get so hot that they can only withstand those rpm for short periods of time (10s and they burn on touch).
  • Tests are all without load
  • Test voltage is 8V
  • Tests made with DSHOT300, Bluejay version PWM 24 & 48khz, Blheli_S PWM 24khz
  • Using Bluejay 48khz with DSHOT600 instead DSHOT300 twitching starts about 80000rpm instead 83000rpm.

Analysis

Technically we are limited to around 510k eRPM on 48MHz MCUs, when translating this to our "worst" case scenario which would be motors with 12 poles (6 pairs) resulting in a max of 85000RPM (510k / (motorpoles / 2)) before the hardware reaches it's limits. If we translate that back to motor kV and 1S HV voltage of 4.35V we arrive at a practical kV limit of 19540KV. This is pretty much our worst case: low pole count, 1S HV.

Since motor KV are usually not given under load, this theoretical limit is to be taken with a grain of salt since the effective RPM will be less under load, thus motor kV always need to be looked at under load - otherwise they are a useless spec standing by themselves and only motors with same dimensions could be compared kV wise.

Nonetheless super high kV motors are pushing the ESC to it's absolute limits. Seeing that there are 32500KV motors it is easy to see, that we are moving into territory where the 83kRPM limits could be reached (in certain edge cases) - thus resulting in de-syncs.

This also explains the twitching observed by @damosvil and is basically by design and not much we can change with the hardware used here.

Conclusion

If you insist on running insanely high kV motors, be aware that you are running into real risk of reaching hardware limitations and thus de-syncs. If experiencing de-syncs there are a couple way to mitigate those in this situation:

  • throttle limit (this is a bit tricky since flight controller firmware might still send higher throttles values to the ESC if needed)
  • motor output limit (preferred way since this will limit the actual throttle value sent to the ESCs. Reduce this value until de-syncs stop and you should be fine. You can also monitor this by looking at the RPM OSD element and see if you are coming into the critical RPM area)

Things to look into

  • Is there a way for us to simply limit commutation speed and try to not go faster once we are reaching our technical limit? Maybe have some safety offset to the max eRPM at which we try not to go faster?

References: