OpenWrt Forum Archive

Topic: WDS Signal Strength

The content of this topic has been archived on 28 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

How can you tell the signal strength of associated WDS devices? (WR-RC2)

ipkg install wl
wl rssi <wds mac>

How to monitor the signal strength by generating a tone with a remote Linux machine.

Preparation:
  Install siggen on the Linux machine. http://www.comp.leeds.ac.uk/jj/linux/siggen.html
  Install nc (netcat) and wl on the WRT54G and on the Linux machine.
  Save wl_tone_monitor.pl (code at the end of this message) on the Linux machine.
  Change wl_tone_monitor.pl settings as required and chmod 755 wl_tone_monitor.pl

Execution:
  On the Linux machine, generate constant activity on the WiFi link by pinging the remote device, and start wl_tone_monitor.pl:
---- Run on Linux Machine ----
REMOTE_WIFI_IP='192.168.1.200'  PACKET_SIZE='50000' INTERVAL='0.2'; ping -s $PACKET_SIZE -i  $INTERVAL $REMOTE_WIFI_IP > /dev/null &
PORT='995'; nc -l $PORT | perl wl_tone_monitor.pl
---- End Run on Linux Machine ----

  On the WRT54G, run the following command (changing variables as required, where IP is the linux machine and MAC is the Wifi MAC you want to monitor:
---- Run on WRT54G ----
    PORT="995" REMOTE_WIFI_MAC="00:0F:66:00:00:00" LINUX_IP="192.168.1.100"; while wl rssi $REMOTE_WIFI_MAC ; do sleep 1; done | nc $LINUX_IP $PORT
---- End Run on WRT54G ----

You should now be hearing a tone every second that represents signal strength. A lower tone means better signal quality.

When you're done, do this on the Linux box to stop everything:
---- Run on Linux Machine ----
<CTRL-c>
fg # this brings back the ping to the foreground
<CTRL-c>
---- End Run on Linux Machine ----

This simple procedure lets you tune your antenna and device location while getting constant feedback as to the signal quality.


Required program code:
---- wl_tone_monitor.pl ----
#!/usr/bin/perl
$tone_generator = "./tones"; # tone generator program
$tone_duration = '500'; # milliseconds
$tone_frequency_multiplier = '15'; # rssi * tone_freq_multiplier = tone_frequency

while (<>) {
  /rssi is -(\d*)/;
  $rssi = $1;
  $tone_frequency = $tone_frequency_multiplier * $rssi;
  $cmd = "$tone_generator $tone_duration $tone_frequency";
  print "$rssi ";
  system($cmd);
}
---- end wl_tone_monitor.pl ----

hi!

i can't find the wl package, are there any alternatives?

my openwrt version: kamikaze - 8.09 - brcm47xx
my router: linksys wrt54gl

warsword,

You probably need to do an 'opkg update' followed by 'opkg install wl'

Kamikaze 8.09 has the wl package, but by default the list of available packages is kept on the ramdisk. Each reboot erases the package list.

--Russel

Wrong. wl is only for brcm-2.4,  not brcm47xx.

thanks for answer.
i found wavemon smile
wavemon shows snr &co too

The discussion might have continued from here.