Dumb question: what does the PWM signal actually control? It’s described as “throttle” and that term means something for a gasser, but electric…? E.g, does the PWM signal control power, or RPM, or peak current, or avg current, or …?
For example, if I send a steady 1600us PWM signal and I vary the water resistance on the motor then does the ESC compensate in any way? Or put differently, what is it that stays constant given that the “throttle” input stays constant but the load varies?
Hi @tve,
This thread has some relevant discussion.
For context, throttle is how it’s described by the BLHeli manual[1], and seems appropriate since there are multiple dynamic factors that affect the output power (including programmed aspects like thermal protection, demagnetisation compensation, and whether the motor is in a “startup” condition, as well as environmental aspects like supply voltage and current capacity).
I suspect the input signal corresponds to something like a request/intent for a particular output power, which the ESC then balances with the other factors that it’s programmed to consider. If you want specifics you’ll need to refer to the firmware source, which unfortunately I haven’t had much chance to dig into.
Perhaps someday I’ll make some time to convert the assembly into an equivalent Python program or something, and then whittle it down into a more understandable format or behaviour diagram given the parameter configuration[1:1] used in our BasicESC.
It’s worth noting that our BasicESC 500 uses a different proprietary firmware that we don’t have direct access to the source of, so it’s likely it behaves slightly differently, although presumably it operates on similar principles.