towards a better status page

215 views
Skip to first unread message

Steve Song

unread,
Apr 29, 2013, 9:32:57 AM4/29/13
to village-...@googlegroups.com
Hi all,

Terry and I have been beavering away at the 2.0 firmware and we are close to releasing an RC version which has a number of improvements.  More about that shortly.  But one thing that will be unchanged is the status page which provides output on the status of mesh connections and wireless signals.  For some time I have wanted to improve on this and am finally getting around to it.

The first thing I'd like to do is improve the ability to visualise wireless signal strength around the MP.  Basically to create a visual wireless monitor similar to the type of thing you can get in an Android app.  Thanks to the magic of jquery, I think this is quite feasible.  Here are my plans so far.  I'd love to get feedback, suggestions, collaboration.  

/1 Capture wireless info via "iwinfo ath0 scan" and by means of a horrible sed regex string, convert it into CSV format e.g.

"Cell","Address","ESSID","Mode","channel","Signal","Quality","Encryption","Date"
"Cell 01","00:09:45:5B:6C:66","catbert","Master","1","-74","36/70","WPA PSK ","Mon Apr 29 10:16:37 ADT 2013"
"Cell 02","00:09:45:57:A7:F0","catbert","Master","1","-53","57/70","WPA PSK ","Mon Apr 29 10:16:37 ADT 2013"
"Cell 03","02:CA:FF:EE:BA:BE","vt-mesh","Ad-Hoc","1","-256","70/70","none","Mon Apr 29 10:16:37 ADT 2013"

2/ Append the output to something like /var/log/wifiscan.log automatically removing an equivalent number of lines from the start of the file after an agreed upon maximum number of records (100? 200? could be set by user).  Set a cronjob to run this every x minutes.  Now we have a rolling log of WiFi scans.  I thought of writing to json rather than csv format but csv seems a lot easier to maintain a FIFO approach to records, at least with a shell script.

