Ashira’s Status Report for 4/26/25

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).

This week, I worked with Anna to finalize our final presentation slides during the first half of the week. We also received our new RPi 4 this week, so we spent some time getting the RPi up and running with all the functionality we’d implemented before our other RPi had burnt up. Once we got that working, we  were eventually able to get all the motors working as intended with the protoboards that Anna and I had soldered last week. After verifying that all 6 worked with our GUI code, I was able to attach all the motors to the dispenser coils I’d made earlier and mount them all inside the vending machine. In the midst of burning out the RPi, we’d also found out that our speaker bonnet stopped working (most likely burnt out) last week, so we had to order new speaker components. Once this was delivered, I worked on soldering the connections onto the new bonnet and integrating speaker code with the GUI. At this point, we were able to get everything electrically integrated and mount all of our components into the machine. We had to do some integration tests to debug some of the main dispensing functionalities and make sure that the timing of all the components made sense, like getting rid of some obvious lags between when the snacks would get dispensed and the LEDs + speakers would do their thing. Once this was finalized, I worked debugging and integrating the proximity sensor to make sure that it’s functionality conformed to what we had outlined in our use case requirements. This mainly consisted of tweaking the sensor sensitivity + output hold time, as well as playing around with some logic relating to when the timer would pause and resume, since we needed to factor in the fact that the PIR sensor would generate a response only when it detected motion, rather than continuous presence (what we want). Once this was integrated, we were able to get some end-to-end tests recorded.

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

My progress was behind schedule after our road bump last week with the burnt out RPi, but it was made up for with everything that we were able to accomplish this week as a team.

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

This upcoming week, my focus will be on getting the final poster finished, as well as prepping for the final demo and reports due this week.

Team’s Status Report for 4/26/25

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? 

Thankfully, we were able to fix the biggest risks we faced just 1 week ago before the final slides presentation.  Early on, a major setback occurred when our RPi and other components were damaged during motor integration. As a result, Ashira and Anna prioritized restoring core functionality, which delayed system integration and testing. To manage this, we plan to meet over the weekend to complete full testing and collect final performance data. Time constraints remain a challenge, but our focus is on thorough testing during this final sprint.

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? 

One major design change involved the proximity sensing system. Initially, we planned for the PIR sensor to continuously detect the user’s presence and immediately pause the timer when the user left. However, we discovered the PIR sensor only detects heat motion, not continuous presence. To adapt, Ashira modified the logic: the system now pauses if no heat motion is detected after every few seconds, resuming once motion is sensed again. This workaround required additional coding for both the sensor code as well as the countdown because we realized that if the timer was manually paused and heat was detected, it would resume the timer, which would not be ideal for situations were the user actually needs to pause the timer. The main cost was a slight reduction in precision in terms of the sensor accurately detecting the user, which was mitigated through careful tuning of the motion detection intervals.

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

 

To see it working,  refer to this demo video 

 

List all unit tests and overall system test carried out for experimentation of the system. List any findings and design changes made from your analysis of test results and other data obtained from the experimentation.

