Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Instability in CSI Data Obtained by OpenWiFi When Monitoring Mobile Phone WiFi Signals in a Stable Environment #407

Open
LvHaoyuisme opened this issue May 18, 2024 · 6 comments

Comments

@LvHaoyuisme
Copy link

LvHaoyuisme commented May 18, 2024

Hello, Dr. Jiao!
We are attempting to receive actual WIFI signals on the OpenWiFi platform, using a single channel plus RIS reconfigurability to simulate multi-channel for direction finding of WIFI devices.But we found that under the same conditions, the CSI data varies greatly, especially the phase of the CSI.
I saw #396, so I followed the instructions in that issue and obtained stable CSI with the openwifi device operating in a self-transmitting and self-receiving mode.
屏幕截图 2024-05-18 174829
The result is perfect.
I tried to monitor the WiFi signal from a specific device in monitor mode and obtain the corresponding CSI, but the results were very poor.
My operations are as follows:

In one ssh:

cd openwifi
./wgd.sh
insmod side_ch.ko
./monitor_ch.sh sdr0 1
#The target device is operating on channel 1
./side_ch_ctl wh1h4001
./side_ch_ctl wh7h00cf3e83
./side_ch_ctl wh8d3
./sdrctl dev sdr0 set reg xpu 1 1
./sdrctl dev sdr0 set reg xpu 13 1
./side_ch_ctl g0

You mentioned setting the receive gain to a fixed value to avoid the impact of AGC ,so I opened another SSH.

In anther ssh:

./set_rx_gain_manual.sh 10
#I have tried setting different gains and found that when the receive gain is too low, I cannot obtain CSI data. I have tried 10, 20, 30, 40, and 50, but although I can get CSI data, it is very unstable.
Figure_1
I used the test_side_info_file_display.m script to plot the side_info.txt collected from a single acquisition ( I made a small modification to unwrap the phase)

屏幕截图 2024-05-18 183054

The results are very poor.The phase and amplitude of the CSI are both unstable.

Previously, I referred to https://github.com/open-sdr/openwifi/blob/master/doc/app_notes/csi.md, and the obtained CSI data amplitude was relatively stable, but the phase remained unstable.
My operations:

cd openwifi
./wgd.sh
insmod side_ch.ko
./monitor_ch.sh sdr0 1
./side_ch_ctl wh1h4001
./side_ch_ctl wh7hd88d2a2f
./set_rx_gain_manual.sh 10
./side_ch_ctl g0
屏幕截图 2024-05-18 184201
屏幕截图 2024-05-18 184303
The device I am using is SDRpi
What should I do to obtain stable CSI data from actual WiFi devices?

@chenmo234
Copy link

Hello, sorry to bother you. May I ask you some questions regarding IQ capture in OpenWiFi? Here is my contact information: c2385405729.

@chenmo234
Copy link

After running ./fosdem.sh, I can detect OpenWiFi with my phone, but after running ./monitor_ch.sh sdr0 11, my phone can no longer find the OpenWiFi AP.

@LvHaoyuisme
Copy link
Author

I've encountered a similar issue where the device seems unable to operate both as an access point and to monitor a specific channel at the same time. After running ./fosdem.sh, you can proceed with IQ sampling or obtain CSI data without needing to run ./monitor_ch.sh sdr0 11 to monitor a specific channel.

@chenmo234
Copy link

Thank you very much for your response! I'll try it right away. I've been stuck on this for two days

@chenmo234
Copy link

It would be an honor to stay in touch with you. May I add your contact information?

@JiaoXianjun
Copy link
Member

Hello, Dr. Jiao! We are attempting to receive actual WIFI signals on the OpenWiFi platform, using a single channel plus RIS reconfigurability to simulate multi-channel for direction finding of WIFI devices.But we found that under the same conditions, the CSI data varies greatly, especially the phase of the CSI. I saw #396, so I followed the instructions in that issue and obtained stable CSI with the openwifi device operating in a self-transmitting and self-receiving mode. 屏幕截图 2024-05-18 174829 The result is perfect. I tried to monitor the WiFi signal from a specific device in monitor mode and obtain the corresponding CSI, but the results were very poor. My operations are as follows:

In one ssh:

cd openwifi
./wgd.sh
insmod side_ch.ko
./monitor_ch.sh sdr0 1
#The target device is operating on channel 1
./side_ch_ctl wh1h4001
./side_ch_ctl wh7h00cf3e83
./side_ch_ctl wh8d3
./sdrctl dev sdr0 set reg xpu 1 1
./sdrctl dev sdr0 set reg xpu 13 1
./side_ch_ctl g0

You mentioned setting the receive gain to a fixed value to avoid the impact of AGC ,so I opened another SSH.

In anther ssh:

./set_rx_gain_manual.sh 10
#I have tried setting different gains and found that when the receive gain is too low, I cannot obtain CSI data. I have tried 10, 20, 30, 40, and 50, but although I can get CSI data, it is very unstable.
Figure_1
I used the test_side_info_file_display.m script to plot the side_info.txt collected from a single acquisition ( I made a small modification to unwrap the phase)

屏幕截图 2024-05-18 183054

The results are very poor.The phase and amplitude of the CSI are both unstable.

Previously, I referred to https://github.com/open-sdr/openwifi/blob/master/doc/app_notes/csi.md, and the obtained CSI data amplitude was relatively stable, but the phase remained unstable. My operations:

cd openwifi
./wgd.sh
insmod side_ch.ko
./monitor_ch.sh sdr0 1
./side_ch_ctl wh1h4001
./side_ch_ctl wh7hd88d2a2f
./set_rx_gain_manual.sh 10
./side_ch_ctl g0
屏幕截图 2024-05-18 184201
屏幕截图 2024-05-18 184303
The device I am using is SDRpi
What should I do to obtain stable CSI data from actual WiFi devices?

Please re-format the issue according to our issue template.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants