John Paul Harriman’s Status Report for 3/28/2020

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

I was able to start actually implementing our code!

I did a lot more research into what exact error correcting codes that we could use for our defined packet model. I’ve been going deep into this rabbit whole of which one is the best to use so hopefully next week I can start connecting the dots between all of them. I wrote the code for defined packet generation with a new model.

This model helps us gain easier access to verification by storing it in a struct because we now don’t have to pass all of our data through the specific wires and can focus on correction/detection and protocol handling.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?


I personally think we’re catching up, but still have a lot to do. If we can start getting algorithms down for correction/detection then we can have a successful project.

I’m going to do my part now which is gathering all the different algorithms and hopefully link up with my teammates over the next week.

What deliverables do you hope to complete in the next week?

Deliverables for next week are the Reed Solomon algorithm and others for the defined packet length to be completed in C, but without the additional component interactions.

I kind of switched my paths halfway through so I’m going to keep these goals.

Team Update 3/28/20

What are the most significant risks that could jeopardize the success of the project?

The most significant risks that could jeopardize the project is still working separately as a team and all of us being in different time zones; because of this situation, communication takes longer and more planning.  Additionally, possibly being overambitious last week may jeopardize the success of the project.  This week, we regrouped as a team and after taking in the feedback from our meeting, we realized that it was important to simulate and verify our protocols using a GUI; thus, we shifted our attention to the GUI and adjusted the Gantt chart accordingly.
How are these risks being managed? What contingency plans are ready?

These risks are being mitigated by setting times during the week that we will consistently meet at.  This will force us to routinely regroup and will facilitate discussions that were previously delayed because of lack of planning.

The contingency plan is to get the GUI working + properly simulating the protocols and writing at least the convolutional codes + viterbi, UDP with windowing, reed solomon, and Turbo Codes.  We realized that we should include a GUI regardless; therefore, we are prioritizing the creation and integration of the GUI over the addition of more protocols.

Were any changes made to the existing design of the system (requirements, block diagram, system spec, etc)?

We’ve slightly restructured the interactions between the protocols and GUI.  Because we are no longer integrating with the hardware, we’ve simplified and modified how data will be exchanged between the GUI in Python and the protocols in C.  For the GUI implementation, we’ve decided to use PyForms, a library that provides a clean-looking GUI.  We plan on using a library, ctypes, that allows for C functions to be called in Python.  We’ve made a new diagram that illustrates the new exchanges between the protocols + the GUI: 
Additionally, after further research, we have decided that we might not be going with the Reed-Solomon implementation for I2C/UART.  We’ve decided to experiment with the various protocols to determine whether we should continue with that implementation or not.
Why was this change necessary, what costs does the change incur, and how will these costs be mitigated going forward?

The change was necessary because we are no longer running our software on the drivers; since our project is now simulated, we had to redesign slightly modified transactions between the GUI and the protocols.  Additionally, last week, we didn’t think that we needed a GUI to simulate and verify our protocols with; we thought test benches would be sufficient.  However, after several discussions this week, we realized that we should bring the GUI back.

Because we will be spending more time integrating the protocols with the GUI and creating the GUI, we will not be able to implement as many protocols as we like.  Our initial plan was ambitious though, and since we’re already finished with at least half the protocols, we were able to make time to create and integrate the protocols with the GUI.   To mitigate these costs, we plan to no longer make large changes like these to our design and since everything has been re-prioritized, we hope to stick to those new decisions.
Provide an updated schedule if changes have occurred.

This is also the place to put some photos of your progress or to brag about a component you got working.
GUI: 

Sam Adam’s Status Report 3/21/2020

What did you personally accomplish this week on the project?


Over spring break, I worked on finishing up the wifi-UDP implementation. I also worked with my team to pivot the scope of our project in order to work on it remotely.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I believe that my progress is slightly behind due to the re-designing that we had to do to account for not being able to physically be together to implement the hardware components. However I do feel like the work I was able to get done over spring break puts me into a good spot considering the re scoping of the project.

What deliverables do you hope to complete in the next week?


