Abstract

Clock synchronization is critical for Wireless Sensor Networks (WSNs) due to the need of inter-node coordination and collaborative information processing. Although many message passing protocols can achieve satisfactory clock synchronization accuracy, they incur prohibitively high overhead when the network scales to more than tens of nodes. An alternative approach is to take advantage of the global time reference induced by existing infrastructures including GPS, timekeeping radio stations, or power grid. However, high power consumption and geographic constraints present them from being widely adopted in WSNs. In this paper, we propose ROCS, a new clock synchronization approach exploiting the Radio Data System (RDS) of FM radios. First, we design a new hardware FM receiver that can extract a periodic pulse from FM broadcasts, referred to as RDS clock. We then conduct a large-scale measurement study of RDS clock in our lab for a period of six days and on a vehicle driving through a metropolitan area of over 40 $km^2$. Our results show that RDS clock is highly stable and hence is a viable means to calibrate the clocks of large-scale city-wide sensor networks. To reduce the high power consumption of FM receiver, ROCS intelligently predicts the time error due to drift, and adaptively calibrates the native clock via the RDS clock. We implement ROCS in TinyOS on our hardware FM receiver and a TelosB-compatible WSN platform. Our extensive experiments using a 12-node testbed and our driving measurement traces show that ROCS achieves accurate and precise clock synchronization with low power consumption.