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	Thu Jul 07 13:21:57 2016 +0000
+++ b/SpwfInterface.cpp	Tue Aug 02 07:05:25 2016 +0000
@@ -335,9 +335,12 @@
     //CHECK:Receive for both Client and Server Sockets same?
     recv = _spwf.recv(socket->id, (char*)data, (uint32_t)size);    
     if (recv < 0) {
-        wait_ms(1);//delay of 1ms <for F4>??
-        return NSAPI_ERROR_WOULD_BLOCK;//send this if we want to block call (else timeout will happen)
+        //wait_ms(1);//delay of 1ms <for F4>??
+        //printf(".");
+        if (recv == -1) return NSAPI_ERROR_WOULD_BLOCK;//send this if we want to block call (else timeout will happen)
+        else return NSAPI_ERROR_DEVICE_ERROR;
     return recv;