Stephen’s Status Reports

Stephen’s Status Report for 4/25

Accomplished

This week I mainly helped Anna and Braden test the FPGA data pipeline. One major observation we made is that we receive data significantly out-of-order from the satellite. This could be due to multiple instruments on the GOES satellite transmitting data at once, or simply due to packets getting reordered while travelling through space. As such, we decided to move the final component of the protocol handler (the MPDU decoder) from FPGA to the Raspberry Pi, as we have a much larger RAM for holding out-of-order packets. I worked on this migration.

Progress/Schedule

We are on schedule to demoing during finals week. Please refer to the section below for my plan next week.

Deliverables/Next Steps

Next week, I plan on mainly working on the demo and the final report. As our project is different from traditional capstone projects, with a large component being interfacing with other systems like satellites, we will think about how to best present our project so that users can easily understand and see our results and work done.

Stephen’s Status Report for 4/18

Accomplished

This week I thoroughly tested and debugged the connection between the FPGA and the Raspberry Pi. I struggled with several bugs involving the SPI protocol, specifically timing issues, as the FPGA and Raspberry Pi operate on very different clock domains (50 MHz on the former versus ~16 MHz on the latter). I was ultimately able to successfully transfer data between them on the MOSI and MISO lines.

Progress/Schedule

We are currently a bit behind schedule, as we are still working on integrating the end-to-end system together. One of our biggest obstacles is the lack of documentation that can be found online regarding GOES-specific values, such as its spacecraft ID. We are working on mitigating these issues.

Deliverables/Next Steps

Next week, I plan to finish integration of the end-to-end system such that we are able to collect live-data from the GOES satellite on the antenna, send that through our FPGA, send this data to the Raspberry Pi, and process it and display various images for the users to see.

Tools/New Knowledge

As this project required interfacing between many existing subsystems, such as the GOES satellite (which communicates via specific protocols developed by SANA, the spacecraft agency), FPGA, and Raspberry Pi, I gained lots of experience finding and reading through specification sheets. This was especially important for designing the protocol handler on the FPGA, as a single mistake would cause the packets to be corrupted, making us unable to receive correct data.

Stephen’s Status Report for 4/4

Accomplished

This week I began verifying the software component, as well as helping Anna write the testbenches for verifying the end-to-end correctness and timing of our protocol handler on the FPGA. In terms of the software component, I wrote a few unit tests in Rust to mainly test edge cases in file reassembly, as well as manual testing on the touchscreen for the user-facing UI component.

Progress/Schedule

I am on schedule, as I have almost completely tested and verified that the software component on the Raspberry Pi is working. We are currently on track for testing the FPGA protocol handler as well, which is our most complex subsystem.

Deliverables/Next Steps

Next week, I plan to continue testing the end-to-end system. I plan to continue working closely with Anna and Braden, who are more in charge of the frontend components, to ensure that the interfaces between each subsystem is working as expected and that our product delivers the required performance and reliability as we initially laid out.

Stephen’s Status Report for 3/28

Accomplished

This week I finished writing the software on the Raspberry Pi. We are now able to display archived images, as well as numerous types of weather information, including wind, fire, raw pictures of Earth, etc. I also finished testing the final component of the protocol handler using SystemVerilog testbenches.

Progress/Schedule

I am now on schedule, as I have finished the entire software backend module this week, including file reassembly, data archival and storage, and controlling the user facing touchscreen. I have tested the software on our Raspberry Pi and touchscreen and made sure response time is below the requirement.

Deliverables/Next Steps

Next week, I mainly plan to prepare for the interim demo. In addition, I will talk with Anna and Braden about coming up with a plan to start testing our system end-to-end by integrating every individual component together. I expect there will be significant debugging effort required, especially debugging how the different modules interface with each other.

Stephen’s Status Report for 3/21

Accomplished

This week I was able to reassemble packets received from the FPGA into complete files on the Raspberry Pi. I have also started working on the device driver for the user-facing touch screen, which is taking a bit more time than expected due to the complex protocols that must be followed (otherwise, the device driver panics).

Progress/Schedule

I am personally slightly behind schedule, as I am still working on the software backend. Anna and Braden are also slightly behind as they have pivoted to performing demodulation in software instead of FPGA for now (see their reports for more details).

Deliverables/Next Steps

Next week, I plan to finish the Raspberry Pi code entirely, and unit test the touch screen as well as software features like changing the type of images displayed and archiving information. I also plan to start testing the end-to-end system in light of the upcoming interim demo.

Stephen’s Status Report for 3/14

Accomplished

This week I finished all the backend components on the FPGA, including the largest module responsible for extracting packets from the serial bitstream received from the satellite. I wrote several SystemVerilog testbenches to ensure correctness and timing. I also started working on the backend software component on the Raspberry Pi, which assembles files in a straightforward manner from the packets received from the FPGA and uses a device driver to display weather images on our user-facing touchscreen.

Progress/Schedule

Now that we successfully received GOES satellite data using our antenna + RF frontend, we are no longer behind schedule. We are on-track to successfully completing the project, as we have the FPGA component of the backend done (in simulation, still need testing with real signals) and I have started working on the software backend.

