Skip to content
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

Adding RSSI library to allow for PWM channel value RSSI - rework #1 #2770

Closed

Conversation

StewLG
Copy link
Contributor

@StewLG StewLG commented Aug 28, 2015

This is a resubmit of #2765 after changes requested by @tridge.

Adding ability and controlling parameters for reading RSSI value from a PWM channel value. This is a feature supported by various radio receivers such as those running OpenLRSng, EzUHF, etc.

Making a new library AP_RSSI to be a uniform place to call read_receiver_rssi.

Retains ability to read analog pin for RSSI values, improves flexibility of relevant ranging a bit.

Adds ability to read RSSI from a particular channel's PWM channel value.

RSSI_TYPE: The kind of RSSI to use. Starting set is Disabled, AnalogPin, and RCChannelPwmValue. More can be added readily.
RSSI_ANA_PIN: This selects an analog pin where the receiver RSSI voltage will be read.        
RSSI_PIN_LOW: Receiver RSSI voltage low (weak) value
RSSI_PIN_HIGH: Receiver RSSI voltage high (strong) value        
RSSI_CHANNEL: The channel number where RSSI will be output by the radio receiver.
RSSI_CHAN_LOW: This is the PWM value that the radio receiver will put on the RSSI_CHANNEL when the signal strength is the weakest. Since some radio receivers put out inverted values from what you might otherwise expect, this isn't necessarily a lower value than RSSI_CHAN_HIGH.
RSSI_CHAN_HIGH: This is the PPM value that the radio receiver will put on the RSSI_CHANNEL when the signal strength is the strongest. Since some radio receivers put out inverted values from what you might otherwise expect, this isn't necessarily a higher value than RSSI_CHAN_LOW.

Previous RSSI parameters have been all deprecated in favor of these new ones, and they all have new names. Users will need to re-configure RSSI in order to use these new ones.

Tested on Plane, Copter, and Rover.

Continuation of work started on PR #2731. See also #2721; this PR anticipates the development of other RSSI methods.

…I, with the possibility of adding more.

* Retains ability to read from Analog Pin
* Adds ability to read RSSI from PWM channel value as is done in OpenLRSng, EazyUHF, and various other LRS.
* Handles any type of RSSI that provides RSSI values inverted - i.e. when the low value is the best signal and the high value is the worst signal.
* Has different key names from all existing RSSI parameters to provide for a clean break and easier distinguishing.
… the possibility of adding more.

* Retains ability to read from Analog Pin
* Adds ability to read RSSI from PWM channel value as is done in OpenLRSng, EazyUHF, and various other LRS.
* Handles any type of RSSI that provides RSSI values inverted - i.e. when the low value is the best signal and the high value is the worst signal.
* Has different key names from all existing RSSI parameters to provide for a clean break and easier distinguishing.
* Existing parameters are marked as obsolete
…h the possibility of adding more.

* Retains ability to read from Analog Pin
* Adds ability to read RSSI from PWM channel value as is done in OpenLRSng, EazyUHF, and various other LRS.
* Handles any type of RSSI that provides RSSI values inverted - i.e. when the low value is the best signal and the high value is the worst signal.
* Has different key names from all existing RSSI parameters to provide for a clean break and easier distinguishing.
* Existing parameters are marked as obsolete
… the possibility of adding more.

* Retains ability to read from Analog Pin
* Adds ability to read RSSI from PWM channel value as is done in OpenLRSng, EazyUHF, and various other LRS.
* Handles any type of RSSI that provides RSSI values inverted - i.e. when the low value is the best signal and the high value is the worst signal.
* Has different key names from all existing RSSI parameters to provide for a clean break and easier distinguishing.
* Existing parameters are marked as obsolete
@magicrub magicrub changed the title Plane, Copter, Rover: Adding RSSI library to allow for PWM channel value RSSI - rework #1 Adding RSSI library to allow for PWM channel value RSSI - rework #1 Aug 28, 2015
@tridge
Copy link
Contributor

tridge commented Aug 29, 2015

thanks for a great implementation! I've pushed it to master

@tridge tridge closed this Aug 29, 2015
@StewLG
Copy link
Contributor Author

StewLG commented Aug 29, 2015

Will this make it into Plane 3.4.0? Or just subsequent releases?

@gmorph
Copy link
Contributor

gmorph commented Aug 30, 2015

It will make Plane 3.4.0. Thanks!

@nicbk117
Copy link

What about Copter? :)

@rmackay9
Copy link
Contributor

rmackay9 commented Sep 1, 2015

@nicbk117, I'm afraid it won't make it into AC3.3 but it'll be in AC3.4.

@StewLG
Copy link
Contributor Author

StewLG commented Sep 17, 2015

I've left comments on issues/PRs where appropriate, but I believe the following should be closed by this PR:

#1377 - MAX and MIN RX RSSI value
#1061 - Copter: add min RSSI voltage
#503 - Feature request: PWM RSSI support on PWM input channel 8
#1827 - RXRSSI bottom end calibration

The rest (see references above) aren't 100% satisfied by this PR or are already closed.

ethomas997 added a commit to ethomas997/ardupilot that referenced this pull request Apr 28, 2016
Merged RSSI_CHANNEL support by Stewart Loving-Gibbard
from PR ArduPilot#2770
ethomas997 added a commit to ethomas997/ardupilot that referenced this pull request May 1, 2016
Merged RSSI_CHANNEL support by Stewart Loving-Gibbard
from PR ArduPilot#2770
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants