OpenWiFi Open-Source Linux-compatible WiFi Stack Runs on FPGA Hardware

WiFi is omnipresent on most connected hardware, and when it works it’s great, but when there are issues oftentimes they can not be solved because the firmware is a closed-source binary. I understand companies do that either to protect their IP and/or make sure end-users do not break FCC compliance.

OpenWiFi project aims to deliver a completely open-source SDR (Software Defined Radio) WiFi implementation compatible with Linux and running on FPGA hardware.

OpenWiFi currently supported features:

  • 802.11a/g; 802.11n MCS 0~7; 20MHz
  • Mode tested: Ad-hoc; Station; AP
  • DCF (CSMA/CA) low MAC layer in FPGA
  • Configurable channel access priority parameters:
    • duration of RTS/CTS, CTS-to-self
    • SIFS/DIFS/xIFS/slot-time/CW/etc
  • Time slicing based on MAC address
  • Easy to change bandwidth and frequency:
    • 2MHz for 802.11ah in sub-GHz
    • 10MHz for 802.11p/vehicle in 5.9GHz

The developers tested OpenWiFi on Xilinx ZC706 FPGA evaluation kit coupled Analog Devices fmcomms2/fmcomms4 RF board to form an access point, and connected it to a client with TL-WDN4200 N900 dual-band WiFi USB Adapter. iperf results:

  • AP to client performance: 30.6Mbps (TCP), 38.8Mbps (UDP)
  • Client to AP performance: 17.0Mbps (TCP), 21.5Mbps (UDP)

Here’s a demo of a smartphone connecting to the access point running OpenWifi.

Future and on-going work include 802.11ax WiFi 6 implementation, and support for more hardware platforms including ADRV9361-Z7035/ADRV9364-Z7020 + Analog Devices ADRV1CRR-BOB, as well as Xilinx ZCU102 + Analogic Devices fmcomms2/fmcomms4/ADRV9371.

You’ll find resources such as driver and FPGA code on Github. Note the source is released under two dual licenses: AGPLv3 for open source code and a non-opensource license is also proposed for projects that require it. If you don’t own the fairly expensive hardware to run the demo, you could also check their test bed w-iLab.t tutorial. We were also informed the developers plan to present their project in the “Free Software Radio” devroom at FOSDEM 2020.

Thanks to Zoobab for the tip.

Support CNX Software - Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples
Notify of
newest most voted