3/ Parse the CSV file into an array with jquery and use a jquery visualisation tool like Sparklines (http://omnipotent.net/jquery.sparkline/#s-about) to visualise the signal strength.  The advantage of this would be a) to make the wireless signal strength information much more intuitive ; and b) provide information over time which may provide key insight as about network issues.

As a companion to this, I plan to create a UI for editing the /etc/bat-hosts files which will then allow the user to replace the ugly mac addresses with something more intuitive whether IP addresses or other.

Would love to hear your thoughts on this.  We're just finishing up moving all the village telco code to Github to make collaboration a little easier and this will go up there as well as it evolves.

Cheers... Steve

Jo-Philipp Wich

unread,
Apr 29, 2013, 9:54:34 AM4/29/13
to village-...@googlegroups.com
Hi.

> /1 Capture wireless info via "iwinfo ath0 scan" and by means of a
> horrible sed regex string, convert it into CSV format e.g.
>
> "Cell","Address","ESSID","Mode","channel","Signal","Quality","Encryption","Date"
> "Cell 01","00:09:45:5B:6C:66","catbert","Master","1","-74","36/70","WPA
> PSK ","Mon Apr 29 10:16:37 ADT 2013"
> "Cell 02","00:09:45:57:A7:F0","catbert","Master","1","-53","57/70","WPA
> PSK ","Mon Apr 29 10:16:37 ADT 2013"
> "Cell
> 03","02:CA:FF:EE:BA:BE","vt-mesh","Ad-Hoc","1","-256","70/70","none","Mon Apr
> 29 10:16:37 ADT 2013"

The libiwinfo library has a Lua binding, this way you do not have to
parse the output with sed; just use something like:

-- 8< --

#!/usr/bin/lua

local iw = require "iwinfo"
local dev = "ath0"

local t = assert(iw.type(dev), "Not a wireless device")
local f = assert(io.open("/var/log/wifiscan.log", "a"), "Cannot open")

local n, cell
for n, cell in ipairs(iw[t].scanlist(dev)) do
f:write(string.format(
"%02d,%q,%q,%q,%d,%d,%d/%d,%q,%q\n",
n, cell.bssid, cell.ssid, cell.mode, cell.channel,
cell.signal, cell.quality, cell.quality_max,
cell.encryption.description, os.date()
))
end

f:close()
os.exit(0)

-- >8 --

> 2/ Append the output to something like /var/log/wifiscan.log
> automatically removing an equivalent number of lines from the start of
> the file after an agreed upon maximum number of records (100? 200? could
> be set by user). Set a cronjob to run this every x minutes. Now we
> have a rolling log of WiFi scans. I thought of writing to json rather
> than csv format but csv seems a lot easier to maintain a FIFO approach
> to records, at least with a shell script.

It can be equally easy with JSON as long as you keep each record on a
line of its own and structure the data in such a way that each line may
end with a comma, like this:

-- 8< --

[ // header line
["record 1", 123, 456, 789], // data
["record 2", 456, 789, 123], // data
["record 3", 789, 123, 456], // data
null] // trailer line

-- >8 --

You can even leave out header and trailer line when writing the data on
disk and add them on the fly when serving via CGI, like this:

-- 8< --

echo "["
cat /tmp/data.json
echo "null]"

-- >8 --


Regards,
Jow

Steve Song

unread,
Apr 29, 2013, 10:32:57 AM4/29/13
to village-...@googlegroups.com
Hi Jow,

Thanks!  I wish I thought to post here before trying to write the longest sed regex of my life e.g.

iwinfo ath0 scan | tr -d '\n' | sed -r 's/Cell/\nCell/g;s/(Cell [0-9][0-9]) - Address: ([0-9ABCDEF\:]+)\s+ESSID: \"([ [:alnum:]-]*)\"\s+Mode: ([[:alnum:]-]+)\s+Channel: ([0-9]+)\s+Signal: -([0-9]+) dBm\s+Quality: ([0-9]+)\/([0-9]+)\s+Encryption: ([A-Za-z\s\ ]+)[A-Za-z, \(\)]*/"\1","\2","\3","\4","\5","-\6","\7\/\8","\9"/g'

Perhaps it time I finally got into lua.  Json advice makes sense too as jquery has built-in handlers for it.

Cheers... Steve


--
You received this message because you are subscribed to the Google Groups "Village Telco Development Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to village-telco-...@googlegroups.com.
To post to this group, send email to village-...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.





--
Steve Song

Gui Iribarren

unread,
Apr 29, 2013, 11:15:44 AM4/29/13
to village-...@googlegroups.com, Steve Song
Hello Steve,
Wonderful news! I also have this on my TODO list for quite some time, so
count me in as a collaborator :)

In my case, I was more interested in dumping adhoc neighbors (i.e. iw
station dump) to an on-demand realtime graph, (500ms update interval?)
in order to serve as an antenna pointing utility (looking at one
particular neigh graph) or to decide on the placement of an
omnidirectional node (try to maximize the signal of several neighs)

A scan log would certainly be useful and complimentary information!

I'll start playing with lua as well, and keep an eye on the thread for
the vt github repo URL (which is also great news!)

About the bat-hosts file: last week at the Battlemesh v6, several ideas
related to hostname distributed resolution were presented or discussed,
and in particular Felix Fietkau told me it wouldn't be hard to implement
a minimal mdns service integrated into openwrt ubus architecture. The
daemon would simply collect the hostname announcements seen on the
network and make the list available through ubus. The idea was to
"import" that into dnsmasq, allowing non-mdns-aware clients to resolve
nodes hostname->ip through classic DNS, but a simple script could also
generate a bat-hosts file from that information.

Cheers!

Gui

Charles Wyble

unread,
Apr 29, 2013, 11:25:22 AM4/29/13
to village-...@googlegroups.com, Gui Iribarren, Steve Song
Would any of the various interface files in /proc provide a more structured initial data source?

How does openwrt generate its status page and its site survey output? Maybe that functionality can be extended?

