2014-12-26 08:50 AM
After firmware update, module does not working.
I was using a cople firmware versions:-- SPWF01S-140512-703c969-RELEASE-main.bin-- SPWF01S-140805-3f58d6b-RELEASE-main.bineach one is does not working.As start address I used 0x8008200.After couple tests I decided to read hex flash data from the second Wi-Fi module and write it to the old one. As result - > The old one is working.On the next step I was using STM32 ST-LINK Utility for the flash programing, start from the 0x8008200 address. But module is still does not working...Could somebody explain me what I am doing wrong?2014-12-27 07:02 AM
If I trying to use OTA for the FW upgrading, I see:
''F/W update model 'SPWF' not matching local 'SPWF01SA'===Ok... How should I understand this? Does it mean that my WiFi module is different from the SPWF01SA?2014-12-28 01:32 AM
Hi Artem,
could you please share the content of AT&V command?A couple of questions:- which FW version is the working one?- which FW version was inside the module, before any update?- what does it happens when a not working FW run? UART, LEDs, etc...Sorry for this.jerry2014-12-28 06:31 AM
I guess, the firmware version for the working module is: 1203-121218_01-30-gf756599-stm_demo
After ''upgrading'' I don't see any blinking on the leds side (leds are OFF) and no answer from the UART.AT&V=========+WIND:2:RESET\0xff\0x00
+WIND:1:Poweron (1203-121218_01-30-gf756599-stm_demo)
+WIND:13:Sagrad IWM: Copyright (c) 2012 Sagrad, Inc. All rights Reserved.
+WIND:3:Watchdog Running
+WIND:0:Console active
+WIND:46:WPA: Crunching PSK...
+WIND:32:WiFi Hardware Started
+WIND:21:WiFi Scanning
+WIND:35:WiFi Scan Complete (0x0)
+WIND:19:WiFi Join: 6C:62:6D:24:99:4D
+WIND:25:WiFi Association with 'Unknow' successful
+WIND:51:WPA Handshake Complete
+WIND:24:WiFi Up: 192.168.1.8
# Dumping All Configuration Keys:
# nv_manuf = ST
# nv_model = SPWF01SA
# nv_serial = 1613D28033
# nv_wifi_macaddr = 00:80:E1:FF:8D:10
# user_desc = (unset)
# localecho1 = 0
# console_uart = 1
# console1_speed = 115200
# console1_hwfc = 0
# console1_enabled = 1
# console2_speed = 115200
# console2_enabled = 0
# localecho2 = 1
# console3_enabled = 0
# console3_speed = 115200
# localecho3 = 1
# sleep_enabled = 0
# wifi_tx_msdu_lifetime = 0
# wifi_rx_msdu_lifetime = 0
# wifi_opr_rate_mask = 0xFFFFFFFF
# wifi_bas_rate_mask = 0x0000000F
# wifi_beacon_interval = 100
# wifi_rts_threshold = 3000
# wifi_ssid = 55:6E:6B:6E:6F:77:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
# wifi_ssid_len = 6
# wifi_channelnum = 6
# wifi_mode = 1
# wifi_auth_type = 0
# wifi_atim_window = 0
# wifi_listen_interval = 3
# wifi_powersave = 0
# wifi_tx_power = 30
# wifi_rssi_thresh = 0
# wifi_rssi_hyst = 0
# wifi_beacon_loss_thresh = 10
# wifi_print_scan_results = 0
# wifi_priv_mode = 2
# wifi_wep_keys[0] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
# wifi_wep_keys[1] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
# wifi_wep_keys[2] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
# wifi_wep_keys[3] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
# wifi_wep_key_lens = 00:00:00:00
# wifi_wep_default_key = 0
# wifi_wpa_psk_raw = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
# wifi_wpa_psk_text = Gogo
# wifi_eap_identity =
# wifi_eap_anon_identity =
# wifi_eap_passwd =
# wifi_eap_subject_match =
# wifi_eap_altsubject_match =
# wifi_eap_peap_options =
# wifi_eap_type = 0
# ip_use_dhcp = 0
# ip_use_httpd = 1
# ip_mtu = 1500
# ip_hostname = sagrad1203
# ip_ipaddr = 192.168.1.8
# ip_netmask = 255.255.255.0
# ip_gw = 192.168.1.3
# ip_dns = 192.168.1.3
# ip_http_get_recv_timeout = 1000
# ip_dhcp_timeout = 232
OK
2014-12-28 09:31 AM
Hi Artem,
I try to figure out what's happening. &You are moving from a 2012 release (the oldest). There is a big big difference from latest releases to that one: usage of low speed external oscillator. After upgrading you should see no LED blinking, and no activity over UART, This ''bad but know'' behavior should stop with a simple power off/on of the module. There is a sort of inner fine-tuning inside the module, needed to be performed on the very first power on of the module after upgrade.This is a one-shot process. Once in a module's lifetime.I assume:- you already powered off (and on again) the module after update from 2012 release?- 0x8008200 is wrong. 0x8002800 is the right one. It was a typo, wasn't it?Thanks for details.Sorry but I'm really far from offices, and I can not test your issue.jerry2014-12-28 10:22 AM
Thanks indeed!
As usual, simple solution which need to be know :)After upgrading, power OFF-ON and some time waiting -- helped me.2015-02-23 03:23 AM
I´m having the same problem, but after power off/on, there is no uart response and no blinking LED´s.
Using Flash Loader and FW_update (prompt) I can write any version without error.Can I ''bricked'' my module anyhow?2015-02-23 11:45 PM
Hi Daniel,
I need some info:- which Flash Loader (ST software) version did you use? Please note that, if you specified a wrong starting address (different from 0x08002800), module is ''broken''. You'll need to contact your local ST support, and ask for a ''full image''.- which ''original'' FW version?- which ''target'' FW version?I'll try to replicate your issue.Thanksjerryps: blink led is, by default, disabled. Check WiFi led (or UART) to be sure that module is alive.2015-02-25 08:46 AM
I solved my problem!
I got another module and copied all the flash content using FlashLoader.Then I used this ''full'' file and, again using FlashLoader, rewrite all flash memory, starting on 0x8000000 address.After this, I had uart communication again. But in an old version.I only could update to a new version using OTA update.This is the AT&V response from the ''alive'' module:# Dumping All Configuration Keys:# nv_manuf = ST# nv_model = SPWF01SA# nv_serial = 3513D41048# nv_wifi_macaddr = 00:80:E1:FF:90:E1# blink_led = 0# wind_off_low = 0x00000000# wind_off_medium = 0x00000000# wind_off_high = 0x00000000# user_desc = anonymous# escape_seq = at+s.# localecho1 = 0# console1_speed = 115200# console1_hwfc = 0# console1_enabled = 1# sleep_enabled = 0# standby_enabled = 0# standby_time = 10# wifi_tx_msdu_lifetime = 0# wifi_rx_msdu_lifetime = 0# wifi_operational_mode = 0x00000011# wifi_beacon_wakeup = 1# wifi_beacon_interval = 100# wifi_listen_interval = 0# wifi_rts_threshold = 3000# wifi_ssid = 53:54:54:65:73:74:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00# wifi_ssid_len = 6# wifi_channelnum = 6# wifi_opr_rate_mask = 0x00003FCF# wifi_bas_rate_mask = 0x0000000F# wifi_mode = 1# wifi_auth_type = 0# wifi_atim_window = 0# wifi_powersave = 0# wifi_tx_power = 18# wifi_rssi_thresh = 0# wifi_rssi_hyst = 0# wifi_ap_idle_timeout = 120# wifi_beacon_loss_thresh = 10# wifi_priv_mode = 0# wifi_wep_keys[0] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00# wifi_wep_keys[1] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00# wifi_wep_keys[2] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00# wifi_wep_keys[3] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00# wifi_wep_key_lens = 00:00:00:00# wifi_wep_default_key = 0# wifi_wpa_psk_raw = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00# wifi_wpa_psk_text =# ip_use_dhcp = 1# ip_use_httpd = 1# ip_mtu = 1500# ip_hostname =# ip_apdomainname = captiveportal.net# ip_ipaddr = 192.168.0.50# ip_netmask = 255.255.255.0# ip_gw = 192.168.0.1# ip_dns = 192.168.0.1# ip_http_get_recv_timeout = 3000# ip_dhcp_timeout = 20and from AT+S.STS:# Status & Statistics:# version = 140805-3f58d6b-SPWF01S# reset_reason = 4# conf_flag = 5# system_uptime = 3284# system_sleeptime = 0# gpio_enable = 0# captiveportal = 0# wifi_state = 5# wifi_bssid = 00:00:00:00:00:00# wifi_aid = 0# wifi_channelnum = 0# wifi_sup_rate_mask = 0x003FFFCF# wifi_bas_rate_mask = 0x00000000# wifi_chan_activity2 = 0x00000112# wifi_max_tx_power = 18# wifi_reg_country =# wifi_dtim_period = 0# wifi_sleeping = 0# wifi_num_assoc = 0# ip_ipaddr = 0.0.0.0# ip_netmask = 0.0.0.0# ip_gw = 0.0.0.0# ip_dns = 0.0.0.0# ip_sock_open = 0# ip_sockd_port = 0# free_heap = 24432# min_heap = 23608# current_time = 3302This is from the ''alive'' and updated module:# Dumping All Configuration Keys:# nv_manuf = ST# nv_model = SPWF01SA1# nv_serial = 2914D34704# nv_wifi_macaddr = 00:80:E1:FF:CC:D3# blink_led = 0# wind_off_low = 0x00000000# wind_off_medium = 0x00000000# wind_off_high = 0x00000000# user_desc = anonymous# escape_seq = at+s.# localecho1 = 0# console1_speed = 115200# console1_hwfc = 0# console1_enabled = 1# sleep_enabled = 0# standby_enabled = 0# standby_time = 10# wifi_tx_msdu_lifetime = 0# wifi_rx_msdu_lifetime = 0# wifi_operational_mode = 0x00000011# wifi_beacon_wakeup = 1# wifi_beacon_interval = 100# wifi_listen_interval = 0# wifi_rts_threshold = 3000# wifi_ssid = 54:45:53:54:45:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00# wifi_ssid_len = 5# wifi_txfail_thresh = 5# wifi_channelnum = 6# wifi_opr_rate_mask = 0x00003FCF# wifi_bas_rate_mask = 0x0000000F# wifi_mode = 1# wifi_auth_type = 0# wifi_atim_window = 0# wifi_powersave = 0# wifi_tx_power = 18# wifi_rssi_thresh = 0# wifi_rssi_hyst = 0# wifi_ap_idle_timeout = 120# wifi_beacon_loss_thresh = 10# wifi_priv_mode = 2# wifi_wep_keys[0] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00# wifi_wep_keys[1] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00# wifi_wep_keys[2] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00# wifi_wep_keys[3] = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00# wifi_wep_key_lens = 00:00:00:00# wifi_wep_default_key = 0# wifi_wpa_psk_raw = 5D:56:4F:E5:DE:15:25:34:BE:7C:66:69:31:01:CD:0F:52:79:B6:F4:E8:0A:98:20:DD:A5:93:F2:05:E3:D5:38# wifi_wpa_psk_text = senha123# ip_use_dhcp = 1# ip_use_httpd = 1# ip_mtu = 1500# ip_hostname = iwm-FF-CC-D3# ip_apdomainname = captiveportal.net# ip_ipaddr = 255.255.255.255# ip_netmask = 255.255.255.255# ip_gw = 255.255.255.255# ip_dns = 255.255.255.255# ip_http_get_recv_timeout = 3000# ip_dhcp_timeout = 20# ip_sockd_timeout = 250and its AT+S.STS:# Status & Statistics:# version = 150130-bab3232-SPWF01S# reset_reason = 0# conf_flag = 5# system_uptime = 286# system_sleeptime = 0# gpio_enable = 0# captiveportal = 0# wifi_state = 10# wifi_bssid = 18:33:9D:5F:9A:70# wifi_aid = 1# wifi_channelnum = 8# wifi_sup_rate_mask = 0x003FFFCF# wifi_bas_rate_mask = 0x0000000F# wifi_chan_activity2 = 0x00000000# wifi_max_tx_power = 18# wifi_reg_country =# wifi_dtim_period = 2# wifi_sleeping = 1# wifi_num_assoc = 0# ip_ipaddr = 172.16.1.6# ip_netmask = 255.255.255.0# ip_gw = 172.16.1.1# ip_dns = 172.16.1.1# ip_sock_open = 0# ip_sockd_port = 0# free_heap = 21184# min_heap = 20272# current_time = 4122015-02-25 11:34 PM
It's fine for SPWF01Sx.1y
Do not repeat these steps using a module without integrated external flash (SPWF01Sx.2y). All production data (MAC address, for example) are lost.