Add OSD_STATE_GROUP_ELEMENTS state to osdUpdate() and optimise DMA vs polled MAX7456...
[betaflight.git] / docs / Rssi.md
blob47f1229072ee7bf3f5c8a22548bb142db4617dbd
1 # RSSI
3 RSSI is a measurement of signal strength and is very handy so you know when your aircraft is going out of range or if it is suffering RF interference.
5 Some receivers have RSSI outputs. 3 types are supported.
7 1. RSSI via PPM channel
8 1. RSSI via Parallel PWM channel
9 1. RSSI via ADC with PPM RC that has an RSSI output - aka RSSI ADC
11 ## RSSI via PPM
13 Configure your receiver to output RSSI on a spare channel, then select the channel used via the CLI.
15 e.g. if you used channel 9 then you would set:
17 ```
18 set rssi_channel = 9
19 ```
20 Note: Some systems such as EZUHF invert the RSSI ( 0 = Full signal / 100 = Lost signal). To correct this problem you can invert the channel input so you will get a correct reading by using command:
22 ```
23 set rssi_invert = ON
24 ```
25 Default is set to "OFF" for normal operation ( 100 = Full signal / 0 = Lost signal).
27 ## RSSI via Parallel PWM channel
29 Connect the RSSI signal to any PWM input channel then set the RSSI channel as you would for RSSI via PPM
31 ## RSSI from Futaba S.Bus receiver
33 The S.Bus serial protocol includes detection of dropped frames. These may be monitored and reported as RSSI by using the following command.
35 ```
36 set rssi_src_frame_errors = ON
37 ```
39 Note that RSSI stands for Received Signal Strength Indicator; the detection of S.Bus dropped frames is really a signal quality, not strength indication. Consequently you may experience a more rapid drop in reported RSSI at the extremes of range when using this facility than when using RSSI reporting signal strength.
41 ## RSSI ADC
43 Connect the RSSI signal to the RC2/CH2 input. The signal must be between 0v and 3.3v.
44 Use inline resistors to lower voltage if required; inline smoothing capacitors may also help.
45 A simple PPM->RSSI conditioner can easily be made. See the  PPM-RSSI conditioning.pdf  for details.
47 Under CLI :
48 - enable using the RSSI_ADC feature  :  `feature RSSI_ADC`
49 - set the RSSI_SCALE parameter (between 1 and 255) to adjust RSSI level according to your configuration. The raw ADC value is divided by the value of this parameter.
51 Note: Some systems invert the RSSI ( 0 = Full signal / 100 = Lost signal). To correct this problem you can invert the input so you will get a correct reading by using command:
53 ```
54 set rssi_invert = ON
55 ```
57 ### RSSI_SCALE setup method
59 - set rssi_scale = 100. The displayed percentage will then be the raw ADC value.
60 - turn on RX (close to board). RSSI value should vary a little.
61 - Update rssi_scale to the maximum RSSI value previously measured.
63 FrSky D4R-II and X8R supported.
65 The feature can not be used when RX_PARALLEL_PWM is enabled.
68 ## RSSI_SCALE setup method
70 To calculate the rssi offset and scale, check the rc value at full signal (`rssi_fullsig`) and at almost no signal strength (`rssi_nosig`).
71 Then, calculate the offset and scale values using the following formula:
73 ```
74 rssi_offset = (1000-rssi_nosig) / 10
75 rssi_scale = 100 * 1000 / (rssi_fullsig - rssi_nosig)
76 ```
78 Examples are:
80 | RC System | RC value at full strength | RC value at no strength | `rssi_offset` | `rssi_scale` |
81 |:----------|:--------------------------|:------------------------|:--------------|:-------------|
82 | Graupner  | `1900`                    | `1100`                  | `-10`         | `125`        |
84 Then set these values via CLI:
85 ```
86 set rssi_offset = -10
87 set rssi_scale = 125
88 ```