The Three (no, Four) Most Important Aspects of Software for Wi-Fi Enabled Devices

The Three (no, Four) Most Important Aspects of Software for Wi-Fi Enabled Devices

With the increasing complexity of wireless connectivity and the almost universal need for devices to connect over the IoT, ease of integrating standard communications is becoming essential. Wi-Fi has grown to a wide-ranging specification that can best be tamed using pre-developed software.


In the real world, time is money, and they are both in short supply for designers who are under tight constraints when designing new Wi-Fi connected devices.  Add to this increasingly challenging equation the required element of talent, and it turns out that you would need to be a certified genius to build and maintain a successful Wi-Fi solution from scratch that adhered to all the basic, advanced, and evolving standards requirements involved in an 802.11 product.

And that would just be getting to the point of having a device that can connect and exchange data back and forth with other devices, which brings us to all the useful standards for allowing devices to interoperate quickly, easily, and consistently for all users. This can often appear as a complex and confusing “word cloud” with all kinds of related terms (Figure 1).

Figure 1
“Word cloud” of related terms in IoT device communication, Internet, and Cloud connectivity.

Let’s assume for now that the hardware design is solid, the antenna design is good and will pass FCC, CE, IC, TELEC, RoHS, REACH and any others (like conflict metals requirements), and let us then focus on the software needs of a Wi-Fi enabled device.  Consider terms like Apple Bonjour, MQTT messaging protocol, WPS Configuration, ProbMe, WPA Enterprise (TLS, TTLS, EAP), Security Certificates, Roaming support, Serial to Wi-Fi, Secure sockets with TLS support, TCP and UDP protocols, SPI, UART, Over The Air (OTA) system updates, Wi-Fi Direct (P2P), and Wi-Fi Monitor mode (Sniffer Mode).  This truly is a case where a Wi-Fi product is 80% hardware and 80% software and 100% about compatibility.

For starters, let’s break the primary capability areas of software for Wi-Fi products into three categories: core Wi-Fi functionality, interoperability standards support and advanced features supporting configuration, control, and security. A fourth emerging aspect of Wi-Fi devices that is almost all software based is Cloud/IoT/IoE/M2M connectivity, so let’s add a fourth category, Internet/Cloud connectivity (Figure 2).

Figure 2
Wi-Fi based IoT devices require many different types of software in order to effectively communicate their application’s data to local peer devices, wireless network, and up to the Cloud.

In order to assess the minimum requirements of a module, and compare apples to apples, the designer should create a list with which to do comparisons.  Table 1 is a high level Pre-Checklist for the ideal IoT module that would effectively eliminate any and all hardware effort and limit development to the software and internet/Cloud connectivity elements to Wi-Fi enable the device:

Table 1
Key IoT device features that should form the base for any Wi-Fi module.

Let’s presume this list of items is in place. Beyond the physical connection of the pins of the module to the rest of the circuitry, what is left to do is to load the code into the module.

Note that we are assuming in this case that there is a host processor in place and the module is primarily going to be used as a smart serial/Wi-Fi connection. Otherwise the code for the embedded 32bit MCU would need to be developed as well and the rest of the hardware design fleshed out which would be a separate embedded hardware design article.  Let’s just assume the hardware design is done and the module is being dropped in to enable the device with Wi-Fi connectivity, and ultimately, connection to the Internet and Cloud services.

Core Wi-Fi Functionality

Now that we know that we have solid hardware for our module to develop and deploy our design, we need to make sure the core 802.11/Wi-Fi features are in place, accessible, and up to date with the newest standards to make sure the device will function in as many environments as possible (new networks and legacy networks).  So we need to confirm that the module supports the following items at the core level. Ideally, this support is included for free as part of the software provided with the module (Table 2).

Table 2
Core Wi-Fi software functionality that should be at the base of every implementation.

Interoperability Standards and Support

For devices to communicate with other devices or within a wireless network, they need to have methods and protocols that allow them to interoperate using standard and mutually agreed upon messaging formats.  Within Wi-Fi networks there are both basic and advanced capabilities that can be implemented or provided to extend the use of the device for home, commercial, and industrial purposes (Table 3).

Table 3
Advanced hardware features supporting configuration, control, and security.

As the use of IoT devices increase, user adoption will largely be driven by the ease and speed of establishing and using the devices in existing and future networks and networked devices.  Amongst the myriad rapidly evolving standards and advanced features, it is important that developers provide users the ability to leverage as many of these capabilities given the variety of environments in which devices will be expected to be installed. Some of these advanced features are listed in Table 4.

Table 4
Advanced features increasingly under demand in wireless connectivity.

Internet/Cloud connectivity

The ultimate vision of IoT devices is to be connected to the larger public Internet (world wide web) and be able to easily connect with devices anywhere at any time to leverage the sharing of data to better optimize their own operation (or inform the operation of other devices).  In order to get beyond direct personal connections to devices, resources must be available to talk outside of the local area network.  The prevailing view is to have these devices talk to Cloud storage locations to capture and share the data with other devices that are also connected to the Cloud (Table 5).

Table 5
Resources needed to be able to talk to the Cloud outside the local network.

All Wrapped up in a Single Package

Ideally, all of the capabilities from the core Wi-Fi functionality all the way to the evolving Cloud provider connectivity should be provided “out of the box” to a developer so that they need not worry about having to develop, test, and maintain these on their own.  In the case of the Econais WiSmart offering this is definitely the case.

An increasing number of designers are planning on devices operating autonomously as well as connected to Cloud services – the devices have to be smart enough to perform their functions should they lose connection to their peers in the local network as well as if they were to lose connection with the internet/Cloud.  In effect, these devices need to fail “Smart”.  Additionally, the vast amounts of data that will be generated from myriad devices all over a home, commercial, mobile, or an industrial setting, will require that the devices be smart enough to identify “events” that need to be communicated to peer devices, to other devices remote from the local network, or even into the Cloud.

The collected data may be held locally (where transmission bandwidth costs are high), not transmitted at all (where power and storage are too expensive), or real-time (where the bandwidth is inexpensive and readily available).  It is important to keep in mind the evolving expectations of networks of IoT devices that will increasingly benefit from knowing about and communicating with their peers, operating on their own when a connection may not be available and communicating globally through the Cloud.

The libraries for all of these capabilities are provided without additional expense for the use of the software on the WiSmart Wi-Fi modules.  The Econais libwismart API is a comprehensive and continuously enriched middleware library that enables developers, designers, engineers to simplify and speed the design process with application examples, free toolchain, API’s, etc.  In addition, the built in support for IoT device design and additional support resources like Design Support (no matter what size company or product you are working in), online Knowledgebase, and Technical Support, enables device designers to quickly and cost effectively deliver high quality IoT devices and systems.

If you had given yourself a quiz on all the terms above before you read all of the descriptions (or even now after you have read them), how many would you have gotten right and how many would you be able to implement by yourself?  How large a team would you need to implement, test, verify and support all of the ones relevant to your application?   How big would the team and talent need to be to support and maintain the variety of capabilities needed to cost effectively roll out web connected Wi-Fi devices? It makes a lot of sense to consider a Wi-Fi connectivity solution that includes all the software and tech support built in so that your team could get on about the business of getting your device up and running and on the internet as quickly and securely as possible.

San Jose, CA
(408) 726-3600