Time-of-flight positioning - Atheros

Adrian Chadd adrian at freebsd.org
Wed Oct 29 18:34:21 UTC 2014


Oh, I asked him to. I don't mind which list he's asking for hardware help on.


On 29 October 2014 02:33, Sergey Ryazanov <ryazanov.s.a at gmail.com> wrote:
> Hi Monika,
>
> 2014-10-29 11:44 GMT+03:00 Graf  Monika <grafmon at student.ethz.ch>:
>> Hello Everyone
>>
>> I am currently at a project where I am using Atheros Chipsets AR9590 with the ath9k driver.
>>
> It's a bit strange to ask questions about linux driver in
> freebsd-wireless mailing list. Just in case, there are two mailing
> lists for ath9k: ath9k-devel and linux-wireless.
>
>> I am wondering how the time-of-flight information can be retrieved per packet in most recent Atheros chipsets. Is it required a proprietary HAL version ?
>>
> If you need a round-trip-time: take a tx timestamp from tx-complete
> descriptor of data frame, then take a timestamp from received ACK
> frame and then compute the time. To get received ACK frames from NIC
> you should enable control frames receiving in Rx filter. If you need
> more details about descriptor format or time of timestamp capture,
> then may be Adrian could help.

The RX timestamp is from the MAC, not the PHY. So it's an OK estimate,
but for metre and sub-metre accuracy you still need to get the
original PHY timestamp. IIRC the timestamps are microsecond accurate,
which limits your actual distance calculation.

Now, the AR9380 and later chips do have some stuff to pull out the PHY
timestamp and some information about the leading edge of the received
frame.

> BTW, a month ago or so, Lorenzo Bianconi added a dynamic ACK timeout
> estimation to the ath9k, based exactly on round-trip-time computation.

That was pretty cute.


-adrian


More information about the freebsd-wireless mailing list