After quite some efforts for the NLNET project https://nlnet.nl/project/OpenWifi-maturity/ , openwifi's digital (FPGA) design is tested and proven as good as (even better than) commercial Wi-Fi chip! Please find attached "openwifi VS COTS, report and observations.pdf" in the section "Documents and tests" of the release notes for comprehensive test report, known issue and some interesting observations on COTS (Commercial Off-The-Shelf) Wi-Fi devices.
Main improvements:
FPGA
- High performance DSP algorithms in PHY for indoor multipath environment: fine frequency offset estimation; more precise and robust time-frequency compensation and tracking; low complexity LLR calculation in the equalizer for soft decoding (for bigger FPGA, you can still switch between old soft-bits algorithm and new LLR for comparison); more resilient PHY state machine and signal watchdog design; etc.
- Avoid FIFO in the ADC and DAC interface to offer more deterministic/coherent timing of IQ to/from antenna, which is very important for (distributed) MIMO operation and radar sensing.
- CSI fuzzer bug fixes. Now fuzzing and defuzzing can be done as expected.
- FPGA timing optimization (such as CSMA/CA module in xpu and LLR module in PHY) for platforms with low speed-grade and volume devices. Even after all the improvements, openwifi still support the cheapest/lowest end FPGA platform (Xilinx Zynq 7020). Check the FPGA utilization report packet at the end of this section.
- New hardware support: antsdr e310v2
- Other small bug fixes and feature updates.
- FPGA utilization: openwifi-1.5.0-shahecheng-utilization.zip
Software
- Upgrade to Vivado 2022.2 and ADI kuiper 2022_R2 ("13 December 2023 release (2022_r2)" on this page: https://wiki.analog.com/resources/tools-software/linux-software/adi-kuiper_images/release_notes ) that has new HDL basis, Linux kernel, driver, devicetree and rootfs, etc.
- Optimized AD9361 AGC settings to give higher successful chance for Wi-Fi initial access (authentication and association).
- More information from FPGA to Linux dmesg print per packet, such as frequency offset, etc.
- Bug fixes for operating at arbitrary RF frequency: ensure the consistent AD9361 Lo frequency setting from multiple sources: Linux and our overriding. Now this feature runs smoother and more stable than before.
- Other small bug fixes and feature updates.
Documents and tests
- More app notes, such as: ACK timing verification by IQ capture (https://github.com/open-sdr/openwifi/tree/master/doc/app_notes#readme)
- Better python GUI settings for plotting data from side channel.
- Building scripts, workflow architecture and documents update.
- More research papers are added (https://github.com/open-sdr/openwifi/blob/master/doc/publications.md).
- Test report: openwifi VS COTS, report and observations.pdf
Git commits of 1.5.0 release:
openwifi: 3c1f0bb
openwifi-hw: open-sdr/openwifi-hw@474bf3b
openofdm: open-sdr/openofdm@b91aacc
openwifi-hw-img: open-sdr/openwifi-hw-img@0db5ed8