Performance Evaluation of LoRaWAN Geolocation in Smart Regions

Fredrik Lindahl

Computer Science and Engineering, bachelor's level 2020

Luleå University of Technology Department of Computer Science, Electrical and Space Engineering Abstract

The number of IoT devices is increasing for every year that passes. The possibil- ity to connect more and more devices to the internet creates a lot of possibilities but it also comes with its challenges. Each IoT device has limited resources that make GPS and its high power consummation a bad choice for tracking the device. LoRa and LoRaWAN is a relatively new and interesting technol- ogy developed specifically as a wide area network for IoT devices. With the release of LoRaWAN 2.0 came the possibility to get the position of the sender through triangulation. The purpose of this report is to investigate LoRaWAN Geolocation in Smart Regions in particular, in the city of Skellefte˚a.The result shows that within a specific area you can get an accuracy of below 80 meters but moving outside that area the accuracy starts to drastically decline. The result also shows that adding more gateways doesn’t necessarily improve the accuracy but what is more important is the placement of the gateways that makes the difference.

Sammanfattning

Antal IoT enheter ¨oker f¨orvarje ˚arsom g˚ar.M¨ojlihetenatt kopplat upp mer och mer objekt till internet skaper m˚angam¨ojligheter men det kommer ocks˚a med sina utmaningar. IoT enheter har begr¨anskade resurser vilket g¨oratt GPS med dess h¨ogabatterif¨orbrukninginte ¨aralternativ f¨oratt f¨oljar¨orelsenav en IoT enhet. LoRa och loRaWAN ¨aren relative ny och intressant teknik som ¨arspeciellt utvecklad som ett wide area network till IoT enheter. Med utgivningen av LoRaWAN 2.0 kom m¨ojligheten att med hj¨alpav triangulering att f˚apositionen p˚asendare. syftet med denna rapport ¨aratt unders¨oka hur bra Geolocation fr˚anLoRaWAN ¨arinom smarta regioner s¨arskiltSkellefte˚acity. Resultatet visar att inom ett specifikt omr˚adenkan man f˚aen precision under 80 meter men b¨orjardu r¨oradig utan f¨ordetta omr˚adakommer precisionen drastiskt att f¨orsamras. Resultatet visar ocks˚aatt antal Gateways ¨okar inte n¨odv¨andigtvispersisionen men att plaseringen av varje gateway ¨armer viktig.

ii Acknowledgements

I would like to thank my supervisors Christer Alund˚ and Karan Mitra for giving me the opportunity to perform my thesis and also for being patient and helping me throughout the duration of the thesis. I would also like to thank Ali Ahmadi and Leif H¨aggmark.Ali for giving me great technical support with the sensor and Leif H¨aggmarkfor helping with the communication with Kerlink. Without you four this would never have been a possibility so you have my deepest thanks.

iii List of Figures

1 Map representing Skellefte˚aCity with each gateway location (Red marks) and each test location (Green marks) ...... 1 2 LoRaWAN ...... 3 3 Visualising how triangulation is used to find the distance of the object, d. With a baseline L and the angles α and β ...... 4 4 Illustrating LoPy[10] development board with all its sensors and specifications ...... 5 5 The project follow the flow illustrated in the figure, as the new solutions developed over the course of the project there were changes done even after testing had begun ...... 7 6 System architecture ...... 9 7 The flow each frame ...... 10 8 Location heatmap simulated by Kerlink ...... 12 9 Location heatmap simulated by Kerlink when gateway 6 was added 13 10 Boxplot illustrate the variance of values ...... 15 11 Box chart from test one for location A,B, and C ...... 17 12 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location A ...... 18 13 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location A . . . . 18 14 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location B ...... 19 15 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location B . . . . 19 16 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location C ...... 20 17 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location C . . . . 20 18 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location during driving test ...... 22 19 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) during driving test . 22 20 Box chart for test two from location A,B, and C ...... 24

iv 21 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location A ...... 24 22 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location A . . . . 25 23 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location B ...... 25 24 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location B . . . . 26 25 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location C ...... 26 26 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location C . . . . 27 27 Box chart from test four on location F and G ...... 29 28 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location F ...... 30 29 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location F . . . . 30 30 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location G ...... 31 31 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location G . . . . 31 32 Box chart from test four on location H and B ...... 33 33 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location H ...... 33 34 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location H . . . . 34 35 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location B ...... 34 36 Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location B . . . . 35 37 Triangular area estimated to get the best possible accuracy when using LoRa triangulation ...... 37

v List of Tables

1 The table shows the distance between the estimated location given by Kerlink and the location given by the mobile phone GPS at location A, B and, C using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest distance, an average and standard deviation of all the frames...... 16 2 The table shows the calculated precision for estimation of the po- sition given by Kerlink at locations A, C and, C using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the small- est and largest distance, an average and standard deviation of all the frames...... 17 3 The table shows the distance between the estimated location given by Kerlink and the location given by the mobile phone GPS during driving test using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest distance, an av- erage and standard deviation of all the frames...... 21 4 The table shows the calculated precision for estimation of the po- sition given by Kerlink during driving test using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the small- est and largest distance, an average and standard deviation of all the frames...... 21 5 The table shows the distance between the estimated location given by Kerlink and the location given by the mobile phone GPS at location A, B and, C using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest distance, an average and standard deviation of all the frames...... 23 6 The table shows the calculated precision for estimation of the po- sition given by Kerlink at location A, B and, C using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the small- est and largest distance, an average and standard deviation of all the frames...... 23 7 The table shows the distance between the estimated location given by Kerlink and the location given by the mobile phone GPS at location D and E using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest distance, an av- erage and standard deviation of all the frames...... 28 8 The table shows the calculated precision for estimation of the po- sition given by Kerlink at location D and E using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the small- est and largest distance, an average and standard deviation of all the frames...... 28

vi 9 The table shows the distance between the estimated location given by Kerlink and the location given by the mobile phone GPS at location F and G using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest distance, an av- erage and standard deviation of all the frames...... 29 10 The table shows the calculated precision for estimation of the po- sition given by Kerlink at location F and G using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the small- est and largest distance, an average and standard deviation of all the frames...... 29 11 The table shows the distance between the estimated location given by Kerlink and the location given by the mobile phone GPS at location H and B using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest distance, an av- erage and standard deviation of all the frames...... 32 12 The table shows the calculated precision for estimation of the po- sition given by Kerlink at location H and B using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the small- est and largest distance, an average and standard deviation of all the frames...... 32 13 Nothing ...... 41

vii Table of Acronyms

• IoT - Internet of Things

• RSSI - Received Signal Strength Indicator • TDOA - Time Difference Of Arrival • GPS - Global

• LoRa - Long Range • WAN - Wide area network

viii Contents

1 Introduction 1 1.1 Goal ...... 1 1.2 Background ...... 2 1.2.1 Kerlink ...... 2 1.2.2 Internet of Things ...... 2 1.2.3 LoRa ...... 2 1.2.4 Triangulation ...... 3 1.2.5 Method: RSSI and TDOA ...... 4 1.2.6 GPS ...... 5 1.2.7 LoPy ...... 5 1.2.8 JAVA ...... 6 1.2.9 Android ...... 6 1.3 Methodology ...... 6 1.3.1 Design ...... 6 1.3.2 Implementation ...... 6 1.3.3 Testing ...... 6 1.4 Thesis Limitation ...... 7

2 Method 8 2.1 Related work ...... 8 2.1.1 GPS-free Geolocation using LoRa in Low-PowerWANs . . 8 2.1.2 LoRa-positioning in Malm¨ocompared with GPS possibil- ities, power consumption accuracy ...... 8 2.2 System Design and Implementation ...... 8 2.2.1 LoPy ...... 10 2.2.2 Mobile ...... 10 2.2.3 Server ...... 11 2.3 LoRa Gateways ...... 11 2.3.1 Parameter Setup ...... 11 2.4 Experiment ...... 11 2.4.1 Test one: Standing Still ...... 13 2.4.2 Test two: Understanding the Effects of Weather Conditions 13 2.4.3 Test three: Understanding the Effects of distance to each gateway ...... 14 2.4.4 Test four: Understanding the Effects of distance to each gateway 2 ...... 14 2.4.5 Test five: Study the Effects of adding additional Gateways 14 2.5 Statistical Analysis ...... 14

3 Results 16 3.1 Test one: Standing still ...... 16 3.1.1 Driving test ...... 21 3.2 Test two: Understanding the Effects of Weather Conditions . . . 23 3.3 Test three: Understanding the Effects of distance to each gateway 27

ix 3.4 Test four: Understanding the Effects of distance to each gateway 2 28 3.5 Test five: Study the Effects of adding additional Gateways . . . . 32

4 Discussion 36 4.1 WANESY GEOLOC VS WANESY GEOLOC OS ...... 36 4.2 TDOA VS RSSI ...... 36 4.3 Position precision estimated by Kerlink ...... 36 4.4 Number of gateway reached ...... 36 4.5 Distance to gateways ...... 36 4.6 Triangular area of the gateways ...... 37 4.7 How accurate is the LoRa geolocation from Kerlink? ...... 37 4.8 What are the functionalities within Skellefte˚aCity ...... 38 4.9 What methods are used for geolocation performed by Kerlink? . 38

5 Conclusion and Future Work 39

Appendices 41