Unit tests: 

  • Touchscreen
    • Simulated touch events at multiple screen locations to check overall functionality and tested usability of the GUI
    • Verified that all GUI elements were responsive and functional under user interaction
    • Result: 100% of trials successful; interface is intuitive and robust
  • Stepper Motor + Motor Driver Subsystem
    • Ensured correct breadboard wiring and motor driver connections
    • Constantly adjusted and verified correct voltage levels for both motors and drivers
    • Conducted individual tests per motor/motor driver pair to ensure current was drawn and motors rotated as expected
    • Tested rotation both through code and with the aluminum coil mounted, oriented sideways for actual vending configuration
    • Found that motor drivers were extremely sensitive and prone to burning out
    • Breadboards caused instability with more than 3 motors connected along with other peripherals — led to transition to protoboards
    • Discovered motor shields exist to simplify setup, but this was found too late in the semester to redesign
    • Result: Passed unit test for reliable snack dispensing, but required very careful wiring to avoid malfunction from loose connections or voltage drops
  • Ultrasonic Sensor
    • Initially tested using print statements to confirm distance measurements and motion detection
    • Detected any object within range — led to serious false positives from unintended movement (e.g. nearby hands, chairs, passing users
    • Determined that it was not ideal for reliably detecting focused, human presence for our use case (study session verification).=
    • Result: Failed unit test for presence detection due to lack of specificity; ultimately not used in final design→ PIR sensors
  • PIR Sensor
    • Initially tested with print statements to verify detection of human heat
    • Found inconsistencies in detection; refined test by using an LED indicator to show real-time presence/motion detection
    • Conducted 10+ trials: user walked away from sensor range; checked that timer paused accordingly
    • Detection sensitivity varied with distance and environment, but overall logic worked as intended
    • Result: Passed (with some variation in accuracy and delay)
  • LEDs and Speakers
    • Verified that visual and auditory signals triggered after the study session ends
    • Ensured response latency between timer hitting zero and signal activation was ≤ 1 second
    • Result: Passed

Integration Tests

  • Touchscreen Integration Test
    • Verified that touch inputs triggered correct system responses (e.g. starting a session, selecting snack)
    • GUI reliably linked to backend logic
    • Result: ~90%+ accurate response rate under integration.
  • System Integration Test
    • Verified complete chain: session timer → PIR detection → session completion → motor rotation → LED/audio feedback
    • All subsystems successfully interacted
    • Result: Passed
  • End-to-End Test
    • Full test from starting session → simulating user leaving → resuming → countdown to zero → snack dispensed and notifications triggered.Snack dispensation consistently occurred within 5 seconds of session end
    • Result: Passed

 

Anna’s Status Report for 4/26/25

This week, I worked with Ashira on finalizing our Final slides and presented. I also tested with a temporary RPi after ours was damaged. In addition, I debugged the SSH connection issue with the help of a friend, allowing our team to SSH into the RPi and develop more easily. On the hardware side, I discovered that a possible reason our original RPi got fried was due to an improperly soldered ground on our voltage regulator. I resoldered the connections as needed to fix this. I also helped solder the motor driver protoboards and began incremental testing with Ashira—starting with 1, then 2, 3, and 4 motor drivers. Eventually, we got 6 of them to behave as expected.

I made updates to our GUI to improve user experience by allowing some outputs to function concurrently. I also tested the dispensing mechanism and continued integrating our system toward a fully functional vending machine.

Next week, I plan to complete more testing, paint the vending machine, fine-tune functionalities, submit the poster, record the video, finalize the paper, and prepare for the demo.

David’s status report for 4/26/25

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).

This week, I mainly worked with my team to finish securing all the motors and the electrical components to their appropriate locations within the structure of the vending machine. For example, I helped attach the motors themselves to the holes that Ashira had designed during the mechanical part. Some of the motors could be completely inserted inside of the holes but some could not be since if it was too tight of a fit, the movement would be restricted. Some of the motors had to be angled upwards also to prevent mechanical jamming. Additionally, I helped find a good position of the protoboard containing the voltage regulator on the side wall so that all the motors would move as inteneded. After that location was found, I helped glue that part to the side wall. I worked on making holes in the back wall of the vending machine so that wires and connectors that needed to be attached to external outlets could be passed through.

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 I am currently on schedule since we as a team were able to finish all our MVP related tasks a few days before demo day.

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

For the next week, my focus will be working on the final video with my team and the final report with my team. 

 

Team Status Report for 4/19/25

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? 

The most significant risk at this point would probably be in getting a new RPi environment up and running. Since we fried our old RPi, we ultimately are unable to proceed with any other changes until we can reboot. We’re all currently putting all our efforts in getting this new environment set up again in hopes of having something to show by our final demo next week.

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? 

We attempted to migrate our circuit to protoboards, but in the process of doing so, burnt out our RPi 4. As a result, we’ll be using an RPi 3 lent from Professor Benson to get our system back up and running.

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.

Ashira’s Status Report for 4/19/25

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).

