X-NUCLEO-IDW01M1 Wi-Fi expansion board mbed OS 2 ("Classic") library. mbed OS 5 library also available (see below).

Dependencies:   SPWF01SA

Dependents:   SpwfInterface_NSAPI_Testsv2 Nucleo_read_a0_thingspace Nucleo_read_a0_thingspace_mems Cayenne-X-NUCLEO-IDW01M1 ... more

Fork of X_NUCLEO_IDW01M1v2 by ST Expansion SW Team


X_NUCLEO_IDW01M1 is a mbed library for the Wi-Fi expansion board X-NUCLEO-IDW01M1 compatible with STM32 Nucleo.

The software can be used for building Wi-Fi applications with the SPWF01SA module. It is an implementation of the NetworkSocketAPI library from mbed OS 2 ("Classic").
mbed OS 5 library can instead be found at this link.

Firmware Library

The X_NUCLEO_IDW01M1 library comes with a sample application (HelloWorld_IDW01M1v2) and a NSAPI test suite application (SpwfInterface_NSAPI_Testsv2).

This library is only supported on NUCLEO platforms and any platforms with Arduino connector. However connection to arduino needs to be done manually using 4 wires for Vdd, Gnd, Rx and Tx. Example applications have more specific details on exact connections to be used.

The features of the library are :

  • Supports mbed OS 2 ("Classic") NetworkSocketAPI
  • Supports both client sockets
  • Configuration of USART pins to be used

Class SpwfSAInterface is intended to represent the X-NUCLEO-IDW01M1 expansion board with the SPWF module.

The expansion board is basically featuring the component:

  1. a SPWF01SA Serial-to-Wi-Fi module

Example Applications

NSAPI Test Suite

--- a/SpwfInterface.cpp	Tue Jan 10 10:39:56 2017 +0000
+++ b/SpwfInterface.cpp	Fri Jan 13 14:37:49 2017 +0000
@@ -167,6 +167,16 @@
     return (_spwf.settime(ctTime));
+* @brief  get UTC time on wifi module
+* @param  time since epoch in UTC format
+* @retval true on succes
+int SpwfSAInterface::get_time(time_t *ctTime)
+    return (_spwf.gettime(ctTime));
 int SpwfSAInterface::set_TLS_certificate(char *cert, unsigned int size, CertType_t type)
     return (_spwf.setTLScertificate(cert, size, type));    
@@ -223,7 +233,7 @@
     socket->server_port = id;
     socket->proto = proto;
     socket->connected = false;
-    if (isSecure_socket()) socket->secure = true;    
+    if (isSecure_mode()) socket->secure = true;    
     else socket->secure = false;
     *handle = socket;
     return 0;
@@ -254,7 +264,7 @@
 * @param  none
 * @retval true if secure
-bool SpwfSAInterface::isSecure_socket(void)
+bool SpwfSAInterface::isSecure_mode(void)
     return isSecure;