ESC suudenly stopped working after updating px4 parameters
-
ESC suddenly stopped working after updating px4 pid parameters. I am able to detect esc using ftdi cable; I have also rechecked the voxl2 - ESC UART cable. There is no hardware issue. How to fix it ?
-
Can you please double check that uart_esc module is enabled and correct baud rate is used (250K default). Do you still have the parameters that you used when ESC was working? Maybe try those.
-
@Alex-Kushleyev The esc module is enabled but
qshell mixer load /dev/uart_esc quad_x.main.mix
The uart_esc file is missing even after conecting the esc with voxl2. There is no hardware damage. I have checked all the ports many times with multimeter inclding the voltage of RX-TX with respect to ground. All the things are good. I have tested it another voxl2, even tried it with differnt cable. The issue is still there. How to fix the issue?
-
You should try to use the following commands:
qshell modalai_esc status
also check
qshell param show UART_ESC*
-
Hi @Alex-Kushleyev,
I have tried running the above command:
voxl2:~$ px4-qshell modalai_esc status INFO [qshell] Send cmd: 'modalai_esc status' INFO [qshell] qshell return value timestamp: 798550454, local time: 798557832
voxl2:/$ px4-qshell param show UART_ESC* INFO [qshell] Send cmd: 'param show UART_ESC*' INFO [qshell] qshell return value timestamp: 785736853, local time: 785740154
I think voxl2 is not detecting ESC, how can I resolve this?
-
Hi @Tamas-Pal-0 ,
Sorry some of the stdout responses don't make it to the shell when evoked with
px4-
, can you try this section of the developer guide to run PX4 interactively through the shell?https://docs.modalai.com/voxl-px4-developer-guide/#how-to-access-the-px4-shell-pxh
After that, and you run voxl-px4 manually, you will get a
pxh
shell, and then theqshell modalai_esc status
command should spit out info.Also, for the param check, no
qshell
needed, you can useparam show UART_ESC*
from thepxh
shell. -
@modaltb , just wanted to double check.. inside pxh shell, the command should be just
modalai_esc status
(withoutqshell
), right? -
Below is the output of the command
qshell modalai_esc status
while the ESC was connected and powered on:INFO [qshell] Send cmd: 'modalai_esc status' INFO [muorb] SLPI: Marking DeviceNode(qshell_req) as advertised in process_remote_topic INFO [muorb] SLPI: qshell gotten: modalai_esc status INFO [muorb] SLPI: Max update rate: 0 Hz INFO [muorb] SLPI: Outputs on: no INFO [muorb] SLPI: UART port: 2 INFO [muorb] SLPI: UART open: yes INFO [muorb] SLPI: INFO [muorb] SLPI: Params: UART_ESC_CONFIG: 1 INFO [muorb] SLPI: Params: UART_ESC_BAUD: 250000 INFO [muorb] SLPI: Params: UART_ESC_MOTOR1: 3 INFO [muorb] SLPI: Params: UART_ESC_MOTOR2: 2 INFO [muorb] SLPI: Params: UART_ESC_MOTOR3: 4 INFO [muorb] SLPI: Params: UART_ESC_MOTOR4: 1 INFO [muorb] SLPI: Params: UART_ESC_RPM_MIN: 1000 INFO [muorb] SLPI: Params: UART_ESC_RPM_MAX: 10500 INFO [muorb] SLPI: INFO [muorb] SLPI: -- ID: 0 INFO [muorb] SLPI: State: 0 INFO [muorb] SLPI: Requested: 0 RPM INFO [muorb] SLPI: Measured: 0 RPM INFO [muorb] SLPI: Command Counter: 0 INFO [muorb] SLPI: Voltage: 0.000000 VDC INFO [muorb] SLPI: INFO [muorb] SLPI: -- ID: 1 INFO [muorb] SLPI: State: 0 INFO [muorb] SLPI: Requested: 0 RPM INFO [muorb] SLPI: Measured: 0 RPM INFO [muorb] SLPI: Command Counter: 0 INFO [muorb] SLPI: Voltage: 0.000000 VDC INFO [muorb] SLPI: INFO [muorb] SLPI: -- ID: 2 INFO [muorb] SLPI: State: 0 INFO [muorb] SLPI: Requested: 0 RPM INFO [muorb] SLPI: Measured: 0 RPM INFO [muorb] SLPI: Command Counter: 0 INFO [muorb] SLPI: Voltage: 0.000000 VDC INFO [muorb] SLPI: INFO [muorb] SLPI: -- ID: 3 INFO [muorb] SLPI: State: 0 INFO [muorb] SLPI: Requested: 0 RPM INFO [muorb] SLPI: Measured: 0 RPM INFO [muorb] SLPI: Command Counter: 0 INFO [muorb] SLPI: Voltage: 0.000000 VDC INFO [muorb] SLPI: INFO [muorb] SLPI: modalai_esc: cycle: 85537 events, 9228157us elapsed, 107.88us avg, min 4us max 440us 9.18 INFO [muorb] SLPI: modalai_esc: output update interval: 85534 events, 2056.72us avg, min 1249us max 3206224u INFO [muorb] SLPI: control latency: 85533 events, 49030648us elapsed, 573.24us avg, min 372us max 925us 62.2 INFO [muorb] SLPI: Switched to rate_ctrl work queue: 1 INFO [muorb] SLPI: Mixer loaded: yes INFO [muorb] SLPI: Driver instance: 0 INFO [muorb] SLPI: Channel Configuration: INFO [muorb] SLPI: Channel 0: value: 0, failsafe: 0, disarmed: 0, min: 1000, max: 10500 INFO [muorb] SLPI: Channel 1: value: 0, failsafe: 0, disarmed: 0, min: 1000, max: 10500 INFO [muorb] SLPI: Channel 2: value: 0, failsafe: 0, disarmed: 0, min: 1000, max: 10500 INFO [muorb] SLPI: Channel 3: value: 0, failsafe: 0, disarmed: 0, min: 1000, max: 10500 INFO [muorb] SLPI: Ok executing command: modalai_esc status INFO [muorb] SLPI: Sending qshell retval with timestamp 949539937, current timestamp 949539938 INFO [qshell] qshell return value timestamp: 949539937, local time: 949553192
-
It seems no data has been received by modal_esc module, but it also seems that the ESCs have not been armed yet. Let's try to query the individual ESC version information:
modalai_esc -i 0 version
and
modalai_esc -i 0 version-ext
(you can replace
-i 0
with ESC ID 0..3)These commands will explicitly send a request to each ESC and get information about its version and should print.
version-ext
is the extended version information, but basicversion
command should be sufficient for checking communication.