Team Status Report for Dec 4 2021

As this is the week of Final Presentations, our team did not make much progress in or outside of class. In addition, many of our other courses have final exams, presentation, project deadlines, and more that are piling on in the next few days. Aside from some minor adjustments on the web-app, our team has nothing of significance to report this week.

However, we are comfortably on schedule to present a proper final demonstration. Three chair sensors have been fabricated, two of which have been thoroughly tested. We have successfully ran complete integration tests from the chair to the web-app. The only outstanding tasks are: activate the second data hub (see Jonathan’s post this week for more details), brush up the web-app frontend, and debug the sleep cycle for the chair sensors.

Looking forward to a productive week ahead, and a smooth final demo!

Jonathan Cheng’s Status Report for Dec 4 2021

This week was the week of Final Presentations, and as such I have not made any progress in class time. In addition, since the data hub is largely complete, I have not spent any time outside of class to work on it. Right now, the only part we are waiting to complete is the extra chair sensor. In addition, I am waiting for my ordered SD Card to arrive. Once it does, then I can flash it with the raspberry pi OS, plug it into the second raspberry pi, and it should be active.

Due to other classes’ commitments, I will not be working on Freeseats this weekend. However, after Tuesday, I plan to retrieve my SD card, activate the second data hub, download the code onto it and wire up the second XBee. Once those steps are complete, both data hubs should be ready for the demo.

Jonathan Cheng’s Status Report for Nov 20 2021

This week was a productive week for Freeseats. My project component, the datahub, has been largely complete for about a week or two. Thus, I have been working with Will to get the chair modules connected to the datahub. This week, we spent many hours in the lab soldering and configuring the XBee modules to network, and have found great success. After that, we converted the chair modules to run on battery power. The end result is now that two battery-powered chair modules, attached to real chairs, can communicate with a central datahub.

In addition, I tested the datahub’s connection with the backend API earlier in the week. There were some schema inconsistencies that we had to debug by hand, but now it is all cleaned up. The datahub can convert and format received chair data and send the correct state updates to the backend. A full integration test was ran successfully on Wednesday.

This weekend and early next week, Will and I plan to go into the lab to collect some testing metrics for the hardware components, including network latency, sensor accuracy, and power consumption. After this, I will look towards setting up a second datahub to represent another workspace for the final demo. This will bring us to the final presentation, which we will be putting together over thanksgiving break.

Jonathan Cheng Status Report for Nov 13 2021

This week there was a slight lull in progress, due to two main factors (shipping delays, and external coursework). Despite this, I still made some meaningful steps towards completing the Data Hub. One crucial component, the XBee breakout board, did not arrive until Wednesday, meaning we couldn’t work on configuring the XBees until then. So, at the beginning of the week, I worked on testing the Data Hub’s connection to the backend, making sure all the schemas were aligned and verified for seamless communication. This was successful, and the Data Hub can now communicate with the deployed backend API.

Once the breakout boards arrived on Wednesday, Will and I got to soldering the XBee’s to the breakout boards, so that they can be plugged into regular-sized breadboard inputs. After that, we configured both XBees by using the Arduino as a serial converter.

At the start of next week, we expect that we will be able to begin testing of XBee communication, which is the final big step in our development. Once this is complete, finishing the capstone project will just be a matter of recreating another Data Hub for multiple-workspace use cases. Exciting!

Jonathan Cheng’s Status Report for Nov 6 2021

This week, my time was half spent on flashing the RPi with the proper OS and configuring hardware settings to accept GPIO data. Overall, this was a successful endeavor, and I got my data hub code installed on the machine, with all dependencies as well. The second half was spent with Will, helping him with whatever he needed to do to get the sensor connected to the XBee. Fabrication generally takes more time than writing code, so any help I could give, I did.

The work we did this week sets us up well for next week’s interim demos. All three of our components have developed decently, and though we are far from done, we are well on our way. Upon looking at the initial setup for the XBee, it seems like the configuration is going to be fairly straightforward. If everything goes according to plan next week, we should be able to get a full integration test by the middle of the week.

After running an integration test, the next thing to do is fabricate more chairs and one more data hub, to move towards more real-world situational tests. This will put us towards the end of the development cycle for our capstone project.

Team Status Report for Nov 6 2021

This week was a productive week for the team. Not only did we all individually make great progress on our components, but have started making steps towards integrating all three together. Most of the week was spent working on our individual components in parallel. For details on each component’s progress, please refer to the responsible team member’s weekly status report.

The chair sensor has been prototyped and tested, with promising results. In addition, the hardware connecting the XBee module and the arduino has been completed, and configurations are underway. On the software side, the Data Hub python code has been installed on a RPi 4, and updated to include the GPIO and serial libraries and functionality. For the web application, the backend has been connected to the database, deployed, and a public API endpoint has been published for Data Hub interaction.

