Skip to main content
mbortole9
Associate
July 28, 2015
Question

How to update firmware FPWF01SA via OTP?

  • July 28, 2015
  • 16 replies
  • 2256 views
Posted on July 28, 2015 at 15:54

Hi,

I am wondering how to update FPWF01SA firmware via OTA? I saw the command in the user manual, but I could not find the ST website to download the firmware. And how is the sequence to upgrade the firmare? Moreover, how can I know the last firmware version available?

One more thing: I am trying to communicate the module over UDP and it is not sending/receiving anything. I am wondering if an firmware upgrade will solve this issue.

I really appreciate any help.

Thanks!

Here is AT&V dump:

# Dumping All Configuration Keys:

#  nv_manuf = ST

#  nv_model = SPWF01SA1

#  nv_serial = 2914D34571

#  nv_wifi_macaddr = 00:80:E1:FF:CC:B4

#  blink_led = 0

#  wind_off_low = 0x00000000

#  wind_off_medium = 0x00000000

#  wind_off_high = 0x00000000

#  user_desc = exo

#  escape_seq = at+s.

#  localecho1 = 0

#  console1_speed = 921600

#  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 = 48:32:43: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_ssid_len = 3

#  wifi_channelnum = 6

#  wifi_opr_rate_mask = 0x00003FCF

#  wifi_bas_rate_mask = 0x0000000F

#  wifi_mode = 3

#  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 = 15000

#  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 = 2

#  ip_use_httpd = 0

#  ip_mtu = 1500

#  ip_hostname = H2C

#  ip_apdomainname = captiveportal.net

#  ip_ipaddr = 192.168.1.1

#  ip_netmask = 255.255.255.0

#  ip_gw = 192.168.1.1

#  ip_dns = 192.168.1.1

#  ip_http_get_recv_timeout = 3000

#  ip_dhcp_timeout = 20
    This topic has been closed for replies.

    16 replies

    Gerardo GALLUCCI
    ST Employee
    August 6, 2015
    Posted on August 06, 2015 at 09:04

    Hi,

    - about point 1, I mean: ''module sends what UART grabs''. UART Buffer is sent to remote peer when it's full, and/or timeout (ip_sockd_timeout variable) expires. Every (UART) received byte is collected into the buffer until buffer is not full, and timeout does not occurrs.

    Escape sequence follow also these rules;

    - about point 2: when your socket client opens connection by SOCKON command, remote port is the one you use for this command, while local port is automatically selected by the module itself.

    ciao

    jerry

    mbortole9
    mbortole9Author
    Associate
    August 10, 2015
    Posted on August 10, 2015 at 09:53

    Hi Jerry,

    Once again, thanks for the answer. 

    About the local ports been selected automatically by the module make things really complicated when using UDP. Hope that changes in the next firmware release ;)

    Now I just found another issue in my setup: I am using the command SOCKW:00,22 repeatedly to send data continuously to PC. Between two consecutive commands there is a delay of 1 ms. Basically, I am trying to send a UDP packet with 22 bytes of payload at a 1 kHz (UART = 921600 bps). However, after 10 seconds of working, module hangs and send a message: ILEGAL SOCKET... I tried to slow things down to 100 Hz and the same happens :(

    I am wondering what is the max throughput of the module with UDP? Will I be able to send packets at 1 kHz? Am I missing some config parameters to be able to do that?

    Thanks again for your help!

    Bortole

    Gerardo GALLUCCI
    ST Employee
    August 10, 2015
    Posted on August 10, 2015 at 10:23

    Hello,

    are you waiting for ''OK''/''Error'' before proceeding to the next AT command?

    mbortole9
    mbortole9Author
    Associate
    August 10, 2015
    Posted on August 10, 2015 at 12:12

    Hi Jerry,

    Yes, I am waiting for the OK answer. It comes for the first 10 seconds (more or less), then the error messages appears :( 

    Gerardo GALLUCCI
    ST Employee
    August 10, 2015
    Posted on August 10, 2015 at 14:08

    During my tests, I have no delay between 2 consecutive SOCKWs. I simply run a command, expect the OK/ERROR, and then another command again. I usually stream files of megabytes in size.

    Since UDP has no network events notifications (UDP socket client is ''alwas opened''), when you get ''ILLEGAL SOCKET ID'' as answer, the module did not get the right socket number, or lost the socket number at all.

    Since you are using 921600 as baudrate, try to enable the flow control.

    j

    mbortole9
    mbortole9Author
    Associate
    August 10, 2015
    Posted on August 10, 2015 at 16:08

    Hi Jerry,

    You were right, due to a bug in my code I was sending a new command before OK response was completely received. After I fixed that, no more ILEGAL SOCKET ID response :) 

    However, throughput of the module is really lower than I expected. No more than 250 Hz can be achieved with a small payload as 22 bytes in UDP :( I am wondering now if those modules are a good choice for real time communications between two robotics systems...

    Thank you very much for all your time and help!

    Bortole