Implementation

Outdoor System

Fig. 1. Sketch of proposed design for outdoor direction finding system.

2.1 System Architecture and Design

Design Overview:

The central element of our directional signal localization system is a Medium Directional Antenna (LPDA) with a bandwidth spanning 1.2 to 6 GHz. Mounted on an apparatus, this antenna undergoes continuous rotation in the elevation plane, complemented by a slower azimuthal rotation of the apparatus base. This mechanism allows us to achieve a comprehensive coverage of signal directions in three-dimensional space.


Fundamental Engineering Principles:

The directional antenna's principle lies in its ability to focus on specific angles, providing directional sensitivity. This design employs the spatial filtering aspect of directional antennas, where the antenna is rotated to receive signals from different directions. This rotation enables the creation of a 3D polar power map of signal intensity. By continuously sampling power at various angles, we can map the signal strength in three-dimensional space.


Electronics and Computing Systems:

The heart of our system involves the LPDA connected to a signal processing unit, which digitizes the received signals for subsequent analysis. The rotational movements are controlled by a motor system, synchronized with data acquisition to ensure accurate mapping. In parallel, a computing system processes the collected data, allowing us to create the 3D polar power map. Our objective is to use multiple instances of this system, strategically positioned, to triangulate the position of signal emitters.


Direction Finding Methodology:

Initially considering Angle of Arrival, we shifted our approach to leverage spatial filtering due to challenges associated with tracking multiple signals and the mathematics involved in AoA algorithms. Spatial filtering offers a pragmatic alternative by exploiting the directional sensitivity of the antenna to identify signal directions, reducing complexity and resource demands.


This design aligns with our goal of creating a cost-effective yet robust system for localizing and monitoring wireless signals, with a current focus on WiFi signals.

Fig. 2. Current components.

Fig. 3. Directional antenna setup.

Fig. 4. Previous AoA setup.

2.2 Components and Modules

LPDA Antenna:

Microcontroller/Raspberry Pi:

Stepper Motor w/ Optical or Magnetic Encoder (Elevation):

Stepper Motor (Azimuth):

3D Printed Assembly:

Rotatable RF Connector:


2.3 Challenges and Solutions

Monitoring WiFi Signal Spectrum:

A significant challenge arises from the dynamic nature of WiFi signals, which possess a 20MHz instantaneous bandwidth subject to changes under various modulation schemes and environmental factors. This dynamic behavior poses difficulties in accurate power level measurements due to the limited bandwidth of our Software-Defined Radio (SDR).


Addressing the Challenge:

To address this challenge, we are implementing adaptive signal processing algorithms capable of dynamically adjusting to variations in WiFi signal characteristics. Additionally, we are exploring advanced modulation scheme recognition techniques to enhance the accuracy of power level measurements, ensuring the system's adaptability to the dynamic nature of WiFi signals.


Cost-Effective Solution for Rotating Joint:

Challenges are emerging in finding a cost-effective solution for enabling WiFi signal transmission through a rotating joint. Traditional RF slip rings, typically used for this purpose, are found to exceed budget constraints. Moreover, the form factor constraints at WiFi frequencies, where antenna sizes range from 4 to 12 inches, present additional hurdles for wireless transmission across the rotating joint.


Addressing the Challenge:

To overcome these challenges, we are exploring alternative solutions, considering a PCB upconverter integrated into the rotating shaft. This approach would allow us to substantially increase the frequency, enabling the use of smaller antennas for signal transmission. The use of smaller antennas would address both cost and form factor challenges. Simultaneously, this design would minimize the risk of interference from WiFi signals during the transmission across the rotating joint, ensuring the integrity of power measurements.

Indoor System

2.1 System Architecture and Design

Fundamental Engineering Principles: 

The goal of the indoor localization system is to identify Wi-Fi and Bluetooth signals on a room to room basis that can be visualized from a central device that is monitored by the GUI. Our indoor localization system is based on Find3 by Zack Scholl and will be further customized to fit our needs including 3D visualization

Example Demo:

A set of Wi-Fi enabled devices (beacons) listen for unknown signals to be received, for example, a smartphone. The Wi-Fi signal from this smartphone will be turned into a fingerprint that can be used to reference a storage server to identify the approximate location of the smartphone.

