RF-Wise is designed to obtain fine-grained CSI-like sensing samples purely from RFID signals to advance RFID sensing. It is a software solution atop standard RFID without using any extra device, compatible to EPC Gen2 within ISM band, requires one tag for sensing and is generic for various applications.
If our codes facilitate your research on RFID sensing or other related works, please cite Cui Zhao, Zhenjiang Li, Han Ding, Ge Wang, Wei Xi, Jizhong Zhao, "RF-Wise: Pushing the Limit of RFID-based Sensing", in Proceedings of IEEE INFOCOM, 2022.
The project website of RF-WISE is here.
RF-Wise is developed using:
- USRP X310;
- SBX Daughterboard;
- Intel Converged Network Adapter X520-DA1;
- 10 Gigabit Ethernet Cable & 10G SFP+ Transceiver;
- Laird S9028PCR Antenna (x2);
- Commodity RFID tags.
The back-end of RF-Wise runs on the EPC Gen2 protocol using:
- GNU Radio 3.7;
- UHD 3.15;
- Ubuntu 18.04.
The following guide assumes that the environment has been configured, especially the GNU Radio.
- Download our codes and connect the devices;
- Set your PC's IP adress as 192.168.40.xx, open a terminal and input
uhd_find_device
to ensure the connection; - Using gen_ofdm_cw.m to generate the customized CW, and paste it into "RF-WISE/gr-rf-wise/include/rfid/global_vars.h";
- Open a terminal in "RF-WISE/gr-rf-wise/build/" and input
cd ../;sudo rm -rf build;mkdir build;cd build;cmake ../;sudo make install;sudo ldconfig
; - Open a terminal in "RF-WISE/gr-rf-wise/apps/" and input
sudo GR_SCHEDULER=STS nice -n -20 python ./reader.py
; - In "RF-WISE/gr-rf-wise/misc/code/" you can observe the transmitted and received baseband signals using plot_signal.m, while the raw data are stored in "RF-WISE/gr-rf-wise/misc/data/";
- The sensing feature extraction is similar as that of Wi-Fi CSI measurement, which you can handle on your own, as well as the RFID signal preprocessing, e.g., segmenting ON/OFF feilds of tag's EPC responses.
Some common issues may appear when implementing RF-Wise, including but not limited to:
- You may need to update the FPGA images for USRP X310, https://files.ettus.com/manual/page_images.html;
- You may need to input
sudo sysctl -w net.core.wmem_max=xxxx
before step 5 in Guide, wherein the "xxxx" will be reported in the terminal after step 5 in Guidelol; - Issues about the environment configuration can be found at https://kb.ettus.com/Building_and_Installing_the_USRP_Open-Source_Toolchain_(UHD_and_GNU_Radio)_on_Linux;
- Long-running operation may rise unknown fault, power off the USRP and wait for a few seconds may fix it;
- To be continued...