Elijah Knupp’s status report for April 27th

This week’s accomplishments

  • Attended mandatory labs
    • filled out reports that analyzed the final presentations from other groups
  • Gathered data regarding the performance of our subsystems. Specifically:
    • mapping the MOSFET gate voltages to the corresponding flow rate
    • the performance of our PID loop that controls the heating element
  • Once again, this week was filled with troubleshooting. There was a push to integrate everything together, which resulted in many bugs. There was a point in which all subcomponents worked correctly with each other. However, for whatever reason, the pump stopped working with the software script. Many hours were poured into trying to figure exactly why this happened, but no definitive result has been reached. Troubleshooting will continue this week.

Next weeks plan

  • Complete the integration of the subsystems.
    • This includes troubleshooting the pump bug described above. As mentioned above, we were able to get the pump (and all of the other subsystems) to work together for a full pour-over cycle. This week, we need to isolate this bug and fix it.
  • Fine-tune the system. If needed, need to:
    • tune the pour-rate of the pump (if flow rates are changed after the pump fix)
    • ensure the total amount of water pour is accurate (up to 300mL)
    • ensure the nozzle’s movements are completely contained within its expected range (to ensure no splashing/spilling water)
  • Make the poster for the project
  • Begin writing the final paper

Status Report: On schedule

Rio Pacheco’s status report for April 27th

This week’s accomplishments

  • Continued work on Django app(2+hrs)
    • https://github.com/Quarks-1/pour-over-and-over
    • Convert data feed module to python Threads module
    • Further UI improvements
      • add Brew steps to brew page
      • Add highlighting of current step on brew page
      • Add status message for draw down period
      • Add fun little coffee bean man to brew page
  • Design pour spout holder for 3D printer
  • Met in person to work together on project (8hrs)
  • Attended mandatory lab (4hrs)

Next weeks plan

  • Fine-tuning of full system and all of the writing assignments 🙁

Status Report: On schedule

Corrado Govea’s Status Report for April 20th

This week’s accomplishments

  • Spent many hours debugging the HV and LV circuits this week with Elijah!
    • Assembled, probed, integrated and tested the HV power management PCB to control the heating element, with passing test results.
    • Integrated the DC pump with the new power mosfet.
      • Identified an issue with the circuit, where we were providing 5V to power the pump, but didn’t realize that there was also a voltage drop across the MOSFET:
        • (1ohm) * (2A) = 2V drop across MOSFET.
          • Solution: Increased DC supply to be 7V (5V pump + 2V MOSFET)
    • Completed testing for pouring water and for heating water with the team.
    • Worked on final presentation.

Next Week’s Deliverables

  • Continue integrating all systems and complete remaining testing.
  • Ensure stability of new pump circuit, tune circuit by ensuring that gate current limiting resistor and gate discharge resistor values are appropriate through further testing.
  • Add safety features to the gantry: cover to protect users from boiling water, securing all LV and power electronics to the gantry.

Status Report: On Schedule

Elijah Knupp’s status report for April 20th

This week’s accomplishments

  • Attended mandatory labs
  • To account for a drifting issue with the scale, added an automatic taring feature
  • Created slides for the final presentation
    • specifically, slides that corelated to the tests performed
  • Troubleshot the pump circuit for over 12 hours. The issue was with amount of voltage supplied to the circuit. Although this was a simple solution, there were several red herrings that lead to the long troubleshooting process. Ultimately, to solve this issue, we:
    • Consulted with 5 different individuals
    • Ran a plethora of troubleshooting tests
    • Ordered several sets of MOSFETS
    • Continually swapped out components
    • Tweaked and rebuilt the circuit several times

Next weeks plan

  • Perform the necessary tests for the pump and heater
  • Integrate all of the components together into one working project.
  • Finalize the slides for final presentation

Status Report: On schedule

Team Status Report for April 20th

This week the team continued to work on the full system integration leading up to the internal “MVP”.  Currently, the software is finished until we can get the water pump circuit working and integrated with the Arduino.  We ran into an issue this week where we noticed that the scale seemed to drift in the weight that it was reading, thus we are looking into this more.  Currently, the code does not rely on the scale weight so it shouldn’t impact our ability to reach MVP. We have speculated that this could be due to the Arduino not supplying enough power, but further testing is necessary to see if that is the case.

On the hardware side, the team (finally) got the pump to work with the circuit. The flow rate can be controlled through a PWM signal from the Arduino. The team will be testing the exact flow rates the pump can produce in the near future.