Electronics and Computing:

To accomplish this, beacons are set to collect the idle fingerprints that it would receive to create a baseline. This allows the beacons to be placed at a variety of heights, which allows the system to natively see the difference in height by using the known location of the beacons. These fingerprints are then sent to a machine learning server, which will create a map to be used as reference. 

Future changes will be to define individual rooms so that "floors" of a building can be layered. 


2.2 Components and Modules

The fingerprints and training are done on a Raspberry Pi 3B. A similar device will be used to evaluate processes such as sending information to the GUI. This was chosen for being readily available to the team. 

Our project uses three beacons, one of which is the Raspberry Pi used for evaluating. The other two devices used as beacons are a Raspberry Pi 3B+ and an ESP8266MOD. 

An Android phone, a OnePlus 7, will be used for testing both as a user and as a test signal.

Fig. 5. Raspberry Pis and Arduino to be used as Wi-Fi enabled devices for fingerprint collection. 

2.3 Challenges and Solutions

A challenge we have faced is the lack of documentation from the source project we are using. Since the Find3 project already encompassed many of our design goals and claimed to be in a working state, we wanted to fork that project to start with. This created some challenges as Find3 is not as well documented as its predecessor Find. Additionally, many of the files are in separate locations in different repos. Other problems associated with this project are our unfamiliarity with Golang. 

We have tackled this program through reading and documenting the program by following the logic of variables and conventional naming structure. This was made easier by not using the documentation for Find. This is because they are structured and written so differently that any directions will set up a device for older dependencies. Additionally, familiarizing ourselves with Golang was a simple process because of its similarity to Python and the project's similarity to other firmware projects our members have worked on. 

GUI

2.1 System Architecture and Design

Discuss the fundamental engineering principles applied to the design.

The design of the Graphical User Interface underwent an iterative process in which several different models for the GUI were tested until one was chosen. Firstly a pen and paper design was created for the GUI. Next, a design was created using a graphical editing software, Canva. Once the desired GUI design was determined, the coding process to create that GUI was started. 

Highlight the electronics and computing systems involved.

Currently, the GUI is being coded using HTML and JavaScript web development languages. Our GUI makes use of satellite imaging as well as live global position technologies to accurately display potential signals. A .csv file is linked to the website so that whenever the latitude and longitude of a signal is captured, that information will be reflected on the website.


2.2 Components and Modules

Break down the implemented design into its key components and modules.

A prototype of the GUI is presented on a webpage developed by the visualization team. It includes a top-down view of a selected longitude and latitude along with examples of how the signals intend to look on the GUI. Users would be able to click on different circles which represent different signals and get information on that detected signal. Furthermore, we implemented the ability to filter whether the signal is a known or unknown signal, a feature we look to implement in our software down the line. Although not functional in terms of signal processing, this is how we anticipate the GUI would look in a later stage of development. As part of the GUI, we hope to include a legend that explains what each color circle represents. The shade and size of each circle will represent the confidence level of the location of each identified signal. 

Include screenshots or photos of the implemented system.

Below is a demo of how the GUI currently looks and operates:


GUI_Demo.mkv

Fig. 6. Proof of Concept web-enabled GUI to scroll through signals.

2.3 Challenges and Solutions

Address any challenges faced during the implementation.

The first problem the group came across was deciding the content that the GUI would have. Several ideas were being considered, and while each idea was a good one, the team had to decide what specific components we wanted this GUI to have. Furthermore, deciding what software was best for GUI development was difficult as we had initially planned to use MATLAB, then shifted to Python, and ended up developing this webpage.

Demonstrate problem-solving skills applied to overcome these challenges.

We needed to consider exactly what the intended function of this software was, and after doing so, we were able to start the design. While we had a set list of things that the GUI should depict, the group too quickly tried to get into coding the GUI. It was difficult to start coding without a direction in mind, and so we started the iterative process of finalizing the graphical appearance. The first model was made on a sheet of paper, the next was done online, and it was from that point we were able to start coding. Overall, the main problem we faced was trying to develop a solution without first solidifying the needs and requirements. By taking small steps and writing down valuable pieces of discussions, we were able to reach this point.