Saturday, 15 February 2020

Client Offsets: The Six Inch Square Challenge


Designing WLAN's is a pretty tricky business at the best of times, but trying to design a WLAN that works well for all clients is hard as they vary so wildly in terms of form-factor, wireless chip-sets, antenna counts and a plethora of other factors that mean they all see the wireless world in their own annoyingly unique way.

The upshot of this is that when designing a WLAN we have to spend time trying to figure out how well (or badly) each client-type we need to support in our design sees our proposed wireless network. In simple terms, some will "hear" it more clearly than others due to their better antennas, build and sensitivity. A wise man once said that we should design our networks for our "most important, least capable" devices (...don't let him hug you, he WILL squish you). Once we've figured this device out, we have to work out the offset between our client of choice and our survey equipment or RF modelling software.

To get this "offset" to attempt to account for the signal level difference between our  client and preferred design method/tool, we usually take a few comparative signal measurements. This allows us to apply an offset, in dB, to our survey/design report so that coverage heat-maps will be more representative of how the world will look to our important client.

The snag is that, as Keith Parsons and others have noted, even the same model of client can vary due to manufacturing tolerances when you test their reported signal levels under the same conditions. For example, if you get hold of ten Samsung S10's and test them all in the same way, the tolerances of their internal RF components mean that the signal level results can vary by a few dB.

As you can see, getting this offset figure is not an exact science.

Six Inch Square Challenge


A colleague recently challenged me to undertake an exercise to  look at how wireless clients see the world based on yet another aspect I hadn't really considered too deeply before: its spatial orientation and position. I was aware that things would vary a little depending on how the device was oriented in terms of vertical of horizontal positioning, but had not really looked in to it in any real depth.

The exercise (which I've termed the "Six Inch Square Challenge" as people love a meme) investigates how the RSSI level reported by a client will vary with small positional and rotational changes (hint: it may be more surprising than you expect).

 It starts by taking a 6 inch square of paper and fixing it to a surface (e.g. a table top). A test AP is then set up at some distance (I'd recommend at least 5 metres away) in line of sight of the paper square location. A wireless client is then placed on one corner of the square and the test AP RSSI measured using a wireless app on the client. The client is then rotated through 360 degrees in 45 degree increments, with the RSSI at each point being recorded. It's best to allow a reasonable period (e.g. 30 secs) for the RSSI reading to settle at each point.

Once one corner of the square is completed for the 360 degree rotation, the client is moved to the other 3 corners of the square in turn and the whole measuring process repeated.

The entire measuring exercise is repeated 3 times to verify that consistency of measurements is being achieved. The picture below shows the rudimentary setup I used (a spice rack turntable and a butchered cardboard box with some packing tape). I designated the four corners of the paper square as north-west, north-east, south-west and south-east for obvious reasons.



  
My test client was a Samsung S7 running the Ubiquiti WiFiman app (as it just happened to be on my phone). As you can see in the picture, the phone is angled at around 45 degrees from horizontal.

At each test point, I found that the app needed around 30 seconds before it would settle on a relatively consistent RSSI level (give or take one dB). I found that it was best to keep at least 3 feet away from the client to avoid some variations that my proximity seemed to cause at times.

The results of the tests are show below (and available for download from here):
 At first glance, it's just a whole pile of numbers swimming before your eyes. But, once you zoom in on a few specific areas, there are some interesting details in there:

  • I found the range of RSSI readings in a 360 degree rotation very surprising. In the south-east location there was a 7.3dB variation just by rotating the phone through 360 degrees
  • The variation in RSSI just by turning through 45 degrees in some instances was surprisingly high. For example, take a look at 135 to 180 degrees in the south-east position: a 6.7dB difference
  • The variation in position of just a few inches for corresponding rotational positions was very surprising. For instance, take a look at 315 degrees for the north-east and south-east positions: a difference of 4.3 dB for a distance of just 6 inches across the table.
If you dig through the figures, I'm sure you can find your own insights.

I also repeated the same test run with the phone in a horizontal position and received a completely different set of results:

  
I'm sure you can take a look for yourself and pick out some interesting nuggets. It was quite an eye-opener for me (e.g. 10dB variation in the south-east position!)

Conclusion

 

As with everything else in Wi-Fi, getting hard and fast rules to apply when grappling with the data shown by these tests are challenging.

For me, the key takeaway is to be more aware of the possible variations and causes of those variations I might incur by even small changes in measuring technique when trying to determine survey/design offsets. Repetition of measurements would seem prudent to ensure you haven't hit a particular location or orientation that has a particularly unusual RSSI reading and is not "typical" - even just a few inches or varying the orientation by a few degrees may vary things.

It could be argued that perhaps you should use the lowest achieved RSSI measurements to cater for the worst case scenario, but this can turn in to a downward spiral of "what-ifs" when you start to consider things like hands around handsets, bodies between the phone and AP...the list goes on.

The best you can do with this information is to be aware that small positional variations can really skew things if you're not aware of them. I'd advise being sensible and pragmatic, and make sure a few consistent readings can be achieved in your measurement location when trying to determine an useful offset.

References


    


Friday, 7 February 2020

Wiperf: A wireless client performance probe mode on the WLAN Pi

I've had a number of occasions when it would have been really useful to deploy a wireless client device on a WLAN to monitor performance over time from a client perspective. Too often, when troubleshooting a wireless network, everything looks fine from the data provided by your infrastructure kit, but the user experience is a whole different story. Unfortunately, when this requirement has arisen, persuading anyone in the organization in which I was working to invest in a wireless probe-type solution has been an uphill battle.

Around 18 months ago I got to the point when working on an issue that I could not progress and had no choice but to roll my own rudimentary client probe solution. It was a Python script installed on a Raspberry Pi acting as a client on a particular SSID that was having issues. It reported wireless connectivity data and a few client tests (e.g. speedtest & ping) to a Google spreadsheet. The same code also ran on a WLAN Pi, so that I could have two probes running! The data they provided was invaluable in giving me an insight into what was going on over time on the network that was suffering issues.

After that particular “gig” was complete, I moth-balled my probes, but was hugely impressed with the insights they had provided.

Around 4 months ago, my friend Kristian Roberts dropped me a note on Slack asking about using the WLAN Pi as a client probe to gather connectivity data and forward it in to Splunk for reporting. In his day-job, he already used Splunk to do some pretty fancy reporting based on various inputs from his wireless network kit.

I pulled out my old Python scripts and started looking at how I could quickly modify them to send data in to Splunk. Unfortunately, when you look at code you did a few months ago, you start to see how you could have written it better and start to come up with new ideas.

Anyhow, here we are, four months later and I’ve got to the point of having a package that I’m relatively happy to share. There have many evenings of testing, tweaking and brainstorming but we finally have the newly named “wiperf” package ready to go.

Wiperf Overview 


In brief, wiperf is a series of Python modules that are included in the WLAN Pi image that will flip the WLAN Pi in to a wireless client mode, join an SSID and run a series of configured network tests. The tests include Ookla Speedtest, iperf3, ping, DNS, DHCP and http. Once the tests have been run, the results are returned to a Splunk server which stores the data and allows the creation of some very nice historical reports (see the example below).



Setting up the WLAN Pi to run in wiperf mode is very easy. There are just a couple of configuration files to edit for the wireless connection details and the test configurations. Then, it’s just a case of flipping the WLAN Pi into wiperf mode via the front panel buttons. To find out the full details of setting up the WLAN Pi, start here.

Building a Splunk server platform is not as bad as you might expect. You can install it on a Windows, Mac or Linux platform and it’s pretty much the usual executable download and next..next...next install wizard you expect for many applications. Although Splunk is a paid-for package generally, we can run on the free tier as our data volumes are so low.

Once Splunk is installed, a few reporting dashboards need to be configured in Splunk and then you’re good to go. Thanks to the fantastic help I got from Kristian, there are a series of pre-canned report files we’ve built that can easily be used to create your dashboards.

You can find the full details of how to set up Splunk and create your reporting dashboards in the following document I created: Splunk Install and Config Guide.


Conclusion 


Wiperf is a great tactical tool for setting up a wireless client probe when you’re looking at issues on a network or maybe want to do a little performance trending.

It is a little bit clunky to set up compared to the full-blown paid-for options available out there, but it’s a useful tool to have in your bag. It’s not a scalable performance monitoring solution, but I think it probably has quite a lot of value in demonstrating the value of the additional client-level insights a commercial offering provides. This will hopefully encourage decision makers to invest in a more scalable, fit-for-purpose commercial solution that will no-doubt provide an excellent return on investment.

I hope you have fun tinkering with wiperf and it provides some useful insights for you. Please take the time to consult the various documents I have created below to help you on your journey with exploring wiperf.

References

Saturday, 18 January 2020

How to Burn a New Image on Your WLAN Pi

I'm often asked how to burn a new image on to the WLAN Pi, so thought a video might be useful for anyone who wants to update their WLAN Pi image.

When we release new code for the WLAN Pi, it's released as a single image file that needs to be burned on to the micro-SD card of the WLAN Pi. This video provides a practical demonstration of the process.

 Here are the links for the web sites shown in the video:



Wednesday, 8 January 2020

How to blog, win friends and influence people...


I was very fortunate to receive an award for my blog recently from the Cisco-sponsored IT Blog Awards. I also recently remembered an article I wrote quite some time ago for publication elsewhere that never made it to the presses. I thought it would be kind of appropriate to publish it myself to share what I've learned over the past 9 years or so of blogging. It will hopefully encourage others to sharpen their virtual pencils, helping them to learn, get their name "out there" and contribute to the wider community. Apologies for the length of the article, but I can't help myself when it comes to detail...sorry!
 
I was originally motivated to set up my own blog in 2011 after reading the articles of people like Andrew Von Nagy, Devin Akin and Keith Parsons. I was in awe of their depth of knowledge, and the fact they were performing such a valuable altruistic act, freely sharing their valuable knowledge and content.

I was also starting to gain more real-world experience in wireless networking and acquiring more knowledge as I moved through my CWNP studies. While I didn’t imagine I could ever demonstrate their level of knowledge, I was coming across a few useful pieces of information from the solutions I was working on  that I thought might be useful to others in the wireless industry. I thought I’d try my hand at a few blog articles and follow their example of sharing useful information that I might come across.

I was amazed by the reception that I received when I tentativley published my first blog article! I got emails and tweets from many people congratulating me and thanking me for my efforts. The real icing on the cake though was the messages I received from my “industry heroes”: Keith, Devin and Andrew. Receiving praise and support from those I held in such high esteem and whose opinion I valued so much was a massive boost for me to carry on and develop my blogging activities.

I have continued to blog for around 9 years now. My frequency of creating articles has varied significantly over that time, but I have found it to be rewarding, challenging and incredibly useful.

Why Blog?


There are some really good reasons to blog and share your knowledge expertise. We’ll explore a few here.

Community engagement


One of the biggest surprises for me was how blogging massively stimulated my initial engagement with the general online wireless community. As a newcomer, it can be quite daunting to make in-roads to an existing community. Putting together a few blog articles and putting them “out there” is a great ice breaker.

Creating content such as blog articles stimulates interactions with other in the community. Conversations around your content will stimulate unexpected levels of engagement. Articles will often prompt others to share their similar experiences and perhaps share additional information that they may have found from their own experiences. Others may ask for further information to help with a challenge they may be facing that is related to the content you have created. These conversations are an inevitable consequence of publicly sharing your knowledge and can become valuable sources of new professional relationships and friendships.

One pleasant side effect of having written a few useful blog articles is that the first time you have cause to visit an industry conference, you’ll almost certainly meet someone who has read one or more of your articles. It’s amazing how often someone will approach you and say: “hey, didn’t you write that article about a <insert subject> a few months back !?”. These comments generally turn in to longer conversations, often ending in a few beers or some food with a new acquaintance.

Overcoming “Imposter Syndrome”


One of the challenges of becoming part of a community of knowledgeable professionals is overcoming the barrier of not being “good enough” to offer up your thoughts and opinions in the presence of so many others who may have a proven track record and significant experience. This leads to a feeling of perhaps not really having the expertise to be part of such a group and the fear that you may get found out as lacking in your own level of expertise…you may suffer from: “imposter syndrome”.

Putting together a blog post is great way to build your confidence. You will generally get people providing positive feedback or, at worst, constructive criticism of your content. Putting your content out there and receiving feedback from your peers is an excellent way of getting over that feeling of being the “new kid in town’ and will generally solicit thanks or positive feedback from someone who finds your content useful. It I worth remembering that although there may be plenty of gurus and experts in the community who may already know the subject you are discussing, there are many thousands of people out there who are just starting out or perhaps only dip in to the world of Wi-Fi occasionally, perhaps when they have an issue to investigate. I guarantee that someone, somewhere will find your content useful and be grateful to have discovered it.

After a few articles, your confidence will grow as you feel you have something of worth to share with the world so that you no longer feel like the “newbie imposter” 😊

A Useful Journal For Yourself


One very interesting side-effect of creating blog articles is that they become a very useful resource for you. Instead of keeping a set of private notes about a subject, posting them up in a blog article means that the information is always available via a quick Google search from just about anywhere. Posting an article also ensures that you explain the concepts and context of a subject in a clear and useful way. When you refer to that same article in a couple of years’ time, you’ll certainly thank yourself for having taken the time to properly record your thoughts.

The biggest surprise around creating blog articles is when your own article turns up in a set of Google search results! This may sound far-fetched, but (as Keith Parsons is fond of reminding us at many of the conferences he organizes), it’s incredible how many times you may find an article you may have forgotten about from a few years ago, or perhaps some part of a previous article is relevant to your current area of interest.

Demonstration of Knowledge


Creating blog content is also a great way of demonstrating the knowledge and expertise that you have acquired. This can be very useful in situations when people are “looking you up” online.

If you are applying for a new role at work, perhaps a new job or are bidding for some freelance work, demonstrating your knowledge and establishing yourself as subject matter expert through your blog articles can be incredibly valuable.

A good example of this for me personally is a series of blog articles that I created about the 5GHz band in the UK. As information was difficult to find, I decided to blog about it. Over time, I developed the articles in to a comprehensive white paper about the subject, as I saw that the articles received many hits in my blog traffic stats. Now, many people I meet within the WLAN industry in the UK know me as they have read my white paper or found my articles about the 5GHz band. It has become a great “virtual business card’ that sets expectations around my capabilities before I meet people and has opened many doors of opportunity.

Creating Content


Hopefully, by now you’ll be convinced of the many benefits of blogging as part of your professional development and as a useful tool on your journey towards attaining industry certifications such as CWNE. If you don’t already have a blog you may be wondering how you might go about creating your own content. (Don’t worry about having a web site or blog site at this stage…we’ll come to that later. Remember: content is king and should be your main priority).

Here is the process I use to create content. Feel free to borrow as much as you like from this advice, but you’ll likely develop your own methodology over time that suits how you work.

What Should I Blog about?


Creating blog articles can be quite demanding, depending on the subject matter that is being covered. Personally, I have found that the subjects that are easiest to write about are techniques, nuggets of information or discoveries that make me give myself a mental “high-5” as I’m so pleased to have come across the information. Writing about something that has given you a “buzz” and that you feel really enthused about is so much easier to write about, as it’s almost a pleasure to commit it to (virtual) paper.

If you try to write about something that is quite dry and provides little personal interest, the whole process will feel quite forced, will likely be boring and is a project that is unlikely to get completed.

My own personal technique is to write down ideas as soon as I think of them. I will usually start a new note in Evernote or start a new Google doc. Starting a new document gives the article some initial momentum to get started. I’ll usually include the title, a few words about the subject itself and maybe a few bullets about the main points I’ve thought about. I like to use cloud-based note services so that I can pick them up from anywhere I happen to be when I decide to add more content. The key is to get the idea written down as soon as possible and capture that initial buzz of enthusiasm and the rush of ideas. Once I have this down, I may return to it hours, days or even weeks later, when time allows for me to craft it in to fully fledged article. I have LOTS of the ideas sitting waiting to be picked up and turned in to fully formed articles…now all I need is time to write them 😊.

Once you get in to the habit, you’ll be surprised how many times you’ll think: “This would make a great blog article”, or: “I bet not many people know about this”, or “If I shared this, it would save other people the many hours it just took me to figure out”. Write those ideas down.

When Am I Going to get Time to Write!?


Getting the time to write is definitely one of the biggest challenges to creating blog articles.

I personally find that writing needs a dedicated block of time without interruption, which is quite hard to find for many working in our industry. I would say that a useful block of time for turning ideas in to articles is at least half an hour. This can obviously extend to whatever period you have available…or whenever you get bored of writing. For me, the best times to write content are on train or plane journeys; times when there aren’t too many other things you can do. If writing at home I find that locking myself away (with no phone) for an hour is the best way to get something done. I’ve also found driving to my local coffee shop and spending an hour there quite useful too.

Trying to write when being constantly interrupted is very challenging and will likely make the task at hand difficult to complete and seem more trouble than it's worth. Getting time to focus is going to make the process easier and very likely ensure your content is of higher quality.

I personally have a couple of rules when writing an article:

  • Stop as soon as I get bored of writing it – put it down and come back to it when you’re in a better frame of mind
  • When you think it’s finished, file it away and look at it again in a week. You’ll be surprised how many “what was I thinking!?” moments you’ll have when reviewing an article a week later with fresh eyes 😊

I’m a great believer in not forcing the process and putting things to one side and returning to the task when you are ready. The time-frames involved may be days, weeks or months later. Remember: there’s no deadline, you’re not getting paid for this; take your time. Enjoy the whole process of crafting something that is going to provide significant value and benefit to yourself and others. Writing can turn in to a laborious chore if viewed as simply a task of being compelled to commit a few facts to paper. I personally get a real buzz from the fact that I’ve started with a blank sheet of paper and taken the time to turn it in to something of real value in which I can take pride. You should take the same pride in the process and your creative output.

OK, I’m Sold – How Do I Publish My Content!?


Brilliant, you’re fired up and ready to go! You’ve written your first article and you're ready to share your wisdom with the world. How do you get it “out there”?

My advice, assuming this is your first foray into blogging is to keep it as simple as possible. I would definitely start by publishing on a super-simple free site such as Blogger.com (owned by Google) or Wordpress.com (their free tier). It is very easy to get hung up on trying to build fancy web sites, experiment with templating systems and try to pepper your site with ads to try to generate revenue. At least initially, forget all of that. Keep it uber simple and see if blogging is for you. Later, once you have ten articles up and you are in to your blogging “flow’ maybe you can get a little more fancy and branch out into a more refined home for your content.

Trust me, CONTENT IS KING. The vast majority of your visitors will hit your site from a Google search and will spend just a few seconds to decide if your content is what they are after. They’ll maybe hang around for a few minutes longer if the content looks promising is helping answer their question. The color scheme and aesthetics are very much a secondary consideration, as long at the content is readable.

Although there are considerations about the type of device your audience may be using (e.g. a laptop browser, a smartphone screen), most blog sites will take care of this and render articles in some sort of readable format for the device being used.

I’d also consider sticking with a “big player” for your blog site. I once went with a smaller, niche-player blog service who subsequently decided to stop offering services and I had my site shut down. The content wasn’t lost, as I was able to migrate to another site, but it was nonetheless very annoying. 

Longer term, you will probably want to host your own web site if you get bitten by the blogging bug. But, my aim here is to get you started…so, keep it simple and focus on the content, not worrying about making it look pretty when starting out.

Bumps In The Road

 

By putting your content out there you are performing a noble service to your fellow professionals and the many people out there who are eager to learn. You are doing a very good thing that is to be celebrated and congratulated.

However…

There will be a few bumps in the road. Some may be caused by yourself, and others are the result of some people out there who obsessively have to nit-pick and find fault with everything they read online (especially if they consider themselves some type of self-appointed “expert”).

But, forewarned is forearmed. Be ready, and look at ways to proactively mitigate some of the more common issues:
  • Getting it wrong: we’re all human…despite our best efforts, we sometimes get things wrong. I’ve certainly had people provide feedback that some aspect of something I have written may be factually incorrect. This is actually a good thing. My approach is to verify the feedback for myself, thank the person and update my blog article accordingly. When I’m in this situation, I will often give the person a credit at the end of the article for their useful feedback. OK, it’s a dent in your pride and can feel quite upsetting when you’ve spent all that time lovingly crafting an article, but your post is now even better and has even more value to the community. Be happy about that 😊
  • Check and check again: Its very tempting to hit that “publish’ button as soon as you possibly can once you’ve completed your latest masterpiece. But, take a breath and take your finger away from that mouse. Have you really read that content through checking for typos, grammatical errors and made sure you definitely took out that section you weren’t initially too sure about? I am a firm believer in letting content “rest”. Leave it a few days, and then come back and re-read it with fresh eyes – you’ll be amazed how many mistakes you’ll pick up that you skimmed over the first time around. This is a great technique if, like me, you don’t have anyone to proof read your content. If you do happen to have a friend who offers to proof read your articles, take them up on their offer! 😊  
  • Suggestions: You’ll often get suggestions of how to improve or extend the content of an article you’ve created. This may include some features or concepts of which you were unaware when creating the article. Again, this can feel quite annoying when you’ve spent many hours or days working on your content, only to be told that you’ve maybe missed out some key information. I treat this very much like the “Getting it wrong” scenario outlined above. Again, when you have the time, embrace the feedback and improve your article with the additional material (assuming it is correct, has merit and will embellish your article)
  • Negative feedback: This is the one most people dread, but to be honest it is incredibly rare in my experience. You will get some people who will criticize everything from your grammar, spelling, opinions, (supposed) incorrect use of acronyms and terms, article length, article depth….the list goes on. This will often be abrupt, possibly rude or wrapped in passive aggressive verbiage of some type. My advice is simple: ignore and move on (easy to say…hard to do).   

Well, that’s all I’ve got for now on blogging. I hope it’s been useful and will inspire you to try your hand at sharing your experience and knowledge with the community.