I've played around with the SDR Device Settings for the RSPdx:
1. the RF-Gain values
2. the AGC ON|OFF (TRUE|FALSE) (I left the AGC value at -30 what
ever that means as it does not correlate to anything in the API)
3. IFGR (which I believe is the IF Mixer gain)
4. RFGR (which seems to be the LNA GR (Gain Reduction))
I found :
1. setting the RF-Gain value to a negative value (-1) makes the SDR
"LED" green and I see signals on the waterfall.
2. setting the AGC to TRUE(ON) makes the SDR "LED" green and the I
see signal on the waterfall.
3. IFGR, min 20 max 59
4. RFGR, min 0 max 27
The SDRPLAY API
(https://www.sdrplay.com/docs/SDRplay_API_Specification_v3.09.pdf)
does not help in getting a handle on of what is what ... GAIN,
GAIN-REDUCTION LNA gain etc. etc. .
It talks about an LNA (Low Noise Amplifier) state, which I assume
means the Frontend gain stage (RFGR)
LNA GR (dB) by Frequency Range and LNAstate for RSPdx:
|
LNA
State |
Frequency |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
0-2
(HDR) |
0 |
3 |
6 |
9 |
12 |
15 |
18 |
21 |
24 |
25 |
27 |
30 |
33 |
36 |
39 |
42 |
45 |
48 |
51 |
54 |
57 |
60 |
|
|
|
|
|
|
0-12 |
0 |
3 |
6 |
9 |
12 |
15 |
24 |
27 |
30 |
33 |
36 |
39 |
42 |
45 |
48 |
51 |
54 |
57 |
60 |
|
|
|
|
|
|
|
|
|
12-50 |
0 |
3 |
6 |
9 |
12 |
15 |
18 |
24 |
27 |
30 |
33 |
36 |
39 |
42 |
45 |
48 |
51 |
54 |
57 |
60 |
|
|
|
|
|
|
|
|
50-60 |
0 |
3 |
6 |
9 |
12 |
20 |
23 |
26 |
29 |
32 |
35 |
38 |
44 |
47 |
50 |
53 |
56 |
59 |
62 |
65 |
68 |
71 |
74 |
77 |
80 |
|
|
|
60-250 |
0 |
3 |
6 |
9 |
12 |
15 |
24 |
27 |
30 |
33 |
36 |
39 |
42 |
45 |
48 |
51 |
54 |
57 |
60 |
63 |
66 |
69 |
72 |
75 |
78 |
81 |
84 |
|
250-420 |
0 |
3 |
6 |
9 |
12 |
15 |
18 |
24 |
27 |
30 |
33 |
36 |
39 |
42 |
45 |
48 |
51 |
54 |
57 |
60 |
63 |
66 |
69 |
72 |
75 |
78 |
81 |
84 |
420-1000 |
0 |
7 |
10 |
13 |
16 |
19 |
22 |
25 |
31 |
34 |
37 |
40 |
43 |
46 |
49 |
52 |
55 |
58 |
61 |
64 |
67 |
|
|
|
|
|
|
|
1000-2000 |
0 |
5 |
8 |
11 |
14 |
17 |
20 |
32 |
35 |
38 |
41 |
44 |
47 |
50 |
53 |
56 |
59 |
62 |
65 |
|
|
|
|
|
|
|
|
|
From what I can decipher the RFGR setting work like this:
We can set the RFGR from 0-27 which according to the above table has
different Gain Reductions, lets call it Attenuation (att).
Example:
If we set the RFGR (LNA State) to 3 we should see an att of 9dB
from 0-420 MHz, from 420-1000 of 13dB att and from 1000-2000MHz
11dB.
However, I'm not sure about the IFGR, but since we are talking about
GAIN reductions I assume that
20 is the most gain and 59 is the least gain.
So setting the IFGR to 20, the default should work for most
situations.
A few snippets from the SDRPLAY API to share the confusion with
everyone.
AGC Loop Bandwidth Enumerated Type:
typedef enum
{
sdrplay_api_AGC_DISABLE = 0,
sdrplay_api_AGC_100HZ = 1,
sdrplay_api_AGC_50HZ = 2,
sdrplay_api_AGC_5HZ = 3,
sdrplay_api_AGC_CTRL_EN = 4 // Latest AGC scheme (see AGC control
parameters structure)
} sdrplay_api_AgcControlT;
AGC Control Parameters Structure:
typedef struct
{
sdrplay_api_AgcControlT enable; // default: sdrplay_api_AGC_50HZ
int setPoint_dBfs; // default: -60
unsigned short attack_ms; // default: 0
unsigned short decay_ms; // default: 0
unsigned short decay_delay_ms; // default: 0
unsigned short decay_threshold_dB; // default: 0
int syncUpdate; // default: 0
} sdrplay_api_AgcT;
Minimum Gain Enumerated Type:
typedef enum
{
sdrplay_api_EXTENDED_MIN_GR = 0,
sdrplay_api_NORMAL_MIN_GR = 20
} sdrplay_api_MinGainReductionT;
Gain Setting Parameter Structure:
typedef struct
{
int gRdB; // default: 50
unsigned char LNAstate; // default: 0
unsigned char syncUpdate; // default: 0
sdrplay_api_MinGainReductionT minGr; // default:
sdrplay_api_NORMAL_MIN_GR
sdrplay_api_GainValuesT gainVals; // output parameter
} sdrplay_api_GainT;
Minimum Gain Enumerated Type:
typedef enum
{
sdrplay_api_EXTENDED_MIN_GR = 0,
sdrplay_api_NORMAL_MIN_GR = 20
} sdrplay_api_MinGainReductionT;
sdrplay_api_Update_Tuner_Gr :
deviceParams->rxChannel*->tunerParams->gain->gRdB or
deviceParams->rxChannel*->tunerParams->gain->LNAstate
case sdrplay_api_GainChange:
printf("sdrplay_api_EventCb: %s, tuner=%s gRdB=%d
lnaGRdB=%d systemGain=%.2f\n",
"sdrplay_api_GainChange", (tuner == sdrplay_api_Tuner_A)?
"sdrplay_api_Tuner_A":
"sdrplay_api_Tuner_B", params->gainParams.gRdB,
params->gainParams.lnaGRdB,
params->gainParams.currGain);
// Small loop allowing user to control
gain reduction in +/-1dB steps using
keyboard keys
chParams->tunerParams.gain.gRdB +=
1;
// Limit it to a maximum of 59dB
// Limit it to a minimum of 20dB
Which would indicate that this
gRdB values
can have a value from 20 - 59 dB and so I assume this is the IFGR.
😭 Talking about confusing.
So for now I have set the following 'cause they work for me:
AGC: False <-- see note above
PPM: 0.22 <-- do not copy this you
need to measure your unit (see SkyRoof doco) !
Single Gain: False <-- setting this
to true stops RX.
DabNotch Enable: True <-- I have
Strong pagers and FM BC stations in line of site at my QTH (1-2 km,
+63dBm) and every att|notch helps.
RF GAIN Select: -15 <-- seems to
make little or no difference as long as it stays negative if the AGC
is set to FALSE.
IFGR: 30 <--
see note above
RFGR: 3 <--
see note above
Enabling AGC does this to MY RSPdx (YMMV):
That's one of the Pagers on 148.5 MHz.
So for me its best to not use the AGC.
@Alex,
It would be nice if we could have the RF GAIN, IFGR and RFGR values
set per BAND/Satellite.
Cheers,
hw