AM32 Parameters: Complimentary PWM and Running Brake Level

In a post a few days ago I reported severe motor vibration when doing bench tests in Stabilize without props.

These were my AM32 settings:

The vibration went away when disabling the Complimentary PWM setting.

I learned today that the Complimentary PWM setting is used in conjunction with the Running Brake Level setting.

Essentially, if Complimentary PWM is disabled, then when throttle is reduced the motor freewheels. But if Complimentary PWM is enabled, braking is applied when the throttle is reduced. The amount of braking is determined by setting Running Brake Level.

The parameter settings in my test have the Running Brake Level at full - 10.

So I expect this needs to be set to a lower value.

And I’m also thinking that this may need to work in concert with ArduPilot tuning settings.

I don’t believe there are comperable settings for Complimentary PWM and Running Brake Level in BLHeli_32 or BLHeli_S. I don’t know about Kiss or others.

But it seems like something the DEVs might want to take a look at.

As an aside - according to the Ardupilot Parameter List wiki, there’s no “AM32” option for SERVO_DSHOT_ESC.

Here’s where I learned about these parameters:

1 Like

Bench testing proves nothing.

I had a quad on the bench with motor test it shuddered terribly, all that went away once props installed.

1 Like

Exactly, controller needs enough inertia in the system to smooth out PWM drive and control delay.

Yep - I don’t recall if I mentioned it, but I did put props on to see if would smooth out once the copter was armed and a little throttle was applied. Same shudder.

Digging into AM32 I’m finding that it’s not really a swap for BLHeli_32.

AM32 was written for ground rovers. So for example, it uses Sinusoidal Commutation only for low motor speeds - to help a ground rover get moving when it’s wheels are stuck. That’s not Sinusoidal implementation of BLHeli_32.

And BLHeli_32 has no counterpart to Running Break Level.

My guess is that if Copter treats AM32 just as it did BLHeli_32, there could be significant issues. As I see it, the only work around for now may be to configure AM32 to work as much like a BLHeli_32 or BLHeli_S ESC as possible.

The FPV folks seem to be doing OK with AM32 - but BetaFlight and FPV operation is not ArduPilot and autonomous operation.

From what I’ve seen to date - it may be safer to buy a BLHeli_S ESC and flash it with BlueJay.

BLHeli_32’s Non damped mode setting is Complementary PWM. As is Damped Light in the old BLHeli.

1 Like

Ah - good to know. From my current settings, it seems I use this.

What’s different is there doesn’t appear to be a counterpart to the Running Brake Level setting in AM32. As I understand it, this controls the amount of breaking. Any idea how set it to match what Copter is anticipating?

If you managed to get spool down time close to spool up it likely would be best for the control loop though avoiding increased vibrations is even more important.