Vrishab’s Status Report for 04/10/2021

Real-Time Signal Processing

In the previous weeks, we have been collecting data on one machine, a Windows surface pro, and processing it on another, a new Macbook Pro. The reason being that the driver software was not supported on mac, but we knew that our Windows computer did not have the processing power to handle our signals in real time. The data was manually transferred using a USB stick which was clearly a stopgap solution. This week Enock and I implemented a server on that processes data — transferred over UDP — from the Windows machine in real time. The addition of this server to our signal processing pipeline has greatly increased the speed at which we can capture data and debug, and it is an integral part of our final design.

Debugging Signal Capture

In attempting to correlate the data collected from two antennas, I noticed that there were some inconsistencies in our results. Sometimes, the correlations looked reasonable, and other times less so. Through extensive testing, we discovered that one of the outputs from our downconverter board was corrupted. We have a spare downconverter which performed perfectly after replacement.

Progress Since Last Week

I have made a lot of progress on the correlation code since last week. That, in addition to the UDP server, has enabled fast (<<1sec) delay calculations between the two signals.

Tasks for Next Week

I will be working with Enock and Txanton on adding two additional RTL SDRs to our system. I will also be implementing angle of arrival estimation, which is a simple equation that will be added to our code.

 

Team Status Report 04/03/2021

This week we worked on HW 1-3 and SW 1-2 from our new schedule made in order to put us back on track in time for demo. We ordered all our parts last week and weekend and were able to receive all the parts on time. Thus, Enock and Vrishab were able to work on testing the individual parts as they came as well as putting them together.

Txanton worked remotely on software programming for the VCO in which he had to write it for Arduino, MSP430, and STM32 since there were many issues with the Logic Level Converter and the MSP board. Txanton was able to zoom in remotely to help write the code in real-time for each of the boards as Enock and Vrishab tried debugging the boards and LLC.

For the hardware aspect the first goal was to set up GNU Radio and sync the SDR board which required some physical manipulation of the PCB’s to get the clocks to sync. Once the FM signals could be seen simultaneously the next step as to check the VCO output to ensure the correct sine wave was seen. After this was done all of the parts ended up coming in tandem and thus we were able to start physically building the entire system.

Fitting the SDR, VCO, LLC, and microcontroller it was seen that the LLC could not switch fast enough for the SPI Interface of the Arduino. Thus the arduino was switched out to the MSP which was natively 3.3V and allowed for us to remove the LLC from the design however, we could not verify that the VCO was working properly and thus we switched to the STM32 which Txanton had extensive experience with. This board worked and so we finally attached the downmixer to the WiFi antenna and tested with GNURadio, a hotspot, and a laptop connected to the hotspot to see that this signal was seen in the waterfall. We were able to see good signal strength when close to the antenna and much weaker when moved away, especially out of FOV and so we concluded that the system worked.

The next steps will be for Txanton to start working on OpenCV code for webcam input and overlay. The beamforming algorithm will need to be configured with GNURadio data from the antennas and will need to be optimized and changed once we see what this data will look like.

Here is part of the system. Antennas and downmixer not shown but attached out of the FOV.

Enock’s Status Report 04/03/2021

This week was a hardware heavy week in which we finally got all our parts. The beginning part of this weekend was spent working setting up our GNURadio environment on Linux as well as the companion to use the SDR’s. Afterwards I spent time trying to configure the SDR’s to be synced and placed two of them in close proximity connected via a USB Hub to my computer to verify we could see FM radio signals of the two at the same time. At the time we had two antennas one longer than the other which produced a stronger reception as shown in the waterfall. This was the first milestone goal that we hit which was to: setup the SDR/GNU Radio environment, sync the SDRs, and see the signals in the companion app.

The next goals were all related to testing when the parts came in. Initially we received SMA cables which could not connect to our antennas so we put in an order for SMA to RPSMA adapters which fixed our issue.

Upon receiving the VCO I was able to test and verify that the output signal was a sine wave with an oscilloscope.