I have two of the very first 50 mesh potatoes. They have proven quite useful. Where can I grab the latest/greatest code and/or compiled images? Should I just wait for the github migration?
--
Charles Wyble
cha...@knownelement.com / 818 280 7059
CTO Free Network Foundation (www.thefnf.org)

Steve Song

unread,
Apr 29, 2013, 1:10:17 PM4/29/13
to village-...@googlegroups.com
Hi Charles,

On 29 April 2013 12:25, Charles Wyble <charle...@knownelement.com> wrote:
Would any of the various interface files in /proc provide a more structured initial data source?

I don't know enough about /proc to comment.
 
How does openwrt generate its status page and its site survey output? Maybe that functionality can be extended?

I assume you mean Luci?  Certainly worth looking at.  I haven't installed Luci in a while, a good reminder to do so.
 
I have two of the very first 50 mesh potatoes. They have proven quite useful. Where can I grab the latest/greatest code and/or compiled images? Should I just wait for the github migration?

The latest firmware (in beta) for the Mesh Potato can be found at http://download.villagetelco.org/firmware/secn/unstable/mp/SECN-2.0/SECN-2.0_Beta1f/

Cheers... Steve



--

Steve Song

unread,
Apr 29, 2013, 1:27:54 PM4/29/13
to village-...@googlegroups.com
Hola Gui!

On 29 April 2013 12:15, Gui Iribarren <g...@altermundi.net> wrote:
Hello Steve,
Wonderful news! I also have this on my TODO list for quite some time, so count me in as a collaborator :)

Hurray! I had very much hoped that we might find a good reason to collaborate with Altermundi and this seems like a great place to start.
 
In my case, I was more interested in dumping adhoc neighbors (i.e. iw station dump) to an on-demand realtime graph, (500ms update interval?) in order to serve as an antenna pointing utility (looking at one particular neigh graph) or to decide on the placement of an omnidirectional node (try to maximize the signal of several neighs)

That's a great idea.  I had the idea that one might have a slow default periodic scan but have a button on the web page that would temporarily switch the scan into a realtime mode for configuration purposes. 