I hope to finish the UDP/Wifi and write sufficient and thorough test benches to verify that I’m properly simulating the error detection and handling. This would free up my time to help out my teammates on the other communication protocols.

John Paul Harriman’s Status Report for 3/21/20

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

With the end of Spring Break moving into the transition into the remote classes, most of my work has been getting my life back together and also trying to make the transition with Capstone.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?


I’m not sure if we are now on schedule or we were just forced to move the goalpost. As we move toward the simulation aspect of our project now, a lot of the stuff I was researching about the interactions between components is now basically scrapped. This project can be successful but I don’t think will be what we originally intended.

 

What deliverables do you hope to complete in the next week?

Deliverables for next week are the Reed Solomon algorithm and others for the defined packet length to be completed in C, but without the additional component interactions.

Team Update 3/21/2020

What are the most significant risks that could jeopardize the success of the project?

The most significant risk has been not being able to physically be together in Pittsburgh to work on the physical aspects of the project.  Additionally, because of this unforeseen event, we have lost more time to redesigning and shifting our project.  Moreover, because some of us our in different time zones, finding good meeting times for everyone is more difficult.
How are these risks being managed? What contingency plans are ready?

This is not a risk we really could’ve managed given the circumstances, but our suggested contingency plan is stated in the Statement of Work.

Were any changes made to the existing design of the system (requirements, block diagram, system spec, etc)?

A more detailed account of what we changed is listed in our SOW, but a brief description of the current goal of our project is “we believe that most of our original project can be maintained, since the crux of the project is software that will be loaded onto CubeRover’s modules.  Since we can no longer simulate the protocols using physical components, we intend to simulate the protocols. Because the hardware aspect is no longer feasible, we plan on re-focusing our project to create, implement and test various error detection and correction algorithms to determine which methods best meet CubeRover’s specifications and hardware specifications.”
Why was this change necessary, what costs does the change incur, and how will these costs be mitigated going forward?

This change was necessary because of Covid-19 affecting the physical proximity of the teammates and recognizing the physical aspect of the project would only put physical strain on one teammate instead of the team.

Since we’ve already lost time redesigning our project, we realize that we need to immediately recognize whatever problems that may arise; because we’ve already lost so much time redesigning our project, we can’t afford to loose any more time running into issues or rethinking our current implementation decisions.

The biggest issues moving forward are not being together, making communication significantly harder amongst team members; additionally, some of us are in different time zones, making meetings harder to arrange.  Thus, to mitigate these costs, we have set up weekly meeting times that work for all of us regardless.  Additionally, we are clearly and frequently communicating to each other should any issues arise immediately.

Provide an updated schedule if changes have occurred.

This is also the place to put some photos of your progress or to brag about a
component you got working.

Mia Han’s Status Report 3/21/2020

What did you personally accomplish this week on the project?


After hearing that we are no longer returning to campus and moving to virtual classes, I paused what I was working on, because I was uncertain where our project would be moving from there; I spent the remainder of spring break working on homework assignments that I knew would not be affected by moving virtually online.  Once we regrouped on Wednesday as a team and with our professor + TA, I began shifting my focus from working on the convolutional codes + Viterbi to restructuring our project and new project proposal.  We really liked the idea of comparing several FEC’s, turbo codes, and LDPC to determine which one best fits CubeRover’s hardware constraints.  Therefore, I spent most of this week deciding which error detection and correction algorithms would be prioritized for GPIO/SPI and finishing up Viterbi + convolutional codes; I also researched the pro’s and con’s of those various algorithms more thoroughly.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I believe our progress is definitely behind; already using this week to restructure our project, I believe that we are behind turning our project around and implementing a slightly different version of the project in the next seven weeks.  Additionally, I didn’t accomplish as much work as I would like over spring break, putting me more behind than I was originally expecting; I spent more time brushing up on C/C++ and fully understanding the nuances of convolutional codes + Viterbi than I was originally expecting.

To catch up to project schedule, I believe that I will be able to spend more time on the project, since the quarantine in my town is stricter and there’s literally nothing else to do besides stay home.  Additionally, I spent some time next week worrying about and cancelling future plans; therefore, I feel that getting into the school work grind will begin this week.

