Planning a Wifi Deployment with Ekahau Site Survey

Ekahau Site Survey animation

In March 2014 I was tasked with a new wireless deployment in a unique environment. The building had plaster on top of two inch plywood with stone inside and outside the structure. Aesthetics was a high priority which made the task that much more difficult.

Going into this project I knew I had to perform a wireless site survey before deploying a Cisco WLAN Controller and about 15 access points. Another vendor was working on a separate project that relied on the wireless network. They initially walked through the building with their wireless phones stating dropped areas (there was a previous wifi installation but was being revamped by me.)

With much research, I decided to purchase Ekahau Site Survey with the purpose of planning, deploying, and troubleshooting this new wireless deployment.

The Ekahau Site Survey purchase included the USB Adapter for the survey and the software. Through my reseller, the cost was $3,500. It supports Windows 7 and 8 and you need at least 4GB of RAM or more. Sorry OS X users. It might work through Parallels.

In the rest of this blog post I will be referring to the planning portion of Ekahau Site Survey.

Before Starting

Before we jump into planning a wireless network deployment, there are a few things to consider. For one, you need a floor plan. Without it, you cannot do anything else. Acquire the floor plan from facilities in the format of any of the following:

  • CAD
  • SVG
  • JPG
  • BMP
  • GIF
  • PNG

After adding the floor plan to Ekahau Site Survey, you must set the scale. This is important. The application has no idea what the length of a wall is, or a window, or how large the property is. Another reason for setting the scale is for the application to properly calculate things such as free space path lost and other wireless survey calculations.

In addition to setting the scale you need to lay out the walls. In a typical office environment this is dry wall but there are many options to select from. Select the wall material, click where the wall is on the floor plan – beginning to end – and right click to mark the end of the wall. Defining the walls on your floor plan will help create an accurate plan as Ekahau Site Survey calculates wifi signal propagation.

Defining Walls

If you’re working with multiple floors you will need to set alignment points to align each floor properly.

Before we move on to the next step, have you gathered the client’s requirements? Requirements such as where there needs to be wireless coverage, how many wireless clients are expected on this network, any QoS requirements? There are many more questions to ask but you need to have this list before moving on.

Capacity Requirements

How do we know if our wireless network will support the capacity? We can estimate this by inputting devices into the Capacity Requirements window. Add in how many wifi devices you believe will be on the network and what type. It’s straight forward but the amount of devices you put in will affect the outcome of the plan provided by Ekahau Site Survey. This is a good window to estimate BYOD.

Setting the capacity requirements

]3 Setting the capacity requirements

Coverage Requirements

Ekahau Coverage Area Button

What is the end user expecting from the wireless network? Are the requirements just email and web usage? Is it going to be high usage? Maybe voice is primarily utilizing the wireless network? Whatever the requirements are, gather them from your end user.

In Ekahau Site Survey, set the Coverage Requirements by clicking on Project and then clicking on Coverage Requirements.

Define the coverage requirements.

Ekahau Site Survey includes a handful of template requirements which you can select from and tune. The Criteria you can set is the following:

  • Signal Strength
  • Signal-to-noise ratio
  • Data rate
  • Number of access points (when signal strength is x dBm)
  • Ping round trip time
  • Packet loss

Additionally, you can set different conditions such as source of noise, network load, and adapter type.


Once you’ve performed the actions above, it’s time to plan. Ekahau Site Survey includes a feature called Auto-Planner. This plan is based on the coverage and capacity requirements you previously configured. Access points are automatically placed on the floor plan to optimize channels and minimize channel interference.

First, define the coverage area by clicking on the Coverage Area button then define the area on the floor plan. The selected coverage area will be displayed in purple (lilac to be accurate). Right click to end the coverage area and you will see a bordered dash line.

Define the coverage area on the floor plan.

Next, click on the Auto-Planner button.

Ekahau Auto-Planner Dialog Window

Define the Coverage and Capacity requirements that you had previously configured.

Under the Access Point section you have the option of selecting a Generic AP or you can click on the drop down to select another vendor such as Aruba, Cisco, Linksys, etc.

Enable the Advanced settings and modify the Transmit power and Antenna height as necessary.

An important option at the bottom are the Channel patterns. Selection of channels will depend on your country’s standards. The options I selected are used for United States.

When you’re ready click on Create Plan.

If you’re not happy with the placement of access points on the map you have the ability to move them around as you see fit. You can also change the type of antenna on the access point list.

Access Point list in Ekahau

Final Thoughts

No more guessing at where to place access points. You’re doing a disservice to yourself and the end users. Placing access points in the blind may affect wireless performance. Ekahau Site Survey Pro provides tremendous value for the cost. It includes the USB adapter and the software. Additionally, it makes wireless site surveys simple to perform. With that said, it doesn’t mean you can skimp on knowing wireless technologies. Performing a wireless site survey requires the knowledge of wireless networks with the end goal of successfully planning a wireless network with client requirements.

To learn more about wireless I highly suggest reading the CWNA Study Guide. It’s full of so much information pertaining to planning and deploying wireless networks. If it’s a Cisco wireless network you’re deploying, also check out the CCNA Wireless book.

Additional online resources are Andrew Von Nagy’s blog, revolutionwifi, and Keith Parson’s Wireless LAN Professional site and podcast. One specific podcast that helped a lot was the 7 Rules for Accurate Site Surveys.