Deliverables/Next Steps

For next steps, I will continue working on the software side. I aim to finish all the code for the Raspberry Pi by the end of next week. Moreover, I will begin testing the FPGA modules with real data from the GOES satellite once Anna and Braden demodulates it into I/Q samples and passes it through the SDR.

Stephen’s Status Report for 3/07

Accomplished

This week I made solid progress on the RTL for decoding the protocol. I was able to finish the module that performs derandomization of the bitstream, and wrote several testbenches in SystemVerilog to verify correctness of both the output and timing. Moreover, I started working on the hardest part of the RTL with Anna, that is, segmenting the input bitstream into packets and sending these packets to the Raspberry Pi. I am nearly done with this component.

Progress/Schedule

Like last week, we are slightly behind on schedule, mainly due to the difficulties involved in receiving a clear signal from the GOES satellite using our RF frontend. We found that the roof of East Campus Garage provides a clear line-of-sight, and we are in the process of testing reception of the signal there.

Deliverables/Next Steps

For next steps, I will start working on the software side, that is, using the Raspberry Pi to display the image, device drivers for the touchscreen, and archiving historical weather reports in system storage. Anna and Braden will work on the frontend, ensuring that our antenna is able to receive the signal and working on the BPSK demodulation.

Additional Questions

With consideration of cultural factors, this project will likely benefit communities that are reluctant to use new technology. In many lower income countries, citizens are reluctant to use Internet and smartphones as it conflicts with their traditions. However, providing accurate weather information to these groups is still extremely important. This project will enable these groups of people to start receiving accurate, real-time weather reports without disrupting their traditional lifestyle, like the Internet would.

Stephen’s Status Report for 2/21

Accomplished

This week I continued working on the RTL for receiving and decoding the protocol. Specifically, I continued working on derandomizing the bitstream using a static, pseudo-random polynomial using shift registers. I also worked on writing certain sections (Testing & Verification, Quantitative Use Case Requirements) for the design proposal presentation, and worked on physically building, setting up, and testing our antenna + tripod on Friday.

Progress/Schedule

We are slightly behind schedule. Even though we received our antenna this week, we are still not able to obtain a clear, strong signal from the GOES satellite. We think this is an issue with the line-of-sight, specifically, Baker Hall is blocking the signals from GOES when we setup on The Mall. The protocol decoder is going smoothly.

Deliverables/Next Steps

For next steps, we will continue working on the protocol decoder next week (we plan to finish all the design and have all the SystemVerilog code written). Next Monday, we will setup our antenna and test the reception of signals at Schenley Park, where we should hopefully have a direct line-of-sight.

Stephen’s Status Report for 2/14

Accomplished

This week I decided to start designing the RTL for receiving and decoding the protocol received from the GOES satellite. As I had read through the entire specifications of the protocol last week, I explained the details to my teammates. We sketched out a design for the RTL to decode the protocol, and split up the work. I worked on derandomizing the bitstream using a static, pseudo-random polynomial.

Progress/Schedule

We have shifted our schedule due to external factors outside of our control, namely the RF frontend components not being delivered on time (we can pick them up next Monday, and will begin testing them immediately). To compensate for this, we decided to start working on the backend components of the system, specifically the protocol decoder, instead of the frontend components like the demodulator which depends on the I/Q data received from the antenna.

Deliverables/Next Steps

For the next steps, we will test out the RF frontend (antenna + LNA) once we pick up our parts on Monday. We will also continue working on the protocol decoder, which we estimate to take up the majority of the time. For the deliverables, I worked on the use case requirements and testing/verification for the presentation next week.

Additional Questions

In regards to economic factors, our end-to-end system provides a low-cost alternative for low-income, disadvantaged, or remote communities to get real-time, accurate weather reports.  Installing broadband Internet requires a lot of expensive infrastructure and slow bureaucracy from working with government officials. On the other hand, our system requires less than $600 to setup a fully working weather station, thus making traditionally expensive services much more accessible.

Stephen’s Status Report for 2/7

Accomplished

This week I mainly accomplished four tasks: (1) I practiced delivering our proposal presentation scheduled for Wednesday and prepared for any potential questions from the audience, (2) I read a 60-page specification on the LRIT/HRIT protocol used by GOES satellites to transmit information, (3) I designed an FPGA pipeline to receive and decode these packets, and (4) I placed orders of all necessary components (antenna, tripod, LNA, and touchscreen).

Progress/Schedule

We are on track according to the Gantt Chart. This week was mainly focused on finalizing our ideas for the project (via the proposal), obtaining feedback from the professor and the audience, conducting preliminary research to obtain background technical information, and ordering all the parts to ensure they arrive on time next week.

Deliverables/Next Steps

Next week, I will work on writing SystemVerilog RTL to demodulate I/Q data into a bitstream according to BPSK. I have found some references and specifications that I will be looking at to complete this task. After writing the RTL, I will first write testbenches in simulations to test the correctness. Then, I will synthesize this RTL onto our FPGA board and test if it works with real data coming from the antenna + SDR (which Anna and Braden will set up).

Leave a Reply

Your email address will not be published. Required fields are marked *