Basic esc does not initialize

Hey, I’m trying to control t200 thrusters using basic escs, the ESCs are connected to Jetson nano through pca9685 module. I used to be able to initialize the ESCs and send commands to the motor but something has changed and the ESCs won’t initialize anymore (most of the time). I have tried different libraries (circuitpython motor, circuitpython servo, circuitpython servokit) but the only breakthrough was that the ESCs are able to initialize only after I restart the Jetson nano and run the code again. After the first time I run the code the ESCs again refuse to initialize. I’ve tried different ESCs, different pca, different thrusters and different ports on the Jetson nano. Does anybody know what can be the problem? Maybe after first initialization the ESCs is sort of stuck?
Thank you in advance and really hope someone can help me…

Hi @Ofekreches, welcome to the forum :slight_smile:

I’m not really sure what you mean by this. If the ESCs are already initialised, why would they need to be initialised again?

Maybe I don’t understand something. In the code, I send 1500 milliseconds signal for 7 seconds to initialize the ESC. In the begining of the stop command the ESC beeps once. After that I can send commands to the ESC and the motor will move accordingly. After the program is finished and closed I run again the program. This time the ESC does not beep and the motor won’t move.

At this moment the ESC does not beep at all, not even after restarting the whole systems. It beeps 3 times only after I restart the whole power supply to the Jetson nano and the ESC.

If the pwm and ground inputs of the ESC are disconnected from the PCA, the ESC will also beep once when I connect the pwm and ground inputs to the ESC.

The initial three beeps (rising in pitch) are the ESC detecting each phase of the connected motor. Once the phases are detected, the ESC initialises to arm itself, producing a low sound (when it detects a valid (1100-1900us pulse-duration) signal), followed by a high sound (when it detects a valid “stopped” (1500us pulse-duration) signal). Once all five beeps have occurred, the ESC is armed and ready to be controlled. There’s a visual display of this and the other possible beep sequences in the firmware manual in Technical Details / Documents on the Basic ESC product page.

If you stop providing a valid signal, for long enough that the ESC notices, then once the signal re-appears it will redo the full startup process (detect the motor phases, then initialise and arm, including all five beeps). If the signal never stops then re-detection and re-initialisation don’t need to occur, it will just continue operating normally (since it never stopped being controlled).

This should beep at least three times (detecting the motor phases), and if you’re providing a valid stopped signal it should also beep the other two times, not just once. If I have an ESC plugged in to my vehicle autopilot board (sending a constant stopped signal), and I pull out the signal+ground pair, then a few seconds after I plug it back in the full startup sequence occurs.

Given you’re using an external driving board, do you know what happens to the PWM output when your program stops? Does it command it to turn off or something when it’s closing down, or does the PCA board just keep the signal going?