9 thoughts on “Planning a Wifi Deployment with Ekahau Site Survey”

  1. Rowell, great post. I used to work with Ekahau and I do agree with you that this tool is very powerful and they are really a true leader on this development, they are continuously making improvements and you got to test how easy it is. WiFi is an emerging technology with more and more changes over time, a site survey is a MUST practice. Great document!!!!!

    1. Rowell says:

      Thanks for the feedback Alvaro!

  2. qureshi says:

    Hello Rowell,

    Nice to hear from you…

    i need small information for me..

    we are buying this Ekahau pro 7.0 version, want to know the price you have buyed.

    as they are charging more on this,want to know your price,so please help me in finding the real price from ekahau..

    waiting for you reply.

    1. Rowell Dionicio says:

      Hi Qureshi,

      I think Ekahau Pro is reasonably priced for the features you are receiving. I suggest you get a quote from your local VAR. I got my copy for under $4000.

      1. mqureshi2014 says:

        Thanks for your advice and help…

        need one info from your experiance,it urgent

        one of our customer wants the Access point to be mounted under the false ceiling .(that to Wall mounted )..

        they have installed few with prevoius company but facing some coverage issues.

        kindly let me know, is it recomended to install under the false ceiling or it has to be outside of ceiling..

        kindly advice on this…


        1. Rowell Dionicio says:

          When you say under the false ceiling are you referring to it being visible and mounted?

          I recommend having it wall mounted or mounted under the ceiling instead of above the ceiling.

          I’ve done installations with APs above the ceiling and have received poor signal quality.

          Perform a site survey to confirm your results.

          1. mqureshi2014 says:

            Thanks for the information you provided..

            under the ceiling means…placed inside the false ceiling,
            invisible to people/users present in the building..

            as said,it will have signal loss when placed inside (above) the ceiling.

            can we mount A.P under the ceiling with ceil mounting instead of Wall mounting.

            sorry for disturbing you,one last think to ask…

            i have a floor plan of a hospital which is huge one with multiple blocks in it.( 6 floor building).

            when i load the floor plan in survey tool, i am not able to load complete CAD file( floor 1).

            all blocks are looking very small and are not able to measure.

            want to know,is there any alternative to do survey for such big floor plans.

            should i divide the plan and do the survey.

            please advise on this matter.it will be great help for me..

  3. Rowell Dionicio says:

    You should be able to load a CAD file as long as it is a DWG or DXF extension.

  4. Spanky M says:

    So, this survey tool works based on all the input you give it about walls and materials and user requirements and you don’t need any AP’s or to actually walk the space? I had used a version of Ekahau years ago where I loaded a floor plan and walked a space that had wifi and got a heat map.

    I guess my question is how do you properly survey a site that does not have wireless already or is moving from 802.11n or older to ac?

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

[gravityforms id=16 title=false description=false]
<script type="text/javascript">var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(r=Array.prototype.slice.call(r,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==n?t.apply(null,r):r[0]=t.apply(null,r)})),"filter"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});</script> <div class='gf_browser_chrome gform_wrapper gravity-theme' id='gform_wrapper_16' ><form method='post' enctype='multipart/form-data' id='gform_16' action='/planning-a-wifi-deployment-with-ekahau-site-survey/' > <div class='gform_body gform-body'><div id='gform_fields_16' class='gform_fields top_label form_sublabel_below description_below'><fieldset id="field_16_1" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_16_1"><legend class='gfield_label gfield_label_before_complex' >Name<span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name no_last_name no_suffix gf_name_has_1 ginput_container_name' id='input_16_1'> <span id='input_16_1_3_container' class='name_first' > <input type='text' name='input_1.3' id='input_16_1_3' value='' aria-required='true' placeholder='First Name' /> <label for='input_16_1_3' >First</label> </span> </div></fieldset><div id="field_16_2" class="gfield gfield--width-full gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_16_2"><label class='gfield_label' for='input_16_2' >Email<span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_2' id='input_16_2' type='text' value='' class='large' placeholder='Business email address' aria-required="true" aria-invalid="false" /> </div></div><fieldset id="field_16_3" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_16_3"><legend class='gfield_label gfield_label_before_complex' >Consent<span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='ginput_container ginput_container_checkbox'><div class='gfield_checkbox' id='input_16_3'><div class='gchoice gchoice_16_3_1'> <input class='gfield-choice-input' name='input_3.1' type='checkbox' value='I consent to the processing and sharing with partners of the personal data that I provide Packet 6 for this activity in accordance with and as described in the &lt;a href=&quot;https://packet6.com/privacy-policy&quot; target=&quot;_new&quot;&gt;Privacy Policy&lt;/a&gt;' id='choice_16_3_1' /> <label for='choice_16_3_1' id='label_16_3_1'>I consent to the processing and sharing with partners of the personal data that I provide Packet 6 for this activity in accordance with and as described in the <a href="https://packet6.com/privacy-policy" target="_new">Privacy Policy</a></label> </div></div></div></fieldset><div id="field_16_4" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_16_4"><label class='gfield_label' for='input_16_4' >Email</label><div class='ginput_container'><input name='input_4' id='input_16_4' type='text' value='' /></div><div class='gfield_description' id='gfield_description_16_4'>This field is for validation purposes and should be left unchanged.</div></div></div></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_16' class='gform_button button' value='Get the report' onclick='if(window["gf_submitting_16"]){return false;} window["gf_submitting_16"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_16"]){return false;} window["gf_submitting_16"]=true; jQuery("#gform_16").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_16' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='16' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_16' value='WyJbXSIsImY4MGVlNTA5MGVjMWYzYzU5NzUyOGFhOWE3ZGFiMzRlIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_16' id='gform_target_page_number_16' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_16' id='gform_source_page_number_16' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_2" name="ak_js" value="66"/><script>document.getElementById( "ak_js_2" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div>