20-30 Mbps (Megabytes per second) measured should be roughly equal to theoretical 160 - 240 Mbit/s (Megabits per second), which is substantially higher than the 54 and 90 Mbit/s you posted, so my take would be that OpenWRT at the very least measures differently as compared to Iperf....
The 54 and 90 MBit/s numbers look like the raw radio link rates. These are only theoretical numbers (they're quite misleading), in practice you will never achieve them. Getting above half of them is a pretty good start.
Have a look at the output of the command "iwconfig" for each end. See what the counters for invalid messages & retries are like. Every time there is a collision or failed message you effectively lose some of the theoretical bandwidth.
(Obligatory: I don't know where in the world you are, but make sure you're following local laws and regulations regarding high gain antennas. Many jurisdictions require you to lower your transmit power when using them. Above all else: avoid using them near other people using wifi or the same frequencies, as you're more likely than a normal user to cause them interference problems.)
The bottom line is that -76 is not a very good signal. Is it a clear line of sight or are there obstructions?
MCS numbers less than 8 are a 1x1 link with a maximum rate of 150 Mb (MCS 7) on 40 MHz n.
I would use CPEs here. A CPE is a pre-integrated solution with a directional 2x2 antenna and no cable RF loss. There are very few 2 GHz CPEs on the market today, use 5 GHz ac instead.
LOS is free from other equipments, nearest is 30 deg apart.
But there is (unremovable) obstacle: 50cm of "gas-concrete" wall. (24cm thick but with 45 deg angle to LOS).
For 5GHz I already tried , 2x 23.5dB antennas, USB WiFi cards, 5m of RF240. It would be nicer, as even connected to USB2 port card shows 300Mbps i "A" band.
"Far end" has 300Mbps fiber connection so getting 10% of this is not enough for me.
It is in general better to use narrow channels at longer distances or crowded airways. More power. Also, better to have low qeueing delay, at any distance.
A packet capture often shows underlying link interference problems, do a packet capture of your iperf (I use flent tcp-nup, simpler), and do a rtt plot in wireshark.
Ok, changed to NOT "force 40MHz", now LuCI GUI shows stable 52-78Mbps, ~ -70dBm.
Added 800m to "distance" (remember that I should use TWICE the distance - maybe not with modern OpeWRT?)
Found problem that caused erratic WiFi behawior (ping from 3ms to 1000ms): HDD connected to Orangepi on same SMPS as router.
Fixed.
Now iperf shows (a little less) ~30Mbps.
Is that all that I may expect from 2.4G WiFi on that distance?
Nice story, reading
At 1998 I wasn't involved in WiFi, only 2003 and later.
The few Mbps WiFi B connection (~100m). But also Linux as router -> Asus 500gP with X-Wrt.
But now I am faced to given situation. And want most of possible link speed. 50-100Mbps would be nice. What is radiation (-3dB) angle of 23.5dB 5GHz antenna? Tetraant.