Channel state information wifi

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Get CSI frames (Channel State Information) with the use of an ESP32 WiFi chip

License

jonathanmuller/ESP32-gather-channel-state-information-CSI-

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Gather CSI (Channel State Information) frames with the use of an ESP32 WiFi chip

This project allows to extract WiFi CSI (Channel State Information) frames from compatible AP by using an ESP32 chip. Those CSI frames can be processed in order to precisely localize it using phase aggregation or fingerprinting.

Читайте также:  Please enter wifi password перевод

This project is under active developement, do not hesitate to contact me (email on my bio/issues) if you have question, suggestions, informations or spotted errors, I usually respond within few days.

The goal of this project is :

  • To send 802.11n frames (So AP respond with CSI frames)
    • Partially done : CSI frames consistently works between 2 ESP32 boards. It should also work with any commercial AP. The only part left is to send CSI without being connected
    • You can help by finding a way to use esp_wifi_80211_tx at the same time as the esp_wifi_internal_set_fix_rate private function
    • Done : CSI frames are catched and loged (in an unfriendly format for now)
    • You can help by understanding why some frames are dropped by filter_promi_ctrl_field (see «WIFI_PROMIS_CTRL_FILTER_MASK_ALL» in code)
    • To do : Need more progress
    • Done : 802.11n frames are catched, logged, and converted to pcap (wireshark friendly)
    • Partially done : Need to validate the informations
    • You can help by verifying the informations

    First figure how to upload a code on your ESP32 board (it should be easy, many tutorials are available, including a detailed one on Espressif github : https://docs.espressif.com/projects/esp-idf/en/stable/get-started/), then you can use one of the folliwng folders :

    • «create_STA_and_AP» -> Using 2 ESP32 boards connected over WiFi. One send an UDP packet, which triggers the CSI callbal on the other.
    • «gather_csi_in_promiscuous» -> Loop across the 13 WiFi channels and print any CSI frame
    • «read_non_csi_frames» -> Print NON-CSI frames in HEX (so you can dump them and see them on WireShark for example)
    • «request_csi_frames» -> (Missing esp_wifi_80211_tx call) Send a OFDM/802.11n to an AP which should answer with a CSI frame
    • CSI is a preamble to frames.
    • It is used to determin the «noise» between the STA and the AP (which is assumed to be the same as the AP to the STA)
    • It is a specificity of the 802.11n mode, which is enabled only under certain conditions. Exemple : STA send a frame to the AP at speed > 6mb/s [which is OFDM] AP respond with a frame at speed > 6 mb/s [which is OFDM] -> The ESP32 extract the CSI header This means that to generate CSI preamble with an ESP32 you need to be connected to the AP, else you can’t send at >6mb/s ans there will be no CSI preamble. You can’t only use «esp_wifi_80211_tx» without being connected (because it will only send at 1 mb/s). So you also need to use the hidden «esp_wifi_internal_set_rate» function.

    If you have more informations, please let me know so it is (finally ..) possible to continously receive CSI frames from any AP without being connected to it

    There is currently a bug in Espressif SDK where CSI callback is triggered instead of promiscuous callback. See issue espressif/esp-idf#2909

    This means for now I have to apply a filter on rx_ctrl.sig_mode so only valid CSI frames are shown (thanks @kraoa).

    If your code is dater before 03.04.2019 your results may be affected.

    Can the ESP32 do the same as the IWL5300 ?

    No, it physically can't. IWL5300 has multiple antennas while the ESP32 only has one 

    I don’t receive CSI frames

    Normally this code scan across the 13 avaible channels, is it so ? If yes, maybe your AP don't send any CSI frames 

    I dont understand what is in the CSI frame

    Please see https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/wifi.html?highlight=channel%20state%20information#wi-fi-channel-state-information 

    How can I access X (header, gain control, raw info, . )

    It is very specific, you can suggest me to add this information by "issue" or by contacting me via email 

    Alt text Alt text

    NB : I have a modified/hacked WiFi library which allow to send any frame but I will NOT upload it. Nevertheless I can explain you approximately how to get the same result

    About

    Get CSI frames (Channel State Information) with the use of an ESP32 WiFi chip

    Источник

    Saved searches

    Use saved searches to filter your results more quickly

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

    channel-state-information

    Here are 23 public repositories matching this topic.

    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/)

    Marsrocky / Awesome-WiFi-CSI-Sensing

    A list of awesome papers and cool resources on WiFi CSI sensing.

    ludlows / CSI-Activity-Recognition

    Human Activity Recognition using Channel State Information

    Retsediv / WIFI_CSI_based_HAR

    Human Activity Recognition based on WiFi Channel State Information

    yongsen / SignFi

    Sign Language Recognition using WiFi and Convolutional Neural Networks

    spanev / linux-80211n-csitool

    802.11n CSI Tool based on iwlwifi and Linux

    nexmonster / nexmon_csi

    Channel State Information for Raspberry Pi. Use the pi-5.10.92 branch.

    ChunjingXiao / CsiGAN

    An implementation for our paper: CsiGAN: Robust Channel State Information-based Activity Recognition with GANs (IEEE Internet of Things Journal, 2019), which is the semi-supervised Generative Adversarial Network (GAN) for Channel State Information (CSI) -based activity recognition.

    tahmidzbr / Human-Activities-Gestures-Recognition-using-Channel-State-Information-CSI-of-IEEE-802.11n

    This is a data-set for Human Activities & Gestures Recognition (HAGR) using the Channel State information (CSI) of IEEE 802.11n devices

    itskalvik / WiFi-user-recognition

    Gait Based User Recognition from Channel State Information(CSI) collected from WiFi Data

    arthurgassner / thymio-radio-map

    Automated radio map construction using a Thymio II and a Software-Defined Radio (SDR)

    putterer / csi-server

    A server for shipping channel state information obtained using the Atheros CSI Tool via UDP in real time.

    dingyiyi0226 / gesture-recognition-csi

    Gesture recognition by wifi channel state information (CSI)

    cheeseBG / csi-visualization

    📊 Wi-Fi Channel State Information(CSI) visualization with python

    lcsig / Dataset-for-Wi-Fi-based-human-activity-recognition-in-LOS-and-NLOS-indoor-environments

    Baha’ A. Alsaify, Mahmoud M. Almazari, Rami Alazrai, Mohammad I. Daoud, A dataset for Wi-Fi-based human activity recognition in line-of-sight and non-line-of-sight indoor environments, Data in Brief, Volume 33, 2020, 106534, ISSN 2352-3409, https://doi.org/10.1016/j.dib.2020.106534.

    wldhg / 15na-tools

    Data processing tools for CSI motion recognition

    channelcharting / channelcharting.github.io

    winwinashwin / CSI-Sense-Zero

    Realtime Wi-Fi CSI based Human Activity Recognition on a Raspberry Pi Zero + ESP32 setup

    wldhg / 15na-server

    Real-time CSI classifier using MATLAB and Keras [NOTE: You may have to change «wldh-g» to «wldhg» in README links]

    nexmonster / picsi

    Nexmon CSI utilities for Raspberry Pi

    Improve this page

    Add a description, image, and links to the channel-state-information topic page so that developers can more easily learn about it.

    Add this topic to your repo

    To associate your repository with the channel-state-information topic, visit your repo’s landing page and select «manage topics.»

    Источник

Оцените статью
Adblock
detector