4 years, 7 months ago.

"mbed-os-example-mesh-minimal"WiSUN application on Thunderboard Sense 2 borad cannot get connected!

I built "mbed-os-example-mesh-minimal"Thread and WiSUN applications for Thunderboard Sense 2 board . To compile WiSUN without error, I removed "s2lp.provide-default": true from mbed_app.json file.

When I press and release the reset button on Thunderboard Sense 2 board I have the following prompts on serial terminal:

For Thread application:

Start mesh-minimal application Build: Aug 23 2019 09:35:25 Mesh type: MBED_CONF_NSAPI_DEFAULT_MESH_TYPE Mbed OS version: 5.13.2 Device EUI64 address = ff:57:0b:00:de:8f:64:fe Connecting... Connected. IP = fd00:db8::ff:fe00:7c00

For WiSUN application:

Start mesh-minimal application Build: Aug 23 2019 15:01:33 Mesh type: MBED_CONF_NSAPI_DEFAULT_MESH_TYPE Mbed OS version: 5.13.2 Connecting...

So on WiSUN application, it does not show Connected. IP and Device EUI64 address.

Sincerely,

Mehdi

1 Answer

4 years, 7 months ago.

Hi Mehdi,

Thank you for your question!

As you can see from the code:

void thread_eui64_trace()
{
#define LOWPAN 1
#define THREAD 2
#if MBED_CONF_NSAPI_DEFAULT_MESH_TYPE == THREAD && (MBED_VERSION >= MBED_ENCODE_VERSION(5,10,0))
   uint8_t eui64[8] = {0};
   static_cast<ThreadInterface*>(mesh)->device_eui64_get(eui64);
   printf("Device EUI64 address = %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n", eui64[0], eui64[1], eui64[2], eui64[3], eui64[4], eui64[5], eui64[6], eui64[7]);
#endif
}

The "Device EUI64 address" will be shown only for THREAD mesh interface. However, you should be seeing the "connected" message. There are two possible locations where you r device is probably stuck: 1. int error = mesh->connect();

Perhaps the connecting part is stuck in a blocking loop

2. while (NULL == mesh->get_ip_address()) ThisThread::sleep_for(500);

I believe this is more likely the reason for your device being stuck.

Unfortunately, I don't have a Wisun environment to check this. Could you add a trace after the "connect" call (line 91) to check if the connection succeeded and the issue is ip address being NULL?

Regards,

Mbed OS support

Ron

Hi Ron,

Thanks for the help!

I added a print before while (NULL == mesh->get_ip_address()) loop , but I could not see it on terminal on start, so surely It stuck on int error = mesh->connect();.

Sincerely,

Mehdi

posted by Mehdi Bokharaee 28 Aug 2019

Assigned to Ron Eldor 4 years, 7 months ago.

This means that the question has been accepted and is being worked on.