SPWF04 Wi-Fi module

SPWF04 : Low-Power Wi-Fi And Powerful MCU for MicroPython Applications

Internet of Things, Our products, Security 1 Comment

The SPWF04 Wi-Fi module recently launched by ST is designed to facilitate the development of cloud applications used by small or IoT devices connected to the web. Nowadays, offering 802.11 connectivity to customers is less of a luxury and more of a necessity. As TVs, consoles, multimedia boxes, and even refrigerators, weighing scales, or washing machines, find their way online, launching a product without Wi-Fi is the exception. The wireless protocol is also hugely popular in industrial environments as a way to improve machine-to-machine communication, or automation. However, integrating Wi-Fi is far from easy, as engineers have to deal with receivers, transmitters, international regulations, and power consumption, just to name a few constraints. This is where the SPWF04 module shines, because it takes the complexity out of the equation to offer a module that is very easy to prototype, and even simpler to implement in the final design.

SPWF04 : CW1100 And STM32F439

All the components of the SPWF04 (Click to enlarge)

The SPWF04 uses a CW1100 radio, which includes a power amplifier, and a switch mode power supply. It is compatible with 802.11b/g/n in the 2.4 GHz band only, and it even includes a co-existence mechanism with Bluetooth, should one wish to add this wireless protocol to a device.

ST’s “secret weapon” is the fact that this transceiver is coupled with a STM32F439 microcontroller (MCU), opening engineers to a world of possibilities. For instance, its Cortex-M4 architecture runs at 180 MHz and can reach 608 points in CoreMark, which is far more powerful than similar modules from competitors. Furthermore, ST also includes 256 KB of SRAM, 2 MB of Flash memory, 1 MB for the module firmware and another megabyte of storage for the user’s data and application. The MCU can also use an external memory via the SD/MMC interface, or an external flash module using SPI. As a result, engineers can design web applications that can run directly on the module, thanks to a generous amount of power and memory.

Optimized For Security

The MCU enhances security operations thanks to an integrated crypto-core designed to accelerate AES–128, –192, and –256 operations, as well as Triple DES, MD5, SHA–1, and SHA–2. This is fundamental because many operations, from WPA password handling, to HTTPS secure socket management, rely on these cryptographic standards. As a result, engineers can design very secure applications without worrying about the impact of the crypto-operations on the overall performance.

The SPWF04 is also the first Wi-Fi module from ST to be compatible with WPA2-Entreprise, for added security. Often called the “gold standard” of wireless network security, it relies on a RADIUS server to authenticate the module. Therefore, this new feature makes the SPWF04 suitable for industrial applications that rely on more secure platforms. The module is also the first to be compatible with Wi-Fi Protected Setup (WPS), a great system that makes connecting a consumer product to a private Wi-Fi a breeze. Hence, this illustrates how the component can accomodate a very wide range of use cases.

MicroPython and TCP/IP

The MicroPython Stack on the SPWF04 (Click to enlarge)

The other major feature of the SPWF04 is its MicroPython scripting engine, which was absent from previous ST Wi-Fi modules, like the SPWF01SA, included on the X-NUCLEO-IDW01M1 and often used on discovery boards, such as the 32F723EDISCOVERY. Thanks to the power of the STM32F4, it is possible to easily create applications designed to monitor Wi-Fi connections, increase security, optimize data transfer, or analyze certain patterns, without needing an external MCU. The system includes a MicroPython 1.6 interpreter, and it is possible to use peripherals through UART, SPI, I2C, or GPIOs, by calling the standard MicroPython libraries. ST even provides specific libraries for the SPWF04 itself, so developers can better utilize their hardware. A quick-start guide with sample python code is available on ST’s website.

Furthermore, becausehttp://www.st.com/resource/en/application_note/DM00345374.pdf the SPWF04 targets cloud applications, it includes a full TCP/IP stack capable of running a web server or providing application capabilities. For instance, it is possible to setup two different server sockets, each capable of managing eight TCP or UDP clients simultaneously. As a result, even an embedded device can now offer web services via HTTP, which can prove to be invaluable as a means of simplifying interfaces while increasing the power of applications. Using a familiar platform like the web can also greatly decrease development times.

What Will You Make ?

The X-NUCLEO-IDW04A1 board with the SPWF04SA at the bottom (Click to enlarge)

Despite all this, the SPWF04 offers low-power modes with a sleep state needing just 3 mA, and a standby state consuming a meager 43 µA, while receiving and transmitting data typically only requires 105 mA and 260 mA respectively. Hence, the module is a great way to add Wi-Fi connectivity, and web features, to small devices relying on a battery.

Finally, the SPWF04 offers great flexibility, as ST has created two versions of the module. They are identical except that the SPWF04SA uses an on-board antenna, whereas the SWPF04SC offers a connector for an external antenna. To top it off, it is extremely easy to start a prototype thanks to the X-NUCLEO-IDW04A1, a board that uses the SPWF04SA, and that can connect to a Nucleo board using its Arduino connector. As a result, engineers can start their application with the X-NUCLEO board, then move to their final products using just the SPWF04, with very little change to their code.