ST
A world leader in providing the semiconductor solutions that make a positive contribution to people’s lives, both today and in the future.
How to make wifi tests
WIFI ST boards¶
STM32 boards with this ISM43362 built-in module¶
- DISCO_L475VG_IOT01A : https://os.mbed.com/platforms/ST-Discovery-L475E-IOT01A/
- DISCO_F413ZH : https://os.mbed.com/platforms/ST-Discovery-F413H/
WIFI driver code¶
https://github.com/ARMmbed/wifi-ism43362
Add this wifi driver in your mbed-os directory :
cd mbed-os git clone https://github.com/ARMmbed/wifi-ism43362.git
There is no git label, use the master branch.
Configuration for both ST boards are provided by this driver.
For information, file is : https://github.com/ARMmbed/wifi-ism43362/blob/master/mbed_lib.json
mbed-os tests¶
Wifi tests¶
Several mbed-os tests are using WiFi connection :
- tests-netsocket-dns
- tests-netsocket-tcp
- tests-netsocket-tls
- tests-netsocket-udp
- tests-network-interface
- tests-network-wifi
Test setup¶
For netsocket tests, you need to configure 1 access point :
- Internet access
- SSID name : "wifi-secure-ssid" (SSID can be private)
- WPA2 password : "wifi-password"
For network-wifi test, you need to configure 2 access points:
- no need to Internet access
- SSID name : "wifi-secure-ssid" (SSID has to be broadcasted)
- WPA2 password : "wifi-password"
- guest SSID name : "wifi-unsecure-ssid" (SSID has to be broadcasted)
- channel and the BSSID of secure AP : "wifi-ch-secure", "ap-mac-secure"
- channel and the BSSID of unsecure AP : "wifi-ch-unsecure", "ap-mac-unsecure"
Test configuration¶
Now update your mbed_app.json file with :
{ "config": { "echo-server-addr" : { "help" : "IP address of echo server", "value" : "\"echo.mbedcloudtesting.com\"" }, "echo-server-port" : { "help" : "Port of echo server", "value" : "7" }, "echo-server-discard-port" : { "help" : "Discard port of echo server", "value" : "9" }, "echo-server-port-tls" : { "help" : "Echo port of echo server", "value" : "2007" }, "echo-server-discard-port-tls" : { "help" : "Discard port of echo server", "value" : "2009" }, "wifi-secure-ssid": { "help": "WiFi SSID for WPA2 secured network", "value": "\"TOREPLACE\"" }, "wifi-unsecure-ssid": { "help": "WiFi SSID for unsecure network", "value": "\"TOREPLACE\"" }, "wifi-password": { "help": "WiFi Password", "value": "\"TOREPLACE\"" }, "wifi-secure-protocol": { "help": "WiFi security protocol, valid values are WEP, WPA, WPA2, WPA/WPA2", "value": "\"WPA2\"" }, "wifi-ch-secure": { "help": "Channel number of secure SSID", "value": 1 }, "wifi-ch-unsecure": { "help": "Channel number of unsecure SSID", "value": 2 }, "ap-mac-secure": { "help": "BSSID of secure AP in form of AA:BB:CC:DD:EE:FF", "value": "\"TOREPLACE\"" }, "ap-mac-unsecure": { "help": "BSSID of unsecure AP in form of \"AA:BB:CC:DD:EE:FF\"", "value": "\"TOREPLACE\"" }, "max-scan-size": { "help": "How many networks may appear in Wifi scan result", "value": 10 } }, "target_overrides": { "DISCO_F413ZH": { "target.network-default-interface-type": "WIFI", "nsapi.default-wifi-ssid": "\"TOREPLACE\"", "nsapi.default-wifi-password": "\"TOREPLACE\"", "nsapi.default-wifi-security": "WPA2", "ism43362.provide-default": true }, "DISCO_L475VG_IOT01A": { "target.network-default-interface-type": "WIFI", "nsapi.default-wifi-ssid": "\"TOREPLACE\"", "nsapi.default-wifi-password": "\"TOREPLACE\"", "nsapi.default-wifi-security": "WPA2", "ism43362.provide-default": true } } }
You need to update it to indicate your local settings (network SSID, password, ...)
Test execution¶
mbed test -m DISCO_F413ZH -t ARM -v -n tests-net* mbed test -m DISCO_F413ZH -t ARM -v -n tests-network* mbed test -m DISCO_F413ZH -t ARM -v -n tests-network-wifi mbed test -m DISCO_L475VG_IOT01A -t GCC_ARM -v -n tests-netsocket* mbed test -m DISCO_L475VG_IOT01A -t GCC_ARM -v -n tests-netsocket-tcp
WIFI example applications¶
mbed-os-example-wifi¶
https://github.com/ARMmbed/mbed-os-example-wifi
mbed import mbed-os-example-wifi cd mbed-os-example-wifi mbed add wifi-ism43362 <edit mbed_app.json file> "value": "\"SSID\"" "value": "\"PASSWORD\"" mbed compile -t GCC_ARM -m DISCO_L475VG_IOT01A --flash
Pelion Device Ready example¶
https://github.com/ARMmbed/pelion-ready-example
WIFI firmware update¶
Only Wifi module from DISCO_L475VG_IOT01A can be updated (HW limitation for DISCO_F413ZH).
- Drag and drop binary InventekBootloaderPassthrough.bin file from https://www.st.com/resource/en/utilities/inventek_fw_updater.zip
Blue LED should be ON now.
- Download the latest STM32L4 Discovery kit IoT node binary (ISM43362-M3G-L44-SPI-C3.5.2.5.STM) from https://www.inventeksys.com/iwin/firmware/
- Install FLASHER-STM32 tool : https://www.st.com/en/development-tools/flasher-stm32.html
- Start STMFlashLoader Demo.exe
- select the correct COM port (keep Baud Rate 115200 / Parity Even / Echo Disabled / Timeout 30s) => Next
- "Target is readable" => Next
- Select "STM32F2_1024K" => Next
- Download to device: select ISM43362_M3G_L44_SPI_C3.5.2.5.STM.bin / Global Erase / Verify after download => Next