The test setup consists of one of Daniels brand new Arduino compatible boards with the DE RFA1 module and an ordinary RCB230. The output of the range test application xmpl_radio_range.c was recorded to a logfile. Daniels board was used for recording and did not move. The RCB230 was moved around during test in house and garden. 657 records of this type was logged:
---
:sta 0x0010 seq 230 key 1 lqi 192 ed 0 rxd 585 lost 397
:sta 0x0010 seq 231 key 1 lqi 92 ed 0 rxd 586 lost 397
:sta 0x0010 seq 232 key 1 lqi 172 ed 0 rxd 587 lost 397
:sta 0x0010 seq 233 key 1 lqi 255 ed 0 rxd 588 lost 397
---
Interesting are the columns 8 and 10, which show the values of LQI and ED. With a small python script a dictionary was created, that counts all occuring combinations of LQI and ED values.
{(60, 0): 1, (76, 0): 1, (88, 0): 1, ... }
In total 75 different ED/LQI combinations was observed. The data was fed into matplotlib and the resulting picture looks so:

Now the conclusion of this initial look is, that
a) if the LQI value drops below 255, the ED value is 0
b) for all ED values > 0, the LQI is almost always 255.
Since all ED/LQI pairs came from frames received with valid CRC, the next step in this experiment is to show the dependency of ED/LQI in relation to the packet error rate. ... to be continued
PS: Here is the script, that was used for generating the image:
import sys
from matplotlib import pyplot as pl
f = open(sys.argv[1])
hist = {}
for l in f.readlines():
x = l.split()
lqi = eval(x[7])
ed = eval(x[9])
key=(lqi,ed)
try:
hist[key] += 1
except:
hist[key] = 1
lqi_ed = hist.keys()
lqi_ed.sort()
pl.plot(lqi_ed)
pl.grid(1)
pl.legend("LQI ED".split())
pl.xlabel("LQI/ED pair")
pl.ylabel("LQI/ED value")
pl.show()
Keine Kommentare:
Kommentar veröffentlichen