stepinside / Arduino-CRSF

Arduino Library for read CRSF data from a Serial Port (UART)
MIT License
54 stars 7 forks source link

Telemetry support #1

Open cmlarsen opened 1 year ago

cmlarsen commented 1 year ago

This awesome and super happy to see you are working on this library. I'm planning to try it out for a combat robot (like Battle bots). Do you have plans for implementing telemetry and/or would you accept a PR if I get a chance to work on it?

stepinside commented 1 year ago

Sorry for my late reply. I would love to implement telemetry and appreciate any contribution, but unfortunately I don't have time to work on it right now because I have some higher priority projects.

PhilippMolitor commented 1 year ago

Do you have documentation on how telemetry is implemented? Maybe I can have a look in my free time.

stepinside commented 1 year ago

Unfortunately not.

sercona commented 1 year ago

I might have some time to help, as I'm now getting more interested in elrs for arduino remote control use.

if we can find docs on how the telemetry is encoded and come up with a first requirements doc, I'm game to have a go at it. telemetry is a big part of what makes elrs very competitive.

worst case we can dive into the actual source code from another project. using existing include files (etc) would be very helpful, here.

PhilippMolitor commented 1 year ago

Speaking of the worst case, here is some stuff from the ExpressLRS source code:

https://github.com/ExpressLRS/ExpressLRS/blob/master/src/lib/CrsfProtocol/crsf_protocol.h

https://github.com/ExpressLRS/ExpressLRS/blob/master/src/lib/CRSF/CRSF.cpp#L267

https://github.com/ExpressLRS/ExpressLRS/blob/521e2140903ea4845b4a125b7f1bb3f79d749877/src/lib/TelemetryProtocol/telemetry_protocol.h

I am not sure if this really helps, I didn't find so much useful code in there sadly, but C/C++ is not my strongest of programming languagues yet, so you might find more than I do.

sercona commented 1 year ago

I could not get this lib to work, not even at 115200.

I could get THIS one to work: https://github.com/CapnBry/CRServoF/tree/master/lib/CrsfSerial

has anyone gotton this code (not the capnbry) one working? no matter what I do, I get nothing from serial out. same hardware (mega shield style board) and same elrs rx, flashed to 3.0.0 and at 115200 baud, that guy's lib works and decodes my 9 channels fine and this one shows no output at all.

maybe I'm missing some essential loop() calls or something?

stryjekryjek commented 1 year ago

hi i have been looking for a telemetry solution for a long time too. But I found nothing interesting apart from a few links on the ardupilot forum. The implementation is only native. Here's an interesting hack But too difficult for me to implement. https://www.g3gg0.de/wordpress/fpv/fpv-analysis-of-tbs-crossfire/

Maybe someone will do this crsf telemetry one day

Mateksys CRSF-PWM-C has the device and software unfortunately not opensource

Congratulations to the author for the work @stepinside

ib2quick commented 1 year ago

hi i have been looking for a telemetry solution for a long time too. But I found nothing interesting apart from a few links on the ardupilot forum. The implementation is only native. Here's an interesting hack But too difficult for me to implement. https://www.g3gg0.de/wordpress/fpv/fpv-analysis-of-tbs-crossfire/

Maybe someone will do this crsf telemetry one day

Mateksys CRSF-PWM-C has the device and software unfortunately not opensource

Congratulations to the author for the work @stepinside

I've solved the telemetry problem. Can read all of the link statistics at 150Hz on an Arduino Due directly from an ELRS RX. I will post a repository here soon.

Not sure if you were still interested in a telemetry solution.