What deliverables do you hope to complete in the next week?


I hope to

  1. Finish and test convolutional codes + Viterbi implementation
  2. Fully understand and start writing the Turbo Codes implementation

Mia Han’s Status Report for 3/7/20

What did you personally accomplish this week on the project?


This week my team and I spent a lot of time finishing up the design document. There was some confusion on the overall architecture so as a team we spent a lot of time ironing out the details before we submitted. After that we planned out our goals for the implementation phase going into spring break.  Additionally, we decided who would be implementing what parts of project during spring break.  This week, I began writing some code for the GUI implementation and wrote at least 1/3 of the functions for the communication using the STM32 cube libraries.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

We are on schedule but we have a lot of work to dot before the first demo. I plan on using spring break to make some initial progress on the implementation phase.  During spring break, I hope to at least implement the GUI and MCU communication and protocols; with this completed, we would be able to use the GUI to begin testing the individual components.

What deliverables do you hope to complete in the next week?


During spring break, I hope to complete the GUI and MCU interactions and communications over a few days that I plan on completing course work.  Additionally, I hope that those functions are tested and ready to use for testing the protocols by the time school starts.

Sam Adams’s Status Report for 3/7/20

What did you personally accomplish this week on the project?


This week I worked on finalizing the design decisions for the design doc that we submitted on Monday. After that my team and I finished making the final design decisions, I began to work on implementing the UDP packet protocol. I was able to make good progress by implementing the barebones of the protocol. I also met with my team so we could set some goals for spring break as we all plan to do a little bit of work over the break.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?


We are on schedule. We are done with the design document and we hope to have the initial versions of all of the protocols before our first demo. My goal is to use spring break to get ahead on the implementation phase.

What deliverables do you hope to complete in the next week?


I hope to have completed coding the UDP protocol by next week. I want to finish it relatively early so I can help my team with the implementation of the other protocols that we are working on.

Team Update 3/7/2020

What are the most significant risks that could jeopardize the success of the project?

Most of the problems that we were at risk for last week were successfully solved.
Our new risks come with the learning curve of using our new components that we ordered because there hasn’t been a way to really interact with them if we did not physically have them.
Besides that, we believe that we should be okay. We still need to figure out which addresses to write to and how exactly we will set up the components to interact with each in terms of where they will write data to, read data from, etc.
How are these risks being managed? What contingency plans are ready?

The risks are being managed by having this built into the slack. All pieces of code should be ready to go by the next time we meet with our components, so we can just now focus on the integration aspect of the project.

A contingency plan that would help is to get at least one protocol system working for our protocol wrapping. Then we can slowly start to add more and more tests and then eventually develop the entire system running at once. We believe that we can at least do one system in the next week if we have our components, so that is our goal for this week.

Were any changes made to the existing design of the system (requirements, block diagram, system spec, etc)?

There was a change to the system that was a compromise between the decentralized and centralized models. We are also slightly changing the way that we pass data during what we call “debug” mode which sends the corrected data after an ACK. This changes the block diagram.

We also set hard requirements based off of the components that we are using to set our constraints.

Why was this change necessary, what costs does the change incur, and how will these costs be mitigated going forward?

This change for the architecture was necessary in order to follow our three phase plan for proof of correctness. Without this change we wouldn’t be able to remove the microcontroller and still show that our system works, but we also needed it so that we can reduce the weight we would put on the laptop that we’re using by keeping the fuzzing of data on the microcontroller still. Packet generation has now been delegated to each individual component due to the more realistic setting instead of placing it onto the fuzzing microcontroller. The costs that incurred was we took a lot of time during the design document phase to iron out our approach that we could’ve been used developing. Now we have to take time out of Spring break to catch up on our lost time.

Requirements had to be set in order to have a goal for our project. We need to work within the constraints because it limits what we can do and how we can approach the problem. Before we made this change, most of it was that we could basically try any approach and any solution was valid. Now that we have defined memory and timing constraints, we can work to improve the code that we already have.

 

Provide an updated schedule if changes have occurred.

The Gantt Chart has not changed for this week.

Gantt Chart

This is also the place to put some photos of your progress or to brag about a
component you got working.