There are other possible jquery visualisation library candidates such as Cubism.js (http://square.github.io/cubism/) and RGraph (http://www.rgraph.net/examples/index.html) but on a casual glance they seem a little top heavy.
 
A scan log would certainly be useful and complimentary information!

I'll start playing with lua as well, and keep an eye on the thread for the vt github repo URL (which is also great news!)
 
The Github repo is actually there now (https://github.com/villagetelco/vt-firmware) but not quite ready for prime time in that it needs more documentation.  We are all github neophytes so are still finding our way around somewhat slowly still.

About the bat-hosts file: last week at the Battlemesh v6, several ideas related to hostname distributed resolution were presented or discussed, and in particular Felix Fietkau told me it wouldn't be hard to implement a minimal mdns service integrated into openwrt ubus architecture. The daemon would simply collect the hostname announcements seen on the network and make the list available through ubus. The idea was to "import" that into dnsmasq, allowing non-mdns-aware clients to resolve nodes hostname->ip through classic DNS, but a simple script could also generate a bat-hosts file from that information.

That would be great!  Do you think it might happen?

Cheers... Steve
 

For more options, visit https://groups.google.com/groups/opt_out.


Steve Song

unread,
May 1, 2013, 9:32:18 PM5/1/13
to village-...@googlegroups.com
Hi all,

A small amount of progress.  Jow's wireless scan parsing script works perfectly and I have managed to put together a simple html page which parses a json log of a wireless scan and then outputs the information along with a bar graph sparkline.  It is very basic but it is a start.  No pretty css yet.

The code is at https://github.com/villagetelco/demeshtify  and should run on any OpenWRT device.  You will need to make sure that libiwinfo-lua is installed on the device.
 
The parsing script doesn't yet create perfect json at the beginning and end of the log.  Still to be fixed.  But it does truncate the log in a FIFO-like manner according to a set number of lines.  I have put up a dummy log file of correct json for convenience.

Regards... Steve

Steve Song

unread,
May 2, 2013, 10:59:57 AM5/2/13
to village-...@googlegroups.com
Hi again,

A couple of screenshots of the code output to date.

Does anyone have advice on a good rubric for converting dBm in to RSSI.  I have simply been adding 95 to the dBm value from iwinfo scan as a rule of thumb for Atheros devices based on a metric I found somewhere.

@Jow is there any documentation online regarding the other uses of libiwinfo library.  For instance, how would you implement iwinfo wlan0-1 assoclist?

Cheers... Steve
screen_grab.png
screen_grab_line.png

Richard Mortimer

unread,
May 2, 2013, 6:56:23 PM5/2/13
to Steve Song, village-...@googlegroups.com
Hi Steve,

On 02/05/2013 02:32, Steve Song wrote:
> Hi all,
>
> A small amount of progress. Jow's wireless scan parsing script works
> perfectly and I have managed to put together a simple html page which
> parses a json log of a wireless scan and then outputs the information
> along with a bar graph sparkline. It is very basic but it is a start.
> No pretty css yet.
>
> The code is at https://github.com/villagetelco/demeshtify and should
> run on any OpenWRT device.
That works nicely. Good job!

One thing that sprung to mind was a recent blog post I saw (don't
remember the URL) that pointed out a few errors in network configuration
(Apple/Blackberry devices I think) where the SSIDs contained
meta-characters that caused the displays to misbehave.

With that in mind I tried adding </div> into an SSID name and indeed it
did break the formatting. My jquery is a bit rusty but I did a quick bit
of rework and think I've fixed that in your code. See pull request

https://github.com/villagetelco/demeshtify/pull/1

I'm not sure if there is a similar issue in the lua code that produces
the JSON. I don't know whether the %q string format properly encodes
things into JSON format or whether there is another library that is more
appropriate for producing it.

Hope this helps.

Best Regards

Richard

> You will need to make sure that
> libiwinfo-lua is installed on the device.
> The parsing script doesn't yet create perfect json at the beginning and
> end of the log. Still to be fixed. But it does truncate the log in a
> FIFO-like manner according to a set number of lines. I have put up a
> dummy log file of correct json for convenience.
>
> Regards... Steve
>
> On 29 April 2013 14:27, Steve Song <st...@villagetelco.org
> <mailto:st...@villagetelco.org>> wrote:
>
> Hola Gui!
>
> On 29 April 2013 12:15, Gui Iribarren <g...@altermundi.net
> "Cell","Address","ESSID","__Mode","channel","Signal","__Quality","Encryption","Date"
> "Cell
> 01","00:09:45:5B:6C:66","__catbert","Master","1","-74","__36/70","WPA
> PSK ","Mon Apr 29 10:16:37 ADT 2013"
> "Cell
> 02","00:09:45:57:A7:F0","__catbert","Master","1","-53","__57/70","WPA
> PSK ","Mon Apr 29 10:16:37 ADT 2013"
> "Cell
> 03","02:CA:FF:EE:BA:BE","vt-__mesh","Ad-Hoc","1","-256","70/__70","none","Mon
> Apr
> 29 10:16:37 ADT 2013"
>
> 2/ Append the output to something like /var/log/wifiscan.log
> automatically removing an equivalent number of lines from
> the start of
> the file after an agreed upon maximum number of records
> (100? 200? could
> be set by user). Set a cronjob to run this every x minutes.
> Now we
> have a rolling log of WiFi scans. I thought of writing to
> json rather
> than csv format but csv seems a lot easier to maintain a
> FIFO approach
> to records, at least with a shell script.
>
> 3/ Parse the CSV file into an array with jquery and use a jquery
> visualisation tool like Sparklines
> (http://omnipotent.net/jquery.__sparkline/#s-about
> <http://omnipotent.net/jquery.sparkline/#s-about>) to
> visualise the
> signal strength. The advantage of this would be a) to make
> the wireless
> signal strength information much more intuitive ; and b) provide
> information over time which may provide key insight as about
> network issues.
>
> As a companion to this, I plan to create a UI for editing the
> /etc/bat-hosts files which will then allow the user to
> replace the ugly
> mac addresses with something more intuitive whether IP
> addresses or other.
>
> Would love to hear your thoughts on this. We're just
> finishing up
> moving all the village telco code to Github to make
> collaboration a
> little easier and this will go up there as well as it evolves.
>
> Cheers... Steve
>
> --
> You received this message because you are subscribed to the
> Google
> Groups "Village Telco Development Community" group.
> To unsubscribe from this group and stop receiving emails
> from it, send
> an email to village-telco-dev+unsubscribe@__googlegroups.com
> <mailto:village-telco-dev%2Bunsu...@googlegroups.com>.
> To post to this group, send email to
> village-telco-dev@__googlegroups.com
> <mailto:village-...@googlegroups.com>.
> For more options, visit
> https://groups.google.com/__groups/opt_out
> <https://groups.google.com/groups/opt_out>.
>
>
>
>
>
> --
> Steve Song
> +1 902 529 0046 <tel:%2B1%20902%20529%200046>
> --
> You received this message because you are subscribed to the Google
> Groups "Village Telco Development Community" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to village-telco-...@googlegroups.com.
> To post to this group, send email to village-...@googlegroups.com.

Steve Song

unread,
May 2, 2013, 9:01:25 PM5/2/13
to village-...@googlegroups.com
Hi Richard,

On 2 May 2013 19:56, Richard Mortimer <ri...@oldelvet.org.uk> wrote:
Hi Steve,


On 02/05/2013 02:32, Steve Song wrote:
Hi all,

A small amount of progress.  Jow's wireless scan parsing script works
perfectly and I have managed to put together a simple html page which
parses a json log of a wireless scan and then outputs the information
along with a bar graph sparkline.  It is very basic but it is a start.
  No pretty css yet.

The code is at https://github.com/villagetelco/demeshtify  and should
run on any OpenWRT device.
That works nicely. Good job!

One thing that sprung to mind was a recent blog post I saw (don't remember the URL) that pointed out a few errors in network configuration (Apple/Blackberry devices I think) where the SSIDs contained meta-characters that caused the displays to misbehave.

With that in mind I tried adding </div> into an SSID name and indeed it did break the formatting. My jquery is a bit rusty but I did a quick bit of rework and think I've fixed that in your code. See pull request

https://github.com/villagetelco/demeshtify/pull/1

Thanks Richard!  That makes sense.  Pulled.
 
I'm not sure if there is a similar issue in the lua code that produces the JSON. I don't know whether the %q string format properly encodes things into JSON format or whether there is another library that is more appropriate for producing it.

My knowledge of lua is miniscule unfortunately.  I'll do some digging though.
 
Hope this helps.

Much appreciated... S


Best Regards

Richard

            <mailto:village-telco-dev@googlegroups.com>.

            For more options, visit
            https://groups.google.com/__groups/opt_out
            <https://groups.google.com/groups/opt_out>.





    --
    Steve Song
    +1 902 529 0046 <tel:%2B1%20902%20529%200046>
--
You received this message because you are subscribed to the Google
Groups "Village Telco Development Community" group.
To unsubscribe from this group and stop receiving emails from it, send

For more options, visit https://groups.google.com/groups/opt_out.


NicoEchániz

unread,
May 3, 2013, 1:06:36 PM5/3/13
to village-...@googlegroups.com
Hi Steve,

this is looking good :)
We'll be for sure collaborating as this was also part of our roadmap.

cheers,
NicoEch�niz

Song, Stephen

unread,
May 3, 2013, 2:43:28 PM5/3/13
to village-...@googlegroups.com
I've added a lua script that mimics  iwinfo wlan0-1 assoclist and exports it to a json file.

Still trying to work out how the iwinfo bindings work in lua.   This is a good clue 
but I still can't work out how to extract the receive and transmit rates though.

Cheers... Steve

On 3 May 2013 14:06, NicoEchániz <nicoe...@altermundi.net> wrote:
Hi Steve,

this is looking good :)
We'll be for sure collaborating as this was also part of our roadmap.

