Nathan’s Status Report for Nov 20 2021

What did you personally accomplish this week on the project?

This week, I worked with JJ to fully integrate the data hub and the public API endpoint of our backend. now, it is working!

Then, I made 15% more progress on the frontend of the project. My idea is to make it very simplistic and easy on the eyes for clients. I restructured the React code to convert from class-based to functional-based code. This is more of an updated coding style with modern react, and it will be extremely helpful due to some of the new frontend requirements (map interface).

Specifically, I now structure components asfunction myComponent() { ... } rather than class myComponent extends React.Component { ... }

This style of coding React has reported to have massive performance improvement and allows for clean, stateless components.

Is your progress on schedule or behind?

I am on schedule with my parts and feel confident moving forward. Integration is working well, so I just have to finish the frontend component by the final presentation. I will be working hard in the weeks to come.

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

This week, my task it to complete on the web application frontend. Specifically, I need to implement a map feature that shows clients areas of free seats and quantity of free seats. I can’t wait! 😁

 

William Foy’s Status Report for Nov 20 2021

I made a great amount of progress this week that I’m super happy about.

First off, the chair sensor is much more reliable now. We lowered the resistance from 30MΩ to 20MΩ and also attached the module breadboard underneath the chair to avoid changes in wire positions. The values being output from the CapSense library have a large change now when someone sits in the chair and stands up and we can easily detect changes now. I also added a baseline average computation to the code upon startup so that the range of values for emptiness isn’t static, but dynamic upon startup.

We got our other Xbee modules this week so we wired up a second chair module. I was able to configure the other Xbee onto the same network as our original chair module and data hub and we were able to get two chair modules sending updates to the single data hub. This verifies our proof of concept of having multiple chairs send updates to a single data hub.

The 2000 mAh LiPo batteries arrived this week as well. The batteries operate at 3.7V and upon plugging them into the RAW input of the Arduino which feed into a built-in voltage regulator, the Arduino performed as if it was plugged into the wall. The battery supplied enough current for the Arduino and to power the Xbee. We were also worried that the grounding of the capacitive sensor would be messed up by using a battery instead of power from a laptop, but the sensor performed the same. We were happy to get the chair modules running off of battery power, we just now need to see how low we can get the current draw and then estimate how long the batteries will last.

This next week I intend to write more Arduino code to put the Arduino to sleep and cut power consumption wherever we can. Without going into sleep the Arduino draws about 2mA continuously which will result in the 2000 mAh battery being depleted in around 4 days. By cutting the power through going to sleep, I think we can drastically reduce the average current consumption and extend the battery life significantly. I also want to finish up our testing and then get started on our final presentation.

I am definitely on schedule now and am looking forward to grinding out the rest of the project. We have our major components working now and now we just need to test and focus a bit more on the frontend of the website. We should be ready for the final presentation next week.

Team Status Report for Nov 20 2021

We made fantastic progress this week! The chair module and data hub integration are nearly complete. Our final components arrived, including more Xbees and the batteries for the chair modules. We were able to configure everything and the chairs can now run off of battery power.

Going forward the only risks we can foresee would be the battery life of the chair modules not being as long as we aimed for, and also the frontend of the website not performing to our original specs. This next week the team will finish up testing which will include getting a metric on how long we expect the chair module batteries to last on a single charge. We also aim to flush out the entire frontend this week in time for the presentation and demo.

We made a small change regarding how updates are sent from the chair module to the data hub. We now have the chair checking for changes in occupancy every 5 seconds. If there is a change, it will send an update. The data hub also then sends current state to the backend every 10 seconds. This configuration allows us to meet the 15 sec requirement, even when a single update is not caught by the data hub in the worst case.

We also had to order Xbees with antennas since the original PCB antenna Xbees were sold out. This resulted in some higher costs but did not affect the functionality of the project. In fact the Xbees with large antennas should have even better range than those with PCB antennas.

Because of our great progress this week we are definitely on schedule now. This week we just need to focus on testing and finishing the frontend of the website.

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.

William Foy’s Status Report for Nov 13 2021

This week I focused on the internal demo and configuring the Xbee for Zigbee communication. In the beginning of the week I was a bit blocked since the breakout boards for the Xbee did not arrive when we expected. This meant that there was a delay in physically hooking the Xbee up to the Arduino Pro Mini.

