Mbed Cloud example program for workshop in W27 2018.

Dependencies:   MMA7660 LM75B

Committer:
MACRUM
Date:
Sat Jun 30 01:40:30 2018 +0000
Revision:
0:119624335925
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MACRUM 0:119624335925 1 # Prototype Driver for STM Wi-Fi Expansion Boards based on the SPWFxx Module for STM32 Nucleo #
MACRUM 0:119624335925 2
MACRUM 0:119624335925 3 ## Currently supported expansion boards
MACRUM 0:119624335925 4 * [X-NUCLEO-IDW01M1](http://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-boards/stm32-ode-connect-hw/x-nucleo-idw01m1.html), by setting `mbed` configuration variable `idw0xx1.expansion-board` to value `IDW01M1`
MACRUM 0:119624335925 5 * [X-NUCLEO-IDW04A1](http://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-boards/stm32-ode-connect-hw/x-nucleo-idw04a1.html), by setting `mbed` configuration variable `idw0xx1.expansion-board` to value `IDW04A1`. You might also need to define macro `IDW04A1_WIFI_HW_BUG_WA` _(see beyond)_.
MACRUM 0:119624335925 6
MACRUM 0:119624335925 7 ## Configuration examples
MACRUM 0:119624335925 8
MACRUM 0:119624335925 9 ### Generic concepts
MACRUM 0:119624335925 10
MACRUM 0:119624335925 11 For the ones, which might be less familiar with the **"The mbed configuration system"** in general, here is a [link](https://docs.mbed.com/docs/mbed-os-handbook/en/latest/advanced/config_system/) which points to the latest version of the respective _mbed OS 5 handbook tutorial_.
MACRUM 0:119624335925 12
MACRUM 0:119624335925 13 Furthermore, with respect to this driver, pls. refer to files [`mbed_app_idw01m1.json`](https://github.com/ARMmbed/wifi-x-nucleo-idw01m1/blob/master/mbed_app_idw01m1.json) and [`mbed_app_idw04a1.json`](https://github.com/ARMmbed/wifi-x-nucleo-idw01m1/blob/master/mbed_app_idw04a1.json) regarding additional reference for what is explained beyond.
MACRUM 0:119624335925 14
MACRUM 0:119624335925 15 ### IDW01M1
MACRUM 0:119624335925 16
MACRUM 0:119624335925 17 Add the following lines to the `target_overrides`-section of your `mbed_app.json` file.
MACRUM 0:119624335925 18
MACRUM 0:119624335925 19 ``` json
MACRUM 0:119624335925 20 "idw0xx1.expansion-board": "IDW01M1",
MACRUM 0:119624335925 21 "drivers.uart-serial-txbuf-size": 512,
MACRUM 0:119624335925 22 "drivers.uart-serial-rxbuf-size": 512
MACRUM 0:119624335925 23 ```
MACRUM 0:119624335925 24
MACRUM 0:119624335925 25 `IDW01M1` is the default value in the [`mbed_lib.json`](https://github.com/ARMmbed/wifi-x-nucleo-idw01m1/blob/master/mbed_lib.json) file, so setting the expansion board is not mandatory for `IDW01M1`, while setting the TX & RX buffer sizes is highly recommended.
MACRUM 0:119624335925 26
MACRUM 0:119624335925 27 ### IDW04A1
MACRUM 0:119624335925 28
MACRUM 0:119624335925 29 Add the following lines to the `target_overrides`-section of your `mbed_app.json` file.
MACRUM 0:119624335925 30
MACRUM 0:119624335925 31 ``` json
MACRUM 0:119624335925 32 "idw0xx1.expansion-board": "IDW04A1",
MACRUM 0:119624335925 33 "drivers.uart-serial-txbuf-size": 512,
MACRUM 0:119624335925 34 "drivers.uart-serial-rxbuf-size": 512
MACRUM 0:119624335925 35 ```
MACRUM 0:119624335925 36
MACRUM 0:119624335925 37 ### Further configuration macros
MACRUM 0:119624335925 38
MACRUM 0:119624335925 39 All configuration options mentioned in this section are optional and when required have to be added to the `macros`-section of your `mbed_app.json` file, e.g.:
MACRUM 0:119624335925 40
MACRUM 0:119624335925 41 ``` json
MACRUM 0:119624335925 42 "macros": [..., "IDW04A1_WIFI_HW_BUG_WA", "SPWFSAXX_RESET_PIN=D7"]
MACRUM 0:119624335925 43 ```
MACRUM 0:119624335925 44
MACRUM 0:119624335925 45 Beyond you can find the list of available configuration macros each with a short explanation:
MACRUM 0:119624335925 46 * `IDW04A1_WIFI_HW_BUG_WA`: activates the HW bug workaround for `IDW04A1`
MACRUM 0:119624335925 47 * `SPWFSAXX_WAKEUP_PIN`: defines module wakeup pin _(requires value)_
MACRUM 0:119624335925 48 * `SPWFSAXX_RESET_PIN`: defines module reset pin _(requires value)_
MACRUM 0:119624335925 49 * `SPWFSAXX_RTS_PIN`: defines RTS pin of the UART device used _(requires value)_
MACRUM 0:119624335925 50 * `SPWFSAXX_CTS_PIN`: defines CTS pin of the UART device used _(requires value)_
MACRUM 0:119624335925 51
MACRUM 0:119624335925 52 **Note**: if the values of both `SPWFSAXX_RTS_PIN` and `SPWFSAXX_CTS_PIN` are different from `NC`, hardware flow control - if available on your development board - will be enabled on the used UART device (provided you are using `mbed-os` version greater than or equal to `v5.7.0`).
MACRUM 0:119624335925 53
MACRUM 0:119624335925 54
MACRUM 0:119624335925 55 ## Firmware upgrade
MACRUM 0:119624335925 56
MACRUM 0:119624335925 57 Please make sure that you are using the latest firmware available for the expansion boards. For information on how to perform a FW upgrade you may refer to [X-CUBE-WIFI1](http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-embedded-software-expansion/x-cube-wifi1.html), especially to document **"X-NUCLEO-IDW0xx1- FW upgrading over UART_v1.2.pdf"** which is contained within folder **"Documentation"** of the X-CUBE-WIFI1 software archive you need to download.
MACRUM 0:119624335925 58
MACRUM 0:119624335925 59 The actual firmware `.bin` or `.hex` files can be found under
MACRUM 0:119624335925 60 - [STSW-WIFI001](http://www.st.com/content/st_com/en/products/embedded-software/wireless-connectivity-software/stsw-wifi001.html) _for what concerns expansion board_ X-NUCLEO-IDW01M1 _and under_
MACRUM 0:119624335925 61 - [STSW-WIFI004](http://www.st.com/content/st_com/en/products/embedded-software/wireless-connectivity-software/stsw-wifi004.html) _when considering_ X-NUCLEO-IDW04A1.
MACRUM 0:119624335925 62
MACRUM 0:119624335925 63
MACRUM 0:119624335925 64 ## Known limitations
MACRUM 0:119624335925 65
MACRUM 0:119624335925 66 * Like explained in issue [#11](https://github.com/ARMmbed/wifi-x-nucleo-idw01m1/issues/11), sockets might fail to close in case they are connected to a streaming server (e.g. a [RFC 864](https://tools.ietf.org/html/rfc864) test server).
MACRUM 0:119624335925 67 * As highlighted by issue [#13](https://github.com/ARMmbed/wifi-x-nucleo-idw01m1/issues/13), the module FW limits the maximum segment size for TCP to 730 bytes, while the maximum UDP datagram length might even be further limited (but usually is also equal to 730 bytes).
MACRUM 0:119624335925 68