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

Team Status Report for March 30th

This week, the team prepared for the project demo. To do so, we fully integrated the scale and temperature probe into the project. We continued testing on the water pump, although that will need more work to fully integrate it.

Concerning the data from the scale and temp probe, we decided to route all signals through the arduino to the rpi. This simplifies the process and allows us to use the rpi as the command center, with the arduino working to gather and route the data. We also began working on pour patterners for the presets using a pen attached to the gantry.

For the pump, we were having issues with water left over in the tubes, and the pump not being able to pull water from the reservoir. To mitigate this, we were able to have the pump sit inside the water reservoir, and this solved all of our issues. Now, no water is left in the hose (good for ease of cleaning/food safety), and the pump can always be actuated without the need for priming.

There have been numerous testing scripts added to the webapp repository.  These will help us create the Gcode for brewing profiles.  We have also already used one to help us format the data coming from the arduino to the RPI. Work on the webapp is going well and is roughly halfway done

Corrado Govea’s Status Report for March 30th

This week’s accomplishments

  • This week I received the components and PCB that I ordered for the power management board.
  • I built the circuit and tested it, but ran into a few issues.
    • For some reason, the MOSFET section of the LV circuit is not working — that is, I am able to step down the 24V to a constant 6V for the pump, but then when I try to modulate the 6V with a MOSFET + PWM signal from the Pi, the voltage at the pump is inconsistent and very low. Still debugging.

Next Week’s Deliverables

  • Finish debugging the circuit and integrate it with the PID loop algorithm for the kettle/heating element.
  • Make any necessary modifications to the PCB after debugging — hopefully without ordering a new board (changing resistor values, etc).

Status Report: 1 week behind schedule. Plan to get back on schedule by completing the circuit debugging this week. This should be ok as I left some buffer for debugging, but want to make sure I resolve all major issues as soon as possible so they don’t block any of the integration work with the rest of the team.

Elijah Knupp’s status report for March 30th

This week’s accomplishments

  • Attended mandatory labs
  • Troubleshot the scale. There were bugs in the code that need to be ironed out
  • Integrated the scale fully into the rpi. Accurate to the gram
  • Integrated the temperature probe.
    • both signals from the scale and probe are routed through the Arduino to the rpi, creating a sleek and simple method to allow for the data to be incorporated into the project
  • Helped to integrate the water pump…still needs a good bit of work

Next weeks plan

  • Demonstrate what I have finished up to this point.
    • converted the analog scale into a scale that outputs signals readable by the rpi
    • integrated the temperature probe
    • tested the pump’s operation
    • assembled and tested the movement of the 3D printer
  • Implement the thermos into the project. Will need to work with signals from the temperature probe to monitor and adjust the temperature of the water

Status Report: On schedule

Rio Pacheco’s status report for March 30th

This week’s accomplishments

  • Continued work on Django app(8+hrs)
    • https://github.com/Quarks-1/pour-over-and-over
    • Fully functional profile making with steps
    • Connection to printer + arduino + error handling finished
    • Websocket communication between webapp frontend and backend done
    • skeleton code for communication with printer and profiles done
    • See below image for code time graph
    • wrote and tested test scripts for arduino data collection
    • wrote framework for interacting with printer via command line GCode
  • Attended mandatory lab (4hrs)

Next weeks plan

  • Finish profile -> Gcode conversions code
  • find a way to display arduino data live on webapp

Status Report: On schedule

Team Status Report for March 23rd

This week, the team began integrating and testing the different components into the (eventual) final project. We also completed an ethics assignment, which was split into two parts. The first included a written part that answered ethical questions regarding our project. Then, the team went to an ethics-based lecture, which was then followed by a breakout session. In this session,  the team answered some ethics-based questions that other teams raised. Overall, it was a useful thought experiment that we will use to help shape our final design.

On the technical side, the digital scale was altered to allow for full integration into the pour-over machine. While final testing still needs to occur, it was a big step into integrating the sensors. We also ordered the power management PCB  so that we can begin testing next week.

The biggest technical risk to call out at the moment would be the results of PCB testing, as the turnaround time is around 1 week plus the time it takes to reflow the board. To mitigate this, we ordered through-hole components which we plan on using for prototyping, which gives us more flexibility than the fabricated PCB during testing. We’ve done extensive research on how the different components work, so we feel confident in our ability to debug the circuit, but we haven’t worked with High Voltage AC source before, so there is some risk.