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

nrf52840 packet transmitting time measurement for TOA or TDOA

nrf52840 packet transmitting time measurement for TOA or TDOA

Hi I’m currently working with the given nordic project “nrf52-ble-long-range-demo

What I’m trying to do is measuring the sending time of packet from peripheral BLE device and arriving time of packet to central BLE device. Then with those time data I want to measure time of arrival (TOA) or time difference of arrival (TDOA) for checking distance between peri and central BLE devices in real time.

 

I got some questions while going through this project.

Q1) I sniffed some packets using wireshark when peripheral and central device are connected. What I could check is they are transmitting only empty PDUs between each other. Is there any way to store/load sending time onto this empty PDU? 

Q2) What I tried to do is putting RTC1 into manufacturing data in advertising packet to measure the sending time of packet. But the problem is that advertising packet is transmitted only before the connection is built between peripheral and central devices. So After they are connected, there is no way to transmit data. Is it possible to inject data in emptyPDU?

Q3) How can I change the type of packet from emptyPDU to other types like Data PDU or Control PDU? Control PDUs don’t normally carry data, so a preferable choice for me would be converting into Data PDU tho.

 

Q4) In terms of measuring sending time, it is the right way to check RTC1 to measure the time when the packet is transmitted? If it is not, should I use TIMER library?

 

I really hope to get explanation in detail. I’ve already gone through the code many times, so you can just mention the name of any methods or functions in code if you need. Thank you.

Parents
  • There really isn't any support for doing this using the BLE softdevice stacks. The radio is entirely used by the softdevice, and the events that you potentially could use to measure time of travel just isn't available to the application. 

    Even if you could have access to the radio events, the results would not be accurate, since the main focus of the radio and soc is low power, the delay's are not accurate enough to be used in any reliable distance measurement (e.g. the on-air bit rate is 1Mbps, so depending on when the bit is sampled in the radio, you may have a resolution of up to 1us = 300m).

    Best regards,
    Kenneth

  • Hi 
    I actually want to use BLE devices in emergency situation to track first responder.
    For example, if there is a building in fire, fire fighters are going into the building to save people who cannot escape. but in this case, we even cannot track fire fighters moving in the building. 

    So my idea is that fire fighters have peripheral BLE devices and fire chief or commander has central BLE device, then the commander can track first responder in the building and give them a proper order.

    For tracking first responder, I was tried to get distance between peripheral and central BLE devices. For getting the distance, I tried packet transmitting time for TOA or TDOA. 

    If this packet time measurement is not available using the BLE softdevice stacks, can you give me any other approaches?    I hope you got what i try to do it!

  • IMHO your case is too serious to build it using some hack upon a technology that is not intended for it. Take a look at UWB, it has much better precision and applicable for indoor positioning.

Reply Children
Related