cheers,
NicoEchániz



On 05/02/2013 11:59 AM, Steve Song wrote:
> Hi again,
>
> A couple of screenshots of the code output to date.

--
You received this message because you are subscribed to the Google Groups "Village Telco Development Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to village-telco-...@googlegroups.com.
To post to this group, send email to village-...@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.





--
Steve Song

Gui Iribarren

unread,
May 21, 2013, 9:12:50 AM5/21/13
to village-...@googlegroups.com
On 05/03/2013 08:43 PM, Song, Stephen wrote:
> I've added a lua script that mimics iwinfo wlan0-1 assoclist and
> exports it to a json file.
> https://github.com/villagetelco/demeshtify/blob/master/usr/bin/dmtf_assoclist.lua
>
> Still trying to work out how the iwinfo bindings work in lua. This is
> a good clue
> http://luci.subsignal.org/trac/browser/luci/trunk/contrib/package/iwinfo/src/iwinfo.lua?rev=7919
> but I still can't work out how to extract the receive and transmit rates
> though.
>


Howdy Steve!

well, yesterday i could finally sit down and dig into this; scp'ed the
contents of your repo into a router and it worked just fine,
so i set out to try integrate it into luci... and it turned out much
harded than i expected!

While my initial idea was to somehow use the graph libraries used by
luci's "Realtime graphs", i found out it uses no 3rd party libraries at
all, but instead generates svg on the fly, as far as i could understand.

So i had to settle with what my bare knowledge of html allows me to do,
and made an unimpressive integration - the attached screenshot almost
looks like i photoshopped your html into luci :P

but, it's a start. I'll now try to include luci tables style in the html
and see what we get.

The code is messy and i'm also taking my first steps into github, so
even though you'll see i forked your repo, it'll take a little time
until you get my pull request :)

Cheers!

Gui



> Cheers... Steve
>
> On 3 May 2013 14:06, NicoEchániz <nicoe...@altermundi.net
> <mailto:nicoe...@altermundi.net>> wrote:
>
> Hi Steve,
>
> this is looking good :)
> We'll be for sure collaborating as this was also part of our roadmap.
>
> cheers,
> NicoEchániz
>
>
> On 05/02/2013 11:59 AM, Steve Song wrote:
> > Hi again,
> >
> > A couple of screenshots of the code output to date.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Village Telco Development Community" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to village-telco-...@googlegroups.com
> <mailto:village-telco-dev%2Bunsu...@googlegroups.com>.
> To post to this group, send email to
> village-...@googlegroups.com
> <mailto:village-...@googlegroups.com>.
lucitify.png

Steve Song

unread,
May 21, 2013, 9:41:44 PM5/21/13
to village-...@googlegroups.com
Hi Gui,

On 21 May 2013 10:12, Gui Iribarren <g...@altermundi.net> wrote:
On 05/03/2013 08:43 PM, Song, Stephen wrote:
I've added a lua script that mimics  iwinfo wlan0-1 assoclist and
exports it to a json file.
https://github.com/villagetelco/demeshtify/blob/master/usr/bin/dmtf_assoclist.lua

Still trying to work out how the iwinfo bindings work in lua.   This is
a good clue
http://luci.subsignal.org/trac/browser/luci/trunk/contrib/package/iwinfo/src/iwinfo.lua?rev=7919
but I still can't work out how to extract the receive and transmit rates
though.

Howdy Steve!

well, yesterday i could finally sit down and dig into this; scp'ed the contents of your repo into a router and it worked just fine,
so i set out to try integrate it into luci... and it turned out much harded than i expected!

While my initial idea was to somehow use the graph libraries used by luci's "Realtime graphs", i found out it uses no 3rd party libraries at all, but instead generates svg on the fly, as far as i could understand.

So i had to settle with what my bare knowledge of html allows me to do, and made an unimpressive integration - the attached screenshot almost looks like i photoshopped your html into luci :P

but, it's a start. I'll now try to include luci tables style in the html and see what we get.

The code is messy and i'm also taking my first steps into github, so even though you'll see i forked your repo, it'll take a little time until you get my pull request :)

I think it is great that you are also integrating this into Luci.  The more generic and broadly applicable the code, the better.  

I have spent a little bit of head-banging to get the lua script to produce a continuously updated json file without resorting to calling sed every other line.  It seems to work reasonably well although occasionally it sticks a bunch of nuls at the end of the file and I can't work out why exactly.  That seems harmless though for the time being.  If anyone wants to take a look, the script is here


Now that this is more or less working, I will take a closer look at graph libraries.  As well as sparklines, chartkick looks interesting https://github.com/ankane/chartkick.js

I am also interested to figure out how to do dynamic updates every few seconds easily so that we can implement your idea of assoc signal strength graph as positioning tool.  This StackOverflow question appears to have an example http://stackoverflow.com/questions/3177313/how-to-dynamically-update-jquery-flot-from-native-json

Cheers... Steve
 
P.S.  Am also a github novice finding my way as I go along.

Cheers!

Gui



Cheers... Steve

On 3 May 2013 14:06, NicoEchániz <nicoe...@altermundi.net
<mailto:nicoechaniz@altermundi.net>> wrote:

    Hi Steve,

    this is looking good :)
    We'll be for sure collaborating as this was also part of our roadmap.

    cheers,
    NicoEchániz


    On 05/02/2013 11:59 AM, Steve Song wrote:
     > Hi again,
     >
     > A couple of screenshots of the code output to date.

    --
    You received this message because you are subscribed to the Google
    Groups "Village Telco Development Community" group.
    To unsubscribe from this group and stop receiving emails from it,

    To post to this group, send email to

    For more options, visit https://groups.google.com/groups/opt_out.





--
Steve Song
+1 902 529 0046
http://manypossibilities.net
http://villagetelco.org

--
You received this message because you are subscribed to the Google
Groups "Village Telco Development Community" group.
To unsubscribe from this group and stop receiving emails from it, send

For more options, visit https://groups.google.com/groups/opt_out.



--
You received this message because you are subscribed to the Google Groups "Village Telco Development Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to village-telco-dev+unsubscribe@googlegroups.com.
To post to this group, send email to village-telco-dev@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/village-telco-dev/519B72D2.8020304%40altermundi.net?hl=en.

For more options, visit https://groups.google.com/groups/opt_out.





--
Steve Song

Darin Lawson Hosking

unread,
Jul 1, 2013, 9:47:13 PM7/1/13
to village-...@googlegroups.com, st...@villagetelco.org
Just stumbled onto this and thought and may help out a bit.

http://sparklines.bitworking.info/

BTW anyone know if the current image includes python?

Thanks

Steve Song

unread,
Jul 2, 2013, 9:22:53 AM7/2/13
to village-...@googlegroups.com
Hi Darin,

On 1 July 2013 22:47, Darin Lawson Hosking <dar...@gmail.com> wrote:
Just stumbled onto this and thought and may help out a bit.

http://sparklines.bitworking.info/

Nice!  A handy interactive design tool.  I don't think we'd use the web service directly though as we'd like this to work with or without net connectivity.
 
BTW anyone know if the current image includes python?

The current firmware doesn't include python although there are python packages available for OpenWRT.  The problem is memory space.  Lua is often the scripting language of choice for embedded systems because of its small footprint.  

Cheers... steve

Darin Lawson Hosking

unread,
Jul 2, 2013, 2:30:43 PM7/2/13
to village-...@googlegroups.com, st...@villagetelco.org
Thanks for the follow up, I was hoping to stay with one toolkit aka python for all but looks like I need to extend into Lua

