This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Read Thread MAC address

Hello All, 

I am developing a product based on thread protocol. 

I am using nRF52840 development kit and nRF5_SDK_for_Thread_and_Zigbee_v4.1.0_32ce5f8 SDK. 

I am new to thread protocol so I would like to know getting started example for my project. 

I have referred the thread related document from Nordic info center. 

With reference to CoAP server and client example test setup I ran CoAP server on 1 dev-kit and CoAP client on another dev-kit. It worked as per explanation. 

Project Requirement, 

-> My final project contains 2 parts, 1) nRF52840 as RF device (i.e.,Node)  which based on Thread and 2) is Thread based Gateway ( this any Gateway) 

-> my node should connect to gateway (like how Zigbee base Node and Coordinator connect)  and there will be some command exchange(like for example light_bulb from Zibgee) 

I have 3 queries which are listed below, 

1) I going to use base example as CoAP server example? Is this correct example for my requirement? 

2) Assuming CoAP  server is my getting started code for development I did some test here to Get MAC address. But I am not sure whether it is correct response or not? 

   below is the snippet which I used to read MAC. I modified the thread_utils.c file thread_init() function. I used otLinkGetFactoryAssignedIeeeEui64(); function to read MAC id. 

 a)  I am not sure about function parameter passed are correct? Please check the snippet and let me know your feedback. 

 b) With above function, I got one value which as below, but I am not sure the representation of data means MSB is [0] postion or MSB is [7] position?let me know your feedback.

[0]:0xf4

[1]:0xce

[2]:0x36

[3]:0x2f

[4]:0xac

[5]:0xe2

[6]:0xc1

[7]:0x9d

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void thread_init(const thread_configuration_t * p_config)
{
otExtAddress ieeeEUI64;
otError error;
otSysInit(0, NULL);
#if defined(MULTIPROTOCOL_802154_CONFIG_PRESENT) && defined(MULTIPROTOCOL_802154_MODE)
uint32_t retval = multiprotocol_802154_mode_set((multiprotocol_802154_mode_t)MULTIPROTOCOL_802154_MODE);
ASSERT(retval == NRF_SUCCESS);
#endif
#if !defined OPENTHREAD_RADIO
platform_init();
#endif
#if FEM_CONTROL_DEFAULT_ENABLE
fem_init();
#endif
mp_ot_instance = otInstanceInitSingle();
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

3) Is there any other way to get MAC address of device other than programming(means which using API/function) ? 

Thanks and Regards

Rohit R