I did some tests on the noise structure of a moteino hooked up via FTDI cable to a MacBook using RFM69 standard settings. I measured RSSI over the course of a second and recorded which values appeared how often. The histogram is pretty interesting (first column -RSSI * 2, second column Count):
131 -> 1
135 -> 1
147 -> 25
148 -> 35
149 -> 57
150 -> 89
151 -> 29
152 -> 26
153 -> 36
154 -> 14
155 -> 22
156 -> 40
157 -> 19
158 -> 19
159 -> 60
160 -> 48
161 -> 69
162 -> 114
163 -> 49
164 -> 58
165 -> 164
166 -> 105
167 -> 120
168 -> 324
169 -> 186
170 -> 200
171 -> 435
172 -> 208
173 -> 164
174 -> 231
175 -> 77
176 -> 87
177 -> 193
178 -> 142
179 -> 174
180 -> 437
181 -> 312
182 -> 442
183 -> 1000
184 -> 500
185 -> 436
186 -> 551
187 -> 150
188 -> 137
189 -> 256
190 -> 120
191 -> 109
192 -> 272
193 -> 133
194 -> 127
195 -> 236
196 -> 95
197 -> 76
198 -> 83
199 -> 21
200 -> 21
201 -> 20
202 -> 11
203 -> 3
204 -> 4
205 -> 1
206 -> 2
207 -> 1
209 -> 1
217 -> 1
218 -> 2
221 -> 2
235 -> 1
252 -> 1
253 -> 1
Note how broad the range is. If one uses the upper boundary (~147 = -73 dBm) as floor one loses a lot of dynamic range. Also note just how noisy this is. On a battery node I get an upper boundary of ~207!
If you want to use AGC/AFC you still need to set a fairly low RSSIThresh so you preserve dynamic range. When you get a noise RSSI detection that mistakenly starts RX you need to notice and restart RX. That can be done with RXTIMEOUT2.
It gets pretty complicated and nobody has really noticed any pain from always running the amp at max gain. So unless AFC is necessary it might be ok to keep the current behavior.
There's seems to be an opportunity here to create a low noise Moteino that doesn't have these issues. Or at least a low noise gateway.
Joe