Google Find My Device Network implementation

Hello, 

I need to implement Find My Device for nRF52833. 

From Sample I could find "samples/bluetooth/fast_pair/Locator Tag" example. I tried to go through it. but I could not able to map with fast pair specification(Fast Pair  |  Google for Developers). 

I want to check in which function advertisement is prepared ?

How keys(account keys,anti-snoofing keys) are sent in encrypted ?

In the advertisement which data we are sending(like fast pair UUID, Model id, anti snoofing keys, unique mac address,salt field ) etc ?  

Parents
  • Sorry, maybe I jumped to conclusions initally. Most people asking about this says that they don't see the fast pair popup in Android. I am not sure exactly how the keys are being used. It is based on Google/android specification, so I don't think there is much room for customization exactly there. 

    I believe the advertisement data is set in NCS\nrf\subsys\bluetooth\services\fast_pair\fmdn\state.c, in e.g. fmdn_adv_data_async_update() it is set several places. At least there it calls bt_le_ext_adv_set_data().

    Is it something in particular that you want to add in your advertising data?

    Best regards,

    Edvin

  • No problem edvin. Thank you for your support. 

    I want to know do we use automatic advertisement or custom advertisement ? I need to use custom advertisement .  

    If I need to change advertisement data where I implement custom advertisement in source code ? 

    I also want to map Google Fast pair specification and source code.  Could you please help me on this ? 

  • Thank you PaKa for giving this information. This is very useful so I cannot modify FMDN frame in sample code.  

    I can directly use "location tag" for my product. I want to understand FMDN technology and BLE message frame preparation. So in source code where BLE message frame parameters(16 bit UUID 0xFEAA, FMDN frame type - 0x41 and ephemeral  identifier etc)  are filled  ?   

  • Thank you PaKa for giving this information. This is very useful so I cannot modify FMDN frame in sample code.  

    I can directly use "location tag" for my product. I want to understand FMDN technology and BLE message frame preparation. So in source code where BLE message frame parameters(16 bit UUID 0xFEAA, FMDN frame type - 0x41 and ephemeral  identifier etc)  are filled  ?   

  •   and  Could you resolve my above query please ? This is related to FMDN frame parameters in source code. 

  • I haven't read the code so can't answer, this should be possible to read out of the code.

  • You should study the file fp_adv.c.

    I have not looked into the details of this, but this seems to be where it sets and starts the advertising in the locator_tag sample. 

    fp_adv_payload_set() seems to be the function that populates the ad[] and sd[] (advertising data and scan_response data). Exactly what it is put in here I don't know, but it comes from the specification from Google.

    From looking around, the UUID itself is coming from:

    bt_le_ext_adv_set_data() -> fndb_frame_data -> fmdn_frame_payload -> BT_UUID_16_ENCODE(FMDN_FRAME_UUID), FMDN_FRAME_TYPE_UTP_MODE_OFF,, where FMDN_FRAME_UUID is 0xFEAA.
    Best regards,
    Edvin
Reply
  • You should study the file fp_adv.c.

    I have not looked into the details of this, but this seems to be where it sets and starts the advertising in the locator_tag sample. 

    fp_adv_payload_set() seems to be the function that populates the ad[] and sd[] (advertising data and scan_response data). Exactly what it is put in here I don't know, but it comes from the specification from Google.

    From looking around, the UUID itself is coming from:

    bt_le_ext_adv_set_data() -> fndb_frame_data -> fmdn_frame_payload -> BT_UUID_16_ENCODE(FMDN_FRAME_UUID), FMDN_FRAME_TYPE_UTP_MODE_OFF,, where FMDN_FRAME_UUID is 0xFEAA.
    Best regards,
    Edvin
Children
No Data
Related