fix(dsmp): binding issue, channel update rate, unexpected servo movement on startup #6695
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
NOTE: For Branch "main" (3.0)
Fixes #5614
Same changes as PR #6679
TESTING: TX16S and Boxer
Summary of changes:
This s the offending line:

Fix Binding Problem. The module was getting crazy after bind.. the TX needed to be restarted to correct.. This was caused by trying to restart the module in two different places at the same time.
Fix unexpected servo movement during startup. If you have the RX power ON before the radio, or the radio is powered cycle, or switching models.. Sometimes the servos will move for a bit to unexpected positions. This is caused that the Setup package was not received before sending channels.. solution, send setup multiple times instead of once! Really dangerous situation with electric motors starting unexpectedly, even for a bit. NOTE: Not 100% solved, but it eliminates the problem 80% of the time. The only way to really solve it is in the Module firmware.
Show on the module screen the Status of the module (Version + Protocol).
Added channel order mapping: AETR->TAER on the module screen. This change added a new YAML attribute and translation.
Move DSMP code into a separate file from DSM2 (pulses folder).
Spektrum forward programming capabilities (for v2 firmware).
In Spectrum.cpp, when receiving the bind packet, there was conditional code for handling MultiModule and DSMP specifics. move the module-specific code to the respective multi.cpp and dsmp.cpp. This is mostly to turn off binding on the module screen and change from DSM AUTO to the protocol negotiated. The Spektrum.cpp keeps only the common part for both.
TELEMETRY: DSMP + some old LemonRX Gen2 still does not receive telemetry.. works with newer LemonRX Gen2. The strange part is that the same same receiver telemetry works well with the Multi-Module. Still a mistery what could be going on. DSMP+Spektrum AR637T telemetry works.
GUI changes for both Color and both versions of B&W.