Skip to main content
RoSchmi
Associate II
February 21, 2019
Solved

How to control timing of SPWF04SA 'NtpServerDelivery' events

I'm using the SPWF04SA module to write sensor data to Azure Storage Table service by sending https POST request over a socket connection. The application works fine for some hundred requests over several hours but occasionally a WIND: NtpServerDelivery message just occurs when I have opened the socket for writing which makes my program hang (yet unknown reason).

To circumvent this problem I wanted to control the SPWF04SA ntp client so that the WIND: NtpServerDelivery messages occur at a time where I'm just not opening a socket.

I can switch off the NtpServerDelivery with AT+S.SCFG (ip_ntp_startup = 0) command but I'couldn't manage to change the refresh interval with AT+S.SCFG (ip_ntp_refresh = xxxx). Whatever value I write to the 'ip_ntp_refresh' variable (success controlled by reading it back), the WIND: 'NtpServerDelivery' events comes in every 60 minutes.

Is there something I could be doing wrong?

Is there a way to control the timing of the WIND: NtpServerDelivery messages?

    This topic has been closed for replies.
    Elio Cometti
    Elio ComettiBest answer
    Visitor II
    February 26, 2019

    ​Hello,

    Is the masking of WINDs suitable for your application?

    I cross checked the ntp refresh config, actually in release 171117-0328fe3 the ip_ntp_refresh value is not taken into account.

    Regards,

    Elio

    7 replies

    Elio Cometti
    Visitor II
    February 22, 2019

    ​Dear,

    the WIND:84 message is printed to inform the user that the NTP client has just updated the RTC.

    You can selectively disable the WIND printing by means of console_wind_off_* variables. In order to disable WIND:84 you should set bit 20 in console_wind_off_high.

    About ip_ntp_refresh, it can be changed runtime (i.e. there is no need to save config or reboot the SPWF04), the timeout is computed since last NTP refresh.

    As an example:

    AT+S.SCFG=ip_ntp_refresh,30
    AT-S.OK
    +WIND:84:NTP Server delivery:2019.2.22:5:9.5.52
    +WIND:84:NTP Server delivery:2019.2.22:5:9.6.22
    AT+S.SCFG=console_wind_off_high,0x100000
    AT-S.OK
    AT+S.SCFG=console_wind_off_high,0
    AT-S.OK
    +WIND:84:NTP Server delivery:2019.2.22:5:9.7.50
    +WIND:84:NTP Server delivery:2019.2.22:5:9.8.20

    Regards,

    Elio

    RoSchmi
    RoSchmiAuthor
    Associate II
    February 22, 2019

    Thanks for your answer,

    it is strange, I tried again to change 'ip_ntp_refresh' time. I can set the variable. When I read back the changed variable with 'AT+S.GCFG=ip_ntp_refresh' I get: 'AT-S.Var:ip_ntp_refresh=30'. So I think that I can conclude that the content is effectively changed. Nevertheless I do not get '+WIND:84:NTP Server delivery:.... ' every 30 sec.

    Elio Cometti
    Visitor II
    February 22, 2019

    ​Hello,

    could you post you Configuration (AT+S.GCFG) and Status (AT+S.STS)?

    RoSchmi
    RoSchmiAuthor
    Associate II
    February 22, 2019

    AT+S.SCFG=ip_ntp_refresh,30

    AT-S.OK

    AT+S.GCFG

    AT-S.List

    AT-S.Var:nv_manuf=ST

    AT-S.Var:nv_model=SPWF04SA

    AT-S.Var:nv_serial=3817Z31881

    AT-S.Var:nv_wifi_macaddr=00:80:E1:C3:C5:0E

    AT-S.Var:standby_time=10

    AT-S.Var:standby_enabled=0

    AT-S.Var:sleep_enabled=0

    AT-S.Var:etf_mode=0

    AT-S.Var:blink_led=1

    AT-S.Var:ext_volume=1

    AT-S.Var:ramdisk_memsize=16

    AT-S.Var:aes128_key=00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

    AT-S.Var:user_desc=anonymous

    AT-S.Var:python_script=3:/uPython_test.py

    AT-S.Var:python_memsize=32

    AT-S.Var:console_enabled=1

    AT-S.Var:console_speed=921600

    AT-S.Var:console_hwfc=0

    AT-S.Var:console_echo=1

    AT-S.Var:console_errs=2

    AT-S.Var:console_winds=2

    AT-S.Var:console_verbose=1

    AT-S.Var:console_repeater=0x21

    AT-S.Var:console_delimiter=0x2C

    AT-S.Var:console_wind_off_low=0x00000000

    AT-S.Var:console_wind_off_medium=0x00000000

    AT-S.Var:console_wind_off_high=0x00000000

    AT-S.Var:wifi_tx_msdu_lifetime=0

    AT-S.Var:wifi_rx_msdu_lifetime=0

    AT-S.Var:wifi_operational_mode=0x00000011

    AT-S.Var:wifi_beacon_wakeup=1

    AT-S.Var:wifi_beacon_interval=100

    AT-S.Var:wifi_listen_interval=0

    AT-S.Var:wifi_rts_threshold=3000

    AT-S.Var:wifi_ssid=46:72:69:42:6F:32:34: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

    AT-S.Var:wifi_ssid_len=7

    AT-S.Var:wifi_txfail_thresh=5

    AT-S.Var:wifi_dtim_period=1

    AT-S.Var:wifi_add_tim_ie=0

    AT-S.Var:wifi_region=1

    AT-S.Var:wifi_ht_mode=1

    AT-S.Var:wifi_channelnum=11

    AT-S.Var:wifi_opr_rate_mask=0x003FFFCF

    AT-S.Var:wifi_bas_rate_mask=0x0000000F

    AT-S.Var:wifi_mode=1

    AT-S.Var:wifi_auth_type=0

    AT-S.Var:wifi_atim_window=0

    AT-S.Var:wifi_powersave=0

    AT-S.Var:wifi_tx_power=18

    AT-S.Var:wifi_rssi_thresh=0

    AT-S.Var:wifi_rssi_hyst=0

    AT-S.Var:wifi_ap_idle_timeout=120

    AT-S.Var:wifi_beacon_loss_thresh=10

    AT-S.Var:wifi_priv_mode=2

    AT-S.Var:wifi_wep_keys[0]=00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

    AT-S.Var:wifi_wep_keys[1]=00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

    AT-S.Var:wifi_wep_keys[2]=00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

    AT-S.Var:wifi_wep_keys[3]=00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00

    AT-S.Var:wifi_wep_key_lens=00:00:00:00

    AT-S.Var:wifi_wep_default_key=0

    AT-S.Var:wifi_wpa_psk_raw=47:3E:7A:AD:68:20:52:1A:1E:22:E5:36:E3:B4:3F:AE:B0:E2:2D:E2:5D:AA:41:73:D0:33:C1:63:43:7B:39:D2

    AT-S.Var:wifi_wpa_psk_text=Moxxxxxxxxx03

    AT-S.Var:wifi_eap_identity=identity

    AT-S.Var:wifi_eap_anon_identity=anonymous@identity.org

    AT-S.Var:wifi_eap_passwd=password

    AT-S.Var:wifi_eap_type=0

    AT-S.Var:wifi_eap_skip_datechecks=0

    AT-S.Var:wifi_wps_walk_time=120

    AT-S.Var:wifi_wps_pin=1234567

    AT-S.Var:ip_sock_memsize=1

    AT-S.Var:ip_sock_threshold=0

    AT-S.Var:ip_dhcp_lease_time=120

    AT-S.Var:ip_macfilter=00:00:00:00:00:00

    AT-S.Var:ip_num_clients=5

    AT-S.Var:ip_allow_port_scans=1

    AT-S.Var:ip_use_v6=1

    AT-S.Var:ip_use_dhcpd=1

    AT-S.Var:ip_use_httpd=1

    AT-S.Var:ip_use_tftpd=1

    AT-S.Var:ip_use_dhcpc=2

    AT-S.Var:ip_hostname=iwm-C3-C5-0E

    AT-S.Var:ip_apdomainname=captiveportal.net

    AT-S.Var:ip_apredirect=firstset.html

    AT-S.Var:ip_ipaddr=192.168.0.50

    AT-S.Var:ip_netmask=255.255.255.0

    AT-S.Var:ip_gw=192.168.0.1

    AT-S.Var:ip_dns1=208.67.222.222

    AT-S.Var:ip_dns2=208.67.220.220

    AT-S.Var:ip_local=0:0:0:0:0:0:0:0

    AT-S.Var:ip_dns1v6=0:0:0:0:0:0:0:0

    AT-S.Var:ip_dns2v6=0:0:0:0:0:0:0:0

    AT-S.Var:ip_dhcp_timeout=20

    AT-S.Var:ip_ntp_server1=ptbtime1.ptb.de

    AT-S.Var:ip_ntp_server2=ntp0.ipv6.fau.de

    AT-S.Var:ip_ntp_refresh=30

    AT-S.Var:ip_ntp_startup=1

    AT-S.Var:ip_mdns_domain_name=SPWF04S-Default

    AT-S.Var:ip_mdns_device_name_ttl=120

    AT-S.Var:ip_mdns_services_name=SPWF04S-WebSrv SPWF04S-TFTPSrv

    AT-S.Var:ip_mdns_services_prot=_http._tcp _tftp._udp

    AT-S.Var:ip_mdns_services_keys=dev1 dev2

    AT-S.Var:ip_mdns_services_vals=number1 number2

    AT-S.Var:ip_mdns_services_port=80 69

    AT-S.Var:ip_mdns_services_ttl=120 60

    AT-S.Var:ip_mdns_startup=01:01

    AT-S.OK

    AT+S.STS

    AT-S.List

    AT-S.Var:build=171117-0328fe3-SPWF04S

    AT-S.Var:fw_version=1.1.0

    AT-S.Var:boot_version=1.0

    AT-S.Var:var_version=2

    AT-S.Var:free_heap=45064

    AT-S.Var:min_heap=42224

    AT-S.Var:system_time=1550853473

    AT-S.Var:system_uptime=437

    AT-S.Var:system_sleeptime=0

    AT-S.Var:reset_reason=2

    AT-S.Var:startup=0

    AT-S.Var:random_number=3141079114

    AT-S.Var:gpio_enable=0x0000

    AT-S.Var:app_fs=1

    AT-S.Var:ram_fs=1

    AT-S.Var:user_fs=0

    AT-S.Var:extvol_fs=1

    AT-S.Var:nv_power_cycles=6

    AT-S.Var:nv_wdog_resets=0

    AT-S.Var:nv_reset_cycles=15

    AT-S.Var:wifi_state=10

    AT-S.Var:wifi_own_macaddr=00:80:E1:C3:C5:0E

    AT-S.Var:wifi_bssid=C8:0E:14:9F:C9:60

    AT-S.Var:wifi_aid=2

    AT-S.Var:wifi_channelnum=11

    AT-S.Var:wifi_sup_rate_mask=0x003FFFCF

    AT-S.Var:wifi_bas_rate_mask=0x0000054F

    AT-S.Var:wifi_chan_activity=0x00001FFF

    AT-S.Var:wifi_max_tx_power=18

    AT-S.Var:wifi_gf_mode=0

    AT-S.Var:wifi_reg_country=DE

    AT-S.Var:wifi_dtim_period=1

    AT-S.Var:wifi_num_assoc=0

    AT-S.Var:ip_from_AutoIP=0

    AT-S.Var:ip_ipaddr=192.168.1.70

    AT-S.Var:ip_netmask=255.255.255.0

    AT-S.Var:ip_gw=192.168.1.1

    AT-S.Var:ip_dns1=192.168.1.1

    AT-S.Var:ip_dns2=0.0.0.0

    AT-S.Var:ip_linklocal=fe80:0:0:0:280:e1ff:fec3:c50e

    AT-S.Var:ip_local=2a02:908:1a65:75a0:280:e1ff:fec3:c50e

    AT-S.Var:ip_dns1v6=0:0:0:0:0:0:0:0

    AT-S.Var:ip_dns2v6=0:0:0:0:0:0:0:0

    AT-S.OK

    Elio Cometti
    Elio ComettiBest answer
    Visitor II
    February 26, 2019

    ​Hello,

    Is the masking of WINDs suitable for your application?

    I cross checked the ntp refresh config, actually in release 171117-0328fe3 the ip_ntp_refresh value is not taken into account.

    Regards,

    Elio

    RoSchmi
    RoSchmiAuthor
    Associate II
    February 26, 2019

    Thanks Elio

    I will try when I am back home next week.

    Regards

    Roland