-
-
Notifications
You must be signed in to change notification settings - Fork 460
Mavlink support #150
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
base: 2.4
Are you sure you want to change the base?
Mavlink support #150
Conversation
wau ... For the record, I was closing the other PR because you were asking for several very serious changes to the code which I don't see can easily be accommodated in that code without breaking or stripping of crucial functionality, and it was you and not me who has set the conditions and didn't find the suggested solutions acceptable. And now you are just happy to go with the code ignoring your own comments .... and in addition promote misrepresented intent. sad to see this behavior 👎 |
A long text to explain that you won't finish the job, which is basically the bottom line. |
You missed the point: this PR is not finished, take a look at the TODO-list. |
|
Dear @olliw42, I was surprised and at the same time devastated to learn that you closed PR #122, so close to being merged. You wrote that a revised attempt should go into new PR, well let's take a chance to finish MAVLink integration to ETX master here! Reading the comments at the end of #122, they do make a lot of sense to me and in short list two major issues to be tackled:
Olli, you have done absolutely marvelous work with MAVLink integration, this is your baby! It would be awesome if you could consider joining with ideas allowing the last remaining points to be solved. |
|
The option to use JR-Bay for MAVLink is possible only with a custom hw, pictured here: Update: The schematic and src. of the required STM32F1 µC are now available at Olli's GH page: |
just for the record, changing copyright without permission by the copyright holders would constitute copyright infringment |
You are still the copyright holder, that will not change. However, the license is still GPLv2. |
|
Tested 7a19a3a on RM TX16S. AUX1 - MAVLink (ArduPilot via DragonLink), AUX2 - GPS, top USB - Mission Planner (MAVLink via virtual serial port). Instead of using "CDC" (official USB class name for virtual serial port, instead of "Debug"), naming of USB connection mode in the selection dialog might be simplified:
|
|
I gave further thought to my last post above - if DEBUG and/or CLI are built in, then we do need to distinguish which one the user wants to activate for USB, if he selects serial: Debug/CLI or MAVLink. |
Done! |
We should have a setting similar to what we have for the normal serial ports. |
I repeat, changing copyright without permission by the copyright holders would constitute copyright infringement |
I don't understand: are you trying to publish something in a GPLv2 software without licensing that change with GPLv2? This does not work. If you cannot accept that, we will have to reject the code, as it is pre definition licensed under GPLv2 when it is added to the same software. Or is the fact that I added "Copyright EdgeTX" that is your issue? Please explain further. |
|
@olliw42 By looking at diff f7c0036 your copyright lines are still all there, only std. GPL v2 boiler, as OTX/ETX std., was added by @raphaelcoeffic. |
|
@olliw42 you might find this interesting: https://opensource.com/article/20/10/copyright-notices-open-source-software "While these notices may appear important, their presence in source code today is largely a residue of the copyright law of the past. There was a time when failure to include a copyright notice in published material could result in complete loss of rights under US copyright law; that changed when the United States finally joined the many other countries that were already parties to the Berne Convention (US accession to the treaty came on November 16, 1988, and became effective in the US on March 1, 1989)." |
|
@olliw42 if that helps, I can assure you I will merge this with a proper merge commit, so that your contribution will stay visible, commit by commit. |
"Changing copyright without permission by the copyright holders" is indeed copyright infringement. However, that has not happened here. You contributed code to a GPLv2 licensed project, hereby granting copyright to that project, and all derivative works. Your copyright to the code has not been modified, nor has the text indicating that been removed. The text indicating copyright has simply been reformatted to be consistent with rest of the source code for the project. Those are the facts, as documented by the commit logs. |
905cfc0 to
50a70ac
Compare
|
Tested 04a91fb on RM TX16S, built with: By plugging in the top USB-C, now a popup with the following options comes up:
MAVLink (still) works via AUX1, also via USB, internal GPS works. :) Text in full screen (modified) Yaapu LUA script is a bit shifted. This is also visible in @yaapu 's PR #151 screenshot (all text basically, but see e.g. the HUD top center heading "0", or the green digits in HUD, where they clearly are not there where they should be): @yaapu mentioned a 3 pixel offset in Discord: https://discord.com/channels/839849772864503828/842693696629899274/850753828382965811 Cannot build yet with added |
|
come on, guys, pl resort back to common sense
no, I don't. This is @raphaelcoeffic 's PR, not mine
ergo I don't all you are granted therefore are the rules of os
it has been so, in your opinion, you buy a CD of music of someone who has the (c), you stick your (c) in addition to it claiming (c) and argue that's ok since the other (c) was not modified ... so effectively anyone can claim (c) of any others works since all one needs to do is to stick one's own (c) onto it in addition to the previous (c) ... I assume that all can agree that this is obviously nonsense, I at least think this can't be so difficult to understand since there seems to be confusion about what I'm talking about, I explictly state that I was not commenting on attribution, I am commenting on copyright manoman |
|
@olliw42 Can you please propose a solution, how this could be fixed to your liking, together with the std. EdgeTX boiler? |
that's impossible, that's the nature of it |
|
@olliw42 Would you please propose an alternative boiler plate that is to your liking? I'm confident, we are able to work smth. out so that everyone will be happy at the end! |
I could but I won't since this part is 100% up to your liking and not mine
it's easy to achieve and it is surprising that it (again) is such a difficult process. Create anything you want as long as it does not change copyright, as easy as that. |
|
We need something to discuss and/or agree on, so allow me to make a proposal, tackling the issue with double (c) lines you mentioned: Would that be OK with you? |
|
it is not part of the EdgeTx project, it is part of the MAVLink for OpenTx project, and it has been taken over from there what I find most projects to do in such cases is to keep the original header and add below something commenting (only) on additions/modifications to the code, or something like adapted to blabla or whatever, I don't have a specific example in mind but a bit google should give ideas |
|
How about: |
|
Check why g_eeGeneral.mavlinkExternal == 1 should disable external module functionality (probably not needed). Isnt that needed for the uart via s.port pin in external module bay? As from Olli planned This would also solve the question for deactivating external modules. (Then its deactivated only if a specific Module isnt selected) If course second external inversion would be needed for a Bay Serial Radio Module. |
|
@brainbubblersbest the plan was to include it once the hardware is available, which could give us some time to make better / more flexible serial port drivers. |
|
The Hardware for two wire Serial is already available. 2- Or a r9m 2019 hf module to modify and make use of the already included Inverters here. 3- In Addition: i ordered an hf Module Adapter for the Fullsize crossfire to figure out if the mav-link data here can easy linked out to pin 1 and 2. Just for tinkering a bit how complicated this would be. |
The MAVLink specific settings are not yet implemented in YAML, otherwise tested on RM TX16S with DragonLink and ArduPilot. Also for the added submodules, need to revert to using older versions from PR EdgeTX#150 and not their current heads. Added MAVLink YAML elements.
The MAVLink specific settings are not yet implemented in YAML, otherwise tested on RM TX16S with DragonLink and ArduPilot. Also for the added submodules, need to revert to using older versions from PR EdgeTX#150 and not their current heads. Added MAVLink YAML elements.
The MAVLink specific settings are not yet implemented in YAML, otherwise tested on RM TX16S with DragonLink and ArduPilot. Also for the added submodules, need to revert to using older versions from PR EdgeTX#150 and not their current heads.
The MAVLink specific settings are not yet implemented in YAML, otherwise tested on RM TX16S with DragonLink and ArduPilot. Also for the added submodules, need to revert to using older versions from PR EdgeTX#150 and not their current heads.
* Merged EdgeTX PR EdgeTX#150 * Added MAVLink YAML elements. * Set fastmavlink to be8b000 and mavlink to 37a6e90.
|
This PR seems to became to an Classic "Fritz Künkel Incident" where the Main Focus somehow centered around Personal preferences instead of the Significant Purpose this Work was meant for at the beginning. Open Ardupilot Firmware Meets MavLink Routing on Open maintained Radio Firmware . Too good to be True. Olliw still have my Respect, even when this part of Software is finally abandoned. 🤠 |
|
The issue at hand currently is the following:
I don't doubt this would have quite some users, but history has proven that maintaining things none of the active devs is using himself can prove challenging. For this particular feature, there are additional challenges due to the extra setup effort required to be able to test anything. |
|
With ExpressLRS working on a MAVLink option (their mavlink-rc branch) - maybe people (developers) will start using it? |
|
olliw42 is just an offended child, I think you should get over it (close this PR), screw his code and start from new. It's not that much code after all and the 2nd version will be better for sure! |
|
You are welcome to express your opinion (although it is somewhat inflammatory and personally directed), but I for one do not agree with that. While we may have had our differences, olliw42 has been responsible for a lot of things mavlink, and both his viewpoint and experience in this matter should be respected. |
I think the review comments in the original PR made by @raphaelcoeffic were all reasonable. There was no reason to be offended by them. If a developer cannot handle that, he is useless or even harmful for a large scale project. |
|
My 2 cents: Everything else is not to be discussed in an open medium until a solution can be found. We are open to get this finally done, together with everyone involved. When there are issues between certain people, there are ways to manage communications in a way that it can work. |
|
and to be honest, a developer who wants to stay anonymous but is peacocky and wants to have a special treatment in the copyright header that is not compatible with the rest of the project. Red flag, this alone would be a reason for me to reject this PR. This is not how software development at scale works. You may lose something in the short term but at least you have a mode in which the project can work long term. Imagine someone like olliw wanted to do a contribution to the linux kernel - just unthinkable. |
|
As said, nothing to discuss in public until it is resolved. |
|
When someone feels the need to discuss, contact me on discord. My handle is (currently, it depends on CET/CEST) "Malte (GMT+1)" |
|
I think it's a phenomenon of the current zeitgeist that everybody tries to be over sensitive :) You don't have to go full elon and say GFYS to somebody but a little direct language and sticking to principles does not hurt imho. Afaik the reviewers here are mostly senior software developers in real life and have a lot of experience, the project is very lucky to have such qualified people. There is no reason why any PR should bypass quality control. |
|
And Tadaaa! |
|
The fun part is that it says |
|
We should ask them for the source code of their obviously modified OpenTX variant |
|
You're right! Interesting. I wrote a comment in the manufacturers Forum many years ago, that if Multiplex will walk the same way as Graupner and Robbe, when in the same time ignoring Open Source, the company will dissapear. Then with Dronin around, some day I discovered the receiver size is more then the entire flight stack and switched to Frsky and r-xsr. A few days ago I had a conversation with an mpx sales guy. Should I gather a few informations about the other implementation? I'm curious if Bertrand is aware of this. 😂 Screenshot_20231221_030616_Samsung Internet |
No I was not aware until tonight! |

This PR continues the MAVLink integration of #122.
TODOs
Cosmetics / Code structure
// OW/// OWEND).USB_MAVLINK_MODEand USB serial description specific to MAVlink (USB serial is just "USB serial").radio/src/opentx.hand add to appropriate files that need it.radio/src/lua/api_mavlink.cppto somewhere else (does anyone really need this?).datastructs.hand remove useless definitions.UI
Fix breaking changes
CLIand orDEBUG, even if MAVLink support is enabled.INTERNAL_GPSwhen compiled with/withoutTELEMETRY_MAVLINK.g_eeGeneral.mavlinkExternal == 1should disable external module functionality (probably not needed).radio/src/targets/horus/hal.h(see#if (defined(RADIO_T16) || defined(RADIO_T18)) && defined(AUX_SERIAL)).Code re-use
mavlinkTelemUsbRxFifo& inspect other added FIFOs (checkauxSerialTxFifoas well).uint16_t telemetryStreaming(normallyuint8_t).