In terms of our schedule, we are slightly behind, but have also realized that our original schedule was slightly ambitious. Despite being behind according to our initial gantt chart, we may still be able to complete integration and testing before Thanksgiving, as planned. This is mainly due to our underestimation of fabrication times, and overestimation of testing difficulty.

Next week, we hope to finish connecting the XBee modules, and complete one integration test, sending data from the chair to the data hub, and finally pushing data to the web app.

Jonathan Cheng’s Status Report for Oct 30 2021

This week was a productive week for the myself and for the team. I spent the earlier half of the week drafting the Data Hub project code, making sure to focus on readability and modularity. The end result should be something that is portable and easy to maintain. In addition, I wrote unit tests for the python functions that I drafted, and ran them with PyTest.

I also was in charge of creating the data schemas that our components will interface with each other through. I used a protocol called Json Schema to define the chair-to-hub schema, as well as the hub-to-backend schema. Furthermore, I wrote validators for the schemas, which will take a json object and validate the data structure against the schema definition. I also tested these validators with PyTest.

Towards the end of the week, I paired up with Will Foy to get the chair sensor up and running. This was not part of the plan, but we saw that the sensor was the top priority of the week, and needed to be fabricated as soon as possible. As such, I helped Will in any way I could, but I was mindful to defer to his instruction, as this was his project component. Fortunately, together we got the chair sensor up and running on an actual chair, and initial testing shows that it can indeed detect a human sitting on the chair, which is promising.

Next week, I hope to set up a raspberry pi with the python code that I wrote, and wire up an XBee to it, and see if communication between the chair module and data hub is possible. While this is a simple task, I predict that uploading the code to the RPi, with properly managed dependencies, as well as making reliable hardware connections, will be easier said than done.

Jonathan Cheng’s Status Report for Oct 23 2021

This week, I spent the first couple of days focusing on the Ethics assignment, in preparation for Wednesday’s guest lecture, which was enlightening and provided me with some valuable insights about our project’s ethics.

After the Ethics assignment, I started drafting up the Python code that would run on the Raspberry Pi. Specifically, I set up the team’s github repository, as well as the project structure. Then, I used jsonschema (a standard for defining json data models) to flush out the exact data structures being transmitted to and from each of our project components. Each component should use these schemas to validate all data sent and received, as the jsonschema standard has implementations in many languages. I then wrote my own validators for the schemas in Python, and tested them with my own PyTest tests, marking the beginning of the Raspberry Pi test suite.

After this, I begun writing the main script that will operate on the Raspberry Pi. The main logic involves reading the GPIO pin data for XBee-received information, processing that data into JSON, validating it, and modifying internal program state to reflect the received updates. In addition, I’m using the Python Time library to embed a countdown timer to program the 15-second timed backend API updates.

Next week, I hope to finish this program, test it on my local machine, and then load it onto an actual RPi, and see how it performs on the target machine.

Jonathan Cheng’s Status Report for Oct 16 2021

This week was focused entirely on completing the design review, which was a challenge because of midterm exams and projects all due at the same time. However, our group did manage to get the Design Review Report done by the end of the week. After completing my part of the report earlier on in the week, I focused on submitting purchase and borrow requests to the ECE department, and also researched on which models of the hardware components would suit our use case the best. The conclusions I made are reflected in the bill of materials, as well as the research results of my teammates.

For the Design Review Report, I was originally tasked with the Design Requirements and Architecture Overview sections, but also contributed to the System Design and Testing sections of the report, due to a time crunch we were facing.

This weekend I hope to finish the Ethics assignment early. Then, I plan to pick up the borrowed raspberry pi’s from the ECE inventory desk, and start implementation of the central data hubs.

Jonathan Cheng’s Status Report for Oct 9 2021

This week I spent the beginning part focused on my peers Design Review presentations, the last of which ended on Wednesday. After that, I looked mainly at the order list for my project component, the raspberry pi Data Hubs. Since the r-pi is the main course of the project component, there isn’t much to order on that front, as I can borrow r-pi’s from the ECE department. However, XBee modules do need to be ordered, and those are going on the list. In addition, I conducted more independent research on how I am going to write the embedded code for the r-pi, smoothing out some questions I had internally about the process.

I also took charge of writing this week’s team status report; the team has decided to go with a round robin approach for completing that weekly report. Early next week I plan to help write the Design Review writeup and get that submitted early. Then, I’m going to draft up some of the r-pi python code, and see if I can’t get my hands on a r-pi to test it on.

In terms of schedule, we’re right on track. It is currently the beginning of October and we are finishing up final designs and starting implementation.