What does the data frame look like when using onewire ESC telemetry?

Hello everyone! I have a problem that I hope you can help me clear.

My goal:

  • I am working to replicate the data frame of OneWire ESC telemetry in order to send messages (feedback signal from ESC) to pixhawk by using STM32F407.

My problem:

Maybe I’m doing the wrong way.
Could you give me some advices, methods or information to do that?

Thank you.

The telemetry frame is fully defined in the header file: ardupilot/AP_FETtecOneWire.h at d62e946d484b68c12ba96a0ca55d2bbb64e923a3 · ArduPilot/ardupilot · GitHub

@TeeZee Can you answer this one?

1 Like

Thank you for your information. But Could I ask you an extra question?
Pixhawk only receives feedback signal when it sends a telemetry request bit to ESCs? If there is no telemetry request, messages will be ignored by pixhawk ? Did I say that right?

The answer to all your questions is yes. An even better way to integrate the t-motor telemetry would be to write an class derived from AP_ESC_Telem class and use only the flight controller without any extra arduino. That would require much less software and less hardware.

1 Like

According to you, What is the best way that a pixhawk is able to receive signal from 8 ESCs at the same time or less latency?

The best way, the AP_ESC_Telem class , also has the lowest latency

Can it be your meaning is I have to use BLheli32 Escs?

No. What I meant is that you should write C++ code for arducopter. You should not waste time writing C code for arduino.

1 Like

If you Can Wait a week or so I can help you with the code.

I’m really really appreciated with your help.

I’m about to write code in order that pixhawk can receive directly raw data feedback from 8 of T-motor Alpha ESCs (or connect them by a node) and pixhawk must understand what those data are. To me, It is difficult to implement “ESC telemetry feedback” to pixhawk, It seems that it is a big problem for some people. Document about that is limited.

Do you think it is impossible?
I hope you can give me some methods, step by step what I need to do to edit and change the code so that It meet my goal.

And I want to say Yes, I can wait for what you do in a week.
Thank you very much

OK, so I went and did an initial implementation

Is a T-Motor Alpha ESC telemetry input device driver. You need to read the pull-request and edit/extend it to fit your needs.

First you need to Building the code — Dev documentation

and after that switch to the branch I provided in the PR to extend the code. Once that is done, you can push the code so that we can review it.

5 Likes

This is now fully supported in ArduPilot 4.5.0 release and above.

No more need to recompile the code

2 Likes