  LoRa is the proprietary physical layer (PHY) of LoRaWAN, which is a popular
Internet-of-Things (IoT) protocol enabling low-power devices to communicate
over long ranges. A number of reverse engineering attempts have been published
in the last few years that helped to reveal many of the LoRa PHY details. In
this work, we describe our standard compatible LoRa PHY software-defined radio
(SDR) prototype based on GNU Radio. We show how this SDR prototype can be used
to develop and evaluate receiver algorithms for LoRa. As an example, we
describe the sampling time offset and the carrier frequency offset estimation
and compensation blocks. We experimentally evaluate the error rate of LoRa,
both for the uncoded and the coded cases, to illustrate that our publicly
available open-source implementation is a solid basis for further research.