For the demo I showed the functionality of the chair sensor. This showcase made me realize how unreliable our current sensor setup is. I think we need to add more aluminum foil and better tune the algorithm to determine when occupancy changes.

After the breakout boards arrived I was able to work with JJ to connect the Xbees to the Arduino Pro Mini. We were able to program the Xbees with XCTU. All we need to do is test the serial communication from the RPi and Arduino to the Xbee and get the communication up and running with the correct data from the Arduino.

I think we got a bit stuck this past week but we should still be able to get back on schedule. This upcoming week I plan to fully flesh out the Xbee communication. We also will order batteries this week for the Arduinos to be powered off of. I think this week is crucial for our project and I am confident we will make a lot of progress.

Team Status Report for Nov 13 2021

This week, progress has been moving along very well and we were able to present our progress during the demo.  Each of the three main parts of the project (Chairs, Hub, Web) were functioning which was ideal. Now, integration is our next step.

What are the most significant risks that could jeopardize the success of the project? How are these risks being managed? What contingency plans are ready?

Regarding risks, we were able to overcome most of the main risk of the capacitance chair sensors not working. They work well, but need to be improved and made more robust. There are some instances where the threshold value to classify “Occupied” is too high/low, so this needs more calibration. This risk is being managed in our schedule, as we allocated time for this and are on schedule.

Another is the risk of delayed shipping of our parts. We are still waiting for some parts that were delayed in ordering, including Xbee modules. This is allocated for in the ‘slack’ time that we have.

The biggest challenge so far is the Xbee communication. This is mostly an unknown at the moment given the lack of hardware received so far. This also is accounted for in the schedule. If Xbee communication does not work, we have a backup plan of using Bluetooth which the hardware modules support as well. This is not as efficient but at the very least guarantee us correctness and functionality.

Were any changes made to the existing design of the system (requirements, block diagram, system spec, etc)? Why was this change necessary, what costs does the change incur, and how will these costs be mitigated going forward?

No design changes were necessary this week. The amount of prior time spent designing is beneficial, as now, as a result, the implementation part is smoother.

Nathan’s Status Report for Nov 13 2021

What did you personally accomplish this week on the project?

This week, I worked with JJ to connect the data hub and the public API endpoint of our backend. I also made the post requests of create_hub, create_seats, update_seats, delete_hub, delete_seats, get_free_seats more robust.

Specifically, I fixed a bug when a hub is instantiated without seats. This would make the filtering of seats have an index out of bounds error.  Thus, I fixed this by adding a check for the edge case of empty hubs.

Then, I made 15% more progress on the frontend of the project. My idea is to make it very simplistic and easy on the eyes for clients. The demo showcasing all of this went very well.

Is your progress on schedule or behind?

I am on schedule with my parts and feel confident moving forward, after our demo. I expect that as we move further into the implementation part, we will have a lot more roadblocks, so I will be working hard in the weeks to come.

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

This week, my task it to work on the web application frontend. Specifically, 15% this week would keep me on track with respect to the schedule. I can also help JJ and Will on their parts, which currently pose more of a risk, as the software stack basic functionality is stable. I can’t wait! 😁

 

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!

Nathan’s Status Report for Nov 6 2021

What did you personally accomplish this week on the project?

This week, I finished the deployment of the backend server. Now, the backend server is able to handle post requests of create_hub, create_seats, update_seats, delete_hub, delete_seats and the important get request of get_free_seats from the public endpoint of:

https://freeseats-a3.herokuapp.com/

I used Heroku, due to low-costs (free), and focus on deployment of an MVP. However, Heroku has capabilities to handle large load, which will be important if we wanted to scale our project.

This is for use of the data hub component. For integration, I wrote a quick API docs for use of the backend API: https://github.com/FreeSeats-Team/freeseats/blob/web-deploy/web_app/README.md

I made a frontend that is a basic skeleton to simply display data in a list form with elements:

Data_Hub_ID: #_of_free_seats

This will be extended upon to include location and aesthetics.

Is your progress on schedule or behind?

I am on schedule with my parts and feel confident moving forward, for our demo. I expect that as we move further into the implementation part, we will have a lot more roadblocks, so I will be working hard in the weeks to come.

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

This week, my task it to work on the web application frontend and polish out the backend if issues arise. For the demo, I hope to have MVP functionality of the frontend with backend integration with the hardware components. After the demo, I will polish out the frontend’s aesthetics and add more robust database entries (with locations, etc.). I can’t wait! 😁

 

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.