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.


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

No more need to recompile the code