This week, I mainly focused on getting the rest of the motors to work. We consulted a TA to help us figure out why expanding the motor driver circuit to power all 6 motors kept giving us problems (burnt out components), and we deduced that it was probably due to the breadboard’s inability to handle the amount of current needed to power all 6 motors. We were advised to migrate the circuit to a set of protoboards to handle this issue, so throughout the second half of the week, Anna and I worked on soldering the motor drivers to their own protoboards. We were able to successfully test each of them one at a time on their own with the power supply/voltage regulator still coming from the breadboard and verify that they worked, but when we then moved the power supply onto its own protoboard and tried to spin the motors using the motor drivers again, they would jitter inconsistently and never respond to the motor control code. I’m thinking this might have been an issue with bad connections between the voltage regulator and protoboard, but when we measure the inputs and outputs between the regulator and drivers, their values were as expected. Just as we were debugging this, we also realized the RPi had turned off unexpectedly.  We weren’t sure if this was a coincidence or a result of the potentially faulty regulator/driver connections, since the only thing that was connected between the regulator and RPi circuits was a singular ground pin, but unfortunately we haven’t been able to get the to RPi turn on again. After consulting the internet, it seems like we fried our RPi, since only one red light was blinking, indicating that the Pi wasn’t reading from the SD card. We were able to put in another purchase order for a new RPi 4 and are currently also borrowing an RPi 3 from Professor Benson in hopes of getting something to work before our final demo next week.

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

My progress in pretty behind due to the unexpected setbacks we experienced. We’re probably going to put all our efforts this week yet again to rebooting our new RPi and trying to get back to where we were last week and hopefully have some motors moving.

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

This upcoming week, my focus will be on getting the RPi to work with our original environment and get some motors to spin.

As you’ve designed, implemented and debugged your project, what new tools or new knowledge did you find it necessary to learn to be able to accomplish these tasks? What learning strategies did you use to acquire this new knowledge?

Throughout this entire process, I was able to learn more about the RPi environment and how versatile it was in being able to support project like ours. I also found however, that integrating multiple peripherals was not as easy as it seemed. In the end, we were able to get each component working to some extent as needed for our project, but most of the issues would come in making them work altogether. Because of this, one of the skills I found myself developing the most was being able to identify a root cause. This not only took persistence, but also tested my understanding of how each component worked, since identifying a bug required me to identify discrepancies between an expected output and a real output. I was able to utilize forums and example tutorials which were posted online to help me with debugging, which in the end was what I think contributed the most to my learning. I also learned the importance of good time management, especially for a large project with a long timeline such as this one. Being able to accomplish what we had required lots of planning, communication across our team, and an ability to prioritize.

Anna’s Status Report for 4/19/25

This week, I mounted the LEDs onto the enclosure and I focused on integrating the motors yet again. Our breadboard had been damaged due to drawing too much current while powering 6 motors, so following a TA’s recommendation, I began soldering 3 of the 6 motor drivers onto protoboards. I started with 1 reference protoboard, tested it to ensure it worked, and then continued with the rest. Ashira and I collaborated to test each motor driver as she helped solder the remaining 3. We carefully measured each driver’s Vref and confirmed that the motors rotated as expected with the code before soldering the voltage regulator. However, once we soldered a protoboard with 2 motor drivers and connected the necessary grounds and voltage lines onto rails on the voltage regulator, the motors stopped working and our RPi would no longer power on.

Unfortunately, these setbacks have caused my progress to fall behind. I’ve requested a replacement RPi so we can restart our work, but in the meantime, we’ll be borrowing one from Professor Benson, so we can continue testing and hopefully get at least a couple of motors running. At this point, we’re scaling back from attempting to run all 6 motors simultaneously, since every attempt to do so seems to result in some form of failure—either to our components or to our power delivery setup.

Next week, my goals are to complete the final presentation and get our hardware environment stable again. It’s been frustrating to hit so many hardware roadblocks, but I’m hoping we can make meaningful progress before the final demo.

As you’ve designed, implemented and debugged your project, what new tools or new knowledge did you find it necessary to learn to be able to accomplish these tasks? What learning strategies did you use to acquire this new knowledge? 

One of the most valuable learning tools for me was video tutorials and community discussion forums, especially the Raspberry Pi Forum. These resources sometimes provided the insight I needed or helped me move our project one step closer to working. In addition, documentation for various components (such as the A4988 motor driver) became a critical resource once I knew how to interpret it properly.