A Test One 41 A.1 Location A ...... 41 A.2 Location B ...... 42 A.3 Location C ...... 43 A.4 Driving Test ...... 43

B Test Two 44 B.1 Location A ...... 44 B.2 Location B ...... 45 B.3 Location C ...... 46

C Test three 47 C.1 Location D ...... 47 C.2 Location E ...... 48

D Test four 49 D.1 Location F ...... 49 D.2 Location G ...... 50

E Test five 51 E.1 Location H ...... 51 E.2 Location B ...... 52

x 1 Introduction

The possibility of tracking devices position has long been a standard in today’s society with the help of technologies such as GPS[7]. But with the fast expan- sion of IoT devices[1] and their limited resources, we need to start looking at alternative ways to track our devices. LoRa network and LoRaWAN protocol offer the possibility to get the position of a device with the help of triangulation. In this report, we will look at how good the location offered by LoRa is within Skellefte˚aCity with the help of a test system developed by me. We will take a closer look at each technology and look at previous studies done on the subject.

1.1 Goal The goal is to investigate LoRaWAN Geolocation in Smart Regions. In partic- ular, in the city of Skellefte˚a(figure 1) and hopefully offer support for future projects and applications. The report will look at the following questions. 1. Design and implement an architecture for evaluating LoRa geopositioning

2. What methods are used for geolocation performed by Kerlink? 3. How accurate are the methods available, considering LoRa installation in the city of Skellefte˚a?

Figure 1: Map representing Skellefte˚aCity with each gateway location (Red marks) and each test location (Green marks)

1 1.2 Background 1.2.1 Kerlink Kerlink was founded in 2004 and provides Internet of Things solutions to telecom operators, public authorities, and private businesses[13]. They supply Skellefte˚a with the LoRa network and own all right the algorithms used to calculated the position using loRaWAN.

1.2.2 Internet of Things In today’s information-centric society the Internet of Things is a technology globally used for connecting physical objects with the virtual world. The number of IoT devices is increasing for every year that passes, in 2019 connected devices were 10.6 billion with an estimation for 2025 going up to 24.9 billion[1]. Not only the number of IoT devices is growing but also the complexity of the applications. From being just a simple sensor to offering advanced services such as location tracking, remote controlling, and smart homes. This rapid advancement in deployment and complexity comes with challenges, IoT devices have limited resources in computation, storage, energy, and following the advancement, the need for alternative methods to complement IoT devices is greatly needed such as new access network technologies due to the communication paradigm that IoT brings as well as an alternative method to GPS.

1.2.3 LoRa LoRa and LoRaWAN is a relatively new and interesting technology developed specifically as a wide area network for IoT devices and offers communication, end-to-end security, mobility, and localization services [4]. It operates on a free- license 868 MHz (Europe) frequency and offers a range of up to 15km in rural areas and 5km in urban areas which makes it suitable for remote and mobile IoT devices [2]. LoRa uses chirp modulation, this means that each device can at a maximum have a duty cycle of 1% to leave room for the huge number of devices communicating. The release of LoRaWAN 2.0 offered the possibility to get geolocation from the sender through triangulation [4]. What enables this is the way that LoRaWAN is set up and how the timestamp for each message is taken. As shown in Figure 2 when an IoT device is sending out a message, every gateway that sees the device registers the message. When each gateway receives the messages a timestamp is taken, for the timestamp to be synchronized between each gateway a GPS receiver is embedded inside the gateways. This way every gateway is synchronized by taking the timestamp from the GPS satellite. The timestamp is then sent to the networking server as a part of the data frame. The networking server then computes the calculated location of that device.

2 Figure 2: LoRaWAN

1.2.4 Triangulation As explained above LoRaWAN uses the triangulation method to calculate the position of the sensor. Triangulation is a way to measure the distance to an object by using angles. As illustrated in figure 3 this is done by setting up a baseline between two known points, from each point, we take the angle to the unknown object. With these two angles and the distance between the two known points, we can calculate the distance to the object be using trigonometry[9].

sin α sin β d = L (1) sin α + β From this, we use the Pythagorean theorem to calculate the distance from each point to the object.

3 Figure 3: Visualising how triangulation is used to find the distance of the object, d. With a baseline L and the angles α and β

LoRaWAN uses this method by creating a baseline between the gateways and from that baseline take the angles that the signal is revived. Two main methods are used for triangulation, Received signal strength indication, or Time Difference Of Arrival.

1.2.5 Method: RSSI and TDOA TDOA and RSSI are two methods that can be used to get an estimated distance to a target. Both of the two methods use reference points at known locations such as gateways, routers access points when estimating distance. TDOA is the more common of the two, this method has 2 requirements, it needs to know at what time the signal is received, and at what speed the signal is traveling (usually the speed of light). When the signal is received at two reference points the distance between the target and them can be calculated by the following formula.

4 4d = c ∗ (4t) (2) 4t is the difference in arrival time at the two reference points and the c is the speed and as we mentioned earlier it’s usually the speed of light[8]. RSSI is simular to TDOA but instead of using the time difference RSSI measures the strength of the signal that is read by the reference points. As the signal loses strength as it travels RSSI can use this to estimate the distance the signal has traveled.

1.2.6 GPS Global Positioning System or more commonly known as GPS is a system that utilizes Satellite to track devices. With the help of 24 satellites plus 3 in reserve circling the earth, the GPS offers accuracy within 5 meters[7]. The more satellites that are in range of the device the better the accuracy is. GPS also offers the possibility to estimate the speed of a device using timestamps. For this reason, the GPS will be used as a comparison to the triangulation calculation from Lora.

1.2.7 LoPy LoPy is a development board perfect as an IoT platform. The applications are written in python and uses microPython as a compiler.

Figure 4: Illustrating LoPy[10] development board with all its sensors and spec- ifications

5 1.2.8 JAVA Java is an object-oriented programming language developed by James Gosling and Sun Microsystems during the 90s, it’s one of the most used programming languages today [5]. Java applications can be expected to run anywhere and are often called “write once run anywhere”. This means that a developer can develop a program and expect it to run on any java-enabled system without needing to do any adjustments [6]. Java is used in this project for developing a server.

1.2.9 Android Android is the most used mobile operating system and developed by Android Inc. In 2005 google bought the company and in 2007 Google and 83 other company standardized the operating system and released it as open source[12]. Android applications are developed by java and its object-oriented functions. In this project, a mobile application is developed to extract data from Kerlinks web server as well as extract the GPS coordinates from the mobile phones own GPS sensor.

1.3 Methodology To be able to answer the questions stated in section 1.1 we approached the project in three stages, design, implementation, and testing.

1.3.1 Design The design of the test environment was done in two smaller stages. The first stage was getting to know the equipment and to get an understanding of what was possible and not possible to do as well as seeing how different part was affected by each other. This involved finding out how to connect to the LoRa network, how to get the phone to time sync its GPS coordinate with requesting the location from Kerlink, and how to save the data. The second stage was designing the architecture for the environment. From the knowledge taken from the first stage a design of how to connect the different devices was created.

1.3.2 Implementation From the final design of the architecture, the implementation was done three stages, sensor, mobile phone app, server, and database in that order. To be able to ensure that the sensor could handle the task assigned it was implemented first so changes to the design could be done early if needed.

1.3.3 Testing When the implementation was done testing started, testing was done iteratively over the course of the project. First three location was chosen to begin with

6 and after that depending on the result and what we needed to be tested new test location was chosen.

Figure 5: The project follow the flow illustrated in the figure, as the new so- lutions developed over the course of the project there were changes done even after testing had begun

1.4 Thesis Limitation The SSIO project uses Kerlink as a supplier for the LoRa Gateways within Skellefte˚aCity this means that we are limited to only use Kerlinks own algo- rithms for calculating geolocation and as the algorithms are a trade secret we have no way to influence how they work. So we limited us to see how the current setup operated in different scenarios within Skellefte˚aCity. Following on the line of the current setup, we decide to limit the use of sensors to one as the SSIO project mostly used PyCom sensors and LoPy boards as their IoT devices. We also limited our self to only using one GPS device as a comparison because of the 10 weeks time limit on the project left no room for additional testing.

7 2 Method

This section will cover the steps taken from idea to result. It will touch on how I approached the problem, how I implemented to experiment setup, how the project evolved over time, what statistics I look at, and how the result will be presented.

2.1 Related work At an early stage of the project to get a better understanding of how the LoRa network operated and how the location was calculated, I looked trough doc- ument touching on these subjects. As similar studies have been done on the LoRa network prior to my project it gave great insight and helped to get a better picture of what to look for when developing the test environment as well as when analyzing the result.

2.1.1 GPS-free Geolocation using LoRa in Low-PowerWANs GPS-free Geolocation using LoRa in Low-PowerWANs[2] is a study done in Denmark on LoRa, evaluating how good the geolocation is when using LoRa triangulation. Their implementation was built in four blocks, end node with GPS receiver, LoRa gateways, Server (The things network), and java applica- tion. The main difference is that the authors focus is the algorithms and in our case, we have no control or insight into how the algorithms work so our focus is how the LoRa system operates in a specific environment.

