Blog Post

Coffee Pour Over Project: Peristaltic Pump

To make a pour-over coffee maker, there are a few functions that are required, a coffee maker must:

  • Pump water from a holding tank to a shower head
  • Heat aforementioned water before it leaves the shower head
  • Hold the coffee in a filter in order that water can get at it evenly

For my brewer, I have a few goals of my own:

I want to create a home-brew (pun definitely intended) pour over machine that is cheaper than the ones that are currently on the market (can go up to $300!), completely hackable, and as consistent as possible. I want to create a coffee maker that empowers experimentation of how coffee is brewed by being able to control and fine tune all of the parameters of the brew process to see how coffee is affected by different brewing processes.

The Pump:

coffee makers use a few different methods to pump water, but I decided on a peristaltic pump as making one myself out of 3D printed parts and commonly available parts seemed relatively easy. In addition to this, it would allow for fine control of flow rate as I would be using a stepper motor to power the pump. The ability to iterate designs quickly using my personal 3D printer is really useful and lowers the barrier to entry for designing mechanical components drastically, especially when you are iterating experimentally to come up with the correct design (like figuring out the correct rotor size as I explain below). After deciding to make a peristaltic pump myself, I bought a food-safe silicone tube from McMaster-Carr and started design work.

My first few revs (titles rev 0 in the pictures) weren’t successful in the slightest, I had too much pressure squishing the tube down and I couldn’t get the NEMA 23 motor I had (spare from a 3D printer) to spin the rotor. I then changed the design so that the rotor had a smaller diameter so there was less friction preventing the rotor from spinning, and I also ordered a motor that has almost double the torque. I also added bearings that ride on the rim of one of the rotors so that there was no friction of the rotor onto the “squish plate” that is squishing the silicone tube. This time, the tube wasn’t being squished enough and I need to test another iteration to experimentally get the correct rotor size.

Revisions 0 and 1:

Blog Post, Climate Analysis, Programming

Starting Out: Climate Change Analysis

When I first started working on the climate analysis program, I knew that I would be working on a larger than memory dataset, but what I didn’t fully realize is how much more complexity is incurred when working with large datasets…

Keep it Simple!

I downloaded the daily summaries in the GHCN dataset a few weeks ago and saw that it was around 6GB compressed. I thought I would try to keep it simple, stupid, and tried to unzip it… until it filled the rest of the space on my computer’s SSD and was taking longer than 24 hours to unzip. This obviously wasn’t even close to optimal so I started Googling around.

Digging into the Details

I decided on the H5 file format as it uses compression (unlike databases) and the PyTables library added functionality that could come in useful. It took me multiple iterations to figure out how to convert the tar file that I downloaded containing CSV’s of climate data into an H5 file in a timely fashion. That is how big this dataset is (60GB compressed as an H5 file). I also found Dask, a library that can be used for larger-than-memory computing, perfect! I recently created a Github repo for my program in its current state. I am in the very early stages of development at this point, but I do have a function that takes in a tar file and produces a H5 file, which I think is a good start.