We decided to use an arduino to do setup processes for the VCO registers which has 5V data line outputs which would be intercepted by the Logic Level Converter and sent to the VCO but we could not see the proper voltage outputs which was related to the LLC not capturing at a fast enough rate due to the high SPI output rate. Thus we tried using a MSP430 which ended up not working and thus we settled on using the STM32 instead which natively had 3.3V output and we could phase out the LLC from our design.

When verifying that the STM was properly configured we attached the antenna to the downmixer and the downmixer to the VCO and SDR To verify we could see WiFi signals on GNURadio waterfall. This proved to be a success.

Next week’s goal will be to configure and optimize the beamforming algorithm depending on how the data is transmitted now that we are able to capture.

Vrishab’s Status Report for 04/03/2021

Signal Synchronization

Quite a lot of progress was made on signal synchronization this week. I was able to achieve coherent signal capture between two RTL SDRs, which was partially completed last week, but the captured signals were too weak. To correct this issue, I incorporated a bandpass filter into our signal capture pipeline and moved testing locations. The combination of these two resulted in a much stronger captured signal which we could correlate between the two receivers.

System Integration and WiFi Signal Capture

Working with Enock and Txanton, we have completed our integration of all the hardware in order to capture WiFi signals using our SDRs. Using my phone hotspot as a WiFi source, we were able to capture the signals from my phone with the SDR and produce a spectrogram of the results.

Progress Since Last Week

We have completed the integration of all our hardware and have captured WiFi signals; this was a major hurdle in our design process that we have now overcome. We are ready to begin our beamforming implementation.

Plans for Next Week

We are going to implement the beamforming algorithm as a separate offline script. Doing the processing offline will render the code easier to write and debug. We can transfer the code to C (using cython/numba or equivalent) to facilitate real-time processing.

Txanton’s Status Report for 04/03/2021

This week we made some large breakthroughs. Initially we were planning on using an Arduino since we had many available to us and they are relatively easy to program. The only challenge with this is they use 5V logic and the Voltage Controlled Oscillator we are using uses 3V3 logic levels meaning we need to convert them. We attempted to use the Sparkfun Logic Level Converters however the method of switching they use were not fast enough to support the slowest SPI speed of the Arduino. My team members considered using a Raspberry Pi since it uses 3V3 logic levels so I wrote a quick Python script to configure the VCO in case they did end up using the Rasberry Pi. Due to accessibility issues my team members ended up not using the Raspberry Pi but had a Ti MSP430 available to them which uses 3V3 logic levels so we attempted to use that. It looked promising since there was an IDE called Energia which used Arduino libraries to program it so the code I wrote this week should work. Unfortunately we had some issues setting up the development environment for that chip and none of us had experience with the platform so we moved on. My team members were able to borrow an STM32 Nucleo board, a platform with which I am very familiar with, so I rewrote the program to set the VCO registers for this microcontroller and we were able to get it to working and use it with our downmixer.

I spent a lot of time this week writing the code to program the VCO (for multiple microcontrollers) and next week I will start on the heatmap and webcam capture code.

Enock’s Status Report 03/27/2021

This and last week I spent time working with the SDR’s that we received. We gladly were able to receive SDR’s from Dr.Kumar’s lab and me and Vrishab spent time setting up our digital environment to use the devices. We were able to set up multiple computers on all different OS’s (Mac, Windows, Linux) with the GNU Radio software so that we could find out which was the easiest to work with. Upon doing this, we were able to plug in both devices into our computers and have the signals be seen in sync. The signals that we were looking at were radio waves from radio stations and since they were audio we could verify that we were picking up the signals properly since we could play it back in real-time. We further started working on porting the I/Q data to be analyzed in real-time so that we could apply our beamforming algorithm but this process is currently in the works this and will most likely be finished the day after this post is out before our next meeting.

In terms of the hardware aspect I have started on configuring my environment and software suite (Vivado, HLS, etc.) I was able to pick up the Zynq board and have been working with it to make sure that everything works and interfaces properly.

