Increasing the Strength of Directional 802.11 Antennas
NOTE: The methods described in this tutorial are illegal in the United States. I cannot be held responsible for what you choose to do with this information. Please see FCC Title 47, Section 15.247 for more information on RF regulations and limitations within the US.
I recently learned about a little trick for getting the most out of directional wifi antennas. In the US, the FCC prohibits devices with a maximum Equivalent Isotropically Radiated Power (EIRP) greater than 36dBm (4 Watts). This is calculated by adding the antenna gain and the device’s output power. The table below shows some examples.
Antenna Gain (dBi) |
Device Output Power Allowed |
EIRP (dBm) |
EIRP (Watts) |
6 | 30dBm or 1000mW | 36 | 4 |
9 | 27dBm or 500mW | 36 | 4 |
12 | 24dBm or 250mW | 36 | 4 |
15 | 21dBm or 125mW | 36 | 4 |
So by giving a high-gain device more power, say all the way up to 1W (1000mW), you could go past this EIRP limit and increase the strength of the signal. Mind you, this is not only illegal but can also cause a serious health hazard. So if you plan to try this, please read the FCC OET 65 guidlines for human safety.
Implementing this only takes a few commands. Linux’s iw command allows you to manipulate radios connected to your device very simply. The first thing to do is to connect your radio and find out which interface it comes up as. You can find this information with the iwconfig command. This is what mine looked like:
root@cubalo:~# iwconfig lo no wireless extensions. wlan1 IEEE 802.11abgn ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=27 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:on
The important field to watch is “Tx-Power.”
Now that we know the radio came up as wlan1, we can manipulate it by changing the country code and thus removing the FCC restrictions. For example’s sake, we will change the country code to Bolivia, but in theory you could change it to whatever ISO 3166-alpha2 country code you want.
ifconfig wlan1 down iw reg set BO
Now you are free to up the power and you can also use higher channels than the FCC allows in the States. Make sure to set the tx power to use the maximum output possible. My radio can handle 1000mW (1W), so I will use 30dBm in the command below, but you can change that to suit your needs. To change the tx power and bring the interface back up, use the following command:
iwconfig wlan1 txpower 30 ifconfig wlan1 up
Finally, check the interface’s configuration again and verify that the Tx-Power field has changed.
root@cubalo:~# iwconfig wlan1 wlan1 IEEE 802.11abgn ESSID:off/any Mode:Managed Frequency:2.472 GHz Access Point: Not-Associated Tx-Power=30 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:on
For more information about manipulating the radio, read the Linux wireless documentation.