Telega V1 Setpoint Index

Hey community,

we switched from Telega V0 / Drone Can to Telega V1 / Cyphal in order to make use of the servo operation mode with Zubax ESCs for propeller parking in our eVTOL product. However, during bench testing I run into the following problem with our setup:

  • AmpDrive AD0505A/B “Myxa” ESC running Telega V1
  • Zubax Babel CAN Adapter
  • Pixwhawk V6X running PX4 compiled for Cyphal
  • T-Motors BLDC motor with propeller attached (not relevant to the problem)

When I run the ESC in its torque control mode (publishing setpoints to setpoint_rat_torque) the mns.setpoint_index works as expected, i.e., zero indexed referencing of the respective motors. However, when I want to run the ESC in the velocity control mode, I publish to the setpoint_rat_velocity_u9 topic after setting the mns.ratiometric_to_absolute_mul register appropriately for the targeted maximum velocity. Strangely, now the ESC indexing is altered. I tested it so far only with two motors that change their intended index from 4/5 to 2/3. Mind, the register and its content are not altered, only the esc reacts to another index!

I wonder if somebody else encountered this problem already? It appears to be too obvious to have not shown up so far.

Kind regards from Munich,
PBerthold

Hi Paul, can you please share the configs of the affected ESCs?

Hi Pavel,

Sure, I attached the configurations for the two ESCs.
node_A (5.4 KB)
node_B (5.4 KB)
Thanks for the fast reply.

Please make sure you are using the correct data types. The behavior you described can be explained by trying to publish a vector of 16-bit wide scalars where the device expects 9-bit scalars. The ratiometric torque topic expects zubax.primitive.real16.Vector31.1, while the other topic expects zubax.primitive.natural9.Vector56.1.0. You can find their definitions here:

Hi Pavel,
thanks for the response. I’ll check and respond - might take a while as we reverted for now for quick progress.
Kind regards,
PBerthold

Hi Pavel,

thanks for the support, I am facing the same issue. Could you advise on the best way to incorporate these Zubax types into PX4? Should I add the zubax_dsdl repository as a submodule, or is there an existing integration method I’ve overlooked? Any guidance on ensuring compatibility with Telega V1 would be greatly appreciated.

Thank you!

There isn’t an existing integration afaik (or wasn’t when I last checked), so you can just add the submodule. This is the correct way to do it.

You can also avoid it altogether and just serialize the message manually using the helpers from nunavut.h, but I don’t recommend it.