2.1.2 LoRa-positioning in Malm¨ocompared with GPS possibilities, power consumption accuracy LoRa-positioning in Malm¨ocompared with GPS possibilities, power consump- tion and accuracy[11] is a study similar to mine but is focused more on power consumption and a little less on accuracy. The study is done in Malm¨owhich is bigger then Skellefte˚aand their public LoRa network have gateways a lot further apart. It’s interesting to see that result he got on accuracy is almost double what I have seen so far. This might be because of the placement of the gateways or the algorithms that are used. It would be interesting to see what algorithms are used as it is not stated.

2.2 System Design and Implementation The test environment that is illustrated in Figure 6 was developed in three stages. As the IoT platform was the main part of the testing it was done early in development as part of stage one. Stage two was spent on the mobile phone, a lot of time where spent on this as it was responsible for guaranteeing that the location was snapshot as close together as possible. Lastly, stage three was spent setting up the server and database.

8 Figure 6: System architecture

Figure 7 illustrates the flow of the experiment from mobile connecting to that the data is saved in the database. The biggest challenge was to figure out which of the phone or the PyCom would be the best for packing the data. As we want to have the timestamp of the coordinates as close to each other as possible I felt that letting the PyCom send an update message to Kerlink and at the same time tell the phone to snapshot its coordinates. This should help the small amount of delay created by sending the messages from affecting the result.

9 Figure 7: The flow each frame

As mentioned above and illustrated in figure 7 the process of collecting the data starts with 2 messages going out from the PyCom, one sending an update message to the Kerlink and one telling the phone to snapshot its Coordinates. The phone then waits 15 seconds before requesting the Coordinates from Kerlink to ensure that Kerlink has time to calculate the position of the PyCom.

2.2.1 LoPy As center part of the experiment, I needed to guarantee that the IoT device sent out an update message to Kerlink without delay. To achieve this I let the device only act as a sender meaning that everything was triggered by the device not depending on anyone else. The connection to the mobile phone was done via a server socket opened on the IoT device, this to handle the changing IP addresses a mobile get when running on 4G. When everything is connected the IoT device will send an update message to Kerlink so they can calculate the position of the device and after one second send a trigger message to the phone telling it to start the process of gathering the data.

2.2.2 Mobile When the mobile receives the trigger message the process of gathering data starts. We snapshot the current position from the mobile phone GPS sensor and then to guarantee that Kerlink has time to calculate the position of the sensor the phone will wait for 15 seconds before sending a GET request to Kerlink for the latest position data. The mobile phone then packets the position data from Kerlink and the GPS data within a JSONObject and sends it on to the server.

10 2.2.3 Server When the server receives the data it unpacks it and saves it in the database. The server runs on a Raspberry Pi3 specifications below • CPU: 4x ARM Cortex-A53, 1.2GHz.

• GPU: Broadcom VideoCore IV. • RAM: 1GB LPDDR2 (900 MHz) • Networking: 10/100 Ethernet, 2.4GHz 802.11n wireless.

• Storage: 32GB microSD card.

2.3 LoRa Gateways There are 6 gateways place around Skellefte˚acity with one of them added later on. Each gateway is placed at the following altitude. • Gateway One: 49 m • Gateway Two: 11 m • Gateway Three: 156 m

• Gateway Four: 69 m • Gateway Five: 65 m • Gateway six: 33m

2.3.1 Parameter Setup For consistency we set up the following base parameters for the testing.

• At least 40 frames for each test. • One frame every 30 seconds

2.4 Experiment As stated in section 2.3.1 the base of the experiment would consist of a minimum of 40 data frames, one every 30 seconds to assume a normal distribution of the data. When deciding how to conduct the experiment we look at what we wanted to achieve. As the main goal was to evaluate how the LoRa network performed with the current setup we decided to run a number of the same test at different locations within Skellefte˚acity. We opted to run a standstill test at each location and one shorter driving test to see how movement affected the result. When deciding where to run the tests we look at the heatmap offered by Kerlink illustrated in figure: 8. The figure is a simulated map of where the best

11 location should be so when looking at where to run the first test we decided to run a test at 3 locations within the green area of the map. Test two was a repeat of test one but in worse weather conditions.

Figure 8: Location heatmap simulated by Kerlink

Between tests two and three a new gateway was added and Kerlink re did the simulation of the heatmap. The map is illustrated in figure 9, for test three the object was to see how the network performed within the red, green, and light blue area of the new map. We needed to see how locations longer away from the gateways would perform to see in what area the location is possible to use.

12 Figure 9: Location heatmap simulated by Kerlink when gateway 6 was added

By running these tests like this we can see how the two algorithms WANESY GEOLOC OS and WANESY GEOLOC offered by Kerlink operated in different situations as well as how distance to each gateway affects the result and also see how the two method RSSI and TDOA get chosen when the number of gateways reached changes.

2.4.1 Test one: Standing Still For the first test, we selected 3 locations and ran a standstill test at each location. The objective was to see how the location accuracy would change over time and get an initial indication of what to expect. The test was run with the base parameters stated in section 2.2 and the weather was sunny with a clear sky and low wind. The location was chosen within the green area illustrate in figure 8, one location close to gateway one, one location close to gateway three, and one location between does gateways this to see if there were any indication that distance to a gateway would affect the result.

2.4.2 Test two: Understanding the Effects of Weather Conditions Test two was a repeat of test one with the same parameters and locations but the goal here was to see if the weather would change the accuracy. The weather during the test was cloudy with no rain or snow.

13 2.4.3 Test three: Understanding the Effects of distance to each gate- way After two tests at the same locations, we wanted to see how the different area illustrated in figure 9 performed, we wanted to see how far from the core of the heatmap you could go and still get somewhat of a reasonable position. So for this test, we opted to run the test in the red, yellow, and neon green area as according to Kerlink should give a location but be worse the one in test one and two.

2.4.4 Test four: Understanding the Effects of distance to each gate- way 2 Because test three left some questions unanswered it was decided to run two more tests. For test four the goal was to see how good or bad the result would be for the two last colored areas still not tested.

2.4.5 Test five: Study the Effects of adding additional Gateways As stated earlier an additional gateway was added between tests two and three so we wanted to test how this would affect the result for one of the previous locations done in tests one and two. Location B was decided to be the location. From looking at the result from tests one, two, three, and four a theory had to emerge. To test this a location within the same colored area as location G as added to the test to be able to compare the result.

2.5 Statistical Analysis From every test we take out the difference between the mobile GPS and the location calculated by Kerlink algorithm, Kerlink distance of confidence, and which of the two methods is used. From this we look at some statistics. • Standard deviation - To see how much the values deviated from the mean value. v u n u P (x − mean)2 t i SD = i=1 (3) n • Average distance between - To see how much the value deviated overall.

n P p 2 2 (XAi − XBi) + (YAi − YBi) Average = i=1 (4) n

• Average Distance of confidence.

n P xi Average = i=1 (5) n

14 • Box Plot - to see where most of the values lands.

Figure 10: Boxplot illustrate the variance of values

15 3 Results

This section contains the result from testing done during the project. Worth mentioning is that as WANESY GEOLOC takes in to account the last known location as it uses Kalman filtering which WANESY GEOLOC OS does not. This leads to at each new location having a trail going from the last test location to the current one, see figure 12, 14, 16. For the first two tests, the first 10 frames are discarded to combat this.

3.1 Test one: Standing still When standing still it appears that WANESY GEOLOC gives a more accurate result than WANESY GEOLOC OS see table 1. Looking at figures 11a, 11b, 11c and standard deviation in table 1 we can see that the location calculated by WANESY GEOLOC doesn’t very as much as WANESY GEOLOC OS and stays more compact. Comparing table 1 location A and C with table 1 location B it indicates that the closer you are to a sensor the better the result as the locations close to a sensor gave the best result. If we compare table 2 with table 1 we can see that the calculated precision given by Kerlink don’t come close the the actual position. Table 1, 2 and figure 11, 12, 13, 14, 15, 16, 17 shows the result from test one

Location Algorithm Min Average Max Standard Deviation A WANESY GEOLOC 8m 42m 70m 16m A WANESY GEOLOC OS 21m 85m 376m 61m B WANESY GEOLOC 6m 58m 136m 30m B WANESY GEOLOC OS 8m 142m 394m 87m C WANESY GEOLOC 4m 30m 50m 10m C WANESY GEOLOC OS 5m 52m 81m 22m

Table 1: The table shows the distance between the estimated location given by Kerlink and the location given by the mobile phone GPS at location A, B and, C using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest distance, an average and standard deviation of all the frames.

16 Location Algorithm Min Average Max Standard Deviation A WANESY GEOLOC 130m 164m 544m 75m A WANESY GEOLOC OS 130m 162m 544m 68m B WANESY GEOLOC 130m 185m 493m 80m B WANESY GEOLOC OS 130m 179m 493m 73m C WANESY GEOLOC 130m 255m 1000m 191m C WANESY GEOLOC OS 130m 243m 1000m 176m

Table 2: The table shows the calculated precision for estimation of the po- sition given by Kerlink at locations A, C and, C using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest distance, an average and standard deviation of all the frames.

An important note is that when looking at how many gateways reached by each frame we see that for location A and C the average gateway reached is five and for location B the gateway reached was four

(a) Location A (b) Location B

(c) Location C

Figure 11: Box chart from test one for location A,B, and C

17 Figure 12: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location A

Figure 13: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location A

18 Figure 14: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location B

Figure 15: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location B

19 Figure 16: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location C

Figure 17: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location C

20 3.1.1 Driving test This is a short driving test to see how the two algorithms would perform. Look- ing at table 3 we see that WANESY GEOLOC OS is better. In appendix A.4 we see that WANESY GEOLOC gets worse for each frame but then catches up in the turn (see figure 18). This is the result of using the last know location as it don’t seem to be able to handle the speed. Interesting to note is that the number of gateway reached is on average 4 and for the last frame it reaches only 2 and for this frame the method is change to RSSI instead of TDOA. Table 3, 4 and figures 18, 19 shows the result from the driving test

Algorithm Min Average Max Standard Deviation WANESY GEOLOC 39m 182m 330m 75m WANESY GEOLOC OS 29m 119m 294m 70m

Table 3: The table shows the distance between the estimated location given by Kerlink and the location given by the mobile phone GPS during driving test using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest distance, an average and standard deviation of all the frames.

Algorithm Min Average Max Standard Deviation WANESY GEOLOC 130m 302m 2128m 528m WANESY GEOLOC OS 130m 302m 2128m 528m

Table 4: The table shows the calculated precision for estimation of the po- sition given by Kerlink during driving test using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest dis- tance, an average and standard deviation of all the frames.

21 Figure 18: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location during driving test

Figure 19: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) during driving test

22 3.2 Test two: Understanding the Effects of Weather Con- ditions Test two follows the pattern from test one, looking at table 5 and figure 20a, 20b, 20c we can see that the WANESY GEOLOC performs better in all test cases. What is interesting is that the location B gave a better result with an average of 74m and a standard deviation at 41m compared to location A average of 74m and standard deviation at 57m, see table 5. The overall result is worse than in test one and that indicates that weather can affect the result as every other variable was the same. The frames reached an average of five gateway for locations A and C, and location B reached four. Table 5, 6 and figures 20, 21, 22, 23, 24, 25, 26 shows the result from test two

Location Algorithm Min Average Max Standard Deviation A WANESY GEOLOC 16m 74m 241m 57m A WANESY GEOLOC OS 9m 122m 763m 155m B WANESY GEOLOC 3m 74m 181m 41m B WANESY GEOLOC OS 25m 143m 380m 84m C WANESY GEOLOC 10m 32m 60m 11m C WANESY GEOLOC OS 10m 55m 170m 32m

Table 5: The table shows the distance between the estimated location given by Kerlink and the location given by the mobile phone GPS at location A, B and, C using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest distance, an average and standard deviation of all the frames.

Location Algorithm Min Average Max Standard Deviation A WANESY GEOLOC 130m 151m 277m 35m A WANESY GEOLOC OS 130m 148m 277m 35m B WANESY GEOLOC 130m 175m 314m 54m B WANESY GEOLOC OS 130m 184m 314m 57m C WANESY GEOLOC 130m 210m 646m 118m C WANESY GEOLOC OS 130m 202m 646m 106m

Table 6: The table shows the calculated precision for estimation of the posi- tion given by Kerlink at location A, B and, C using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest dis- tance, an average and standard deviation of all the frames.

23 (a) Location A (b) Location B

(c) Location C

Figure 20: Box chart for test two from location A,B, and C

Figure 21: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location A24 Figure 22: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location A

Figure 23: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location B

25 Figure 24: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location B

Figure 25: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location C

26 Figure 26: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location C

3.3 Test three: Understanding the Effects of distance to each gateway Looking at the result from the test we see that the distance between the cal- culated location and the actual location is between 1.3km and 6km which means that the result is really bad. Interesting to see that if we compare ta- ble 7 and table 8 Kerlink vastly overestimates their precision of the location. Worth mentioning is that WANESY GEOLOC OS gave a better result than WANESY GEOLOC at location D. The result from location E can almost com- pletely be dismissed because of the large differences between the mobile GPS and the calculated location. The source for this horrible result might be because each frame only reached one gateway which makes the algorithm only able to rely on one variable when calculating the position.

27 Location Algorithm Average Standard Deviation D WANESY GEOLOC 2820m 110m D WANESY GEOLOC OS 2758m 564m E WANESY GEOLOC 3981m 4m E WANESY GEOLOC OS 6059m 657m

Table 7: The table shows the distance between the estimated location given by Kerlink and the location given by the mobile phone GPS at location D and E using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest distance, an average and standard deviation of all the frames.

Location Algorithm Average Standard Deviation D WANESY GEOLOC 1406m 1742m D WANESY GEOLOC OS 1306m 1644m E WANESY GEOLOC 7361m 3736m E WANESY GEOLOC OS 7181m 3743m

Table 8: The table shows the calculated precision for estimation of the po- sition given by Kerlink at location D and E using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest dis- tance, an average and standard deviation of all the frames.

3.4 Test four: Understanding the Effects of distance to each gateway 2 Looking at table 9 it interesting to see that a location relatively close to the center of the city gave such a bad result. What is even more interesting is that looking at table 10 the calculated precision given by Kerlink indicates that the result should be better but in most of the other tests it has been the other way around. Location G gave a result worse than what was expected, this might be be- cause the location is on the edge of being within triangular area of the gateways. Figures 27-31 shows the rest of the result from test four.

28 Location Algorithm Min Average Max Standard Deviation F WANESY GEOLOC 1119m 1266m 1559m 143m F WANESY GEOLOC OS 831m 1093m 2908m 389m G WANESY GEOLOC 19m 171m 400m 104m G WANESY GEOLOC OS 22m 631m 2470m 639m

Table 9: The table shows the distance between the estimated location given by Kerlink and the location given by the mobile phone GPS at location F and G using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest distance, an average and standard deviation of all the frames.

Location Algorithm Min Average Max Standard Deviation F WANESY GEOLOC 130m 909m 2129m 378m F WANESY GEOLOC OS 130m 896m 2129m 367m G WANESY GEOLOC 130m 704m 4002m 1193m G WANESY GEOLOC OS 130m 899m 3999m 1379m

Table 10: The table shows the calculated precision for estimation of the po- sition given by Kerlink at location F and G using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest dis- tance, an average and standard deviation of all the frames.

(a) Location F (b) Location G

Figure 27: Box chart from test four on location F and G

29 Figure 28: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location F

Figure 29: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location F

30 Figure 30: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location G

Figure 31: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location G

31 3.5 Test five: Study the Effects of adding additional Gate- ways Note that in figure 33 and 35 we can see the trail from Kalman filter so the first 12 frames where removed when presenting the result from WANESY GEOLOC. Looking at table 11 and 32a we see that WANESY GEOLOC performs better this follows the line of most of the previous tests. Interesting is that location H is within the same colored area as location G but gave a average 79m compered to 171m. Compering the result from location B in test one illustrated in table 1 and test five illustrated in table 11 we see that the test one is better. As one more gateway was added as well as one more gateway was reached for each frame between test two and test three it shows that more gateways doesn’t necessarily give a better result. Table 12 and figures 34, 36 shows the rest of the result from test five

Location Algorithm Min Average Max Standard Deviation H WANESY GEOLOC 21m 79m 134m 30m H WANESY GEOLOC OS 19m 125m 347m 64m B WANESY GEOLOC 5m 52m 150m 41m B WANESY GEOLOC OS 9m 173m 808m 142m

Table 11: The table shows the distance between the estimated location given by Kerlink and the location given by the mobile phone GPS at location H and B using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest distance, an average and standard deviation of all the frames.

Location Algorithm Min Average Max Standard Deviation H WANESY GEOLOC 130m 250m 3915m 603m H WANESY GEOLOC OS 130m 229m 290m 528m B WANESY GEOLOC 130m 262m 2043m 317m B WANESY GEOLOC OS 130m 260m 2043m 299m

Table 12: The table shows the calculated precision for estimation of the po- sition given by Kerlink at location H and B using WANESY GEOLOC and WANESY GEOLOC OS. It shows the frame with the smallest and largest dis- tance, an average and standard deviation of all the frames.

32 (a) Location H (b) Location I

Figure 32: Box chart from test four on location H and B

Figure 33: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location H

33 Figure 34: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location H

Figure 35: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC algorithm relative to the mobile phone GPS location (Yellow marker) at location B

34 Figure 36: Map illustrating each frame’s location (Blue dots) calculated by Kerlink using WANESY GELOC OS algorithm relative to the mobile phone GPS location (Yellow marker) at location B

35 4 Discussion

To summarise the result I have broken down each impotent obviation’s and questions in smaller parts

4.1 WANESY GEOLOC VS WANESY GEOLOC OS When looking at the result from the two algorithms we see that WANESY GEOLOC gives a more accurate position than WANESY GEOLOC OS as long as you stay within the blue area of the map illustrated in figure 9. When we start to move outside that area we see a drastic decline in accuracy, as well as WANESY GEOLOC OS, start to overtake WANESY GEOLOC in accuracy.

4.2 TDOA VS RSSI There is nothing in the result that indicates that TDOA is not better then RSSI. Most of the location reaches at least 3 or more gateways but when looking at location E that reaches one gateway with the majority of the frames we see that with the few frames that reached 3 or more gateways the method changes to TDOA instead of RSSI. This indicates that the threshold for TDOA is 3 gateways.

4.3 Position precision estimated by Kerlink The position precision estimated by Kerlink seems to be either vastly overesti- mated or underestimated. There are very few cases where there is an estimation close to what I measured. The only thing that we can see is that it seems to default to 130 meters when there is a good read. As we don’t have an insight into how the values are actually calculated it’s hard to say why this is the case. In my opinion, this value can be discarded as not reliable.

4.4 Number of gateway reached As test five shows, there is nothing that indicates that more gateways reached gives a better result. But with that said, we can also see that there needs to be more than two gateway reach to get a result below 100m accuracy on average. This is indicated in test three as location E online reaches one to two gateways with each frame.

4.5 Distance to gateways Taking a look at tests one and two, we have locations A, B, and C. Location A is close to the one gateway (below 100m between), location B is close to no gateway, and location C is close to two gateways. As we have established the number of gateways reached don’t affect the result as long as there are three or more so we can draw the conclusion when looking at the result from test one

36 and two that distance to one gateway doesn’t necessarily improve the result but the closer you are to more gateways the better as the signal gets less vulnerable to interference.

4.6 Triangular area of the gateways Over the course of the project, a theory emerged. When looking at what made the difference between a great result and a good result we can see that every test that is done within the area illustrated in figure 37 is below 100m on average when using WANESY GEOLOC. Interesting is also that if we look at the test done at location G and location H and we see that they are within the same area as illustrated in figure 9 but location G is outside the area illustrated in figure 37. If being within the area illustrated in figure 37 doesn’t improve the accuracy the result from the two locations should be close together but this is not the case as location H give an accuracy almost twice as good as location G.

Figure 37: Triangular area estimated to get the best possible accuracy when using LoRa triangulation

4.7 How accurate is the LoRa geolocation from Kerlink? So to summaries the result we can see that when standing still we can get a good estimation of where we are using the WANESY GEOLOC algorithm but also that there is a large difference between how good the accuracy is depending on where you are standing. According to Kerlink (figure 9) each colored are should offer close to the same accuracy but my result shows that the same color area can drastically differ So when answering the question 3, of how good the position accuracy is we first need to take into account in what area are you standing and if you are moving or not. From my result, we can conclude that if you are within the

37 area of figure 37 and standing still you will get a position accuracy of below 80 meters but if we start to move outside that area are 150+ meters.

4.8 What are the functionalities within Skellefte˚aCity So what can we use this for then? As mentioned above the key part is knowing in what area you will be operating in. Looking at figure 37 what we can do outside that area is limited. With an accuracy above 150 meters, we can’t track an object as the accuracy is so low and unstable. But operating inside the options increases, tracking stationary objects but also tracking objects that move for smaller duration is possible. Standard GPS is widely used to track a constantly moving object, is this something that LoRa can do as well? The answer is no, the algorithms Kerlink is using are dependent on using the last know location to increase the accuracy and when constantly moving that location is less viable.

4.9 What methods are used for geolocation performed by Kerlink? When answering question 2 we can see that Kerlink uses RSSI and TDOA for distance measuring complemented by the two algorithms WANESY GEOLOC and WANESY GEOLOC OS. As talked about in sections 4.1 and 4.2 TDOA and WANESY GEOLOC that offers the best accuracy when looking at the result.

38 5 Conclusion and Future Work

Overall the project can be seen as a success, the test environment was working as intended (1), and with its help, we can now see how good the position accuracy is within Skellefte˚acity is (2). The result shows that there are possible use cases but also that there are criteria for those cases to be used. Inside the good coverage areas, the best accuracy is 30 meters on average, and worse is 79 meters on average. If we start to move outside the good coverage areas, the best accuracy is 171 meters on average, and the worst is greater then 3000 meters on average. When looking at tracking a constantly moving object we can positively say that it is not possible. To be able to get a good read on the object, the object needs to stay still for a longer period which makes moving not a reliable use case. As with everything else in this world, there are always things that can be done differently. To expand on this project it would be interesting to rerun each test with a different sensor as an IoT device to see if there would be any changes in the result. Another thing that would be interesting to expand on is the theory mentioned in section 4.6. The time of the project wasn’t enough to verify it completely as some factors didn’t get tested. But if this were to be correct it can help the future planing of gateway placement.

39 References

[1] Ericsson, Ericsson Mobility Report, 2019, P17. URL: https://www.ericsson.com/4acd7e/assets/local/ mobility-report/documents/2019/emr-november-2019.pdf [2] Fargas, Bernat Carbones; Petersen, Martin Nordal ,GPS-free Geolocation using LoRa in Low-Power WANs, 2017. URL: https://backend.orbit.dtu.dk/ws/portalfiles/portal/ 130478296/paper_final_2.pdf [3] Python, Last Visit: May 2020 URL: https://www.python.org/ [4] LoRa Alliance, Geolocation whitepaper, 2018, Last Visit May 2020 URL: https://lora-alliance.org/about-lorawan [5] TIOBE Index, Last Visit: May 2020 URL: https://www.tiobe.com/tiobe-index// [6] GeeksforGeeks, Last Visit: May 2020 URL: https://www.geeksforgeeks.org/why-is-java-write-once-and-run-anywhere/ [7] GPS.GOV, Official U.S. government information about the Global Position- ing System (GPS) and related topics, Last Visit: May 2020 URL: https://www.gps.gov/systems/gps/ [8] Finding Location with Time of Arrival and Time Difference of Arrival Techniques, TechNotes, 2017 URL: https://sites.tufts.edu/eeseniordesignhandbook/files/ 2017/05/FireBrick_OKeefe_F1.pdf [9] Triangulation Using Trigonometry, Maplesoft, Last Visit: May 2020 URL: https://www.maplesoft.com/support/help/Maple/view.aspx? path=MathApps%2FTriangulation [10] LoPy, PyCom, Last Visit: May 2020 URL: https://pycom.io/product/lopy4/ [11] LoRa-positioning in Malm¨o compared with GPS possibilities, power consumption accuracy, Khalil, Louay, 2018 URL: https://muep.mau.se/bitstream/handle/2043/26342/Louay% 20Khalil.pdf?sequence=2&isAllowed=y [12] The history of Android: The evolution of the biggest mobile OS in the world, Android Authority, 2020, Last Visit: September 2020 URL: https://www.androidauthority.com/ history-android-os-name-789433/ [13] Who are we, Kerlink, Last Visit: September 2020 URL: https://www.kerlink.com/investors-company/company/

40 Appendices

A Test One A.1 Location A

Frame ErrorDist Phone vs Sensor Confidence Kerlink ErrorDist Phone vs Sensor OS Confidence Kerlink OS 1 1047.410158 182 79.11227732 182 2 646.0952892 130 77.71500602 130 3 452.3862267 130 87.40746345 130 4 383.875547 130 215.9748508 130 5 286.6819787 130 52.54372068 130 6 196.9127468 214 78.91268483 214 7 124.0512793 177 80.09604762 177 8 105.6177166 139 62.10321574 139 9 85.96014833 133 57.83941186 133 10 59.33332154 136 37.73408715 136 11 33.05505174 203 80.52680922 203 12 34.35166446 213 115.254692 213 13 50.24150084 136 95.14215308 136 14 51.81030624 130 65.26725941 130 15 57.55368456 130 94.47454839 130 16 30.03356801 135 42.95861078 135 17 17.63342649 179 61.91561384 179 18 33.54779807 157 79.33291792 157 19 42.21149867 130 88.36426263 130 20 47.19289311 187 85.01752525 187 21 21.41270861 130 51.33870305 130 22 8.508905183 130 43.4089534 130 23 8.986204067 140 52.17303707 140 24 8.179650497 544 375.9629405 544 25 45.85087372 176 139.9170775 176 26 52.26772427 161 155.1720711 161 27 69.84720039 133 120.1089477 133 28 41.23229707 130 36.11322743 130 29 59.46707601 154 118.6699299 154 30 56.84520694 130 49.77027487 130 31 46.50098002 130 40.95168184 130 32 41.59399458 130 38.78417587 130 33 36.5724644 132 21.27302398 132 34 49.83185935 130 98.79520858 130 35 42.98403381 194 58.65912062 194 36 33.35668308 140 48.22758875 140 37 40.73889137 144 64.55599796 144 38 68.19429791 236 148.4309095 236 39 62.52090183 166 49.11551749 166 40 46.91068801 130 32.05927235 130

Table 13: Nothing

41 A.2 Location B

Frame ErrorDist Phone vs Sensor Confidence Kerlink ErrorDist Phone vs Sensor OS Confidence Kerlink OS 1 288.1999721 130 132.3904171 130 2 158.1834981 149 186.7261648 149 3 133.5443207 176 177.5964913 176 4 78.17321824 149 54.7655939 149 5 52.80905731 130 281.3226884 130 6 31.47712481 202 29.84758486 202 7 46.05502568 196 84.95395109 196 8 22.0206712 130 227.3935701 130 9 20.8096486 153 104.6441903 153 10 125.2016482 351 393.5805436 351 11 101.6706096 165 33.55992952 165 12 99.95146498 138 112.5678285 138 13 67.5596812 130 64.81123165 130 14 64.38967566 130 66.95236031 130 15 55.78383861 180 78.37490609 180 16 55.12893336 130 136.2330642 130 17 29.93472341 176 161.7417721 176 18 31.47926168 204 52.75764794 204 19 76.20718723 493 333.5064265 493 20 55.55935961 130 46.61370538 130 21 42.52829667 130 20.38841702 130 22 47.24126964 130 162.7019062 130 23 46.34254839 160 210.4173538 160 24 5.80356881 227 136.1850902 227 25 26.53250351 130 127.4126846 130 26 56.29314352 158 148.2858079 158 27 57.09596731 159 68.45760546 159 28 82.54700979 130 178.9316032 130 29 25.74112245 249 199.8602031 249 30 36.56933779 130 163.709003 130 31 75.34594158 174 171.1926314 174 32 78.24617302 219 89.83198365 219 33 55.41118933 130 199.5298714 130 34 41.60030075 161 8.360424586 161 35 37.06374261 130 125.821802 130 36 24.1720254 130 35.85169592 130 37 65.24280771 314 248.3029446 314 38 25.069972 147 129.1586782 147 39 85.53276716 257 237.1341847 257 40 136.1150578 258 274.5713303 258

