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