This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (

The Coffee Obelisk is a device that has been floating around for a while and taking MAKECOURSE gave me a chance to actually build it! This project is the first iteration of a project I hope to continue to refine and as such is a bit of a "proof of concept". In as such I will include some thoughts I have to improve this design that i have come up now that it's all said and done.

The Coffee Obelisk is a device which speeds up the process of making cold brew coffee or any other beverage that needs to be steeped and then filtered. This is accomplished though agitation, forced filtering and automated monitoring

Step 1: CAD Modeling

First step is to model the structure you wish to use. I opted for interlocking hexagons which stack and lock with tongue in grove. This design worked fine and lends a striking figure to it but it wasn't without drawbacks. If you intend to go this route I recommend that you make a place for contacts on each section so the pieces can be separated without un-doing wires. Also be advised that, while I built in acceptable tolerances into the pieces, the nature of the stacking means that these pieces are best printed all on the same printer. I had issues with fit and finish when pieces were printed on different printers.

If you do opt to change the design there are only a few key tenants:

-It must support a glass Buchner funnel full of liquid

-It must be able to stop the funnel from moving when high mixing occurs

-It must be able to suspend a motor with an agitator above the mixing vessel and resist counter torque

-If you wish to include the optical done-ness sensor the entire funnel must be shrouded from ambient light

Step 2: Gather Parts!

A list of parts I used:

1 L Glass Buchner funnel with pore plate

1 Motor

1 Solenoid valve

1 pump

1 bearing

Several Feet of food grade tubing

A button (I used

RGB color sensor (



7v power supply

12v power supply

2 Arduino UNOs

Lots and lots of wire

Some notes on parts; you'll see that I used a large RC car motor which even came with its own ECU. This motor ended up being oversized for the needs of this size of mixing vessel. The original idea was to get a powerful motor and use varying mixing profiles but it ended up not being necessary and the over powered motor and ECU ended up being more trouble than it was worth. A standard 2 pole motor you would normally find in an Arduino kit would be sufficient, need much less power, produce much less heat, be much quieter, and simplify the code and wiring significantly. The pump I used is a gear pump because that was what was on hand that could reach the head and flow rates needed. This pump worked fine but later iterations of this device will see a diaphragm pump to keep everything truly food grade and reduce wetted parts.

Step 3: PRINT!

Print your CAD modeled parts after verifying the sizes will work with the materials you have gathered. Lots of different shaped Buchner funnels and motors out there. My total print time was around 48 hours!

Step 4: Test!

Wire everything up and make sure it turns on. The first run of testing for me was just giving everything power and making sure it turned on and off properly. The pump and solenoid will need a relay to run it and for this set up I just used the Arduino to send a signal to those to open and close them. Later iterations I will probably move to solid state relays but the big board was better for testing and getting a feel for how everything was going to go together.

Next you'll just need to write some rudimentary Arduino code to turn each thing on and off to make sure you can control it through the Arduino which can be more difficult than it seems, especially working though intermeatary equipment like the motors ECU or the relay board. For the optical sensor I used the libraries and code that adafruit provides on the technical section of the product. There are two Arduinos used in this project as the color sensor uses quite a bit of processing power so one Arduino runs the sensor, the lights on the button and the RGB LED and the second Arduino powers the motor, the pump and the solenoid.

Step 5: Assemble!

The sectional nature of this project lended itself to building and coding in blocks. Put something in, check it. Put something else in, check it. Rinse and repeat. First things to go in were the RGB led and button. Make sure to resist the LED (560 on R and B 1K on G due to it being brighter) if you went with the adafruit button it is internally resisted. Once these were in the structure I wired the RGB led to the color sensor and tested it before moving on. For the code on the RGB button I pulled an RGB color "phasing" code set from GitHub and just left the button to cycle colors and look pretty. I'd like to give it more functionality in the future. Next was the pump and solenoid, before shoving them into the structure I wired them up made sure they ran water when the button was pressed. When adding the tubing to the bottom section it is very important to water proof all the joints. In the next iteration of this i intend to have the wiring and the liquid systems almost completely separated. When fitting everything into the bottom section make sure that there is room in the middle for the bottom stem of the mixing vessel to rest in the bottom with out interfering with anything. After fitting all of this into the bottom with the two Arduinos the color sensor was attached to the side of the mixing vessel with space tech high tension polymer bands as seen in the picture. Then wires were run up through wire ports in the sections to the top section and the motor and ECU. Once everything was together and working nicely it was time to test and calibrate.

Step 6: Code and Final Tests

The code that I am posting here today is the "demo version" which will operate all of the functions based on a preset time limit rather than waiting for a certain color value. This is what you will need to assemble this machine and once it is working you can check the color data for whatever you like and set the process to look for a certain value rather than an elapsed time.

AlgoCoffee needs to go onto the Arduino which is connected to the motor and

Colorview needs to go onto the Arduino which is connected to the color sensor and lights

Step 7: Make It Your Own!

Now that you have the project running use the color sensor to help you brew your perfect cup of coffee or tea or make skittles flavored vodka! Anything that would benefit from steeping and filtration can be used.