42 A.3 Location C

Frame ErrorDist Phone vs Sensor Confidence Kerlink ErrorDist Phone vs Sensor OS Confidence Kerlink OS 1 288.1999721 130 132.3904171 130 2 158.1834981 149 186.7261648 149 3 133.5443207 176 177.5964913 176 4 78.17321824 149 54.7655939 149 5 52.80905731 130 281.3226884 130 6 31.47712481 202 29.84758486 202 7 46.05502568 196 84.95395109 196 8 22.0206712 130 227.3935701 130 9 20.8096486 153 104.6441903 153 10 125.2016482 351 393.5805436 351 11 101.6706096 165 33.55992952 165 12 99.95146498 138 112.5678285 138 13 67.5596812 130 64.81123165 130 14 64.38967566 130 66.95236031 130 15 55.78383861 180 78.37490609 180 16 55.12893336 130 136.2330642 130 17 29.93472341 176 161.7417721 176 18 31.47926168 204 52.75764794 204 19 76.20718723 493 333.5064265 493 20 55.55935961 130 46.61370538 130 21 42.52829667 130 20.38841702 130 22 47.24126964 130 162.7019062 130 23 46.34254839 160 210.4173538 160 24 5.80356881 227 136.1850902 227 25 26.53250351 130 127.4126846 130 26 56.29314352 158 148.2858079 158 27 57.09596731 159 68.45760546 159 28 82.54700979 130 178.9316032 130 29 25.74112245 249 199.8602031 249 30 36.56933779 130 163.709003 130 31 75.34594158 174 171.1926314 174 32 78.24617302 219 89.83198365 219 33 55.41118933 130 199.5298714 130 34 41.60030075 161 8.360424586 161 35 37.06374261 130 125.821802 130 36 24.1720254 130 35.85169592 130 37 65.24280771 314 248.3029446 314 38 25.069972 147 129.1586782 147 39 85.53276716 257 237.1341847 257 40 136.1150578 258 274.5713303 258

A.4 Driving Test

Frame ErrorDist ElODisel Confidence Kerlink ErrorDist Phone vs Sensor OS Confidence Kerlink OS 1 38.79454351 130 65.51151004 130 2 92.92858199 236 202.3718315 236 3 119.0786332 137 29.34314824 137 4 146.3138191 164 43.93284867 164 5 199.5678001 162 160.0732277 162 6 223.9736206 133 132.9373151 133 7 248.4670547 130 95.03309297 130 8 260.5901666 130 95.83421151 130 9 221.7875561 154 98.17085172 154 10 141.0629147 160 58.89479731 160 11 157.8402283 130 104.3765255 130 12 185.8896968 130 165.5292006 130 13 330.465661 2128 294.0940407 2128

43 B Test Two B.1 Location A

Frame ErrorDist Phone vs Sensor Confidence Kerlink ErrorDist Phone vs Sensor OS Confidence Kerlink OS 1 288.1999721 130 132.3904171 130 2 158.1834981 149 186.7261648 149 3 133.5443207 176 177.5964913 176 4 78.17321824 149 54.7655939 149 5 52.80905731 130 281.3226884 130 6 31.47712481 202 29.84758486 202 7 46.05502568 196 84.95395109 196 8 22.0206712 130 227.3935701 130 9 20.8096486 153 104.6441903 153 10 125.2016482 351 393.5805436 351 11 101.6706096 165 33.55992952 165 12 99.95146498 138 112.5678285 138 13 67.5596812 130 64.81123165 130 14 64.38967566 130 66.95236031 130 15 55.78383861 180 78.37490609 180 16 55.12893336 130 136.2330642 130 17 29.93472341 176 161.7417721 176 18 31.47926168 204 52.75764794 204 19 76.20718723 493 333.5064265 493 20 55.55935961 130 46.61370538 130 21 42.52829667 130 20.38841702 130 22 47.24126964 130 162.7019062 130 23 46.34254839 160 210.4173538 160 24 5.80356881 227 136.1850902 227 25 26.53250351 130 127.4126846 130 26 56.29314352 158 148.2858079 158 27 57.09596731 159 68.45760546 159 28 82.54700979 130 178.9316032 130 29 25.74112245 249 199.8602031 249 30 36.56933779 130 163.709003 130 31 75.34594158 174 171.1926314 174 32 78.24617302 219 89.83198365 219 33 55.41118933 130 199.5298714 130 34 41.60030075 161 8.360424586 161 35 37.06374261 130 125.821802 130 36 24.1720254 130 35.85169592 130 37 65.24280771 314 248.3029446 314 38 25.069972 147 129.1586782 147 39 85.53276716 257 237.1341847 257 40 136.1150578 258 274.5713303 258

44 B.2 Location B

Frame ErrorDist Phone vs Sensor Confidence Kerlink ErrorDist Phone vs Sensor OS Confidence Kerlink OS 1 288.1999721 130 132.3904171 130 2 158.1834981 149 186.7261648 149 3 133.5443207 176 177.5964913 176 4 78.17321824 149 54.7655939 149 5 52.80905731 130 281.3226884 130 6 31.47712481 202 29.84758486 202 7 46.05502568 196 84.95395109 196 8 22.0206712 130 227.3935701 130 9 20.8096486 153 104.6441903 153 10 125.2016482 351 393.5805436 351 11 101.6706096 165 33.55992952 165 12 99.95146498 138 112.5678285 138 13 67.5596812 130 64.81123165 130 14 64.38967566 130 66.95236031 130 15 55.78383861 180 78.37490609 180 16 55.12893336 130 136.2330642 130 17 29.93472341 176 161.7417721 176 18 31.47926168 204 52.75764794 204 19 76.20718723 493 333.5064265 493 20 55.55935961 130 46.61370538 130 21 42.52829667 130 20.38841702 130 22 47.24126964 130 162.7019062 130 23 46.34254839 160 210.4173538 160 24 5.80356881 227 136.1850902 227 25 26.53250351 130 127.4126846 130 26 56.29314352 158 148.2858079 158 27 57.09596731 159 68.45760546 159 28 82.54700979 130 178.9316032 130 29 25.74112245 249 199.8602031 249 30 36.56933779 130 163.709003 130 31 75.34594158 174 171.1926314 174 32 78.24617302 219 89.83198365 219 33 55.41118933 130 199.5298714 130 34 41.60030075 161 8.360424586 161 35 37.06374261 130 125.821802 130 36 24.1720254 130 35.85169592 130 37 65.24280771 314 248.3029446 314 38 25.069972 147 129.1586782 147 39 85.53276716 257 237.1341847 257 40 136.1150578 258 274.5713303 258

45 B.3 Location C

Frame ErrorDist Phone vs Sensor Confidence Kerlink ErrorDist Phone vs Sensor OS Confidence Kerlink OS 1 288.1999721 130 132.3904171 130 2 158.1834981 149 186.7261648 149 3 133.5443207 176 177.5964913 176 4 78.17321824 149 54.7655939 149 5 52.80905731 130 281.3226884 130 6 31.47712481 202 29.84758486 202 7 46.05502568 196 84.95395109 196 8 22.0206712 130 227.3935701 130 9 20.8096486 153 104.6441903 153 10 125.2016482 351 393.5805436 351 11 101.6706096 165 33.55992952 165 12 99.95146498 138 112.5678285 138 13 67.5596812 130 64.81123165 130 14 64.38967566 130 66.95236031 130 15 55.78383861 180 78.37490609 180 16 55.12893336 130 136.2330642 130 17 29.93472341 176 161.7417721 176 18 31.47926168 204 52.75764794 204 19 76.20718723 493 333.5064265 493 20 55.55935961 130 46.61370538 130 21 42.52829667 130 20.38841702 130 22 47.24126964 130 162.7019062 130 23 46.34254839 160 210.4173538 160 24 5.80356881 227 136.1850902 227 25 26.53250351 130 127.4126846 130 26 56.29314352 158 148.2858079 158 27 57.09596731 159 68.45760546 159 28 82.54700979 130 178.9316032 130 29 25.74112245 249 199.8602031 249 30 36.56933779 130 163.709003 130 31 75.34594158 174 171.1926314 174 32 78.24617302 219 89.83198365 219 33 55.41118933 130 199.5298714 130 34 41.60030075 161 8.360424586 161 35 37.06374261 130 125.821802 130 36 24.1720254 130 35.85169592 130 37 65.24280771 314 248.3029446 314 38 25.069972 147 129.1586782 147 39 85.53276716 257 237.1341847 257 40 136.1150578 258 274.5713303 258

46 C Test three C.1 Location D