In terms of design requirements, we are currently meeting the following:

  • ∓5℉ margin from set temperature of water
  • >= 5 preloaded presets in the webapp
  • 300ml water tank capacity

The rest of the design requirements are currently untestable until we get the water pump fully integrated, which will be happening sometime this week.

Rio Pacheco’s status report for April 20th

This week’s accomplishments

  • Continued work on Django app(5+hrs)
    • https://github.com/Quarks-1/pour-over-and-over
    • Convert pouring mechanism to python Threads module
      • Completely overhauled pour scheduling system to prevent webapp stalling
    • Implement 5 default profiles into the setup.py file
    • Further fine-tuning PID
    • Add  pour mechanism thread functions, to be tested this week
  • Work on Final presentation (3hrs)
  • Attended mandatory lab (4hrs)

Next weeks plan

  • Further, fine-tune PID algo to get better temp stability
  • Test water pump code with heater/pouring movement code
  • Integrate all subsystems together
  • Add steps display on brewing page

Status Report: On schedule

New tools/knowledge

  • Python threads module
    • Previously I had not used the python threads module, however through writing our webapp it was found that it was absolutely necessary.  The ability to run functions concurrently as well as schedule them was important as without this feature the webapp would stall if we used while loops in the main thread.  Although I had previously used threads in C, threads in python posed their own challenges like function input parameter type, as well as proper scheduling
  • Python pyserial library
    • Originally we had planned to use octopi for controlling the printer, but it turns out octopi can’t actually read the current position of the printer.  We found out that we could just send individual GCode commands over USB using the pyserial library, which allowed us to cut out octopi entirely.  I had not previously used pyserial to read data from an arduino either, so learning to do so was a new experience for me
  • Django pre-loading data into the db
    • Previously I had not made webapps where a setup file was run prior to starting the webapp after downloading the code.  I also did not need to repopulate the database, which was something we needed for our webapp as it was a design requirement to have minimum 5 profiles at install.  Learning to use the proper functions to repopulate the db was something I learned to do during this project.
  • Resources used:
    • Online forums such as reddit / StackOverflow / Django and Python documentation
    • ChatGPT for writing test code quickly

Team Status Report for April 6th

This week, the team worked on full system integration leading up to our internal “MVP” — that is, all systems work to some extent, but all working together. The Kettle + PID loop and the 3D gantry can be controlled wirelessly, and we got a new pump, characterized it, and verified that it has enough power to prime itself.

At this point, all major systems are in an operating state, so next week we will work on assembling everything together so that we can start tuning the controls — this is important, as factors like height difference between the water reservoir and the nozzle can have an impact on flowrate.

The highest risk at the moment is ensuring that our current design meets the design requirements — for that reason, as we tune, we will start checking off on most of these requirements so that we can identify early if anything needs to be modified.

Extra: note on System Validation

We need to ensure that our product, as defined by our design requirements, meets the use case requirements that we defined early on in the semester. To do this, we plan on creating a simplified survey with a clear, measurable metric for each of our use case requirements, and we will try to collect as much field data as possible to determine if there are any areas that need to be improved from the consumer’s side.

Corrado Govea’s Status Report for April 6th

This week’s accomplishments

  • Finished debugging the LV circuit.
    • Identified issue with LDO voltage regulator not being able to handle the heat generated (Max 150 deg C)
      • Currently .2A * 18V * ~50degC = 180 deg C
    • Solution: We switched to a new pump, which is rated for 5V and 2A. Coincidentally, the power strip we got has a usb port rated precisely for 5V 2A, so we can power the pump directly from there. I need to get a new mosfet that is rated for this current to regulate the voltage drop across the pump.
  • Continued debugging HV AC circuit.
    • Currently only able to turn on/off — can’t regulate voltage at the output.
    • Changed current limiting resistor to match optocoupler’s specification, but this still didn’t solve the issue.
    • Was able to change the resistance across the output of the optocoupler by changing the voltage at the input, but the current delivered to the kettle is the same.
  • Characterized new pump.
    • Conducted test to characterize voltage across pump vs flow rate. The flow rate is a bit higher than we need, so we will design a flow restrictor to bring down to our desired rate. Pump seems suitable for our needs.

Next Week’s Deliverables

  • Order new components (Monday) to match circuit design changes, and decide if it will be necessary to order a new PCB, or if we can repurpose the ones we received.
    • If not, order new PCB by Wed at the latest.
  • Continue to debug HV side to determine what is preventing from doing voltage regulation at the triac.

