About communication between Myxa and Ardupilot

Hello
I am creating a UAV using Myxa A0. I want to send voltage, current, and RPM information from Myxa to Ardupilot and check it in mission planner, but I can’t check it from the status item.
If anyone knows how to set up the communication, please help.

thanks

Which Telega firmware version are you using – v0 or v1? Alternatively, do you want to use DroneCAN or Cyphal?

Thank you for your reply!

I am using v1 firmware. I am currently using Dronecan, but if it becomes difficult to use without Cyphal, I am considering changing it.

I recommend you to start with Cyphal and see where you get. Please follow this guide to set up the motor controller:

Then you can use this Lua script to read the telemetry into ArduPilot:

Thank you for your advice.

Currently, I am using Yukon and am able to set it up and control the RPM with RCPWM.
I enabled Lua on Ardupilot, but am having trouble configuring it on Yakut. Is it possible to do this on Yukon?

Yes, certainly, you can use Yukon as well. The only difference is that the user interface is different, but what’s happening under the hood is the same.

Thank you so much.

I would appreciate it if you could check if my settings are correct.
The settings on Yukon are as follows:

I tried setting it up as follows in ardupilot:


When I connect Myxa to PX4, “esc3_rpm” seems to respond, but it doesn’t seem to be communicating correctly.

I’m not familiar with these procedures, so any help would be appreciated.

ArduPilot misinterprets your feedback messages. You have CYP_FB set to 1012, which means that the Lua script will subscribe to subjects 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019 for the ESC feedback, but you are publishing completely different data on 1013 and 1014. So you need to space the subjects apart a little bit, at least 8 numbers away from each other.

Please check that there are no errors in your previous settings.

1.I used the video below as a reference to set up communication between Myxa and Babel.
Setting up Zubax Komar using the Yukon GUI v2023.3.45 - YouTube

2.The parameters for each were set as follows:
zubax_Myxa_arduconfig_0206.yaml (5.5 KB)

  1. I set the parameter ID in Yukon.

  2. I copied Cyphal.lua to the SD card.(I just copied the files from git.)

  3. Lua has been enabled.

  4. I set the id as follows:

  5. I checked the status screen but couldn’t read any ESC information.

Sorry for asking multiple questions. I would appreciate any help.

The parameters for each were set as follows:

How many ESCs do you have connected to the network? Each must have its own unique uavcan.node.id, and each must be publishing on its own topic (subscribing to the same topic is okay). If you don’t need some of the topics (really it seems like you are only using the feedback topic), disable them by setting the corresponding topic-ID to 65535.

Normally it just works. If it still doesn’t, can you please open an issue here: GitHub · Where software is built

Thank you. The communication problem has been solved!

I would like to change the CAN communication cycle to 5 ms. Is this possible?

Yes. To achieve that:

  1. Set mns.pub_interval_min to a value strictly less than 5 ms.
  2. Publish the command message every 5 ms.

More details at Cyphal interface - Telega v1.0 Reference Manual

This publication rate is high. To avoid losing messages, consider only enabling the feedback topics that you actually need; the others should have their topic-IDs set at 65535.

I tried it. However, it was updated every 20ms instead of 5ms.

I will explain the current situation in detail.

-I am currently trying to get “zubax.physics.dynamics.DoF3rdTs.1.0” every 5ms (because I want torque and RPM information).

-I changed “mns.pub_interval_min” to 0.005[s] but it didn’t work.

-When I sent “setpoint_dynamics” at 200Hz with Yukon, the update cycle became faster but it was not stable.

Do I need to subscribe to setpoint at 5ms to get “zubax.physics.dynamics.DoF3rdTs.1.0” every 5ms?

The Telega version is as follows.

I would appreciate any help.

I changed “mns.pub_interval_min” to 0.005[s] but it didn’t work.

It has to be strictly less than that to avoid boundary effects. 1 ms should be a good choice.

When I sent “setpoint_dynamics” at 200Hz with Yukon, the update cycle became faster but it was not stable.

This is most likely caused by the inability of Yukon to publish the messages at a sufficient and stable rate. You need a more real-time node to manage that, probably implemented in a native language (not Python/JS).