ESC Telemetry Rate

Hello all,

I have a 6 motor tilt-rotor quadplane with 6 Zubax Myxa ESCs and 12 Hitec servos all running CAN. Currently, I am getting feedback from the servos and ESCs at 50Hz and 10Hz respectively in the CAN feedback log messages. (ESC_x and CSRV_x). For my use case, I would like to get faster ESC feedback logging at 50Hz.

The ESCs and servos both send feedback messages on the CAN bus at 50Hz

I modified the scheduler here to log ESC RPM at 50Hz through the ESC_telemetry library.

See this log file. The CSRV and RPM messages are recorded at 50Hz while the ESC_x RPM message is only 10.

For my use case, I want to record each individual ESC’s telemetry, as opposed to an average value selected by the ESC mask.

How should I proceed? I have not been able to find where the CAN feedback is scheduled to bring up the ESC_x message to the same logging rate as the servos, and I am not sure how best to modify the ESC telemetry class to have individual messages for each ESC.

Thanks for any assistance,

ESC telemetry updates are done on a push basis, so you will get updates as fast as the source is able to give you updates (so the change you made, which is to the RPM sensor rather than ESC telemetry will have no effect). This varies based on protocol and flight controller. So you would need to look at the Zubax Myxa driver to see what rate telemetry is being generated at.

The ESC is set to a send interval of .02s = 50Hz. I thought that since the RPM log message was being updated at 50Hz, that confirmed feedback was being sent from the ESCs at 50Hz.

I thought the ESC log messages are generated here, in a function that is commented as updating at 10Hz.

check with DroneCAN GUI tool to see if the ESCs are really sending at 50Hz. If they are then we need to work out why we’re only getting 10Hz logging

Here is a screenshot of my DroneCAN gui. It looks like the ESC status messages are being published to the bus at 50Hz.

Here also are messages at 100Hz and 4Hz

After making the change discussed in discord and this PR, AP_Vehicle: increase rate at which we can log ESC telem by peterbarker · Pull Request #20704 · ArduPilot/ardupilot · GitHub

I am now logging at 50Hz. Sucess! Thanks all for your help.

See this screenshot which shows ESC status messages updating every .02 seconds = 20000 microseconds.

1 Like