Extra: System Verification

  • I plan to verify the pump controller circuit + code by running this test:
    • After the entire system is installed, I will place a cup on the machine with a scale we have been using that has a flow meter in g/s. This way, I can verify that the set flow rate and actual flow rate are within the defined margins.
  • To verify the heating element:
    • our max expected heating time will be 3:30min, so we will run 5, 4-min trials where we set a desired temperature and monitor the water temperature to make sure it is within 5degF of the set temp. This will be tested at the outlet to account for heat loss through the pipes.
    • Additionally, I will add a multimeter to the circuit to ensure that we are delivering current to the kettle as expected.

Status Report: On Schedule

Elijah Knupp’s status report for April 6th

This week’s accomplishments

  • Attended mandatory labs
    • Demonstrated my portion of the project to Prof. Fedder and the TAs, received positive feedback
  • Added a manual taring feature the user can trigger at any time to zero the scale
  • Completed the Arduino’s script for the temperature probe, scale, heater, and PID loop
    • sends serial data from the temperature probe and scale
    • sends a confirmation signal back to the rpi that the change it requested from the PID loop was implemented
    • receives serial input
      • user can send a signal to manually tare the scale
      • receives signals from the rpi-implemented PID loop and turns the water heater on and off wrt to the signal’s value
  • Began testing the PID loop to control the heating element
    • Very close to being fully implemented
      • currently, the loop overshoots the target temperature by around 2-3 degrees Fahrenheit

Next weeks plan

  • Implement the pump into the project.
    • will need to ensure the pump’s flow rate are accurate per the user’s request
      • see testing plan below
  • Finish testing and verifying the PID loop for the heating element
    • see testing plan below
  • begin fabricating all of the different components on to the 3-D printer’s frame
    • will need to 3-D print a mount for the water pump. Will be placed on the very top of the frame.

Status Report: On schedule

 

Verification and Validation

  • Verification:
    • Heating element: As per the design project report, we aim to deliver water within +-5 degrees Fahrenheit of what the user specifies. Mentioned above, we are currently overshooting the temperature by only a couple of degrees. However, this may be necessary due to thermal loss whilst the water travels through the lines, as this temperature reading was taken inside the water heater.
      • TEST
        • Need to test the FULL range of temperatures the user can request (from around 180 – 212 degrees Fahrenheit)
          • Every 4 degrees (180, 184, … 212), will ensure that the temperature of the water hits the coffee grounds at +-5 degrees from the users request (although we will shoot for +-3 degrees)
    • Scale
      • Testing will be simple. The user will be using the integrated scale to check the amount of coffee grounds they have placed into the filter
        • TEST
          • Need to test the full range of weights of coffee grounds the user may use (around 10 – 40 grams of coffee grounds)
            • Every 5 grams, use a known weight to ensure the weight readings are accurate
  • Validation
    • The water system needs to be safe and intuitive for the user. Whilst the software side is being handled by Rio, I will need to make sure that user can easily and SAFELY handle the water system. I will need to ensure that there are no exposed wires or electronics that could be exposed and damaged if some water is spilled around our machine.
      • As of now, the user will need to unscrew the cap of the water heater (which is a converted electric kettle), which will have the temperature probe and tubing attached to this.
        • TEST:
          • I will ask several individuals to screw and unscrew the lid to ensure ease of use and durability of system.
      • Cable management is a major component of this as well. I will need to make sure that no wires could jar loose or come exposed.

 

Rio Pacheco’s status report for April 6th

This week’s accomplishments

  • Continued work on Django app(6+hrs)
    • https://github.com/Quarks-1/pour-over-and-over
    • Integrate thermal PID algo
    • working live data display on webapp
    • Gcode conversion baseline finished
  • Meet in Techspark on Saturday (today) to work on tuning the thermal PID algorithm  (4hrs)
  • Attended mandatory lab (4hrs)

Next weeks plan

  • Further fine-tune PID algo to get better temp stability
  • Design pump and/or water heater mount
  • Finish code to do pouring and water heating sequence together

Status Report: On schedule

Verification

  • User testing via the UI will be used to test the webapp functionality
  • temperature measurement with an external thermometer will be used to verify temperature readings of integrated thermometer
  • Pour patterns will be drawn on a whiteboard with a market taped to gantry to ensure that pour patterns are consistent and match the dimensions of V60 pour cone