From 017548727a17cc0415c21e13a2c9c0399dad7e6c Mon Sep 17 00:00:00 2001 From: Xianjun Jiao Date: Tue, 15 Dec 2020 11:13:40 +0100 Subject: [PATCH] update app notes --- doc/app_notes/iq.md | 4 ++-- doc/app_notes/iq_2ant.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/app_notes/iq.md b/doc/app_notes/iq.md index b086661..bfe631c 100644 --- a/doc/app_notes/iq.md +++ b/doc/app_notes/iq.md @@ -12,7 +12,7 @@ We implement the **IQ sample capture** with interesting extensions: many **trigg ./monitor_ch.sh sdr0 11 (Monitor on channel 11. You can change 11 to other channel that is busy) insmod side_ch.ko iq_len_init=8187 - (for zed, adrv9364z7020, zc702 board, 8187 should be 4095 because they have smaller FPGA) + (for smaller FPGA (7Z020), iq_len_init should be <4096, like 4095, instead of 8187) ./side_ch_ctl wh11d4094 (Above command is needed only when you run with zed, adrv9364z7020, zc702 board) @@ -31,7 +31,7 @@ We implement the **IQ sample capture** with interesting extensions: many **trigg ``` cd openwifi/user_space/side_ch_ctl_src python3 iq_capture.py - (for zed, adrv9364z7020, zc702 board, add 4095 as parameter!) + (for zed, adrv9364z7020, zc702 board, add argument that euqals to iq_len_init, like 4095) ``` The python script needs "matplotlib.pyplot" and "numpy" packages installed. Now you should see 3 figures showing run-time **IQ sample**, **AGC gain and lock status** and **RSSI (uncalibrated)**. Meanwhile the python script prints the **timestamp**. diff --git a/doc/app_notes/iq_2ant.md b/doc/app_notes/iq_2ant.md index 8c76361..ae1232e 100644 --- a/doc/app_notes/iq_2ant.md +++ b/doc/app_notes/iq_2ant.md @@ -38,6 +38,7 @@ In this app note, we show how to use the dual antenna I/Q capture to capture the - On remote computer, run ``` python3 iq_capture_2ant.py + (if smaller FPGA, like z7020, is used, add a argument that equals to iq_len_init, like 4095) ``` Above script will plot the real-time rx0 and rx1 I/Q captured each time trigger condition met. Meanwhile the script also prints the maximum amplitutde of the rx0 and rx1 I/Q samples. Check the 3rd column that is displayed by the script: Those small value printing indicate noise (most probably, because the rx1 gain is very low). The big value printing indicate a packet from rx1 (although rx1 has very low gain, rx1 is very close to the peer WiFi node). Go through the noise and the packet max I/Q amplitude numbers from rx1 printing (the 3rd column), and decide a threshold value that is significantly higher than the noise but less than those big values (packets). - Set trigger condition to 29, which means that rx1 I/Q is found larger than a threshold while SDR is transmitting -- this means a collision condition is captured because rx1 I/Q implies the transmitting from the peer WiFi node. The threshold value is decided in the previous step (2500 is assumed here).