-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
writeRcChannel - Control CRSF Transmitters with CRSFforArduino #88
Comments
Yea, as I said to the other guy what suggested this: This will be a fun thing to do.
Yea, nah. You definitely deserve a better implementation than CPPM (AKA PPM), that's for sure. That's a very old (and outdated) protocol, and for some, it can be unreliable. In fact, you have given me an idea: Go the extra mile and do telemetry on the transmitter module side as well as the RC Channels. |
Beauty! I'd vastly prefer a CRSF over PPM or otherwise. I came across this implementation earlier this evening, but it appears to be very early days for it and currently only supports the OG Arduino Mega2560: https://github.com/Sam4uk/CRSF We are planning on embedding this ExpressLRS design in a project and want to control it via CRSF from a RP2040. I think this'd be the key to doing that right! |
Awesome! =^/.^= I have a couple of theories on how this could be implemented:
Interesting. 🤔 The primary focus of CRSF for Arduino is with bringing The Crossfire Protocol in its entirety to modern Arduino targets and keeping the codebase up-to-date with the latest changes to the protocol itself and up-to-date with the latest hardware. Quite some time ago, I wanted to look into the possibility of adding in AVR support on account of thinking that my preconceived views of the platform may either be outdated or incorrect... only to find that the minimum size of CRSF for Arduino exceeds the total available memory of most AVR platforms. As for the Arduino Mega2560, I don't have any reason to believe that a physically huge board like that (with mostly the same feature set as the ATMega328P chipset in the Arduino UNO R3) is practical for the applications that CRSF for Arduino is targeting. Especially when better alternatives for the same form factor exist, such as the Adafruit Grand Central M4 (which is based on the SAMD51P20, and is compatible with CRSF for Arduino). While I am on the subject of AVR, here's the limitations I ran into:
|
All makes sense! I only suggested the writeRcChannel completely naively, what you're suggesting sounds functionally much much better. I'm more than happy to share the debug notes from our bring up as well of course and will do my best to document it here. I have nothing to do with Sam's CRSF project and have never interacted with him, so I'll leave that project going! I'm sure there's some reason he's doing what he's doing, but hopefully he comes across your awesome library and adopts it / contributes together as well! |
Sounds wonderful with what you're doing. But, yea. In the upcoming release, there will be several refinements to my code-base in the name of improving reliability and doing away with any vulnerabilities that may be present. I am still floating the idea of adding in AVR compatibility, because new information has come to light about CRSF for Arduino being able to successfully compile on older targets. I tested this specifically with the Arduino Mega2560, Arduino UNO R3, and Arduino Micro. I can see a need to get CRSF for Arduino working on legacy targets, because a lot of them are still in use today. |
Hello! Curious how this is going and if I can lend a hand with any testing? The project we are looking to use this on is an opensource motion controller. If you are curious https://motionpilot.ch/ |
I started up #103 shortly before I went on my hiatus. By the time I come back from it, this is the first thing at the top of my to-do list to get to work on. Hardware testing is very welcome. Currently, there isn't anything in the code-base yet. Not gonna lie. This is going to be an amazing feature for CRSF for Arduino, and I am looking forward to implementing it and working with you to get it all working. =^/,..,^= |
Hi, how is this going? Im working on something, and i would love to use crsf for it, and have used this wonderfull library before already to read a reciever. is there already somthing to test? and does it also support three wire crsf? as mentioned here: https://github.com/crsf-wg/crsf/wiki/Physical-Layer need to be done with this in june sadly so if this isnt done yet ill use lora, but great job! looks like an awesome library. |
Currently, I don't have anything available to test at this time. I have shelved the S.Port version (AKA The "External Transmitter Module") of the Serial Transmitter Interface for the time being, until some time after I have the "internal" version working the way it's meant to. Implementing CRSF on one wire (making it half-duplex) is more involved than what I am already doing, and it could take significantly longer for me to write the code for. You have also reminded me why I do PSAs about when I need to take breaks and take time off of CRSF for Arduino (mostly to keep my mental health in check, and tending to other goings on in my personal life). With a week left of this month, even if I picked up the project again, I would not have anything usable for anyone by the time the month is up. At this stage, I am picking this up again on the first Monday of July. |
Is there already an issue for this?
Is your feature request related to a problem?
I'm working on a transmitter and CRSFforArduino seems so close.
I'm not alone: #80
Describe the solution you'd like
writeRcChannel, just like readRcChannel, but backwards!
Describe alternatives you've considered
Reading the internals of the ExpressLRS code to figure out how I might be able to jerry-rig something.
Using PPM control instead
Additional context
Great project! Thank you!
The text was updated successfully, but these errors were encountered: