horst version 3.0 is now officially released. It contains various improvements over the last release (2.0-rc1):
- Spectrum Analyzer window for an overview of all channels
- More realistic Usage (“AirTime”) calculation
- Improved client/server support
- Show retries
- Fixes for big endian platforms
- Deal with drivers which don’t report noise (mac80211)
The most important addition is the Spectrum Analyzer window which I have written about before. In this mode horst changes channels and shows an overview of the signal level, number of stations and usage for each channel – something like a rough spectrum analyzer.
Usage (what has also been called AirTime or busy time) calculation is now much more realistic, as it takes account of inter-frame spaces and the contention window now. Before the maximum usage was around 60% on a 100% busy channel, now it shows correctly as around 100%.
Networking (client/server) support is now usable. You can start horst in server mode on the device (e.g. horst -C -q) and connect from another device to see the horst interface via the network. Only one client is allowed at a time at the moment.
I also tried to clean up the user-interface a bit by removing some useless information and added retries instead. A high number of retries are a good indication of problems in a WLAN as they can eat up the available bandwith pretty fast.
More information on my horst page and download here.

If you ever get to switch from wext to nl80211 you could directly ask the driver for survey info. This would also give you noise info back.
nl80211 survey gives you channel noise, active, busy, receive, and transmit. I used this to implement a little daemon that hops channels in monitor mode and dumps this data to JSON on request.
Then I pull this info into a SVG+Javascript plot that shows me channel utilization from the perspective of the driver. No packet sniffing necessary:
http://i.imgur.com/ifDQX.png
nice one! thanks for the info!
The cool thing that I neglected to mention is that this comes much closer to being a spectrum analyzer.
It’s not dependent on actual APs or stations being present across the channels, it’s looking at frequencies and if they are clear to send. So if I turn my shitty microwave on you immediately get high busy percentages across many channels, but not receive, because it’s not meaningful packets.
I’d love to see this in Horst. My solution is a bit knitted with a hot needle, because the monitoring happens on the router and the plot is on the PC.