Frame ErrorDist Phone vs Sensor Confidence Kerlink Method ErrorDist Phone vs Sensor OS Confidence Kerlink OS 1 3236.914152 3966 RSSI 3236.914152 3966 2 2611.347317 422 TDOA 2611.347317 422 3 3025.278035 130 TDOA 3066.760759 130 4 3020.15305 1000 TDOA 2272.756489 1000 5 2756.194563 182 TDOA 2527.357412 182 6 2755.857091 1000 TDOA 2093.375317 1000 7 2755.555862 1000 TDOA 2304.48648 1000 8 2752.732669 1000 TDOA 2314.312416 1000 9 2660.08353 228 TDOA 2574.988619 228 10 3106.134509 130 TDOA 4196.736421 130 11 2939.71416 476 TDOA 2612.655201 476 12 2863.523981 445 TDOA 2689.911385 445 13 2954.704926 130 TDOA 3213.104583 130 14 3126.327016 130 TDOA 3747.37242 130 15 2990.38134 483 TDOA 2671.407859 483 16 2992.451478 2827 RSSI 3094.444147 2827 17 2993.115536 3359 RSSI 3763.653923 3359 18 2948.532386 288 TDOA 2871.796344 288 19 2775.302864 179 TDOA 2411.808719 179 20 2775.322911 1000 TDOA 2055.559419 1000 21 2775.21267 3492 RSSI 3389.397601 3492 22 2796.516054 365 TDOA 2840.535191 365 23 3036.412981 130 TDOA 3755.865984 130 24 2853.892152 326 TDOA 2291.124044 326 25 2853.88509 1000 TDOA 2161.590535 1000 26 2853.071835 1000 TDOA 1775.303449 1000 27 2703.767707 265 TDOA 2479.139516 265 28 2704.541438 10100 RSSI 2952.998064 10100 29 2704.441012 2839 RSSI 3290.750359 2839 30 2705.275846 3972 RSSI 3192.923443 3972 31 2705.123867 1112 RSSI 2674.798531 1112 32 2704.945891 1000 TDOA 2407.304072 1000 33 2704.768048 1000 TDOA 2419.914732 1000 34 2764.530688 473 TDOA 2821.384405 473 35 2763.623284 1000 TDOA 2265.778801 1000 36 2766.759069 1103 RSSI 2710.125044 1103 37 2770.343376 1000 TDOA 2411.242459 1000 38 2755.903836 594 TDOA 2746.091759 594 39 2754.98432 1111 RSSI 2679.563037 1111 40 2832.997774 431 TDOA 2951.015508 431 41 2835.57618 1000 TDOA 2505.172328 1000 42 2833.479913 1121 RSSI 2662.924547 1121 43 2833.044438 2850 RSSI 3244.657777 2850 44 2833.503371 1000 TDOA 2279.394799 1000 45 2832.08352 1000 TDOA 2374.202005 1000 46 2832.980019 3442 RSSI 3718.089845 3442 47 2834.99823 2076 RSSI 4227.04225 2076 48 2832.530921 1000 TDOA 1936.668216 1000 49 2625.281446 130 TDOA 2433.132875 130 50 2623.256953 1000 TDOA 1973.032914 1000

47 C.2 Location E

Frame ErrorDist Phone vs Sensor Confidence Kerlink Method ErrorDist Phone vs Sensor OS Confidence Kerlink OS 1 3984.563443 10100 RSSI 6398.69003 10100 2 3984.679137 10100 RSSI 6398.319052 10100 3 3984.761338 2765 RSSI 5551.822613 2765 4 3979.787021 2755 RSSI 6043.841124 2755 5 3979.890742 2778 RSSI 6001.516584 2778 6 3980.017058 2710 RSSI 6086.984322 2710 7 3979.960437 10100 RSSI 6391.445762 10100 8 3980.340071 10100 RSSI 6391.434803 10100 9 3980.989185 2709 RSSI 6103.750556 2709 10 3981.397835 10100 RSSI 6394.01586 10100 11 3981.575966 10100 RSSI 6393.148749 10100 12 3979.94917 2708 RSSI 6085.339722 2708 13 3978.782611 10100 RSSI 6390.604553 10100 14 3977.184046 1000 TDOA 3278.382779 1000 15 3976.483075 10100 RSSI 6389.250474 10100 16 3975.401971 10100 RSSI 6388.11728 10100 17 3976.290011 10100 RSSI 6389.357998 10100 18 3976.572476 2391 RSSI 5574.691347 2391 19 3976.172993 10100 RSSI 6390.168663 10100 20 3975.626524 10100 RSSI 6389.986514 10100 21 3976.02405 2080 RSSI 5691.691455 2080 22 3975.891154 10100 RSSI 6386.767646 10100 23 3977.272432 10100 RSSI 6385.522982 10100 24 3976.305094 2786 RSSI 5478.562456 2786 25 3976.321302 10100 RSSI 6385.692958 10100 26 3978.752834 2097 RSSI 5647.284954 2097 27 3981.390368 10100 RSSI 6392.5099 10100 28 3982.194884 10100 RSSI 6395.154194 10100 29 3980.751395 10100 RSSI 6392.68617 10100 30 3980.493282 10100 RSSI 6392.351264 10100 31 3979.967739 10100 RSSI 6393.334496 10100 32 3979.456193 2064 RSSI 5782.183713 2064 33 3979.55187 2327 RSSI 5289.65382 2327 34 3979.598004 2834 RSSI 5226.213685 2834 35 3980.528517 10100 RSSI 6391.872366 10100 36 3982.786613 2734 RSSI 6056.961944 2734 37 3984.883262 10100 RSSI 6397.066708 10100 38 3983.510955 2685 RSSI 6133.018434 2685 39 3982.734065 10100 RSSI 6391.004252 10100 40 3983.802659 10100 RSSI 6392.607152 10100 41 3984.860745 10100 RSSI 6392.510571 10100 42 3985.653999 2794 RSSI 5422.147192 2794 43 3985.641838 10100 RSSI 6391.808022 10100 44 3985.675161 10100 RSSI 6392.617108 10100 45 3986.79113 10100 RSSI 6391.58634 10100 46 3986.66902 10100 RSSI 6390.117366 10100 47 3986.680175 10100 RSSI 6390.319125 10100 48 3984.888394 10100 RSSI 6390.139229 10100 49 3982.188796 1000 TDOA 3323.311152 1000 50 3982.197698 2731 RSSI 6050.18792 2731

48 D Test four D.1 Location F

Frame ErrorDist Phone vs Sensor Confidence Kerlink Method ErrorDist Phone vs Sensor OS Confidence Kerlink OS 1 1081.119242 1000 TDOA 850.301629 1000 2 1081.878882 1000 TDOA 999.3902349 1000 3 1078.560311 1000 TDOA 866.7102168 1000 4 1075.498856 1000 TDOA 831.3216782 1000 5 1094.62485 323 TDOA 1098.510766 323 6 1559.695467 130 TDOA 2075.469056 130 7 1559.368513 1000 TDOA 907.8842662 1000 8 1559.639728 1000 TDOA 888.2270355 1000 9 1559.750664 1000 TDOA 886.9748967 1000 10 1558.640056 1000 TDOA 845.7614053 1000 11 1558.895896 1000 TDOA 1276.953809 1000 12 1556.719528 1000 TDOA 847.1636008 1000 13 1556.918723 1000 TDOA 1087.797573 1000 14 1557.244892 1932 RSSI 2398.849101 1932 15 1553.939317 1000 TDOA 1114.224457 1000 16 1551.017417 1000 TDOA 886.6001672 1000 17 1294.130167 347 TDOA 958.1972425 347 18 1295.765666 1000 TDOA 882.3040477 1000 19 1296.125959 1000 TDOA 1260.906807 1000 20 1293.721513 1000 TDOA 1085.975211 1000 21 1290.748066 1000 TDOA 874.1283212 1000 22 1289.140039 1000 TDOA 944.637116 1000 23 1286.391776 1000 TDOA 867.9305604 1000 24 1287.421947 1000 TDOA 1093.57809 1000 25 1156.503004 130 TDOA 964.1334083 130 26 1211.059099 496 TDOA 1310.024978 496 27 1211.699029 1000 TDOA 912.1410109 1000 28 1144.633149 604 TDOA 975.5157313 604 29 1148.505849 1000 TDOA 907.1469778 1000 30 1148.255757 1000 TDOA 906.8956957 1000 31 1147.360418 1000 TDOA 858.568213 1000 32 1146.129979 1000 TDOA 980.9456575 1000 33 1145.245755 1000 TDOA 874.694399 1000 34 1142.527458 1000 TDOA 1008.992544 1000 35 1142.587713 2129 RSSI 2908.04314 2129 36 1118.904762 544 TDOA 1085.65848 544 37 1233.520439 130 TDOA 1413.3886 130 38 1234.127173 1000 TDOA 863.2992665 1000 39 1207.017148 552 TDOA 1093.329359 552 40 1204.755766 1000 TDOA 885.3086102 1000 41 1204.708434 1000 TDOA 835.9632307 1000 42 1184.11477 298 TDOA 1147.960922 298 43 1184.142866 1000 TDOA 1041.220368 1000 44 1183.881756 1000 TDOA 1142.398725 1000 45 1182.067619 1000 TDOA 1155.971823 1000 46 1180.328289 1000 TDOA 838.8854413 1000 47 1179.053581 1000 TDOA 893.9517732 1000 48 1177.411075 1000 TDOA 1248.691263 1000 49 1180.062192 1000 TDOA 1069.530954 1000 50 1256.437895 185 TDOA 1501.8833 185

