Doing WiFi With Software Defined Radio

Software defined radio lets RF hardware take on a broad spectrum of tasks, all based on how that hardware is utilized in code. The bladeRF 2.0 micro xA9 is one such device, packing a fat FPGA with plenty of room for signal processing chains on board. As a demonstration of its abilities, [Robert Ghilduta] set about writing a software-defined WiFi implementation for the platform.

The work is known as bladeRF-wiphy, as it implements the PHY, or physical layer of the WiFi connection, in the 7-layer OSI networking model. Modulation and demodulation of the WiFi signal is all handled onboard the Cyclone V FPGA, with the decoded 802.11 WiFI packets handed over to the Linux mac80211 module which handles the MAC level, or medium access control. Thanks to the capability baked into mac80211, the system can act as either an access point or an individual station depending on the task at hand.

[Robert] does a great job of explaining the why and the how of implementing WiFi modulation on an FPGA, as well as some basics of modem development in both software and hardware. It’s dense stuff, so for those new to the field of software defined radio, consider taking some classes to get yourself up to speed!

12 thoughts on “Doing WiFi With Software Defined Radio

  1. I could see this as an opening for open stacks like Bluetooth and WiFi, not to mention other protocols. It’ll just mean that open-sourcers will have to use something a little more complicated, and cost more to do so.

    1. I wouldn’t imagine so, nor do I get the impression that was the intent of this project at all. It’s a hack, which is pretty fitting.

      If you want a mesh network for offgrid/emergency communications in a town setting, there are far cheaper, more reliable, and more effective methods than using an expensive ($500+) and low transmit power (8dBm, or <7mW) SDR with poor filtering (compared to dedicated hardware).

      Personally, I'd probably use old OpenWRT-capable dual-band routers w/ custom antennas. Alternatively, a ton of work has gone into meshing in the HAM bands that can be built on top of things like modified baofengs.

      The intent of this project seems to be threefold: to better understand how wifi operates, to prove that it can be implemented on a "hobbyist" SDR, and to produce an open-source implementation of both for further experimentation.

      Personally, I'm interested in how transferable this project would be to a LimeSDR considering the similarity in capabilities.

      1. Personally emergency / off grid, perhaps those 3km site radio walkie talkie radios might be a good way to go. Yes you’re not supposed to use them for data, especially encrypted data, but if enough people are using it for short bursts. They usually come with plenty of channels and channel hopping / selection of channels that don’t have voice traffic, could be automated, several radios could be used together each sending a bit of a parallel port like signal on separate frequencies, for example, say 32 radios acting like broadband. No doubt you could get pretty good speed performance.

      2. The Limesdr, and even the Limesdr mini, are not what I’d call cheap.

        Personally, I’d like to see a basic FPGA with ADC / DAC running around 120M – 160M, with plug in daughterboards to give you the RF band cover you want.

        If your 5 GHz WiFi doesn’t need to work at 1-4 GHz, you then have the option of not paying for it. Put the money into a higher power transmitter.

    2. At £1000 for a board, that is only going to cover a tiny area, I’d say that you would be better off using commercial wifi products.
      Unless you’ve got hundreds of thousands to spend on bare boards that will need a PC connected to handle routing/switching etc. And will need ruggedising so that a bit of rain doesn’t make them fail. All of which will sit around idle when there is no disaster…

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.