This week I spent a lot of time prepping and practicing for the final presentation over Zoom with my groupmates. Sunday we spent a lot of time working on the slides and displaying information similarly to what we would want to show for our VR presentation. From there we were able to get much needed feedback for our project, most importantly, running more tests on our device to get more accurate metrics. We conducted more tests at each location to get better data to present when it comes time to write our final design presentation as well as when it comes time to VR present. We also started working on our poster for the VR presentation and it is mostly formatted from our final presentation slides with some updated fields and information as per the presentation guidelines. We also began filming our final video but will conduct the final filming tomorrow (Sunday) since we had some issues with our project and we needed more time to conduct more thorough tests.
Team Status Report 05/01/2021
This final week was dedicated to integrating the software with the hardware and running tests to report our final metrics to see the difference between our initial goals and our final results. The software system consisted of two parts, collecting the SDR data and transmitting the data, and a receiver which analyzed the data to perform beamforming as well as conducting the overlay. These two parts were done on two different devices and so this process was merged to be performed on one. This was done not only for efficiency in design space on the cart and to preserve data integrity between transfers, but also to alleviate the need for a tedious FPGA setup.
We have also put some significant time into final tests for our system to ensure that the integration has worked without hitches. We placed markers within the lab and used these to gauge the performance of our system. Additionally, we began collecting footage and pictures for use in our presentation for sunday.
We allocated additional time this week to give feedback on the course and to prepare our presentation slides.
Enock’s Status Report 05/01/2021
This week has been the final stretch in implementing the final software subsystem of our project. We were able to move all of the hardware from the ECE lab testbench onto a cart. We strapped down everything so that the wires and components don’t move around and disturb the signals traveling. In addition to this, we decided to do the process of data collection and overlaying on the laptop as we have been doing. However, in the past we were using 2 laptops, my laptop to collect the SDR data and send it over UDP and Vrishab’s laptop to receive the data to do the beamforming algorithm. This was all done for testing and so would be inconvenient for the actual final product and so Txanton and I worked on integrating the two software scripts into one so that it could be configured to work solely on mine. Throughout the week we worked on doing test runs to get lobe width, we tested to see that the box in the middle could respond to different signal strengths at different distances.
Enock’s Status Report 04/24/2021
This week and the last week during carnival Vrishab and I worked on collecting a lot of data from our antenna configuration in order to see if the two antennas we had were properly synced and picking up proper signals. We found out that in our test environment in the ECE lab there were WiFi signals on our channel that were interfering with our calculations and so we were able to remove them from the network when testing which fixed all of our issues. After removing these devices we found that our signals were synced properly and correlation worked well and we could achieve and angle of arrival from the data. From here we integrated two more antennas for the full 4 antenna design which was a very smooth transition. Upon adding the new antennas all we had to do was account for N=4 antennas in our code rather than N=2 and everything worked perfectly.
We then spent time collecting data with 4 antennas and performing beamforming with two devices in the room and calculating the angle of arrival from these devices which worked for us. During this time of testing Txanton was able to send up the heatmap overlay code which we were able integrate into the system with our webcam fairly easily.
The objective for next week will be to integrate the webcam such that it interfaces with our angle of arrival data since currently all we interfaced currently is dummy data onto the webcam input. We will also take measurements to figure out our resolution to see if it matches our initial goals.
Enock’s Status Report for 04/10/2021
This week Vrishab and I spent time on the real time signal processing in time for demo. Through this we were able to start programming and finishing the antenna capture design,
For real time processing we were able to write python classes and functions that interfaced with GNURadio such that we were able to capture real-time daata and send it through UDP so that this data could be processed. We were able to set it up such that the laptop (Macbook) acted as the client and the antennas (surface tablet/SDRs) acted as the server such that the server would send the collected data from the servers to the client which would do all the processing for the correlation and angle of arrival data.
However, we faced issues with the hardware as we had two SDR’s running but during real-time analysis of the QT data we noticed that one signal was always more noisy and less strong than the other which ended up having to do with our downmixer. This was discovered by switching out the SMA cable, SMA-RPSMA adapters, and even VCO’s and antennas. We found out that through this process that one of the downmixer outputs transmitted data less strongly than the other downmixwer we ordered which seems to be a factory default.
Upon figuring this out and changing downmixers, we were able to see similar if not almost identical signals on each antenna. We were able to see strong and accurate signals and were able to collect data that would be able to used for correlation and phase detection.
The next step for this week is to make sure the outcome of this data is suitable for beamforming and that beamforming works come demo time. We are sure that our data is correct, but we must check that the beamfoming output is also correct for the heatmap overlay. As we work on this, we will provide dummy data to Txanton such that he can create a dummy heatmap overlay in time for demo
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.
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
Enock’s Status Report 03/13/2021
This week we spent a lot of time on the design aspect of the project in order to put out the presentation and report.
I focused mainly on the FPGA and onward part of the block diagram which ended up being not complete upon uploading the diagram to our presentation which was our fault. However, I worked on understanding how the signals should be coming into the FPGA and formatted so I could start writing block diagrams for the internal SystemVerilog modules. Upon figuring out format of the signals I roughly figured out that the 32 input signals must then be time delayed internally in order to create a proper signal that the DSP Beamforming algorithm module would take as an input. Once the signals have been time delayed the DSP algorithm as shown in our block diagram would run the proper computations to output one signal. This signal will then be run through another module that would take the amplitude of this signal in order to get a “pixel” intensity value for the heatmap. The pixel in this case is actually a grid box as shown in the Artist’s Rendition. This value will then sent to our code which will render the heatmap overlaying the input video feed which will be sent out via mini DisplayPort to a monitor.
This week and in the upcoming one I will be working on creating a detailed block diagram and specification for the FPGA SV modules and heatmap creation for the design report. I will continue to work on refining the design and starting to write code/pseudo-code which is on schedule for writing and then hopefully testing.
Team Status Report 03/06/2021
This week we spent more time narrowing our project design and metrics since the design presentation will be due close to the time this post is up. This week we were able to create our proposed antenna design by settling on WiFi signals as our target signal, the number of antennas, and their array pattern. We were able to decide on the antenna spacing for the array based on the WiFi frequency since we wanted to not only avoid aliasing but losing important signal information.
We have found a beamforming algorithm that we will try to implement and test in MATLAB before having to customize it for the FPGA. Since we have settled on an MPSoC FPGA to use, it will make this process of designing easier. We have also started brainstorming a way to configure the heatmap which is our final output. This will be an agreement between the data output type of the FPGA (which we hope to be pixel values that represent intensity) which will be fed to a microcontroller which will handle composing a heatmap onto the live feed of the camera we will be using.
We are currently on track with our project but should order and start building soon to start doing prelim testing with the PCB so we can start interfacing with the hardware/software.