I am using a Pixhawk 2.4.8 as a bridge between an ESP32 and a thruster. The thruster operates as expected in the forward direction, It runs at 10% throttle (e.g., 1540 µs PWM) and neutralizes correctly when set to 1500 µs. But, when running the thruster in reverse (e.g., 1460 µs PWM), it does not neutralize when set to 1500 µs. Instead, it gets stuck in a loop or becomes unresponsive. To neutralize it, I have to briefly run the thruster in the forward direction (e.g., 1540 µs) to neutralize it.
Is this behavior expected, or is there a configuration in Pixhawk to fix this issue without requiring the forward operation to neutralize?
Hi @Harshada -
This is likely a timing issue - either the servo channel trim parameter needs to be adjusted (upwards, from 1500 to 1510?) or the Pixhawk’s timing is off. Low-cost Pixhawks with counterfeit parts often have similar PWM timing issues…
I am using an ESP32-S3 to directly generate PWM signals for an ESC that operates a thruster. There is no Pixhawk or any other controller involved in the setup; the ESP32-S3 is connected directly to the ESC.
Hi @Harshada -
Ah - my mistake, took a bit of a wild guess. If you have access to an oscilloscope, checking the integrity of the PWM signal output to the ESC would be a good troubleshooting step. Your code on the ESP32 may be doing things in an unexpected way, from a timing perspective, because there is an operating system on the device that manages functions like WiFi. You could also check what you code is trying to output with a print statement to find any potential logic errors.
What rate are you updating the 1 to 2 ms throttle pulse in your code?
What type of ESC are you using?