The most important learning strategy I used was refining my research skills. Being able to narrow down what I was looking for—whether it was understanding a motor driver’s pinout or resolving an issue with GPIO behavior—made my problem-solving much more efficient. I also mainly learned by doing: experimenting with the hardware, testing individual components, and learning from trial and error helped solidify the new concepts.

David’s status report for 4/19/25

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 personally didn’t have as much time this week to work on the vending machine due to large projects in other classes as well. But for the time I did have, I spent the majority of it trying to get the motors to work all together. I spent Monday in class working on debugging the motors one by one. I did this by disconnecting all the other motors and also their corresponding motor drivers from the 12V and 5V power sources. This was a great way of seeing which motor drivers worked and which were burnt, so we were able to substitute the burnt motor drivers with working new ones. However, there were still a lot of issues with interference between the motors and drivers, and I still failed to get all 6 motors to work as expected. My teammates worked on using soldering drivers to protoboards instead of using breaboards to ensure stable connections later on in the week.

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

My progress is pretty behind because I still have not gotten all 6 motors integrated into the vending machine. I will need to help my team with the integration of the motors as much as possible.

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

This upcoming week, my focus will be trying to get SSH for the new RPi to work and hopefully work with my team to install the new motors into the vending machine structure with my team after they all work with the program and protoboards.

As you’ve designed, implemented and debugged your project, what new tools or new knowledge did you find it necessary to learn to be able to accomplish these tasks? What learning strategies did you use to acquire this new knowledge?

I learned a lot from my teammates about debugging strategies. To be honest, I am really bad at debugging in general, so my teammates contributed significantly to our collective effort to debug the motors. They taught me embedded systems debugging strategies for breadboards and electrical components like isolating the problem (in our case disconnecting all other motor drivers and motors from the power rails) and proper unit testing (such as when one motor driver works at a certain voltage with a certain pin, use that same pin and voltage to test a separate motor driver).

Team Status Report for 4/12/25

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? 

The most significant risk at this point would probably be in getting the motors to work, since the functionality of our entire system relies on our motors being able to work on command and actually vending snacks when needed. Currently, we’re having trouble getting all 6 motors to work in parallel; the max we’ve been able to control all together is 3 motors. We’re dealing with this road block by putting all our efforts this week in getting the motors to work. We’re thinking of buying more motor drivers in case we end up burning out  the ones we currently have and also potentially purchasing a motor shield, which is something we realized could be a better option to use. We also are working on getting our new PIR sensor up and running, since we only made the new sensor change and got it in late last week.

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 notable changes were made in the design of the system.

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.

Ashira’s Status Report for 4/12/25

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).

This week, I mainly focused on getting the speaker and motors to work. I started working on debugging the speaker system, picking up on where David and Anna had left off earlier and checked all the connections between wires, as well as the code and packages which were in the environment. With Anna’s help, we were able to clean up some of the connections between the RPi and speaker bonnet, which in the end is what seemed to help up us get the speakers working. I then moved onto developing the code to get the speaker to play sounds on command, since that is what our system will need to do. Eventually, all we needed to end up doing is downloading pygame and using their libraries to play .mp3 sounds. However, we ran into a bug with the RPi config file, which prevented the RPi from producing sound when the pygame code was run. We eventually realized that our config file was missing a line of code which was what was responsible for actually enabling audio output on the RPi. We still need to integrate this with the rest of our code, but we decided that getting all the motors to work would be the priority at this point.  Once we got this working, I spent the remaining time working on helping David debug the motors. I worked with Anna to rewire the motors on the breadboards to see ach connection more clearly, but after connecting the motors, and running our code which we had previously been able to use to spin two motors, none of them ended up working anymore. I’m wondering if it might be a result of fault connections or motors drivers entirely, since we’ve been having lots of issues with these motors drivers specifically. We have yet to finish debugging, but once this functionality is working, all we’ll need to do is integrate and we should be good to go in terms of our MVP functionality.

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

My progress is on schedule with our original Gantt chart we made.

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

This upcoming week, my focus will be on getting all 6 of the motors to work during the first half of the week and then hopefully integration during the second half.