Team-wise we have also been working on refining our team schedule to be more detailed and I have been working on trying to come up with a lot more detailed list which will specify what specific deliverables I need and when

Team Status Report for 03/13/2021

Last Week
Last week we did not have a status report due, as such we spent most of that time writing our design report. In order to write this report we had to make sure our beamforming algorithms were solidified, and we had to make sure our component selection was finished.

Component Ordering
This week we finalized the last of the components that we needed and placed an order for them, as such we expect to receive them sometime next week enabling us to start combining them to work on our minimum viable product. Unfortunately some challenges came up from when we wrote our design report as we originally thought that we had found a reliable source for the downmixing boards that we planned on using, however, they all ended up being shipped internationally meaning that they would not arrive in time for us to properly test and include it into our design. We luckily were able to find replacement boards domestically, however, they were quite a bit more expensive meaning we will need to be careful with our remaining budget in case we need additional equipment.

Advancements with current Gear
We also made a lot of progress with the equipment we have. We were able to use the SDR’s that we got last week to perform beamforming in the FM radio band, as such we feel confident that when the rest of our components arrive we will be able to adapt it to WiFi in order to meet our MVP. The radio signals received are relatively close to the intermittent frequencies we expect to receive from the downmixing equipment meaning it should not be too difficult to adapt our system.

Upcoming
This upcoming week we will continue to tweak and adapt our beamforming algorithm, and start adapting our system to work with WiFi as the components become available to us and we can test further

Vrishab’s Status Report for 03/27/2021

Signal Capture Pipeline Design Changes

Since there was no status report last week due to the midsemester break, we have made some considerable progress — as well as some significant changes — to our beamforming architecture. Based on the feedback from our presentation two weeks ago, we have decided against fabricating our own PCB to convert analog signals from the WiFi antennas to digital signals that we can process. Instead, we will be using an array of cheap SDRs (~$25 each) to capture the downconverted signals and convert them into digital signals. The downconversion will now be done using commodity downconverters, which we have already purchased and are en route.

My role was largely in organizing these changes. I also used two SDRs which we borrowed from Dr. Swarun Kumar to perform beamforming on radio signals in the FM band, which will be close to the intermittent frequency of the boards we ordered. Enock and I also met with one of Dr. Kumar’s graduate students, Atul Bansal, to further discuss possible modifications beamformer implementation, such as synchronization schemes, and to receive feedback on our implementation .

Design Report

As a group, we spent a considerable amount of time writing our design report. My contribution to this was the signal processing portions as well as miscellaneous contributions to the introduction, architechture overview, risk management, etc.

Progress Since Last Report

We have finalized our implementation and have ordered parts. We have a working beamformer implementation for signals in the FM band.

Plans for Next Week

Once our parts arrive we will begin integration and testing. Since the ordered parts are development boards, which are designed to be plug-and-play, we should be able to begin testing without delay.

Txanton’s Status Report for 03/27/2021

This week I finalized the last few products that we needed to order. After some careful consideration I found the downmixing evaluation board that we plan on using, it features dual channel interfaces meaning we can connect two antennas to it, and it also is 50 Ohm impedance matched meaning we don’t need any additional hardware to prevent reflections on the signal line. We also found some WiFi antennas that seemed relatively directional without sacrificing field of view too much so that we can get sufficient overlap to get meaningful information from each antenna. The last product we ordered were the SMA cables needed to to connect all of these devices. By using these cables we are able to space out the antennas accordingly so that we can perform beamforming.

We also spent some time this week on administrative tasks as we needed to organize our task breakdown in order to make sure we are able to complete everything on time. By making a more detailed breakdown of tasks we will be able to stay more focused and not spend as much time trying to decide what to work on next. This upcoming week we hope to start receiving components so that we can start testing with the actual parts that we will be using. This will allow us to start working on solving any problems that may arise when we start combining these modules.