Alfa AWUS036NH - limited tx power?

Live forum: http://rt2x00.serialmonkey.com/viewtopic.php?t=6110

r133e

15-12-2010 12:30:02

I am having problems with Alfa AWUS036NH (RT3070) using compat drivers rt2800usb (found here http//forum.aircrack-ng.org/index.php?topic=5755.0 ) on ubuntu 10.10 - I can't set power over 8dBm, no matter what regulatory domain.

I have gone through source code of the driver for rt2800usb and found out the card itself reports that it only supports max. 8dBm, while it should definitely support at least 20dBm, since it is rated at 2000mW (of course, that's bullshit, there's no way it can pull that much power from usb). So I found found in the source code where it pulls the info out of the card and printed it, here it is

[codelzv881ow]
file: rt2800lib.c

int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
{
....
tx_power1 = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_BG1);
tx_power2 = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_BG2);

for (i = 0; i < 14; i++) {
info[i].tx_power1 = TXPOWER_G_FROM_DEV(tx_power1[i]); <<< here it reports 8dBm
info[i].tx_power2 = TXPOWER_G_FROM_DEV(tx_power2[i]);
}

....
}
[/codelzv881ow]

I tried manually forcing the tx_power1 to be 20dBm for all channels with
[codelzv881ow]
info[i].tx_power1 = 20;
info[i].tx_power2 = TXPOWER_G_FROM_DEV(tx_power2[i]);

[/codelzv881ow]
and I was now able to change the power using "iwconfig wlan0 txpower 20" over 8dBm, but it didn't have any effect on the real power output (I was measuring it using "how much noise it inducted in the speakers" method), it stopped raising the real power over approx. 8dBm, the sound from speakers was gradually becoming stronger from 0dBm to 8dBm, then stopped raising)


Theoretically, it should be able to deliver max. 26dBm @ 54Mbps (the RF amplifier chip on the board is SiGe 2576L - http//www.sige.com/files/SE2576L%20Dat ... %201p7.pdf , but current draw is 500mA for that chip alone at 26dBm, so not on USB - max 500mA). Still, at least 20dBm should be possible.

Is this bug in the drivers or the "feature" of the card itself?

IvD

15-12-2010 20:04:52

Well if the EEPROM indicates a maximum, then it is a hardware restriction.
As you set, changing the driver to use the higher TX power, doesn't have an effect, so that confirms the hardware restriction.

r133e

15-12-2010 22:54:05

But why would they advertise it as 2000mW? The hardware is capable of 20dBm at least. Maybe the driver uses some bad firmware? or I don't know. I don't believe 8dBm is max, because it allows more in windows.