SkyStars ESC with AM32 causes motors without props to shake in Stabilize

I’ve installed my first ESC with AM32 - It’s a Skystars KM55A.

The quad with this ESC shakes violently when running the motors up in Stabilize mode without the props. I’m using BDshot on this ESC with a Cube Orange and T-Motor 2216 Motors.

I have an almost identical quad using a T-Motor ESC with BLHeli32, Holybro 6C Mini, and SunnySky 2213 motors. This quad behaves normally when running up the motors in Stabilize without the props. No vibration or shaking.

Here’s the BIN from the session in the video: AM32 ESC causes shakes - 2025-03-21 15-47-35.bin - Google Drive

And here are my AM32 settings:

I’ve reviewed the wiki to make sure I have all the settings correct for this ESC and using BDshot and I think I’ve got it right.

It’s not easy to swap out an ESC - lots of soldering. But I do have another T-Motor BLHeli32 ESC on the shelf I can use.

I’d welcome any comments or suggestions - Thanks!

As extra info - here’s a video of an “all motors” Motor Test at 60% - no wobble.

During motor test the esc’s are just commanded to a fixed value.
During stabilize the FC tries to control the Drone by varaiation of the thrust of the motors. But this cannot work without props. On increasing power the FC assumes some reaction which is not coming as the logical back loop is brocken.

Yes, thank you @Juergen-Fahlbusch.

I always do a motor run with props off in stabilize to check things. There’s never been a vibration problem until this case.

The only difference is the Skystars ESC with AM32.

And just to check, I went outside and armed the quad with the props on in Stabilize - same problem.

I’ll do more checking, but my impression at this point is that ArduPilot in Stabilize isn’t working properly with AM32 on this ESC.

It’s a lot of work, but it looks like I may have to solder in a new ESC with BLHeli_32 to compare.

Did you fly your drone outside or did you just test it on ground?

On this drone with the AM32 ESC, I did put the props on and armed the quad in Stabilize on the ground. The vibration was too severe to apply enough power to lift off.

On my first build with this frame where I’m using a BLHeli_32 ESC, the vibes were really low on this test mapping mission.

There are a few other differences besides the ESC.

This copter with the vibration problem is using a Cube Orange. The earlier one is using a Holybro Pixhawk 6C Mini.

And this copter with the vibration problem is using T-Motor 2216 motors with 10" props. The earlier one is using SunnySky 2213 motors with 9.5" props.

Here’s a video of the first copter in final landing phase on the test mapping mission: https://youtu.be/213TqCpgJik

So many differences, I wonder how are you going to objectively narrow down which one is causing the issue.

Good question.

The only way is to swap everything one by one.

But I’m hoping someone else has a better idea.

And really - since the Motor Test doesn’t cause any vibration when the motors are run up, but using Stabilize does cause vibration - I get the feeling that there’s something about how the ArduPilot firmware is talking to the ESC firmware.

I have a spare Holybro Pixhawk 6C Mini - I can easily start by swapping out the Cube Orange for that.

I decided to try a few things on the ESC to see if I could get any improvements.

I downgraded the firmware one release - no change.

I then enabled Sinusoidal Commutation - both for the old release and the current release. The problem with Sinusoidal Commutation is much worse - and starts at a very low RPM.

Perhaps they don’t like Double Loop Rate Dshot. Set it back to 0 and see what happens. Doesn’t sound likely but worth a try I suppose.

Thanks Dave -

I spent some time turning on and off options on the AM32 Configurator and I think I found the culprit. There’s an option called “Complementary PWM”.

As I read the notes, it’s something designed to improve motor efficiency - but perhaps my ESC doesn’t support it. So by turning that option off - it works now.

Here’s the comparison:

And here’s the copter on the second hover flight. Looks good - until, well, that’s on my next post.

1 Like

Good find. And “Auto Timing Advance” is probably the correct way to go too.

It appears to to do something to eliminate the prop-off on the bench oscillation but this feature is generally desirable for a multi-rotor as I understand it. Peter Smith the AM32 developer likened it to BLHeli damped light. You would want to disable it for a Plane or some RC Car/Truck applications. AM32 was originally developed for ground vehicles.

I expect most people using AM32 are using it because BLHeli_32 support has stopped.

So when I configured AM32, I modeled my setting after BLHeli_32 - which I can see now doesn’t quite work.

An interesting example is Sinusoidal Commutation. AM32 notes that this is for ground vehicles when they get stuck - and as such only works at low rpm.

One other thing I’ve just discovered when digging through logs regarding my apparent ESC failure due to high temperature. Looking at my logs from copters with BLHeli_32 ESC’s, the only data being reported from the ESC is RPM. My guess is to get the other data you have to use the telemetry port on the ESC.

AM32 on the other hand reports: RPM, RawRPM, Volt, Curr, Temp, and Err. At least on my Skystars ESC running the latest stable release of AM32.

Correct. The worst part about lack of support for BlHeli32 is a known bug in a recent release that could cause inadvertent spin up of motors upon power application in some rare instances. The latest release supposedly fixed that, but unless you were quick to update before all support disappeared, there’s a good chance that existing BlHeli32 ESCs contain that bug.

I’ve found AM32 to be a pretty good drop-in replacement, but it’s not without issues, as you’ve found, and I hope time and further development will improve the user experience and function of these ESCs.

Please indicate this issue as solved on the Facebook page. Lot of users where blaming the printed arms as false news. lol

Thank you Brandon. I’ve made another comment.