Ada’s KyotoBot

We love to experiment with coffee brewing and roasting methods and we’re constantly looking to the scientific method to ask ourselves “What makes a certain parameter or method better than another?” The only way to fully test these hypotheses is to setup controlled experiments where we keep certain parameters constant and vary a parameter to determine its effect on the end product. To this end, we’ve realized that certain parameters in some brewing methods are very imprecise and often times we don’t have clear visibility of what’s actually happening throughout the brew and, therefore, we don’t have an accurate method for controlling it.

If you’ve been in Ada’s Technical Books and Cafe or Ada’s Discovery, you’ll most likely have noticed the OJI WD-300 cold drip towers that we have on display. These towers are popular in cafes in Japan and specifically the Kyoto/Kansai region (thus the term Kyoto-style cold brew was coined) for making cold brewed coffee. This style of brewing coffee has become more popular in the US and is often seen as having a cleaner taste compared to the more common Toddy method which involves steeping the grounds in water instead of having water slowly drip through.

The basic idea behind the cold drip tower is that you have cold water on the top which slowly drips through the grounds creating cold brewed coffee at the bottom. The main variables that you can adjust to effect the brew are:

  1. Grind Size
  2. Brew Ratio (Water to Coffee)
  3. Temperature of Water
  4. Water over time (Total duration, flow rate, etc)

Typical parameters are a coarser grind size, a concentrated brew ratio, room temp or colder water (with ice), and around 1-2 seconds per drop. The first 3 parameters we could easily control, but the 4th was a bit of a mystery. Many cold drip systems are gravity fed and have a small knob that you adjust to dial in the specific amount of seconds between drops but often times, we would return to the tower hours later to find it dripping at an entirely different speed. Also, the total brew time would not be consistent because the drip speed wasn’t reliable without constantly checking and adjusting the tower. Even if you could get the tower to drip reliably, it’s time consuming and tedious to dial in the exact drip rate that you want. Visiting other cafe’s, David noticed many times that their cold drip towers would be setup properly but dripping well slower than 2 seconds per drop because the baristas were busy attending to other things. Something obviously needed to happen to address this issue and make it something that could be measured and easily adjusted.

To solve this problem, David custom designed some solenoid valves so that they were super quiet while operating. Solenoid valves are typically used for high speed photography of water droplets, but they also widely used in the food and medical industries for regulating flow of liquids. We specifically designed 12V valves so that we could easily control it from an Adafruit Motor Shield connected to an Arduino Uno with a 12V wall wart power supply. For display and control purposes we also hooked up an Adafruit RGB LCD shield. We then wrote code to control the size of the droplets (amount of time the solenoid is open) and the amount of time in-between each of the drops. After a little while it became apparent that all solenoids aren’t created equal, and that each had a slightly different flow rate based on imperfections with their construction. Additionally, based on gravity, if both were open at the same time, water would flow more out of one than the other if it wasn’t completely level. To solve these issues we had the code alternate between dripping on the left side and right side so there would be only one flow path and we added code to calibrate the size of the droplets so they were the same on both side by measuring the weight of 100 drops and then adjusting the size of the drops until both sides were equal and producing drops of a certain weight. Needless to say, the 4th parameter is under control now. All code for this project and future posts can be found on Github.


  • #8 Grind on the Mahlkonig EK-43 Grinder
  • 100g dose on each side
  • 1500g room temp brew water per side (3000g total) in top
  • Bloom with 200g boiling water on each side
  • Paper filter on top of rounded grounds to disperse water
  • 2 seconds per drop, total brew time ~12 hours
  • Result should be ~1.3% TDS and ~20-21% extraction

The overall philosophy with our coffee program is that there is a meaningful amount of finesse and art that can and should be expressed by a skilled and experienced barista, but any way we can use technology and science to help them provide the best quality result is something we should do. Especially with the recent resurgence of hand brewing methods being favored over automatic brewing — this is particularly where we hope to find improvements. That being said, we believe there is an extent to which technology can help. Ultimately, the barista’s job is to interpret and adjust the parameters into something that tastes great, and a robot or algorithm can help us get close but will never be able to fully interpret and enjoy the results like a human can. Until next time, happy coffee hacking!