Skip to content

Accompanying datasets for the paper "Temperature-Resilient Time Synchronization for the Internet of Things"

Notifications You must be signed in to change notification settings

IRC-SPHERE/elsts2017-temperature-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

This contains accompanying datasets for the paper:

Atis Elsts, Xenofon Fafoutis, Simon Duquennoy, George Oikonomou, Robert Piechocki and Ian Craddock, Temperature-Resilient Time Synchronization for the Internet of Things, IEEE Transactions on Industrial Informatics.

It contains both temperature measurements (by on-board HDC temperature sensors) in .csv files and the resulting drifts, in form of log outputs generated by the embedded devices.

The experiments used the microsecond-accuracy TSCH branch (source code available at https://github.com/atiselsts/contiki/tree/ptsch). The method is described in:

Elsts, A., Duquennoy, S., Fafoutis, X., Oikonomou, G., Piechocki, R. and Craddock, I., 2016. Microsecond-Accuracy Time Synchronization Using the IEEE 802.15.4 TSCH Protocol. In Local Computer Networks Workshops (LCN Workshops), IEEE 41st Conference on (pp. 156-164). IEEE.

File formats

The CSV files contain the temperature measurements on the sensor nodes.

The log files (.txt) are just the raw logging output of nodes. There are three types of lines one needs to extract:

1494298887.2 > TSCH: {asn-0.575016 link-0-0-0-0 ch-26} drift -65
1494298887.2 > TSCH: {asn-0.575016 link-0-0-0-0 ch-26} bc-0-0 35 rx 131, dr -2 (-24562), edr 2 (24562)
1494298887.4 > TSCH: {asn-0.57502b link-0-0-0-0 ch-20} bc-0-0 35 rx 131, edr 1 (-299)
  • The 1494298887.2 is server time, in seconds.
  • asn-0.575016 is the ASN slot number, in the 5 byte hex notation.
  • drift -65 is the drift estimate of the sensor node, printed in ppm (parts per million) multiplied by 1024. I.e. -65 is approximately -0.065 parts per million. It is only printed after its updated, and it's only updated on synchronization events.
  • dr -2 (-24562), edr 2 (24562) shows that EB packet was received and used for synchronization. 24562 is the corrected synchronization error. It is printed custom units, 1/1024 of a microsecond. Time correction also triggers update of the drift value (which was already printed, in the line before this one). -2 is also the corrected synchronization error, but using rtimer ticks timing. It can be ignored when the more accurate estimate in brackets is available. (There are 5^6 = 15625 units per rtimer tick. -24562 / 15625 = -1.57, which when rounded to integer gives -2).
  • edr 1 (-299) shows that EB packet was received, but not used for syncronization. -299 is the estimated error.

In the experiment, beacons were sent around once per second, but sync only once per several minutes (at least after the initial learning period). So we have few synchronization events, definitely much less than temperature sensing events.

We use these regular expressions to parse the lines (the server time is ignored):

regex_drift_value = ".*TSCH: {asn-([0-9a-f])\.([0-9a-f]+) .*} drift (-?[0-9]+)$"
regex_edr_line = ".*TSCH: {asn-([0-9a-f])\.([0-9a-f]+) .*} bc-.* rx 131, edr -?[0-9]+ \((-?[0-9]+)\)$"
regex_dr_line = ".*TSCH: {asn-([0-9a-f])\.([0-9a-f]+) .*} bc-.* rx 131, dr -?[0-9]+ \((-?[0-9]+)\), edr -?[0-9]+ \((-?[0-9]+)\)$"

About

Accompanying datasets for the paper "Temperature-Resilient Time Synchronization for the Internet of Things"

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published