49 D.2 Location G

Frame ErrorDist Phone vs Sensor Confidence Kerlink Method ErrorDist Phone vs Sensor OS Confidence Kerlink OS 1 1923.165235 130 TDOA 411.5075273 130 2 1920.357522 3962 RSSI 1816.221635 3962 3 1922.358065 3926 RSSI 1856.945987 3926 4 1920.836321 3961 RSSI 1778.782039 3961 5 1919.937024 3300 RSSI 1129.703354 3300 6 1170.815479 130 TDOA 324.9009691 130 7 801.6439326 130 TDOA 136.0169495 130 8 576.862044 130 TDOA 22.43825975 130 9 576.6725821 1000 TDOA 1034.063242 1000 10 347.8918561 130 TDOA 131.7298937 130 11 262.6327917 130 TDOA 84.80330396 130 12 170.6289436 130 TDOA 322.666127 130 13 162.2154287 130 TDOA 144.2544741 130 14 162.2742404 1000 TDOA 1044.355211 1000 15 142.9250716 130 TDOA 219.9165883 130 16 255.8348776 130 TDOA 513.5779006 130 17 253.6340995 3986 RSSI 1131.416792 3986 18 252.0822382 1000 TDOA 1067.813744 1000 19 227.4422248 130 TDOA 191.8592043 130 20 278.6768115 130 TDOA 397.0976621 130 21 201.7339348 358 TDOA 186.1681103 358 22 230.4681962 130 TDOA 320.7771093 130 23 198.3543811 130 TDOA 111.4053428 130 24 167.5661341 130 TDOA 86.86085907 130 25 166.5991892 130 TDOA 166.0560072 130 26 165.2782876 1000 TDOA 1054.501984 1000 27 165.007929 3999 RSSI 1739.304028 3999 28 201.6704215 196 TDOA 290.9338921 196 29 270.3317748 130 TDOA 443.2288767 130 30 135.7923571 130 TDOA 569.5575933 130 31 136.0252271 3963 RSSI 1778.167916 3963 32 42.19456622 130 TDOA 277.4805403 130 33 51.69071779 130 TDOA 111.5804441 130 34 36.96283304 240 TDOA 195.009149 240 35 24.06217453 130 TDOA 159.4453457 130 36 99.25029406 130 TDOA 321.7838179 130 37 41.92381143 225 TDOA 137.7492822 225 38 41.86754145 1103 RSSI 2470.199444 1103 39 91.24108091 130 TDOA 217.0880039 130 40 34.89132656 130 TDOA 576.9559688 130 41 19.00306981 130 TDOA 132.0936326 130 42 38.4685645 130 TDOA 83.91388388 130 43 141.7494439 130 TDOA 385.2986505 130 44 140.81646 2683 RSSI 1866.987684 2683 45 162.8454398 130 TDOA 275.1622786 130 46 109.2248684 153 TDOA 37.14333621 153 47 398.6742334 130 TDOA 1163.075547 130 48 398.7825241 1000 TDOA 802.6750419 1000 49 399.7396638 4002 RSSI 1745.143514 4002 50 277.449916 130 TDOA 82.25034204 130

50 E Test five E.1 Location H

Frame ErrorDist Phone vs Sensor Confidence Kerlink Method ErrorDist Phone vs Sensor OS Confidence Kerlink OS 1 2037.993271 130 TDOA 212.5510414 130 2 1560.535975 145 TDOA 347.4165082 145 3 1212.299836 130 TDOA 71.82088514 130 4 950.8906712 130 TDOA 129.6886617 130 5 725.0549314 130 TDOA 165.8298666 130 6 584.7064128 154 TDOA 186.8807178 154 7 481.1879268 290 TDOA 184.6884991 290 8 394.625903 173 TDOA 128.8166446 173 9 319.312189 167 TDOA 91.28185362 167 10 258.9914772 219 TDOA 81.58053218 219 11 215.9142041 162 TDOA 77.44449683 162 12 167.2717363 130 TDOA 18.60658352 130 13 133.8010177 210 TDOA 186.4153923 210 14 129.6723404 162 TDOA 116.2307617 162 15 112.4628132 130 TDOA 66.53905954 130 16 117.0293302 130 TDOA 138.5082355 130 17 127.2948365 258 TDOA 163.2336297 258 18 128.0706007 152 TDOA 154.2338014 152 19 121.9564902 130 TDOA 102.782191 130 20 88.74342027 140 TDOA 98.31274963 140 21 86.87017831 167 TDOA 82.92499004 167 22 89.75594816 146 TDOA 111.7725147 146 23 86.42388244 184 TDOA 80.5838958 184 24 101.524557 153 TDOA 180.6302602 153 25 93.257484 188 TDOA 116.4868175 188 26 73.95945227 164 TDOA 181.8324085 164 27 81.54223373 130 TDOA 236.6573135 130 28 78.0909316 130 TDOA 79.80274336 130 29 76.80049095 239 TDOA 114.9246402 239 30 59.79774293 130 TDOA 60.1699843 130 31 67.31092227 130 TDOA 126.0741601 130 32 59.98640955 130 TDOA 36.96567987 130 33 61.93739572 130 TDOA 75.08061588 130 34 43.62514423 130 TDOA 187.7778951 130 35 39.42714692 130 TDOA 29.05248842 130 36 53.9700877 172 TDOA 137.6558259 172 37 52.19729823 148 TDOA 104.9267106 148 38 56.80520512 130 TDOA 156.4086846 130 39 94.84004267 135 TDOA 234.2455673 135 40 100.9239701 130 TDOA 128.9269961 130 41 92.35836755 133 TDOA 88.52011428 133 42 69.98445544 130 TDOA 8.412157665 130 43 67.21168785 130 TDOA 138.5411059 130 44 82.13477075 131 TDOA 157.2110043 131 45 69.35232193 130 TDOA 142.1605786 130 46 68.14778718 130 TDOA 233.4532914 130 47 21.29360793 204 TDOA 122.2237796 204 48 21.88572988 3915 RSSI 38.81323568 3915 49 23.73260873 130 TDOA 63.76283421 130 50 34.81051285 172 TDOA 68.4214572 172

51 E.2 Location B

Frame ErrorDist Phone vs Sensor Confidence Kerlink Method ErrorDist Phone vs Sensor OS Confidence Kerlink OS 1 1824.21673 130 TDOA 68.14673055 130 2 1248.835389 181 TDOA 149.2957361 181 3 935.8339544 173 TDOA 173.3645144 173 4 700.5968883 248 TDOA 133.9735875 248 5 700.1251738 1000 TDOA 807.9821304 1000 6 492.5947832 130 TDOA 13.76135348 130 7 375.0352218 134 TDOA 145.4402214 134 8 337.8693572 170 TDOA 272.8718047 170 9 240.0514636 258 TDOA 22.50618235 258 10 227.0195386 130 TDOA 208.9252795 130 11 214.5009887 312 TDOA 199.159579 312 12 198.6130614 172 TDOA 159.2588255 172 13 117.0495377 172 TDOA 186.0612634 172 14 59.16528099 222 TDOA 155.6333742 222 15 93.30743849 284 TDOA 337.8045905 284 16 64.96147912 178 TDOA 64.08327592 178 17 22.60711375 208 TDOA 115.4946501 208 18 33.77933997 130 TDOA 234.7846174 130 19 29.10866576 130 TDOA 21.4435325 130 20 22.67054048 130 TDOA 157.4084702 130 21 18.29615777 137 TDOA 8.508960334 137 22 69.41117866 130 TDOA 203.1420556 130 23 8.743086087 185 TDOA 139.4338669 185 24 36.51884791 618 TDOA 239.4273753 618 25 70.08499365 197 TDOA 159.1838789 197 26 150.2414305 179 TDOA 399.2605412 179 27 140.0753878 130 TDOA 113.2503026 130 28 139.454113 130 TDOA 112.730599 130 29 114.8765371 355 TDOA 82.35092588 355 30 51.7067604 203 TDOA 228.321668 203 31 22.41695739 243 TDOA 80.33923172 243 32 150.4534683 181 TDOA 476.6428011 181 33 55.8574405 181 TDOA 412.2709908 181 34 54.7567615 2043 RSSI 208.384126 2043 35 23.18612942 130 TDOA 47.76056893 130 36 75.74305687 257 TDOA 197.4424365 257 37 20.97713364 159 TDOA 461.6783608 159 38 11.29335324 187 TDOA 83.6447605 187 39 79.95367442 428 TDOA 286.4873221 428 40 48.62407328 686 TDOA 154.2948686 686 41 58.74774486 194 TDOA 87.42645543 194 42 23.88734578 130 TDOA 94.19943976 130 43 46.43334605 213 TDOA 118.081573 213 44 5.496307552 137 TDOA 108.475143 137 45 40.42695535 269 TDOA 140.1830293 269 46 28.37561534 185 TDOA 32.02776456 185 47 8.514984405 159 TDOA 85.55963841 159 48 50.07278293 166 TDOA 179.5755814 166 49 58.6621904 132 TDOA 97.26722457 132 50 48.24732687 140 TDOA 6.484592608 140

52