Gui Iribarren

unread,
Jul 28, 2013, 2:51:06 AM7/28/13
to village-...@googlegroups.com, Steve Song
Hey Steve!
hope you're enjoying a nice weekend,

i've been having some fun with this spectral scan thing, and made some
progress, i got running a realtime spectral scanner, which looks pretty
promising

there's a thread on ath9k-devel but i'm not sure you're subscribed
there, so here it goes

http://[2a00:1508:1:f002:6670:2ff:feed:f8da]/spectral_scan.html

https://github.com/libre-mesh/FFT_eval/
https://github.com/libre-mesh/lime-packages/tree/master/packages/fft-eval
https://github.com/libre-mesh/lime-packages/tree/master/packages/spectral-scan-webgui

as it was a quick mashup, i didn't have time to implement a proper lua
script like you did with dmtf_scan.lua, but i've just re-read your code
and it fits perfectly in replacement of my ugly bash cgi-bin :D
or in fact i'm now thinking I could even turn the fft_eval.c into a
fft_eval.lua, since it's just a couple of math operations :)

OTOH, tomorrow we're planning with Nico to spend some time on an antenna
alignment; in the end i imagine a kind of "dashboard", with your wifi
networks scan, a spectral scan, and a single-network-signal ("antenna
alignment tool")
let's see how far we can get with these baby steps ;)

Oh, and...

On 05/21/2013 10:41 PM, Steve Song wrote:
> Hi Gui,
> I am also interested to figure out how to do dynamic updates every few
> seconds easily so that we can implement your idea of assoc signal
> strength graph as positioning tool. This StackOverflow question appears
> to have an example
> http://stackoverflow.com/questions/3177313/how-to-dynamically-update-jquery-flot-from-native-json

That is precisely how i did the realtime update in spectral_scan.html!
thing is, i'm doing the $.plot() every time, instead of .setData() ;
.draw() as the last post suggest, so i'll change that, thanks!!

Yay!

a happy gui

Steve Song

unread,
Jul 28, 2013, 3:55:39 PM7/28/13
to village-...@googlegroups.com, Joshua Head
Hola Gui,

Exciting!  I was completely unaware of Simon's work on spectral scan.  

Is this a snapshot of your flot render?


At this point, I should introduce you to a team of students from Griffiths University in Brisbane, Australia who have just started work on the network scan and batman score visualisation.  Seems like we will have a very interesting suite of web-based wireless network analysis tools soon!

Joshua Head is the lead for this work, cc'ed above.

Cheers... Steve 

Gui Iribarren

unread,
Aug 5, 2013, 12:07:55 PM8/5/13
to village-...@googlegroups.com, Steve Song, Joshua Head
On 07/28/2013 04:55 PM, Steve Song wrote:
> Hola Gui,
>
> Exciting! I was completely unaware of Simon's work on spectral scan.

hehe, i couldn't believe that (after months!) no one had still made
anything with that code, and now i'm realising the "news" about Simon's
work simply didn't spread around as much as it deserved :P

http://blog.altermundi.net/article/playing-with-ath9k-spectral-scan/

>
> Is this a snapshot of your flot render?
>
> http://oi42.tinypic.com/16bld2r.jpg

Yes, indeed, but seeing it live on your own router is probably more
exciting ;)

adding this repo to /etc/opkg.conf

src/gz altermundi
http://chef.mesh.altermundi.net/downloads/r36140/ar71xx/packages/

and doing "opkg update ; opkg install spectral-scan-webgui" should be
enough, on a sufficiently recent openwrt (i.e. with a kernel that
includes Simon's code)

(assuming uhttpd is running and serving /www/, to be able to get
http://myrouter/spectral_scan.html)

wifi interface and frequencies to scan are currently hardcoded :( but
i'm working on a luci version which parametrizes those things

Cheers!

Gui
Reply all
Reply to author
Forward
0 new messages