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.