This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LP-CC1312R7: wpantund initialization problem

Part Number: LP-CC1312R7
Other Parts Discussed in Thread: WI-SUN, SYSCONFIG

Hello,

I am working with LP-CC1312R7 and LP-CC1352P7-1 for my Wi-SUN project. I am using this repository: GitHub - TexasInstruments/ti-wisunfantund: TI Userspace network Daemon to create interface with ns_br project but I have some problems. I tried 3 different SDK and all have different issues. 

    • simplelink_cc13x2_26x2_sdk_5_20_00_52

      • ns_br project and wfantund work without any error. wfanctl don’t return correct answers for “connecteddevices” and “ dodagroute” queries.

    • simplelink_cc13x2_26x2_sdk_5_40_00_40
      • ns_br and ns_br_src projects can’t work with wfantund unless we reset middle of to initialization. If we can set up interface, wfanctl returns correct answers for “connecteddevices” and “dodagroute” queries.

    • simplelink_cc13x2_26x2_sdk_6_10_00_29
      • ns_br and ns_br_src projects can’t work with wfantund. They are giving segmentation fault during initialization.

My main issue is that i can not initialize interface with SDK's which are simplelink_cc13x2_26x2_sdk_5_40_00_40 and simplelink_cc13x2_26x2_sdk_6_10_00_29. Could you please help me about this issues?

  • Hi,

    Assuming you are using the TI_WiSUN_STACK_01_00_01 release tag for ti-wisunfantund. This version was tested with SimpleLink SDK v. 5.30. Can you test with this version?

    Cheers,

    Marie H

  • Hi Marie,

    Thank you for your interest. I tested SimpleLink SDK v. 5.30 but wpantund gets stuck in the middle of the initialization. I tried to use wfanctl in anyway but when I try to get interface up wfanctl giving me timeout error. 

    Error message of wfanctl:

    wfanctl:wfan0> set interface:up true
    set failed with error 7. Timeout
    wfanctl:wfan0> WEBSERVER_APP=0

    Logs of wfantund:

    wfantund[48071]: Starting wfantund 0.08.00d (Apr 14 2022 11:04:38) . . .
    wfantund[48071]: BUILD_VERSION = 04f5a6e
    wfantund[48071]: Configuration file "/etc/wpantund.conf" read.
    wfantund[48071]: set-config-param: "Daemon:SyslogMask" set succeded
    wfantund[48071]: Stat (autolog): Tx: 0 packets (0 udp, 0 tcp, 0 icmp6) -- 0 bytes
    wfantund[48071]: Stat (autolog): Tx history is empty
    wfantund[48071]: Stat (autolog):
    wfantund[48071]: Stat (autolog): Rx: 0 packets (0 udp, 0 tcp, 0 icmp6) -- 0 bytes
    wfantund[48071]: Stat (autolog): Rx history is empty
    wfantund[48071]: Stat (autolog):
    wfantund[48071]: Stat (autolog): NCP state history is empty.
    wfantund[48071]: Stat (autolog):
    wfantund[48071]: Stat (autolog):
    wfantund[48071]: Setting baud rate to 115200
    wfantund[48071]: Opening tun interface socket with name "wfan0"
    wfantund[48071]: Getting DBus connection
    wfantund[48071]: Registering DBus connection
    wfantund[48071]: Requesting DBus connection name com.nestlabs.WPANTunnelDriver
    wfantund[48071]: Ready. Using DBUS bus ":1.580"
    wfantund[48071]: Running as root without dropping privileges!
    wfantund[48071]: Initializing NCP
    wfantund[48071]: Removing all NCP originated addresses
    wfantund[48071]: NCP is now BUSY.
    wfantund[48071]: [->NCP] (1) PROP_VALUE_GET(PROTOCOL_VERSION)
    wfantund[48071]: [->NCP] (2) PROP_VALUE_GET(NET_STACK_UP)
    wfantund[48071]: [NCP->] (2) PROP_VALUE_IS(NET_STACK_UP) [00]
    wfantund[48071]: [-NCP-]: Stack is not up
    wfantund[48071]: State change: "uninitialized" -> "offline"
    wfantund[48071]: [->NCP] (3) PROP_VALUE_GET(PROTOCOL_VERSION)
    wfantund[48071]: [->NCP] (4) PROP_VALUE_GET(NCP_VERSION)
    wfantund[48071]: [->NCP] (5) PROP_VALUE_GET(INTERFACE_TYPE)
    wfantund[48071]: [NCP->]: Frame CRC Mismatch: Calc:0x10B0 != Frame:0xF599, Garbage on line?
    wfantund[48071]: [NCP->]: Garbage is not ASCII ([0]=131)
    wfantund[48071]: [->NCP] (6) PROP_VALUE_GET(HWADDR)
    wfantund[48071]: [NCP->]: Frame CRC Mismatch: Calc:0x2DC9 != Frame:0x8331, Garbage on line?
    wfantund[48071]: [NCP->]: Garbage is not ASCII ([0]=20)
    wfantund[48071]: [->NCP] (7) PROP_VALUE_GET(PHY_CCA_THRESHOLD)
    wfantund[48071]: [->NCP] (8) PROP_VALUE_GET(PHY_TX_POWER)
    wfantund[48071]: [->NCP] (9) PROP_VALUE_GET(PHY_REGION)
    wfantund[48071]: [->NCP] (10) PROP_VALUE_GET(PHY_MODE_ID)
    wfantund[48071]: [->NCP] (11) PROP_VALUE_GET(UNICAST_CHANNEL_LIST)
    wfantund[48071]: [->NCP] (12) PROP_VALUE_GET(BROADCAST_CHANNEL_LIST)
    wfantund[48071]: [->NCP] (13) PROP_VALUE_GET(ASYNC_CHANNEL_LIST)
    wfantund[48071]: [NCP->]: Frame CRC Mismatch: Calc:0x2A71 != Frame:0x23D0, Garbage on line?
    wfantund[48071]: [NCP->]: Garbage is not ASCII ([0]=255)
    wfantund[48071]: [->NCP] (14) PROP_VALUE_GET(CH_SPACING)
    wfantund[48071]: [NCP->]: Frame CRC Mismatch: Calc:0x2A71 != Frame:0xD7B7, Garbage on line?
    wfantund[48071]: [NCP->]: Garbage is not ASCII ([0]=255)
    wfantund[48071]: [->NCP] (15) PROP_VALUE_GET(CHO_CENTER_FREQ)
    wfantund[48071]: [NCP->]: Frame CRC Mismatch: Calc:0x2A71 != Frame:0xF276, Garbage on line?
    wfantund[48071]: [NCP->]: Garbage is not ASCII ([0]=255)
    wfantund[48071]: [->NCP] (1) PROP_VALUE_GET(MAC_15_4_PANID)
    wfantund[48071]: [NCP->] (14) PROP_VALUE_IS(CH_SPACING) [C800]
    wfantund[48071]: [->NCP] (2) PROP_VALUE_GET(UNKNOWN)
    wfantund[48071]: [NCP->] (15) PROP_VALUE_IS(CHO_CENTER_FREQ) [8603C800]
    wfantund[48071]: [->NCP] (3) PROP_VALUE_GET(UNKNOWN)
    wfantund[48071]: [NCP->] (1) PROP_VALUE_IS(MAC_15_4_PANID) [CDAB]
    wfantund[48071]: [-NCP-]: PANID 0xABCD
    wfantund[48071]: [->NCP] (4) PROP_VALUE_GET(UNKNOWN)
    wfantund[48071]: [NCP->] (2) PROP_VALUE_IS(UNKNOWN) [FF]
    wfantund[48071]: [->NCP] (5) PROP_VALUE_GET(UNKNOWN)
    wfantund[48071]: [NCP->] (3) PROP_VALUE_IS(UNKNOWN) [FF]
    wfantund[48071]: [->NCP] (6) PROP_VALUE_GET(UNKNOWN)
    wfantund[48071]: [NCP->] (4) PROP_VALUE_IS(UNKNOWN) [FC030000]
    wfantund[48071]: [->NCP] (7) PROP_VALUE_GET(UNKNOWN)
    wfantund[48071]: [NCP->] (5) PROP_VALUE_IS(UNKNOWN) [02]
    wfantund[48071]: [->NCP] (8) PROP_VALUE_GET(NET_IF_UP)
    wfantund[48071]: [NCP->] (6) PROP_VALUE_IS(UNKNOWN) [02]
    wfantund[48071]: [->NCP] (9) PROP_VALUE_GET(NET_STACK_UP)
    wfantund[48071]: [->NCP] (10) PROP_VALUE_GET(NET_ROLE)
    wfantund[48071]: [->NCP] (11) PROP_VALUE_GET(NET_NETWORK_NAME)
    wfantund[48071]: Resetting interface(s). . .
    wfantund[48071]: Resetting interface wfan0. . .
    wfantund[48071]: Removing all address/prefix/route entries
    wfantund[48071]: Finished initializing NCP
    wfantund[48071]: NCP is no longer busy, host sleep is permitted. (Was busy for 20259ms)
    wfantund[48071]: property_get_value: key: "NCP:State"
    wfantund[48071]: DBus Sending Interface Added Signal for wfan0

  • Hi Eren,

    I tested wfantund and the webserver app with ns_br from simplelink_cc13x2_26x2_sdk_6_10_00_2, it seems to work for me. 

    Please can you share which step of the procedure defined in the Readme  is failing for you. And also please can you share a log of what you see when it is failing. 

    Regards,

    Sid

  • Hi Siddanth_N,

    I removed and reloaded wfantund. I followed all the steps in https://github.com/TexasInstruments/ti-wisunfantund/blob/release/README.md and tested with ns_br project from 4 SDKs. I saved logs of wfantund in txt files and adding here. SDK 5.20 can initialize NCP but don't answer "get connecteddevices" query because there is no response for this query. SDK 5.30 and SDK 5.40 can't initialize unless I reset middle of the initialization. I don't know why but İ think connection breaks before wfantund get response for network name or can't complete initialization for some reason. I can get status from wfanctl but when I try to set interface up wfanctl closes itself with timeout error. I added wfanctl logs in 5.40 and 5.30 txt files. SDK 6.10 gives me segmentation fault when I run wfantund.  Thank you for your help.

    simplelink_cc13x2_26x2_sdk_5_20_00_52 - wfantund.txt
    VirtualBox:~$ sudo /usr/local/sbin/wfantund -o Config:NCP:SocketPath /dev/ttyACM0 --webserver
    wfantund[96490]: Starting wfantund 0.08.00d (Apr 28 2022 07:53:11) . . .
    wfantund[96490]: 	BUILD_VERSION = 04f5a6e
    wfantund[96490]: Configuration file "/etc/wpantund.conf" read.
    wfantund[96490]: set-config-param: "Daemon:SyslogMask" set succeded
    wfantund[96490]: Stat (autolog): Tx: 0 packets (0 udp, 0 tcp, 0 icmp6) -- 0 bytes
    wfantund[96490]: Stat (autolog): Tx history is empty
    wfantund[96490]: Stat (autolog): 
    wfantund[96490]: Stat (autolog): Rx: 0 packets (0 udp, 0 tcp, 0 icmp6) -- 0 bytes
    wfantund[96490]: Stat (autolog): Rx history is empty
    wfantund[96490]: Stat (autolog): 
    wfantund[96490]: Stat (autolog): NCP state history is empty.
    wfantund[96490]: Stat (autolog): 
    wfantund[96490]: Stat (autolog): 
    wfantund[96490]: Setting baud rate to 115200
    wfantund[96490]: Opening tun interface socket with name "wfan0"
    wfantund[96490]: Getting DBus connection
    wfantund[96490]: Registering DBus connection
    wfantund[96490]: Requesting DBus connection name com.nestlabs.WPANTunnelDriver
    wfantund[96490]: Ready. Using DBUS bus ":1.994"
    wfantund[96490]: Group privileges dropped to GID:65534
    wfantund[96490]: User privileges dropped to UID:65534
    wfantund[96490]: Initializing NCP
    wfantund[96490]: Removing all NCP originated addresses
    wfantund[96490]: NCP is now BUSY.
    wfantund[96490]: [->NCP] (1) PROP_VALUE_GET(PROTOCOL_VERSION)
    wfantund[96490]: [->NCP] (2) PROP_VALUE_GET(NET_STACK_UP)
    wfantund[96490]: SpinelNCPInstance-Protothreads.cpp:456: Requirement Failed (IS_EVENT_FROM_NCP(event) && GetInstance(this)->mInboundHeader == mLastHeader)
    wfantund[96490]: [->NCP] (3) PROP_VALUE_GET(PROTOCOL_VERSION)
    wfantund[96490]: [->NCP] (4) PROP_VALUE_GET(NET_STACK_UP)
    wfantund[96490]: [NCP->] (0) PROP_VALUE_IS(LAST_STATUS) [71]
    wfantund[96490]: [-NCP-]: Last status (RESET_EXTERNAL, 113)
    wfantund[96490]: [NCP->] (4) PROP_VALUE_IS(NET_STACK_UP) [00]
    wfantund[96490]: [-NCP-]: Stack is not up
    wfantund[96490]: State change: "uninitialized" -> "offline"
    wfantund[96490]: [->NCP] (5) PROP_VALUE_GET(PROTOCOL_VERSION)
    wfantund[96490]: [->NCP] (6) PROP_VALUE_GET(NCP_VERSION)
    wfantund[96490]: [->NCP] (7) PROP_VALUE_GET(INTERFACE_TYPE)
    wfantund[96490]: [NCP->] (5) PROP_VALUE_IS(PROTOCOL_VERSION) [57692D53554E4641...]
    wfantund[96490]: [->NCP] (8) PROP_VALUE_GET(HWADDR)
    wfantund[96490]: [->NCP] (9) PROP_VALUE_GET(PHY_CCA_THRESHOLD)
    wfantund[96490]: [NCP->]: Frame CRC Mismatch: Calc:0x0176 != Frame:0x521D, Garbage on line?
    wfantund[96490]: [NCP->]: Garbage is not ASCII ([0]=134)
    wfantund[96490]: [NCP->] (7) PROP_VALUE_IS(INTERFACE_TYPE) [04]
    wfantund[96490]: [->NCP] (10) PROP_VALUE_GET(PHY_TX_POWER)
    wfantund[96490]: [NCP->] (8) PROP_VALUE_IS(HWADDR) [00124B0014F9680D]
    wfantund[96490]: NCP Status: MACHardwareAddr:   00:12:4B:00:14:F9:68:0D
    wfantund[96490]: [->NCP] (11) PROP_VALUE_GET(PHY_REGION)
    wfantund[96490]: [NCP->] (9) PROP_VALUE_IS(PHY_CCA_THRESHOLD) [C4]
    wfantund[96490]: [->NCP] (12) PROP_VALUE_GET(PHY_MODE_ID)
    wfantund[96490]: [NCP->] (10) PROP_VALUE_IS(PHY_TX_POWER) [00]
    wfantund[96490]: [-NCP-]: Tx power 0
    wfantund[96490]: [->NCP] (13) PROP_VALUE_GET(UNICAST_CHANNEL_LIST)
    wfantund[96490]: [NCP->] (11) PROP_VALUE_IS(PHY_REGION) [01]
    wfantund[96490]: [->NCP] (14) PROP_VALUE_GET(BROADCAST_CHANNEL_LIST)
    wfantund[96490]: [NCP->] (12) PROP_VALUE_IS(PHY_MODE_ID) [02]
    wfantund[96490]: [->NCP] (15) PROP_VALUE_GET(ASYNC_CHANNEL_LIST)
    wfantund[96490]: [NCP->] (13) PROP_VALUE_IS(UNICAST_CHANNEL_LIST) [FFFFFFFFFFFFFFFF...]
    wfantund[96490]: [->NCP] (1) PROP_VALUE_GET(CH_SPACING)
    wfantund[96490]: [NCP->] (14) PROP_VALUE_IS(BROADCAST_CHANNEL_LIST) [FFFFFFFFFFFFFFFF...]
    wfantund[96490]: [->NCP] (2) PROP_VALUE_GET(CHO_CENTER_FREQ)
    wfantund[96490]: [->NCP] (3) PROP_VALUE_GET(MAC_15_4_PANID)
    wfantund[96490]: [NCP->] (15) PROP_VALUE_IS(ASYNC_CHANNEL_LIST) [FFFFFFFFFFFFFFFF...]
    wfantund[96490]: [NCP->] (1) PROP_VALUE_IS(CH_SPACING) [C800]
    wfantund[96490]: [->NCP] (4) PROP_VALUE_GET(UNKNOWN)
    wfantund[96490]: [NCP->] (2) PROP_VALUE_IS(CHO_CENTER_FREQ) [8603C800]
    wfantund[96490]: [->NCP] (5) PROP_VALUE_GET(UNKNOWN)
    wfantund[96490]: [NCP->] (3) PROP_VALUE_IS(MAC_15_4_PANID) [CDAB]
    wfantund[96490]: [-NCP-]: PANID 0xABCD
    wfantund[96490]: [->NCP] (6) PROP_VALUE_GET(UNKNOWN)
    wfantund[96490]: [NCP->] (4) PROP_VALUE_IS(UNKNOWN) [FF]
    wfantund[96490]: [->NCP] (7) PROP_VALUE_GET(UNKNOWN)
    wfantund[96490]: [NCP->] (5) PROP_VALUE_IS(UNKNOWN) [FF]
    wfantund[96490]: [->NCP] (8) PROP_VALUE_GET(UNKNOWN)
    wfantund[96490]: [NCP->] (6) PROP_VALUE_IS(UNKNOWN) [FC030000]
    wfantund[96490]: [->NCP] (9) PROP_VALUE_GET(UNKNOWN)
    wfantund[96490]: [NCP->] (7) PROP_VALUE_IS(UNKNOWN) [02]
    wfantund[96490]: [->NCP] (10) PROP_VALUE_GET(NET_IF_UP)
    wfantund[96490]: [NCP->] (8) PROP_VALUE_IS(UNKNOWN) [02]
    wfantund[96490]: [->NCP] (11) PROP_VALUE_GET(NET_STACK_UP)
    wfantund[96490]: [->NCP] (12) PROP_VALUE_GET(NET_ROLE)
    wfantund[96490]: [NCP->] (9) PROP_VALUE_IS(UNKNOWN) [0000000000000000...]
    wfantund[96490]: [->NCP] (13) PROP_VALUE_GET(NET_NETWORK_NAME)
    wfantund[96490]: [NCP->] (10) PROP_VALUE_IS(NET_IF_UP) [00]
    wfantund[96490]: [-NCP-]: Interface is not up
    wfantund[96490]: [NCP->] (11) PROP_VALUE_IS(NET_STACK_UP) [00]
    wfantund[96490]: [-NCP-]: Stack is not up
    wfantund[96490]: Resetting interface(s). . .
    wfantund[96490]: Resetting interface wfan0. . .
    wfantund[96490]: Removing all address/prefix/route entries
    wfantund[96490]: Finished initializing NCP
    wfantund[96490]: NCP is no longer busy, host sleep is permitted. (Was busy for 15945ms)
    wfantund[96490]: property_get_value: key: "NCP:State"
    wfantund[96490]: DBus Sending Interface Added Signal for wfan0
    wfantund[96490]: [NCP->] (12) PROP_VALUE_IS(NET_ROLE) [00]
    wfantund[96490]: [-NCP-]: Net Role "NET_ROLE_DETACHED" (0)
    wfantund[96490]: [NCP->] (13) PROP_VALUE_IS(NET_NETWORK_NAME) [57692D53554E204E...]
    wfantund[96490]: [-NCP-]: Network name "Wi-SUN Network"
    wfantund[96490]: DBusAPIv1:PropChanged: /org/wpantund/wfan0/Property/Network/Name - value: Wi-SUN Network
    
    simplelink_cc13xx_cc26xx_sdk_5_30_01_01 - wfantund.txt
    VirtualBox:~$ sudo /usr/local/sbin/wfantund -o Config:NCP:SocketPath /dev/ttyACM0 --webserver
    wfantund[96692]: Starting wfantund 0.08.00d (Apr 28 2022 07:53:11) . . .
    wfantund[96692]: 	BUILD_VERSION = 04f5a6e
    wfantund[96692]: Configuration file "/etc/wpantund.conf" read.
    wfantund[96692]: set-config-param: "Daemon:SyslogMask" set succeded
    wfantund[96692]: Stat (autolog): Tx: 0 packets (0 udp, 0 tcp, 0 icmp6) -- 0 bytes
    wfantund[96692]: Stat (autolog): Tx history is empty
    wfantund[96692]: Stat (autolog): 
    wfantund[96692]: Stat (autolog): Rx: 0 packets (0 udp, 0 tcp, 0 icmp6) -- 0 bytes
    wfantund[96692]: Stat (autolog): Rx history is empty
    wfantund[96692]: Stat (autolog): 
    wfantund[96692]: Stat (autolog): NCP state history is empty.
    wfantund[96692]: Stat (autolog): 
    wfantund[96692]: Stat (autolog): 
    wfantund[96692]: Setting baud rate to 115200
    wfantund[96692]: Opening tun interface socket with name "wfan0"
    wfantund[96692]: Getting DBus connection
    wfantund[96692]: Registering DBus connection
    wfantund[96692]: Requesting DBus connection name com.nestlabs.WPANTunnelDriver
    wfantund[96692]: Ready. Using DBUS bus ":1.1006"
    wfantund[96692]: Group privileges dropped to GID:65534
    wfantund[96692]: User privileges dropped to UID:65534
    wfantund[96692]: Initializing NCP
    wfantund[96692]: Removing all NCP originated addresses
    wfantund[96692]: NCP is now BUSY.
    wfantund[96692]: [->NCP] (1) PROP_VALUE_GET(PROTOCOL_VERSION)
    wfantund[96692]: [->NCP] (2) PROP_VALUE_GET(NET_STACK_UP)
    wfantund[96692]: [NCP->]: Frame CRC Mismatch: Calc:0xA51A != Frame:0xD587, Garbage on line?
    wfantund[96692]: [NCP->]: Garbage is not ASCII ([10]=135)
    wfantund[96692]: SpinelNCPInstance-Protothreads.cpp:456: Requirement Failed (IS_EVENT_FROM_NCP(event) && GetInstance(this)->mInboundHeader == mLastHeader)
    wfantund[96692]: [->NCP] (3) PROP_VALUE_GET(PROTOCOL_VERSION)
    wfantund[96692]: [->NCP] (4) PROP_VALUE_GET(NET_STACK_UP)
    wfantund[96692]: [NCP->] (3) PROP_VALUE_IS(PROTOCOL_VERSION) [57692D53554E4641...]
    wfantund[96692]: [NCP->] (4) PROP_VALUE_IS(NET_STACK_UP) [00]
    wfantund[96692]: [-NCP-]: Stack is not up
    wfantund[96692]: State change: "uninitialized" -> "offline"
    wfantund[96692]: [->NCP] (5) PROP_VALUE_GET(PROTOCOL_VERSION)
    wfantund[96692]: [->NCP] (6) PROP_VALUE_GET(NCP_VERSION)
    wfantund[96692]: [->NCP] (7) PROP_VALUE_GET(INTERFACE_TYPE)
    wfantund[96692]: [NCP->] (5) PROP_VALUE_IS(PROTOCOL_VERSION) [57692D53554E4641...]
    wfantund[96692]: [->NCP] (8) PROP_VALUE_GET(HWADDR)
    wfantund[96692]: [->NCP] (9) PROP_VALUE_GET(PHY_CCA_THRESHOLD)
    wfantund[96692]: [NCP->] (6) PROP_VALUE_IS(NCP_VERSION) [5449574953554E46...]
    wfantund[96692]: NCP is running "TIWISUNFAN/1.0.1; RELEASE; Apr 25 2022 10:42:00"
    wfantund[96692]: Driver is running "0.08.00d (/04f5a6e; Apr 28 2022 07:53:11)"
    wfantund[96692]: [NCP->] (7) PROP_VALUE_IS(INTERFACE_TYPE) [04]
    wfantund[96692]: [->NCP] (10) PROP_VALUE_GET(PHY_TX_POWER)
    wfantund[96692]: [NCP->] (8) PROP_VALUE_IS(HWADDR) [00124B0014F9680D]
    wfantund[96692]: NCP Status: MACHardwareAddr:   00:12:4B:00:14:F9:68:0D
    wfantund[96692]: [->NCP] (11) PROP_VALUE_GET(PHY_REGION)
    wfantund[96692]: [NCP->] (9) PROP_VALUE_IS(PHY_CCA_THRESHOLD) [C4]
    wfantund[96692]: [->NCP] (12) PROP_VALUE_GET(PHY_MODE_ID)
    wfantund[96692]: [NCP->] (10) PROP_VALUE_IS(PHY_TX_POWER) [00]
    wfantund[96692]: [-NCP-]: Tx power 0
    wfantund[96692]: [->NCP] (13) PROP_VALUE_GET(UNICAST_CHANNEL_LIST)
    wfantund[96692]: [NCP->] (11) PROP_VALUE_IS(PHY_REGION) [01]
    wfantund[96692]: [->NCP] (14) PROP_VALUE_GET(BROADCAST_CHANNEL_LIST)
    wfantund[96692]: [NCP->] (12) PROP_VALUE_IS(PHY_MODE_ID) [02]
    wfantund[96692]: [->NCP] (15) PROP_VALUE_GET(ASYNC_CHANNEL_LIST)
    wfantund[96692]: [NCP->] (13) PROP_VALUE_IS(UNICAST_CHANNEL_LIST) [FFFFFFFFFFFFFFFF...]
    wfantund[96692]: [->NCP] (1) PROP_VALUE_GET(CH_SPACING)
    wfantund[96692]: [NCP->] (14) PROP_VALUE_IS(BROADCAST_CHANNEL_LIST) [FFFFFFFFFFFFFFFF...]
    wfantund[96692]: [->NCP] (2) PROP_VALUE_GET(CHO_CENTER_FREQ)
    wfantund[96692]: [->NCP] (3) PROP_VALUE_GET(MAC_15_4_PANID)
    wfantund[96692]: [NCP->] (15) PROP_VALUE_IS(ASYNC_CHANNEL_LIST) [FFFFFFFFFFFFFFFF...]
    wfantund[96692]: [NCP->] (1) PROP_VALUE_IS(CH_SPACING) [C800]
    wfantund[96692]: [->NCP] (4) PROP_VALUE_GET(UNKNOWN)
    wfantund[96692]: [NCP->] (2) PROP_VALUE_IS(CHO_CENTER_FREQ) [8603C800]
    wfantund[96692]: [->NCP] (5) PROP_VALUE_GET(UNKNOWN)
    wfantund[96692]: [NCP->] (3) PROP_VALUE_IS(MAC_15_4_PANID) [CDAB]
    wfantund[96692]: [-NCP-]: PANID 0xABCD
    wfantund[96692]: [->NCP] (6) PROP_VALUE_GET(UNKNOWN)
    wfantund[96692]: [NCP->] (4) PROP_VALUE_IS(UNKNOWN) [FF]
    wfantund[96692]: [->NCP] (7) PROP_VALUE_GET(UNKNOWN)
    wfantund[96692]: [NCP->] (5) PROP_VALUE_IS(UNKNOWN) [FF]
    wfantund[96692]: [->NCP] (8) PROP_VALUE_GET(UNKNOWN)
    wfantund[96692]: [NCP->] (6) PROP_VALUE_IS(UNKNOWN) [FC030000]
    wfantund[96692]: [->NCP] (9) PROP_VALUE_GET(UNKNOWN)
    wfantund[96692]: [NCP->] (7) PROP_VALUE_IS(UNKNOWN) [02]
    wfantund[96692]: [->NCP] (10) PROP_VALUE_GET(NET_IF_UP)
    wfantund[96692]: [NCP->] (8) PROP_VALUE_IS(UNKNOWN) [02]
    wfantund[96692]: [->NCP] (11) PROP_VALUE_GET(NET_STACK_UP)
    wfantund[96692]: [->NCP] (12) PROP_VALUE_GET(NET_ROLE)
    wfantund[96692]: [->NCP] (13) PROP_VALUE_GET(NET_NETWORK_NAME)
    wfantund[96692]: Resetting interface(s). . .
    wfantund[96692]: Resetting interface wfan0. . .
    wfantund[96692]: Removing all address/prefix/route entries
    wfantund[96692]: Finished initializing NCP
    wfantund[96692]: NCP is no longer busy, host sleep is permitted. (Was busy for 20849ms)
    wfantund[96692]: property_get_value: key: "NCP:State"
    wfantund[96692]: DBus Sending Interface Added Signal for wfan0
    simplelink_cc13xx_cc26xx_sdk_5_30_01_01 - wfanctl.txt
    -VirtualBox:~$ sudo /usr/local/bin/wfanctl 
    DEBUG: isatty(fileno(stdin)) = 1
    DEBUG: Will use interface 'wfan0'.
    DEBUG: trying dbus_bus_get(DBUS_BUS_SYSTEM). . .
    DEBUG: DBusConnection: 0x55d42ebea2d0
    DEBUG: Registering DBusConnection. . .
    DEBUG: DBusConnection registered.
    DEBUG: Requesting DBus name "com.nestlabs.WPANTunnelDriver.wpanctl". . .
    DEBUG: Requesting DBus name "com.nestlabs.WPANTunnelDriver.wpanctl" succeded.
    DEBUG: Performing wpantund version check. . .
    DEBUG: Version check, wpanctl=2, wpantund=2
    DEBUG: wpantund version check succeded.
    Initializing readline
    wfanctl:wfan0> status 
    wfan0 => [
    	"NCP:State" => "offline"
    	"Daemon:Enabled" => true
    	"NCP:Version" => "TIWISUNFAN/1.0.1; RELEASE; Apr 28 2022 08:21:50"
    	"Daemon:Version" => "0.08.00d (/04f5a6e; Apr 28 2022 07:53:11)"
    	"Config:NCP:DriverName" => "spinel"
    	"NCP:HardwareAddress" => [00124B0014F9680D]
    	"Network:NodeType" => "0 : Border Router"
    	"Network:PANID" => 0xABCD
    ]
    wfanctl:wfan0> set interface:up true
    set failed with error 7. Timeout
    wfanctl:wfan0> WEBSERVER_APP=0 
    simplelink_cc13xx_cc26xx_sdk_5_40_00_40 - wfantund.txt
    VirtualBox:~$ sudo /usr/local/sbin/wfantund -o Config:NCP:SocketPath /dev/ttyACM0 --webserver
    wfantund[96755]: Starting wfantund 0.08.00d (Apr 28 2022 07:53:11) . . .
    wfantund[96755]: 	BUILD_VERSION = 04f5a6e
    wfantund[96755]: Configuration file "/etc/wpantund.conf" read.
    wfantund[96755]: set-config-param: "Daemon:SyslogMask" set succeded
    wfantund[96755]: Stat (autolog): Tx: 0 packets (0 udp, 0 tcp, 0 icmp6) -- 0 bytes
    wfantund[96755]: Stat (autolog): Tx history is empty
    wfantund[96755]: Stat (autolog): 
    wfantund[96755]: Stat (autolog): Rx: 0 packets (0 udp, 0 tcp, 0 icmp6) -- 0 bytes
    wfantund[96755]: Stat (autolog): Rx history is empty
    wfantund[96755]: Stat (autolog): 
    wfantund[96755]: Stat (autolog): NCP state history is empty.
    wfantund[96755]: Stat (autolog): 
    wfantund[96755]: Stat (autolog): 
    wfantund[96755]: Setting baud rate to 115200
    wfantund[96755]: Opening tun interface socket with name "wfan0"
    wfantund[96755]: Getting DBus connection
    wfantund[96755]: Registering DBus connection
    wfantund[96755]: Requesting DBus connection name com.nestlabs.WPANTunnelDriver
    wfantund[96755]: Ready. Using DBUS bus ":1.1014"
    wfantund[96755]: Group privileges dropped to GID:65534
    wfantund[96755]: User privileges dropped to UID:65534
    wfantund[96755]: Initializing NCP
    wfantund[96755]: Removing all NCP originated addresses
    wfantund[96755]: NCP is now BUSY.
    wfantund[96755]: [->NCP] (1) PROP_VALUE_GET(PROTOCOL_VERSION)
    wfantund[96755]: [->NCP] (2) PROP_VALUE_GET(NET_STACK_UP)
    wfantund[96755]: [NCP->] (0) PROP_VALUE_IS(LAST_STATUS) [71]
    wfantund[96755]: [-NCP-]: Last status (RESET_EXTERNAL, 113)
    wfantund[96755]: [NCP->] (1) PROP_VALUE_IS(PROTOCOL_VERSION) [57692D53554E4641...]
    wfantund[96755]: [NCP->] (2) PROP_VALUE_IS(NET_STACK_UP) [00]
    wfantund[96755]: [-NCP-]: Stack is not up
    wfantund[96755]: State change: "uninitialized" -> "offline"
    wfantund[96755]: [->NCP] (3) PROP_VALUE_GET(PROTOCOL_VERSION)
    wfantund[96755]: [->NCP] (4) PROP_VALUE_GET(NCP_VERSION)
    wfantund[96755]: [->NCP] (5) PROP_VALUE_GET(INTERFACE_TYPE)
    wfantund[96755]: [NCP->] (3) PROP_VALUE_IS(PROTOCOL_VERSION) [57692D53554E4641...]
    wfantund[96755]: [->NCP] (6) PROP_VALUE_GET(HWADDR)
    wfantund[96755]: [->NCP] (7) PROP_VALUE_GET(PHY_CCA_THRESHOLD)
    wfantund[96755]: [NCP->] (4) PROP_VALUE_IS(NCP_VERSION) [5449574953554E46...]
    wfantund[96755]: NCP is running "TIWISUNFAN/1.0.1; RELEASE; Apr 28 2022 08:21:50"
    wfantund[96755]: Driver is running "0.08.00d (/04f5a6e; Apr 28 2022 07:53:11)"
    wfantund[96755]: [NCP->] (5) PROP_VALUE_IS(INTERFACE_TYPE) [04]
    wfantund[96755]: [->NCP] (8) PROP_VALUE_GET(PHY_TX_POWER)
    wfantund[96755]: [NCP->] (6) PROP_VALUE_IS(HWADDR) [00124B0014F9680D]
    wfantund[96755]: NCP Status: MACHardwareAddr:   00:12:4B:00:14:F9:68:0D
    wfantund[96755]: [->NCP] (9) PROP_VALUE_GET(PHY_REGION)
    wfantund[96755]: [NCP->] (7) PROP_VALUE_IS(PHY_CCA_THRESHOLD) [C4]
    wfantund[96755]: [->NCP] (10) PROP_VALUE_GET(PHY_MODE_ID)
    wfantund[96755]: [NCP->] (8) PROP_VALUE_IS(PHY_TX_POWER) [00]
    wfantund[96755]: [-NCP-]: Tx power 0
    wfantund[96755]: [NCP->] (9) PROP_VALUE_IS(PHY_REGION) [01]
    wfantund[96755]: [->NCP] (11) PROP_VALUE_GET(UNICAST_CHANNEL_LIST)
    wfantund[96755]: [->NCP] (12) PROP_VALUE_GET(BROADCAST_CHANNEL_LIST)
    wfantund[96755]: [NCP->] (10) PROP_VALUE_IS(PHY_MODE_ID) [02]
    wfantund[96755]: [->NCP] (13) PROP_VALUE_GET(ASYNC_CHANNEL_LIST)
    wfantund[96755]: [NCP->] (11) PROP_VALUE_IS(UNICAST_CHANNEL_LIST) [FFFFFFFFFFFFFFFF...]
    wfantund[96755]: [->NCP] (14) PROP_VALUE_GET(CH_SPACING)
    wfantund[96755]: [NCP->] (12) PROP_VALUE_IS(BROADCAST_CHANNEL_LIST) [FFFFFFFFFFFFFFFF...]
    wfantund[96755]: [->NCP] (15) PROP_VALUE_GET(CHO_CENTER_FREQ)
    wfantund[96755]: [NCP->] (13) PROP_VALUE_IS(ASYNC_CHANNEL_LIST) [FFFFFFFFFFFFFFFF...]
    wfantund[96755]: [->NCP] (1) PROP_VALUE_GET(MAC_15_4_PANID)
    wfantund[96755]: [NCP->] (14) PROP_VALUE_IS(CH_SPACING) [C800]
    wfantund[96755]: [->NCP] (2) PROP_VALUE_GET(UNKNOWN)
    wfantund[96755]: [NCP->] (15) PROP_VALUE_IS(CHO_CENTER_FREQ) [8603C800]
    wfantund[96755]: [->NCP] (3) PROP_VALUE_GET(UNKNOWN)
    wfantund[96755]: [NCP->] (1) PROP_VALUE_IS(MAC_15_4_PANID) [CDAB]
    wfantund[96755]: [-NCP-]: PANID 0xABCD
    wfantund[96755]: [->NCP] (4) PROP_VALUE_GET(UNKNOWN)
    wfantund[96755]: [NCP->] (2) PROP_VALUE_IS(UNKNOWN) [FF]
    wfantund[96755]: [->NCP] (5) PROP_VALUE_GET(UNKNOWN)
    wfantund[96755]: [NCP->] (3) PROP_VALUE_IS(UNKNOWN) [FF]
    wfantund[96755]: [->NCP] (6) PROP_VALUE_GET(UNKNOWN)
    wfantund[96755]: [NCP->] (4) PROP_VALUE_IS(UNKNOWN) [FC030000]
    wfantund[96755]: [->NCP] (7) PROP_VALUE_GET(UNKNOWN)
    wfantund[96755]: [NCP->] (5) PROP_VALUE_IS(UNKNOWN) [02]
    wfantund[96755]: [->NCP] (8) PROP_VALUE_GET(NET_IF_UP)
    wfantund[96755]: [NCP->] (6) PROP_VALUE_IS(UNKNOWN) [02]
    wfantund[96755]: [->NCP] (9) PROP_VALUE_GET(NET_STACK_UP)
    wfantund[96755]: [->NCP] (10) PROP_VALUE_GET(NET_ROLE)
    wfantund[96755]: [->NCP] (11) PROP_VALUE_GET(NET_NETWORK_NAME)
    wfantund[96755]: Resetting interface(s). . .
    wfantund[96755]: Resetting interface wfan0. . .
    wfantund[96755]: Removing all address/prefix/route entries
    wfantund[96755]: Finished initializing NCP
    wfantund[96755]: NCP is no longer busy, host sleep is permitted. (Was busy for 15242ms)
    wfantund[96755]: property_get_value: key: "NCP:State"
    wfantund[96755]: DBus Sending Interface Added Signal for wfan0
    
    simplelink_cc13xx_cc26xx_sdk_5_40_00_40 - wfanctl.txt
    -VirtualBox:~$ sudo /usr/local/bin/wfanctl 
    DEBUG: isatty(fileno(stdin)) = 1
    DEBUG: Will use interface 'wfan0'.
    DEBUG: trying dbus_bus_get(DBUS_BUS_SYSTEM). . .
    DEBUG: DBusConnection: 0x55d42ebea2d0
    DEBUG: Registering DBusConnection. . .
    DEBUG: DBusConnection registered.
    DEBUG: Requesting DBus name "com.nestlabs.WPANTunnelDriver.wpanctl". . .
    DEBUG: Requesting DBus name "com.nestlabs.WPANTunnelDriver.wpanctl" succeded.
    DEBUG: Performing wpantund version check. . .
    DEBUG: Version check, wpanctl=2, wpantund=2
    DEBUG: wpantund version check succeded.
    Initializing readline
    wfanctl:wfan0> status 
    wfan0 => [
    	"NCP:State" => "offline"
    	"Daemon:Enabled" => true
    	"NCP:Version" => "TIWISUNFAN/1.0.1; RELEASE; Apr 28 2022 08:21:50"
    	"Daemon:Version" => "0.08.00d (/04f5a6e; Apr 28 2022 07:53:11)"
    	"Config:NCP:DriverName" => "spinel"
    	"NCP:HardwareAddress" => [00124B0014F9680D]
    	"Network:NodeType" => "0 : Border Router"
    	"Network:PANID" => 0xABCD
    ]
    wfanctl:wfan0> set interface:up true
    set failed with error 7. Timeout
    wfanctl:wfan0> WEBSERVER_APP=0 
    simplelink_cc13x2_26x2_sdk_6_10_00_29 - wfantund.txt
    VirtualBox:~$ sudo /usr/local/sbin/wfantund -o Config:NCP:SocketPath /dev/ttyACM0 --webserver
    wfantund[96810]: Starting wfantund 0.08.00d (Apr 28 2022 07:53:11) . . .
    wfantund[96810]: 	BUILD_VERSION = 04f5a6e
    wfantund[96810]: Configuration file "/etc/wpantund.conf" read.
    wfantund[96810]: set-config-param: "Daemon:SyslogMask" set succeded
    wfantund[96810]: Stat (autolog): Tx: 0 packets (0 udp, 0 tcp, 0 icmp6) -- 0 bytes
    wfantund[96810]: Stat (autolog): Tx history is empty
    wfantund[96810]: Stat (autolog): 
    wfantund[96810]: Stat (autolog): Rx: 0 packets (0 udp, 0 tcp, 0 icmp6) -- 0 bytes
    wfantund[96810]: Stat (autolog): Rx history is empty
    wfantund[96810]: Stat (autolog): 
    wfantund[96810]: Stat (autolog): NCP state history is empty.
    wfantund[96810]: Stat (autolog): 
    wfantund[96810]: Stat (autolog): 
    wfantund[96810]: Setting baud rate to 115200
    wfantund[96810]: Opening tun interface socket with name "wfan0"
    wfantund[96810]: Getting DBus connection
    wfantund[96810]: Registering DBus connection
    wfantund[96810]: Requesting DBus connection name com.nestlabs.WPANTunnelDriver
    wfantund[96810]: Ready. Using DBUS bus ":1.1023"
    wfantund[96810]: Group privileges dropped to GID:65534
    wfantund[96810]: User privileges dropped to UID:65534
    wfantund[96810]: Initializing NCP
    wfantund[96810]: Removing all NCP originated addresses
    wfantund[96810]: NCP is now BUSY.
    wfantund[96810]: [->NCP] (1) PROP_VALUE_GET(PROTOCOL_VERSION)
    wfantund[96810]: [->NCP] (2) PROP_VALUE_GET(NET_STACK_UP)
    wfantund[96810]: [NCP->] (0) PROP_VALUE_IS(LAST_STATUS) [71]
    wfantund[96810]: [-NCP-]: Last status (RESET_EXTERNAL, 113)
    wfantund[96810]: [NCP->] (1) PROP_VALUE_IS(PROTOCOL_VERSION) [57692D53554E4641...]
    wfantund[96810]: [NCP->] (2) PROP_VALUE_IS(NET_STACK_UP) [00]
    wfantund[96810]: [-NCP-]: Stack is not up
    wfantund[96810]: State change: "uninitialized" -> "offline"
    wfantund[96810]: [->NCP] (3) PROP_VALUE_GET(PROTOCOL_VERSION)
    wfantund[96810]: [->NCP] (4) PROP_VALUE_GET(NCP_VERSION)
    wfantund[96810]: [->NCP] (5) PROP_VALUE_GET(INTERFACE_TYPE)
    wfantund[96810]: [NCP->] (3) PROP_VALUE_IS(PROTOCOL_VERSION) [57692D53554E4641...]
    wfantund[96810]: [->NCP] (6) PROP_VALUE_GET(HWADDR)
    wfantund[96810]: [->NCP] (7) PROP_VALUE_GET(PHY_CCA_THRESHOLD)
    wfantund[96810]: [NCP->] (4) PROP_VALUE_IS(NCP_VERSION) [5449574953554E46...]
    wfantund[96810]: NCP is running "TIWISUNFAN/1.0.1; RELEASE; Apr 15 2022 17:13:18"
    wfantund[96810]: Driver is running "0.08.00d (/04f5a6e; Apr 28 2022 07:53:11)"
    wfantund[96810]: [NCP->] (5) PROP_VALUE_IS(INTERFACE_TYPE) [04]
    wfantund[96810]: [->NCP] (8) PROP_VALUE_GET(PHY_TX_POWER)
    wfantund[96810]: [NCP->] (6) PROP_VALUE_IS(HWADDR) [00124B0014F9680D]
    wfantund[96810]: NCP Status: MACHardwareAddr:   00:12:4B:00:14:F9:68:0D
    wfantund[96810]: [->NCP] (9) PROP_VALUE_GET(PHY_REGION)
    wfantund[96810]: [NCP->] (7) PROP_VALUE_IS(PHY_CCA_THRESHOLD) [C4]
    wfantund[96810]: [->NCP] (10) PROP_VALUE_GET(PHY_MODE_ID)
    wfantund[96810]: [NCP->] (8) PROP_VALUE_IS(PHY_TX_POWER) [00]
    wfantund[96810]: [-NCP-]: Tx power 0
    wfantund[96810]: [->NCP] (11) PROP_VALUE_GET(UNICAST_CHANNEL_LIST)
    wfantund[96810]: [NCP->] (9) PROP_VALUE_IS(PHY_REGION) [01]
    wfantund[96810]: [->NCP] (12) PROP_VALUE_GET(BROADCAST_CHANNEL_LIST)
    wfantund[96810]: [NCP->] (10) PROP_VALUE_IS(PHY_MODE_ID) [02]
    wfantund[96810]: [->NCP] (13) PROP_VALUE_GET(ASYNC_CHANNEL_LIST)
    wfantund[96810]: [NCP->] (11) PROP_VALUE_IS(UNICAST_CHANNEL_LIST) [FFFFFFFFFFFFFFFF...]
    wfantund[96810]: [->NCP] (14) PROP_VALUE_GET(CH_SPACING)
    wfantund[96810]: [NCP->] (12) PROP_VALUE_IS(BROADCAST_CHANNEL_LIST) [FFFFFFFFFFFFFFFF...]
    wfantund[96810]: [->NCP] (15) PROP_VALUE_GET(CHO_CENTER_FREQ)
    wfantund[96810]: [NCP->] (13) PROP_VALUE_IS(ASYNC_CHANNEL_LIST) [FFFFFFFFFFFFFFFF...]
    wfantund[96810]: [->NCP] (1) PROP_VALUE_GET(MAC_15_4_PANID)
    wfantund[96810]: [NCP->] (14) PROP_VALUE_IS(CH_SPACING) [C800]
    wfantund[96810]: [->NCP] (2) PROP_VALUE_GET(UNKNOWN)
    wfantund[96810]: [NCP->] (15) PROP_VALUE_IS(CHO_CENTER_FREQ) [8603C800]
    wfantund[96810]: [->NCP] (3) PROP_VALUE_GET(UNKNOWN)
    wfantund[96810]: [NCP->] (1) PROP_VALUE_IS(MAC_15_4_PANID) [CDAB]
    wfantund[96810]: [-NCP-]: PANID 0xABCD
    wfantund[96810]: [->NCP] (4) PROP_VALUE_GET(UNKNOWN)
    wfantund[96810]: [NCP->] (2) PROP_VALUE_IS(UNKNOWN) [FF]
    wfantund[96810]: [->NCP] (5) PROP_VALUE_GET(UNKNOWN)
    wfantund[96810]: [NCP->] (3) PROP_VALUE_IS(UNKNOWN) [FF]
    wfantund[96810]: [->NCP] (6) PROP_VALUE_GET(UNKNOWN)
    wfantund[96810]: [NCP->] (4) PROP_VALUE_IS(UNKNOWN) [FC030000]
    wfantund[96810]: [->NCP] (7) PROP_VALUE_GET(UNKNOWN)
    wfantund[96810]: [NCP->] (5) PROP_VALUE_IS(UNKNOWN) [02]
    wfantund[96810]: [->NCP] (8) PROP_VALUE_GET(NET_IF_UP)
    wfantund[96810]: [NCP->] (6) PROP_VALUE_IS(UNKNOWN) [02]
    wfantund[96810]: [->NCP] (9) PROP_VALUE_GET(NET_STACK_UP)
    wfantund[96810]: [NCP->] (7) PROP_VALUE_IS(UNKNOWN) []
     *** FATAL ERROR: Caught signal 11 (Segmentation fault):
    /usr/local/sbin/wfantund(+0x76588)[0x55b06b3b0588]
    /usr/local/libexec/wpantund/ncp-spinel.so(_ZN2nl8wpantund17SpinelNCPInstance26handle_ncp_spinel_value_isEjPKhj+0xd40)[0x7f34bcf28ae0]
    /usr/local/libexec/wpantund/ncp-spinel.so(_ZN2nl8wpantund17SpinelNCPInstance26handle_ncp_spinel_value_isEjPKhj+0xd40)[0x7f34bcf28ae0]
    /usr/local/libexec/wpantund/ncp-spinel.so(_ZN2nl8wpantund17SpinelNCPInstance26handle_ncp_spinel_callbackEjPKhj+0x93)[0x7f34bcf2cc63]
    /usr/local/libexec/wpantund/ncp-spinel.so(_ZN2nl8wpantund17SpinelNCPInstance18ncp_to_driver_pumpEv+0x645)[0x7f34bcf3bab5]
    /usr/local/sbin/wfantund(_ZN2nl8wpantund15NCPInstanceBase7processEv+0x109)[0x55b06b3f9939]
    /usr/local/libexec/wpantund/ncp-spinel.so(_ZN2nl8wpantund17SpinelNCPInstance7processEv+0x2c)[0x7f34bcf3113c]
    /usr/local/sbin/wfantund(_ZN8MainLoop7processEv+0x5c)[0x55b06b3b32bc]
    /usr/local/sbin/wfantund(main+0xea0)[0x55b06b3afb80]
    /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f34bd37c0b3]
    /usr/local/sbin/wfantund(_start+0x2e)[0x55b06b3b037e]
    wfantund[96810]:  *** FATAL ERROR: Caught signal 11 (Segmentation fault):
    wfantund[96810]: [BT]  0: /usr/local/sbin/wfantund(+0x76588) [0x55b06b3b0588]
    wfantund[96810]: [BT]  1: /usr/local/libexec/wpantund/ncp-spinel.so(_ZN2nl8wpantund17SpinelNCPInstance26handle_ncp_spinel_value_isEjPKhj+0xd40) [0x7f34bcf28ae0]
    wfantund[96810]: [BT]  2: /usr/local/libexec/wpantund/ncp-spinel.so(_ZN2nl8wpantund17SpinelNCPInstance26handle_ncp_spinel_value_isEjPKhj+0xd40) [0x7f34bcf28ae0]
    wfantund[96810]: [BT]  3: /usr/local/libexec/wpantund/ncp-spinel.so(_ZN2nl8wpantund17SpinelNCPInstance26handle_ncp_spinel_callbackEjPKhj+0x93) [0x7f34bcf2cc63]
    wfantund[96810]: [BT]  4: /usr/local/libexec/wpantund/ncp-spinel.so(_ZN2nl8wpantund17SpinelNCPInstance18ncp_to_driver_pumpEv+0x645) [0x7f34bcf3bab5]
    wfantund[96810]: [BT]  5: /usr/local/sbin/wfantund(_ZN2nl8wpantund15NCPInstanceBase7processEv+0x109) [0x55b06b3f9939]
    wfantund[96810]: [BT]  6: /usr/local/libexec/wpantund/ncp-spinel.so(_ZN2nl8wpantund17SpinelNCPInstance7processEv+0x2c) [0x7f34bcf3113c]
    wfantund[96810]: [BT]  7: /usr/local/sbin/wfantund(_ZN8MainLoop7processEv+0x5c) [0x55b06b3b32bc]
    wfantund[96810]: [BT]  8: /usr/local/sbin/wfantund(main+0xea0) [0x55b06b3afb80]
    wfantund[96810]: [BT]  9: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7f34bd37c0b3]
    wfantund[96810]: [BT] 10: /usr/local/sbin/wfantund(_start+0x2e) [0x55b06b3b037e]
    

  • The behavior you see for 5_20 is the expected behavior, the complete support for get_connecteddevices was implemented in 5_30 onwards.

    Please can you share the sysconfig file you used when building the ns_br project?

    Also the wpantund.conf file

    I cannot see the segmentation fault,  up to line 75 in your log, seems pretty similar to what I see, but after that mine just continues without the seg fault. It is worth checking the difference between our systems.

    Regards,
    Sid

  • Hi,

    Thank you for your reply. Sory for late response we were at Ramadan holiday. I am sharing my sysconfig files of ns_br projects for 6.10, 5.40 and 5.30 SDKs. You are right 5.20 works but we need to see connected devices on wfanctl. I saw support for get_connecteddevices on 5.30, 5.40 and 6.10 but they don't work with wfantund on my system. 6.10 never works but 5.30 and 5.40 works if I reset during initilazation. Also segmentation fault is in line 93 in 6.10 wfantund logs. I don't know why 5.30 and 5.40 stucks

    wfantund[96692]: [->NCP] (11) PROP_VALUE_GET(NET_STACK_UP)
    wfantund[96692]: [->NCP] (12) PROP_VALUE_GET(NET_ROLE)
    wfantund[96692]: [->NCP] (13) PROP_VALUE_GET(NET_NETWORK_NAME)

    in these queries. NCP doesn't response and wfantund just waits. If I reset just send NET_STACK_UP query wfantund complete initilazition and I can work with wfanctl. But this happens only 5.30 and 5.40 SDKs.

    wpantund_conf.txt
    # Example wpantund configuration file
    #
    
    # The desired name of the network interface (not supported on all platforms)
    # Default value is `wfan0`.
    #
    Config:TUN:InterfaceName wfan0
    
    # Path to serial port used to communicate with the NCP.
    # Has special meaning when prefixed with `system:` or `serial:`.
    # If the path is an IPv4 address/port, it will use a TCP socket.
    #
    Config:NCP:SocketPath "/dev/ttyACM0"
    #Config:NCP:SocketPath "127.0.0.1:4901"
    #Config:NCP:SocketPath "system:/usr/sbin/spi-hdlc-adapter --stdio -i <path to INT pin> -r <path to RES pin if any>  --spi-speed=<spi-speed default is 1MHz> <dev path to spi>
    #Config:NCP:SocketPath "system:/usr/local/sbin/spi-server -p - -s /dev/spidev2.0"
    #Config:NCP:SocketPath "serial:/dev/ttyO1,raw,b115200,crtscts=1"
    
    # The desired NCP driver to use.
    # Default value is `spinel`.
    #
    Config:NCP:DriverName spinel
    
    # Describes what type of serial reliability layer should be used, if any.
    # Generally this is set appropriately automatically, so you usually
    # don't need to bother setting this.
    #
    # Optional. Default value is automatic.
    #
    #Config:NCP:ReliabilityLayer libsoot
    
    # The default transmit power of the NCP, measured in dBm
    # (0 dBm is one milliwatt, can be negative)
    #
    # Optional. Default value is NCP-specific.
    #
    #NCP:TXPower 0
    
    # The CCA threshold value, measured in dBm
    #
    # Optional. Default value is NCP-specific.
    #
    #NCP:CCAThreshold -70
    
    # Path to reset pin. This socket is opened and values sent to it
    # based on the desired reset state. wpantund sends `0\n` to
    # assert the reset pin and sends `1\n` to deassert the reset pin.
    # Can be used with the same `system:` and `serial:` prefixes defined
    # above to handle special cases. On linux, you would generally
    # set this to the `value` file of the RESET GPIO.
    #
    # Optional. If not set, only software resets will be possible.
    #
    #Config:NCP:HardResetPath "/sys/class/gpio/gpio49/value"
    
    # Path to power pin. The semantics are similar to those for
    # `NCPHardResetPath` above, except that wpantund sends `0\n` to
    # indicate that the NCP power should be disabled and `1\n` to
    # indicate that the NCP power should be enabled.
    #
    # Optional. If not set, only software induced sleep will be used
    # for low-power states.
    #
    #Config:NCP:PowerPath "/sys/class/gpio/gpio11/value"
    
    # Syslog mask adjustment. This property is a set of
    # boolean masks for manipulating the bitmask used by `syslog()`.
    # The string can contain the following words that represent
    # the associated bit. The presence of the word in the string
    # indicates that that bit should be set. Prefixing the word with
    # a `-` (dash/minus) indicates that that bit should be cleared.
    # The following keywords are supported:
    #
    # * `all` (All log levels)
    # * `emerg`
    # * `alert`
    # * `crit`
    # * `err`
    # * `warn`
    # * `notice`
    # * `info`
    # * `debug`
    #
    # So, for example, to get all log messages except debugging
    # messages, you would use `all -debug`.
    #
    # Optional. The default value for non-debug builds is
    # `all -info -debug`.
    #
    Daemon:SyslogMask "all"
    
    # Drop root privileges to the given user (and that user's group)
    # after setting up all network interfaces and socket connections.
    # Doing this helps mitigate the implications of security exploits,
    # but may interfere with how hard resets are performed for certain
    # NCPs.
    #
    # Optional. Default value is empty, which means that privileges
    # are not dropped.
    #
    Config:Daemon:PrivDropToUser "nobody"
    
    # Call `chroot()` to change the root directory to the directory
    # indicated, after setting up all network interfaces and socket
    # connections, but before privileges are dropped for `PrivDropToUser`
    # (if set). Doing this helps mitigate the implications of security
    # exploits, but may interfere with how hard resets are performed
    # for certain NCPs.
    #
    # Optional. Default value is empty, which means that `chroot` is
    # not called.
    #
    #Config:Daemon:Chroot "/var/empty"
    
    # Automatic firmware update enable/disable. This flag determines
    # if the automatic firmware update mechanism (which uses the
    # properties `FirmwareCheckCommand` and `FirmwareUpgradeCommand`,
    # described below) is enabled or disabled. This flag is used
    # when the driver determines that it doesn't know how to talk to
    # the version of the firmware that is running on the NCP.
    #
    # If set to true, the NCP association state will then be set to
    # `upgrading` and the firmware update process will begin. If set to
    # false, the NCP association state will change to `fault`.
    #
    # This property may be changed at runtime to more strictly
    # control when a firmware update is allowed to take place.
    #
    # Optional. The default value is false---which will prevent
    # automatic wpantund-driven firmware updates.
    #
    #Daemon:AutoFirmwareUpdate true
    
    # Firmware update check command. This command is executed with
    # the retrieved version string of the NCP appended as the last
    # argument. If the command returns `0`, a firmware update is
    # necessary. This configuration option is fairly useless without
    # the `FirmwareUpgradeCommand` option also being set, defined below.
    #
    # Optional. If left blank, wpantund-driven firmware updates will
    # be disabled.
    #
    #Config:NCP:FirmwareCheckCommand "test 'MyFunStack/1.0' !="
    #Config:NCP:FirmwareCheckCommand "/usr/local/sbin/zb-loader --is-update-required /usr/share/ncp-firmware/ip-modem-app.bin"
    
    # Firmware upgrade command. This is the command that is actually
    # executed that performs the firmware update. Before calling this
    # command, `wpantund` disconnects entirely from the NCP. While
    # this command is executing, the association state reported
    # for this interface will be `upgrading`.
    #
    # Optional. If left blank, wpantund-driven firmware updates will
    # be disabled.
    #
    #Config:NCP:FirmwareUpgradeCommand "/usr/local/sbin/zb-loader /dev/ttyO1 --app-easyload /usr/share/ncp-firmware/ip-modem-app.bin"
    
    sysconfig-5.40.txt
    /*
     * Copyright (c) 2018, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    // @cliArgs --board /ti/boards/LP_CC1352P7_1 --rtos tirtos
    
    /*
     *  border_router_nanostack_mesh_tirf.syscfg
     */
    
    /* ======== RF ======== */
    var RF = scripting.addModule("/ti/drivers/RF");
    
    /* If an antenna component exists, assign it to the RF instance */
    if (system.deviceData.board && system.deviceData.board.components.RF) {
        RF.$hardware = system.deviceData.board.components.RF;
    }
    
    /* ======== TRNG ======== */
    var TRNG = scripting.addModule("/ti/drivers/TRNG", {}, false);
    var trng = TRNG.addInstance();
    trng.$name = "NANOSTACK_TRNG";
    
    /* ======== NVS ======== */
    var NVS = scripting.addModule("/ti/drivers/NVS");        // Add a NVS module
    var NVS_INT = NVS.addInstance();                         // Add an internal NVS module instance
    
    NVS_INT.$name = "CONFIG_NVSINTERNAL";                    // Internal NVS
    NVS_INT.internalFlash.regionBase = 0x52000;              // project has 2 NV pages default
    NVS_INT.internalFlash.regionSize = 0x4000;
    
    /* ======== Watchdog ======== */
    var Watchdog = scripting.addModule("/ti/drivers/Watchdog", {}, false);
    var Watchdog1 = Watchdog.addInstance();
    
    /* ======== UART ======== */
    var UART = scripting.addModule("/ti/drivers/UART", {}, false);
    var UART1 = UART.addInstance();
    UART1.$hardware = system.deviceData.board.components.XDS110UART;
    
    /* ======== TRNG ======== */
    var TRNG = scripting.addModule("/ti/drivers/TRNG", {}, false);
    var TRNG1 = TRNG.addInstance();
    
    /* ======== LED Red ======== */
    var LED = scripting.addModule("/ti/drivers/apps/LED");   // Add a LED module
    var LED_R = LED.addInstance();                           // Add a LED module instance for LED_R
    
    /* If a red LED component exists, assign it to the LED_R instance */
    if (system.deviceData.board && system.deviceData.board.components.LED_RED) {
        LED_R.$hardware = system.deviceData.board.components.LED_RED;
    }
    else
    {
        LED_R.mode = "Output";  // Set the LED pin to output
    }
    
    LED_R.$name = "CONFIG_LED_RED";
    LED_R.gpioPin.$name = "CONFIG_GPIO_RLED";               // Descriptive name for the LED_R GPIO
    LED_R.gpioPin.mode = "Output";
    LED_R.gpioPin.callbackFunction = "";
    
    
    /* ======== LED Green ======== */
    var LED = scripting.addModule("/ti/drivers/apps/LED");   // Add a LED module
    var LED_G = LED.addInstance();                           // Add a LED module instance for LED_G
    
    /* If a red LED component exists, assign it to the LED_G instance */
    if (system.deviceData.board && system.deviceData.board.components.LED_GREEN) {
        LED_G.$hardware = system.deviceData.board.components.LED_GREEN;
    }
    else
    {
        LED_G.mode = "Output";  // Set the LED pin to output
    }
    
    LED_G.$name = "CONFIG_LED_GREEN";
    LED_G.gpioPin.$name = "CONFIG_GPIO_GLED";               // Descriptive name for the LED_G GPIO
    LED_G.gpioPin.mode = "Output";
    LED_G.gpioPin.callbackFunction = "";
    
    /* ======== Left Button ======== */
    var BUTTON = scripting.addModule("/ti/drivers/apps/Button");    // Add a BUTTON module
    var BUTTON_L = BUTTON.addInstance();                            // Add a BUTTON module instance for BUTTON_L
    
    /* If a BUTTON0 component exists, assign it to the BUTTON_L instance */
    if (system.deviceData.board && system.deviceData.board.components["BTN-1"]) {
        BUTTON_L.$hardware = system.deviceData.board.components["BTN-1"];
    }
    
    BUTTON_L.$name = "CONFIG_BTN_LEFT";
    BUTTON_L.gpioPin.$name = "CONFIG_GPIO_BTN1";             // Descriptive name for the BUTTON_L GPIO
    BUTTON_L.gpioPin.pull = "Pull Up";                       // Use Pull up resistor
    
    /* ======== Right Button ======== */
    var BUTTON = scripting.addModule("/ti/drivers/apps/Button");    // Add a BUTTON module
    var BUTTON_R = BUTTON.addInstance();                            // Add a BUTTON module instance for BUTTON_R
    
    /* If a BUTTON0 component exists, assign it to the BUTTON_R instance */
    if (system.deviceData.board && system.deviceData.board.components["BTN-2"]) {
        BUTTON_R.$hardware = system.deviceData.board.components["BTN-2"];
    }
    
    BUTTON_R.$name = "CONFIG_BTN_RIGHT";
    BUTTON_R.gpioPin.$name = "CONFIG_GPIO_BTN2";             // Descriptive name for the BUTTON_R GPIO
    BUTTON_R.gpioPin.pull = "Pull Up";                       // Use Pull up resistor
    
    
    /* ======== TI-15.4 Stack ======== */
    var TI154Stack = scripting.addModule("/ti/ti_wisunfan/ti_wisunfan");
    TI154Stack.project = "borderrouter";
    TI154Stack.mode = "frequencyHopping";
    TI154Stack.lockProject = true;
    TI154Stack.rxOnIdle = true;
    TI154Stack.panID = 0xABCD;
    TI154Stack.secureLevel = "macSecure";
    
    
    /* ======== Device ======== */
    var device = scripting.addModule("ti/devices/CCFG");
    const ccfgSettings = system.getScript("/ti/common/lprf_ccfg_settings.js").ccfgSettings;
    for(var setting in ccfgSettings)
    {
        device[setting] = ccfgSettings[setting];
    }
    
    /* ======== RTOS ======== */
    const RTOS = scripting.addModule("/ti/drivers/RTOS");
    RTOS.name = "TI-RTOS";
    
    sysconfig-6.10.txt
    /*
     * Copyright (c) 2018, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    // @cliArgs --board /ti/boards/LP_CC1352P7_1 --rtos tirtos7
    
    /*
     *  border_router_nanostack_mesh_tirf.syscfg
     */
    
    /* ======== RF ======== */
    var RF = scripting.addModule("/ti/drivers/RF");
    
    /* If an antenna component exists, assign it to the RF instance */
    if (system.deviceData.board && system.deviceData.board.components.RF) {
        RF.$hardware = system.deviceData.board.components.RF;
    }
    
    /* ======== TRNG ======== */
    var TRNG = scripting.addModule("/ti/drivers/TRNG", {}, false);
    var trng = TRNG.addInstance();
    trng.$name = "NANOSTACK_TRNG";
    
    /* ======== NVS ======== */
    const deviceName = system.getScript("/ti/ti_wisunfan/ti_wisunfan_common.js").getLaunchPadFromDevice();
    var NVS = scripting.addModule("/ti/drivers/NVS");        // Add a NVS module
    var NVS_INT = NVS.addInstance();                         // Add an internal NVS module instance
    
    NVS_INT.$name = "CONFIG_NVSINTERNAL";                    // Internal NVS
    if (deviceName.includes("R7") || deviceName.includes("P7"))
    {
        NVS_INT.internalFlash.regionBase = 0xAA000;
    }
    else
    {
        NVS_INT.internalFlash.regionBase = 0x52000;
    }
    NVS_INT.internalFlash.regionSize = 0x4000;               // Sensor project has 2 NV pages default
    
    
    /* ======== Watchdog ======== */
    var Watchdog = scripting.addModule("/ti/drivers/Watchdog", {}, false);
    var Watchdog1 = Watchdog.addInstance();
    
    /* ======== UART ======== */
    var UART = scripting.addModule("/ti/drivers/UART", {}, false);
    var UART1 = UART.addInstance();
    UART1.$hardware = system.deviceData.board.components.XDS110UART;
    
    /* ======== TRNG ======== */
    var TRNG = scripting.addModule("/ti/drivers/TRNG", {}, false);
    var TRNG1 = TRNG.addInstance();
    
    /* ======== LED Red ======== */
    var LED = scripting.addModule("/ti/drivers/apps/LED");   // Add a LED module
    var LED_R = LED.addInstance();                           // Add a LED module instance for LED_R
    
    /* If a red LED component exists, assign it to the LED_R instance */
    if (system.deviceData.board && system.deviceData.board.components.LED_RED) {
        LED_R.$hardware = system.deviceData.board.components.LED_RED;
    }
    else
    {
        LED_R.mode = "Output";  // Set the LED pin to output
    }
    
    LED_R.$name = "CONFIG_LED_RED";
    LED_R.gpioPin.$name = "CONFIG_GPIO_RLED";               // Descriptive name for the LED_R GPIO
    LED_R.gpioPin.mode = "Output";
    LED_R.gpioPin.callbackFunction = "";
    
    
    /* ======== LED Green ======== */
    var LED = scripting.addModule("/ti/drivers/apps/LED");   // Add a LED module
    var LED_G = LED.addInstance();                           // Add a LED module instance for LED_G
    
    /* If a red LED component exists, assign it to the LED_G instance */
    if (system.deviceData.board && system.deviceData.board.components.LED_GREEN) {
        LED_G.$hardware = system.deviceData.board.components.LED_GREEN;
    }
    else
    {
        LED_G.mode = "Output";  // Set the LED pin to output
    }
    
    LED_G.$name = "CONFIG_LED_GREEN";
    LED_G.gpioPin.$name = "CONFIG_GPIO_GLED";               // Descriptive name for the LED_G GPIO
    LED_G.gpioPin.mode = "Output";
    LED_G.gpioPin.callbackFunction = "";
    
    /* ======== Left Button ======== */
    var BUTTON = scripting.addModule("/ti/drivers/apps/Button");    // Add a BUTTON module
    var BUTTON_L = BUTTON.addInstance();                            // Add a BUTTON module instance for BUTTON_L
    
    /* If a BUTTON0 component exists, assign it to the BUTTON_L instance */
    if (system.deviceData.board && system.deviceData.board.components["BTN-1"]) {
        BUTTON_L.$hardware = system.deviceData.board.components["BTN-1"];
    }
    
    BUTTON_L.$name = "CONFIG_BTN_LEFT";
    BUTTON_L.gpioPin.$name = "CONFIG_GPIO_BTN1";             // Descriptive name for the BUTTON_L GPIO
    BUTTON_L.gpioPin.pull = "Pull Up";                       // Use Pull up resistor
    
    /* ======== Right Button ======== */
    var BUTTON = scripting.addModule("/ti/drivers/apps/Button");    // Add a BUTTON module
    var BUTTON_R = BUTTON.addInstance();                            // Add a BUTTON module instance for BUTTON_R
    
    /* If a BUTTON0 component exists, assign it to the BUTTON_R instance */
    if (system.deviceData.board && system.deviceData.board.components["BTN-2"]) {
        BUTTON_R.$hardware = system.deviceData.board.components["BTN-2"];
    }
    
    BUTTON_R.$name = "CONFIG_BTN_RIGHT";
    BUTTON_R.gpioPin.$name = "CONFIG_GPIO_BTN2";             // Descriptive name for the BUTTON_R GPIO
    BUTTON_R.gpioPin.pull = "Pull Up";                       // Use Pull up resistor
    
    /* ======== RF Design ======== */
    var rfDesign = scripting.addModule("ti/devices/radioconfig/rfdesign");
    const rfDesignSettings = system.getScript("/ti/common/lprf_rf_design_settings.js").rfDesignSettings;
    for(var setting in rfDesignSettings)
    {
        rfDesign[setting] = rfDesignSettings[setting];
    }
    
    /* ======== TI-15.4 Stack ======== */
    var TI154Stack = scripting.addModule("/ti/ti_wisunfan/ti_wisunfan");
    if(rfDesignSettings.rfDesign !== undefined)
    {
        TI154Stack.rfDesign = rfDesignSettings.rfDesign;
    }
    
    TI154Stack.project = "borderrouter";
    TI154Stack.mode = "frequencyHopping";
    TI154Stack.lockProject = true;
    TI154Stack.rxOnIdle = true;
    TI154Stack.panID = 0xABCD;
    TI154Stack.secureLevel = "macSecure";
    
    /* ======== Device ======== */
    var device = scripting.addModule("ti/devices/CCFG");
    const ccfgSettings = system.getScript("/ti/common/lprf_ccfg_settings.js").ccfgSettings;
    for(var setting in ccfgSettings)
    {
        device[setting] = ccfgSettings[setting];
    }
    
    /*
     * Address to place reset vector on target device.
     * See the application's linker command file for further section
     * information.
     */
    const Hwi = scripting.addModule("/ti/sysbios/family/arm/m3/Hwi");
    Hwi.resetVectorAddress = system.utils.bigInt("0", 16);
    
    /* ================ Boot configuration ================ */
    const Boot = scripting.addModule("/ti/sysbios/family/arm/cc26xx/Boot");
    /*
     * This module contains family specific Boot APIs and configuration settings.
     * See the SYS/BIOS API guide for more information.
     */
    /*!
     *  Include a default customer configuration (CCFG) structure, default is
     *  false.
     *  Set to true to link in the default CCFG data structure in driverlib.
     */
    Boot.customerConfig = false;
    
    /* ================ Clock configuration ================ */
    const Clock = scripting.addModule("/ti/sysbios/knl/Clock");
    /*
     * When using Power and calibrateRCOSC is set to true, this should be set to 10.
     * The timer used by the Clock module supports TickMode_DYNAMIC. This enables us
     * to set the tick period to 10 us without generating the overhead of additional
     * interrupts.
     *
     * Note: The calibrateRCOSC parameter is set within the Power configuration
     *     structure in the "Board.c" file.
     */
    Clock.tickPeriod = 10;
    
    /* ================ Error configuration ================ */
    const Error = scripting.addModule("/ti/sysbios/runtime/Error");
    /*
     * This function is called to handle all raised errors, but unlike
     * Error.raiseHook, this function is responsible for completely handling the
     * error with an appropriately initialized Error_Block.
     *
     * Pick one:
     *  - Error_UNWIND
     *      Returns back to the caller
     *  - Error_SPIN
     *      Simple alternative that traps on a while(1) loop for minimized target
     *      footprint
     *      Using Error_UNWIND, the Error.raiseHook will NOT called.
     *  - Error_TERMINATE
     *      Calls System_abort()
     */
    Error.policy = "Error_UNWIND";
    //Error.policy = "Error_TERMINATE";
    //Error.policy = "Error_SPIN";
    
    /*
     * If set to a non-null value, the referenced function is always called when
     * an error is raised, even if the Error policy is TERMINATE. 
     *
     * Pick one:
     *  - Error.print (default)
     *      Errors are formatted and output via System_printf() for easier
     *      debugging.
     *  - Null
     *      Errors are not formatted or logged. This option reduces code footprint.
     *  - non-null function
     *      Errors invoke custom user function. See the Error module documentation
     *      for more details.
     */
    //Error.raiseHook = Error.print;
    Error.raiseHook = "NULL";
    //Error.raiseHook = "myErrorFxn";
    
    /* ================ Hwi configuration ================ */
    /*
     * Checks for Hwi (system) stack overruns while in the Idle loop.
     *
     * Pick one:
     *  - true (default)
     *      Checks the top word for system stack overflows during the idle loop and
     *      raises an Error if one is detected.
     *  - false
     *      Disabling the runtime check improves runtime performance and yields a
     *      reduced flash footprint.
     */
    //Hwi.checkStackFlag = true;
    Hwi.checkStackFlag = false;
    
    /*
     * The following options alter the system's behavior when a hardware exception
     * is detected.
     *
     * Pick one:
     *  - Hwi.enableException = true
     *      This option causes the default Hwi.excHandlerFunc function to fully
     *      decode an exception and dump the registers to the system console.
     *      This option raises errors in the Error module and displays the
     *      exception in ROV.
     *  - Hwi.enableException = false
     *      This option reduces code footprint by not decoding or printing the
     *      exception to the system console.
     *      It however still raises errors in the Error module and displays the
     *      exception in ROV.
     *  - Hwi.excHandlerFunc = null
     *      This is the most aggressive option for code footprint savings; but it
     *      can difficult to debug exceptions. It reduces flash footprint by
     *      plugging in a default while(1) trap when exception occur. This option
     *      does not raise an error with the Error module.
     */
    //Hwi.enableException = true;
    Hwi.enableException = false;
    //Hwi.excHandlerFunc = null;
    
    /*
     * Append any of the following settings to the nvicCCR array to enable the 
     * corresponding hardware exception:
     *  - DIV_0_TRP: Enables hardware exception when dividing by zero
     *  - UNALIGN_TRP: Enables hardware exceptions when accessing unaligned memory
     *
     */
     Hwi.nvicCCR = [];
    //Hwi.nvicCCR = ["DIV_0_TRP"];
    //Hwi.nvicCCR = [UNALIGN_TRP"];
    //Hwi.nvicCCR = ["DIV_0_TRP","UNALIGN_TRP"];
    
    /* ================ Idle configuration ================ */
    const Idle       = scripting.addModule("/ti/sysbios/knl/Idle");
    const powerIdle  = Idle.addInstance();
    
    /*
     * The Idle module is used to specify a list of functions to be called when no
     * other tasks are running in the system.
     *
     * Functions added here will be run continuously within the idle task.
     *
     * Function signature:
     *     Void func(Void);
     */
    powerIdle.$name   = "powerIdle";
    powerIdle.idleFxn = "Power_idleFunc"; /* Add the Power module's idle function */
    
    /* ================ Kernel (SYS/BIOS) configuration ================ */
    const BIOS = scripting.addModule("/ti/sysbios/BIOS");
    /*
     * Enable asserts in the BIOS library.
     *
     * Pick one:
     *  - true (default)
     *      Enables asserts for debugging purposes.
     *  - false
     *      Disables asserts for a reduced code footprint and better performance.
     *
     *  When using BIOS in ROM:
     *      This option must be set to false.
     */
    //BIOS.assertsEnabled = true;
    BIOS.assertsEnabled = false;
    
    /*
     * Runtime instance creation enable flag.
     *
     * Pick one:
     *   - true (default)
     *      Allows Mod_create() and Mod_delete() to be called at runtime which
     *      requires a default heap for dynamic memory allocation.
     *   - false
     *      Reduces code footprint by disallowing Mod_create() and Mod_delete() to
     *      be called at runtime. Object instances are constructed via
     *      Mod_construct() and destructed via Mod_destruct().
     *
     *  When using BIOS in ROM:
     *      This option must be set to true.
     */
    BIOS.runtimeCreatesEnabled = true;
    //BIOS.runtimeCreatesEnabled = false;
    
    /*
     * Enable logs in the BIOS library.
     *
     * Pick one:
     *  - true (default)
     *      Enables logs for debugging purposes.
     *  - false
     *      Disables logging for reduced code footprint and improved runtime
     *      performance.
     *
     *  When using BIOS in ROM:
     *      This option must be set to false.
     */
    //BIOS.logsEnabled = true;
    BIOS.logsEnabled = false;
    
    BIOS.rtsGateType  = "BIOS_GateMutexPri";
    BIOS.heapSize     = 0x00000000;
    BIOS.heapType     = "HeapCallback";
    
    /* ================ Semaphore configuration ================ */
    const Semaphore = scripting.addModule("/ti/sysbios/knl/Semaphore");
    /*
     * Enables global support for Task priority pend queuing.
     *
     * Pick one:
     *  - true (default)
     *      This allows pending tasks to be serviced based on their task priority.
     *  - false
     *      Pending tasks are services based on first in, first out basis.
     *
     *  When using BIOS in ROM:
     *      This option must be set to false.
     */
    //Semaphore.supportsPriority = true;
    Semaphore.supportsPriority = false;
    
    /*
     * Allows for the implicit posting of events through the semaphore,
     * disable for additional code saving.
     *
     * Pick one:
     *  - true
     *      This allows the Semaphore module to post semaphores and events
     *      simultaneously.
     *  - false (default)
     *      Events must be explicitly posted to unblock tasks.
     *
     *  When using BIOS in ROM:
     *      This option must be set to false.
     */
    //Semaphore.supportsEvents = true;
    Semaphore.supportsEvents = false;
    
    /* ================ Swi configuration ================ */
    const Swi = scripting.addModule("/ti/sysbios/knl/Swi");
    /*
     * A software interrupt is an object that encapsulates a function to be
     * executed and a priority. Software interrupts are prioritized, preempt tasks
     * and are preempted by hardware interrupt service routines.
     *
     * This module is included to allow Swi's in a users' application.
     */
    /*
     * Reduce the number of swi priorities from the default of 16.
     * Decreasing the number of swi priorities yields memory savings.
     */
    Swi.numPriorities = 6;
    
    /* ================ System configuration ================ */
    const System = scripting.addModule("/ti/sysbios/runtime/System");
    /*
     * The Abort handler is called when the system exits abnormally.
     *
     * Pick one:
     *  - System_abortStd (default)
     *      Call the ANSI C Standard 'abort()' to terminate the application.
     *  - System_abortSpin
     *      A lightweight abort function that loops indefinitely in a while(1) trap
     *      function.
     *  - A custom abort handler
     *      A user-defined function. See the System module documentation for
     *      details.
     */
    //System.abortFxn = "System_abortStd";
    System.abortFxn = "System_abortSpin";
    //System.abortFxn = "myAbortSystem";
    
    /*
     * The Exit handler is called when the system exits normally.
     *
     * Pick one:
     *  - System_exitStd (default)
     *      Call the ANSI C Standard 'exit()' to terminate the application.
     *  - System_exitSpin
     *      A lightweight exit function that loops indefinitely in a while(1) trap
     *      function.
     *  - A custom exit function
     *      A user-defined function. See the System module documentation for
     *      details.
     */
    //System.exitFxn = "System_exitStd";
    System.exitFxn = "System_exitSpin";
    //System.exitFxn = "myExitSystem";
    
    /*
     * Minimize exit handler array in the System module. The System module includes
     * an array of functions that are registered with System_atexit() which is
     * called by System_exit().
     */
    System.maxAtexitHandlers = 2;
    
    /*
     * Enable System_printf() to display floats.  Use the longer '%f%$L%$S%$F'
     * if your code has SYS/BIOS instrumentation enabled (Asserts/Error/Log),
     * as is typical with the 'debug' profile.
     */
    //System.extendedFormats = '%f%$L%$S%$F';
    System.extendedFormats = '%f%$S';
    
    /*
     * The System.supportModule defines a low-level implementation of System
     * functions such as System_printf(), System_flush(), etc.
     *
     * Pick one pair:
     *  - SysMin
     *      This module maintains an internal configurable circular buffer that
     *      stores the output until System_flush() is called.
     *      The size of the circular buffer is set via SysMin.bufSize.
     *  - SysCallback
     *      SysCallback allows for user-defined implementations for System APIs.
     *      The SysCallback support module has a smaller code footprint and can be
     *      used to supply custom System_printf services.
     *      The default SysCallback functions point to stub functions. See the
     *      SysCallback module's documentation.
     */
    //const SysMin = scripting.addModule("/ti/sysbios/runtime/SysMin");
    //System.supportModule = "SysMin";
    //SysMin.bufSize = 1024;
    
    System.supportModule = "SysCallback";
    const SysCallback = scripting.addModule("/ti/sysbios/runtime/SysCallback");
    //SysCallback.abortFxn = "myUserAbort";
    //SysCallback.exitFxn  = "myUserExit";
    //SysCallback.flushFxn = "myUserFlush";
    SysCallback.putchFxn = "ns_put_char_blocking";
    //SysCallback.readyFxn = "myUserReady";
    
    /* ================ Task configuration ================ */
    const Task = scripting.addModule("/ti/sysbios/knl/Task");
    /*
     * Check task stacks for overflow conditions.
     *
     * Pick one:
     *  - true (default)
     *      Enables runtime checks for task stack overflow conditions during
     *      context switching ("from" and "to")
     *  - false
     *      Disables runtime checks for task stack overflow conditions.
     *
     *  When using BIOS in ROM:
     *      This option must be set to false.
     */
    //Task.checkStackFlag = true;
    Task.checkStackFlag = false;
    
    /*
     * Set the default task stack size when creating tasks.
     *
     * The default is dependent on the device being used. Reducing the default stack
     * size yields greater memory savings.
     */
    Task.defaultStackSize = 512;
    
    /*
     * Enables the idle task.
     *
     * Pick one:
     *  - true (default)
     *      Creates a task with priority of 0 which calls idle hook functions. This
     *      option must be set to true to gain power savings provided by the Power
     *      module.
     *  - false
     *      No idle task is created. This option consumes less memory as no
     *      additional default task stack is needed.
     *      To gain power savings by the Power module without having the idle task,
     *      add Idle.run as the Task.allBlockedFunc.
     */
    Task.enableIdleTask = true;
    //Task.enableIdleTask = false;
    //Task.allBlockedFunc = Idle.run;
    
    /*
     * If Task.enableIdleTask is set to true, this option sets the idle task's
     * stack size.
     *
     * Reducing the idle stack size yields greater memory savings.
     */
    Task.idleTaskStackSize = 512;
    
    /*
     * Reduce the number of task priorities.
     * Decreasing the number of task priorities yield memory savings.
     */
    Task.numPriorities = 6;
    
    
    /* ================ GateMutexPri configuration ================ */
    const GateMutexPri = scripting.addModule("/ti/sysbios/gates/GateMutexPri");
    
    
    /* ================ Memory configuration ================ */
    const HeapCallback = scripting.addModule("/ti/sysbios/heaps/HeapCallback");
    
    HeapCallback.initFxn            = 'osalHeapInitFxn';        // Call First When BIOS boot. Initialize the Heap Manager.
    HeapCallback.allocInstFxn       = 'osalHeapAllocFxn';       // Call for allocating a buffer
    HeapCallback.freeInstFxn        = 'osalHeapFreeFxn';        // Call for Freeing a buffer
    HeapCallback.getStatsInstFxn    = 'osalHeapGetStatsFxn';    // Return Statistic on the Heap.
    HeapCallback.isBlockingInstFxn  = 'osalHeapIsBlockingFxn';  // Return TRUE: This heap is always blocking ('Hwi Gate' like )
    
    const Memory = scripting.addModule("/ti/sysbios/runtime/Memory");
    const Settings = scripting.addModule("/ti/posix/tirtos/Settings");
    
    /* ================ Event configuration ================ */
    const Event = scripting.addModule("/ti/sysbios/knl/Event");
    
    /* ================ Mailbox configuration ================ */
    const Mailbox = scripting.addModule("ti/sysbios/knl/Mailbox");
    
    sysconfig-5.30.txt
    /*
     * Copyright (c) 2018, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    // @cliArgs --board /ti/boards/LP_CC1352P7_1
    
    /*
     *  border_router_nanostack_mesh_tirf.syscfg
     */
    
    /* ======== RF ======== */
    var RF = scripting.addModule("/ti/drivers/RF");
    
    /* If an antenna component exists, assign it to the RF instance */
    if (system.deviceData.board && system.deviceData.board.components.RF) {
        RF.$hardware = system.deviceData.board.components.RF;
    }
    
    /* ======== TRNG ======== */
    var TRNG = scripting.addModule("/ti/drivers/TRNG", {}, false);
    var trng = TRNG.addInstance();
    trng.$name = "NANOSTACK_TRNG";
    
    /* ======== NVS ======== */
    var NVS = scripting.addModule("/ti/drivers/NVS");        // Add a NVS module
    var NVS_INT = NVS.addInstance();                         // Add an internal NVS module instance
    
    NVS_INT.$name = "CONFIG_NVSINTERNAL";                    // Internal NVS
    NVS_INT.internalFlash.regionBase = 0x52000;              // project has 2 NV pages default
    NVS_INT.internalFlash.regionSize = 0x4000;
    
    /* ======== Watchdog ======== */
    var Watchdog = scripting.addModule("/ti/drivers/Watchdog", {}, false);
    var Watchdog1 = Watchdog.addInstance();
    
    /* ======== UART ======== */
    var UART = scripting.addModule("/ti/drivers/UART", {}, false);
    var UART1 = UART.addInstance();
    UART1.$hardware = system.deviceData.board.components.XDS110UART;
    
    /* ======== TRNG ======== */
    var TRNG = scripting.addModule("/ti/drivers/TRNG", {}, false);
    var TRNG1 = TRNG.addInstance();
    
    /* ======== LED Red ======== */
    var LED = scripting.addModule("/ti/drivers/apps/LED");   // Add a LED module
    var LED_R = LED.addInstance();                           // Add a LED module instance for LED_R
    
    /* If a red LED component exists, assign it to the LED_R instance */
    if (system.deviceData.board && system.deviceData.board.components.LED_RED) {
        LED_R.$hardware = system.deviceData.board.components.LED_RED;
    }
    else
    {
        LED_R.mode = "Output";  // Set the LED pin to output
    }
    
    LED_R.$name = "CONFIG_LED_RED";
    LED_R.gpioPin.$name = "CONFIG_GPIO_RLED";               // Descriptive name for the LED_R GPIO
    LED_R.gpioPin.mode = "Output";
    LED_R.gpioPin.callbackFunction = "";
    
    
    /* ======== LED Green ======== */
    var LED = scripting.addModule("/ti/drivers/apps/LED");   // Add a LED module
    var LED_G = LED.addInstance();                           // Add a LED module instance for LED_G
    
    /* If a red LED component exists, assign it to the LED_G instance */
    if (system.deviceData.board && system.deviceData.board.components.LED_GREEN) {
        LED_G.$hardware = system.deviceData.board.components.LED_GREEN;
    }
    else
    {
        LED_G.mode = "Output";  // Set the LED pin to output
    }
    
    LED_G.$name = "CONFIG_LED_GREEN";
    LED_G.gpioPin.$name = "CONFIG_GPIO_GLED";               // Descriptive name for the LED_G GPIO
    LED_G.gpioPin.mode = "Output";
    LED_G.gpioPin.callbackFunction = "";
    
    /* ======== Left Button ======== */
    var BUTTON = scripting.addModule("/ti/drivers/apps/Button");    // Add a BUTTON module
    var BUTTON_L = BUTTON.addInstance();                            // Add a BUTTON module instance for BUTTON_L
    
    /* If a BUTTON0 component exists, assign it to the BUTTON_L instance */
    if (system.deviceData.board && system.deviceData.board.components["BTN-1"]) {
        BUTTON_L.$hardware = system.deviceData.board.components["BTN-1"];
    }
    
    BUTTON_L.$name = "CONFIG_BTN_LEFT";
    BUTTON_L.gpioPin.$name = "CONFIG_GPIO_BTN1";             // Descriptive name for the BUTTON_L GPIO
    BUTTON_L.gpioPin.pull = "Pull Up";                       // Use Pull up resistor
    
    /* ======== Right Button ======== */
    var BUTTON = scripting.addModule("/ti/drivers/apps/Button");    // Add a BUTTON module
    var BUTTON_R = BUTTON.addInstance();                            // Add a BUTTON module instance for BUTTON_R
    
    /* If a BUTTON0 component exists, assign it to the BUTTON_R instance */
    if (system.deviceData.board && system.deviceData.board.components["BTN-2"]) {
        BUTTON_R.$hardware = system.deviceData.board.components["BTN-2"];
    }
    
    BUTTON_R.$name = "CONFIG_BTN_RIGHT";
    BUTTON_R.gpioPin.$name = "CONFIG_GPIO_BTN2";             // Descriptive name for the BUTTON_R GPIO
    BUTTON_R.gpioPin.pull = "Pull Up";                       // Use Pull up resistor
    
    
    /* ======== TI-15.4 Stack ======== */
    var TI154Stack = scripting.addModule("/ti/ti_wisunfan/ti_wisunfan");
    TI154Stack.project = "borderrouter";
    TI154Stack.mode = "frequencyHopping";
    TI154Stack.lockProject = true;
    TI154Stack.rxOnIdle = true;
    TI154Stack.panID = 0xABCD;
    TI154Stack.secureLevel = "macSecure";
    
    
    /* ======== Device ======== */
    var device = scripting.addModule("ti/devices/CCFG");
    const ccfgSettings = system.getScript("/ti/common/lprf_ccfg_settings.js").ccfgSettings;
    for(var setting in ccfgSettings)
    {
        device[setting] = ccfgSettings[setting];
    }
    

  • I compared the configuration you are using for the border router with mine or the 6_10 sdk, It seems to be the same. I don't understand where our configuration differs. I do not get a segmentation fault.

    Have you used CCS to generate and flash the firmware? 

    Which is the operating system you use on your PC? Also, a very unlikely cause but if you are using a virtual machine, have you ensured access to the right com port?

    Regards,

    Sid

  • Acctuall I solved problem with reinstalling Virtual Box.I don't know why but I think there were a problem with my com port. I was using right com port but I think VM was breaking the connection between NCP and wfantund. I acctually don't know why. But when I reinstall Virtual Box my problem solved for all SDK's. Thank you for your help.