StevenMHernandez / ESP32-CSI-Tool

Extract Channel State Information from WiFi-enabled ESP32 Microcontroller. Active and Passive modes available. (https://stevenmhernandez.github.io/ESP32-CSI-Tool/)
https://stevenmhernandez.github.io/ESP32-CSI-Tool/
MIT License
262 stars 72 forks source link

Can't modify parameters in `idf.py menuconfig` #80

Open ThomasBouiniere opened 1 year ago

ThomasBouiniere commented 1 year ago

I followed all the steps required, but I can't modify the baud rate when using 'idf.py menuconfig' Does someone have the solution ?

StevenMHernandez commented 1 year ago

Please share screenshots showing the issues. Does idf.py menuconfig say you are not allowed to change the baud rate? I need more information to understand the issue.

ThomasBouiniere commented 1 year ago

Hello sir, thanks a lot for you answer, I deleted esp-idf and reinstalled it, now it works, I do have all the parameters accessible. However, I now have issues connecting the AP and the STA. I have 2 ESP32, both connected to my laptop using USB. I followed all the requirements, and put the right parameters (I think) but I don't understand why the AP and the STA are not sharing CSI Data.

Here the parameters for the AP :

Capture d’écran 2023-02-21 à 15 44 17
ThomasBouiniere commented 1 year ago

The parameters for the STA :

Capture d’écran 2023-02-21 à 15 44 49
ThomasBouiniere commented 1 year ago

Thank you for your time sir, tell me if you need more info

ThomasBouiniere commented 1 year ago

To be clearer here are the steps I do :

cd ~/esp/esp-idf ./install.sh esp32 . $HOME/esp/esp-idf/export.sh cd ~/Desktop/test-csi-tools/esp32-csi-tool/active_ap/ idf.py set-target esp32 idf.py build idf.py -p /dev/cu.usbserial-3 flash

I change the parameters using idf.py menuconfig

idf.py -p /dev/cu.usbserial-3 flash monitor

ThomasBouiniere commented 1 year ago

I change the parameters using idf.py menuconfig

idf.py -p /dev/cu.usbserial-0001 flash monitor

StevenMHernandez commented 1 year ago

You will want to make sure that the AP is set to receive CSI data (I think this is the default setting). The STA can receive CSI, but it would be easier the other way when you are learning.

Are there any errors for the AP or the STA when you flash monitor them? Do you see any message that says the devices are connecting to one another?

What is PDL-PRIVATE? Is this an SSID of a router in your environment? If so, I think there is some confusion on the recommended standard method for using this library. The SSID should be unique to the ESP32s (the ESP32s will connect to each other).

ThomasBouiniere commented 1 year ago

Thanks for your answer, I did not understand how to connect to the Wifi, I was trying to connect to my router. I successfully connected the STA and the AP. Unfortunately the data I receive have a weird aspect. I read the issue #12 but I don't understand how to obtain good CSI Data. I have a lot of zeros even when removing the NULL_SUBCARRIERS as suggest. See the plots below

ThomasBouiniere commented 1 year ago

45d4b15c-1ebf-4b80-bcf6-356c03a46247 with

ThomasBouiniere commented 1 year ago

I think I should obtain things like that 85019a2d-af77-45c5-8ca2-9ec308f04a33

PaulTbbr commented 1 year ago

Hello, I got the same problem it seems that the phase I extract from ESP CSI is constant. I stumbled upon a research paper (https://arxiv.org/pdf/2301.00250.pdf) that seems to confirm an intended "sawtooth shape" for the original phase (as shown in the linked image and as your last figure seems to suggest). I don't know if this is intended or if there is some parameter to tune. WhatsApp Image 2023-03-01 at 17 40 50

StevenMHernandez commented 1 year ago

I have a lot of zeros even when removing the NULL_SUBCARRIERS as suggest.

I am guessing you accidentally removed the incorrect subcarriers. Can you confirm if the subcarriers that you remove are actually all zeros?

I think I should obtain things like that

Where did you get this "expected" data?

For phase, the ESP32 is very noisy. I have yet to dig into it (if you spend time on this, please share your findings. Community help is essential for open source project like this!)

The "sawtooth shape" is due to the phase wrapping around the plot. The plot shows phase on a cartesian graph, but the phase values are actually polar meaning they wrap around (-pi, pi). This is why "phase unwrapping" is important for visualization.