TRUBREW
Product design • ux • Branding • Arduino Development
A modern French press coffee timer
Role:
Product Designer, Developer
Timeline:
3 weeks
Methods
Arduino Development • Laser Cutting • Branding • Storyboarding • Infographic Poster • Logo Design • looks-like/works-like/acts-like modeling theory
Project Overview
The objective of this project was to create a compelling timer. As the purpose of timers is to count the time between two events – either presenting them as time elapsed since the first event, or time remaining till the second event, a huge variety of product can be built on those basic functions. The integrated model consisted of a laser cutted enclosure and integrated with Arduino logic to perform the timing function.
The Arduino code can be downloaded here: https://github.com/ninalyow/trubrew
Goals
Laser cut a physical model
Put the principle of looks-like/works-like/acts-like model to practice
Write logical control code
Demonstrate storyboarding, schematic graphic, visual communication
Discovery and Research
Learning Arduino Basics
Before starting this project, I prepared by going over fundamental bread board wiring techniques and understanding how circuits can power switches, LEDs, light and motion sensors, motors and buzzers. It was incredibly exciting for me to wire up the breadboard and finally get my model to complete a task, such as turning a potentiometer to increase the brightness of an LED.
Deep-Dive: Making French Press Coffee
I chose to make my timer for preparing French press coffee because I am an avid French press coffee brewer and I wanted to build a better experience for other people who also enjoy customizing their daily coffee. A quick break down on the brewing process is shown below:
Bring water to a boil and remove from heat
Let water cool for 5 minutes
Pour water over coffee grounds
Let coffee steep for 2-4 minutes depending on preferred robustness
Push plunger down and pour out a cup
User Flow
I developed a flow that allows for a seamless and cohesive user experience. Given that users may prefer a specific brew for their coffee, I built in flexibility to adjust the timer to a specific brew robustness. I also added in flows to account for positive feedback and user error
Prototyping
Looks - Like and Works-Like Model
My first iteration consisted of a laser cut cardboard enclosure with etched engravings. The flat top allowed for placement of a coffee cup and side accessories and the interface allowed for easy access to button interactions.
To create the functionality of the timer, I stitched together code from the examples that I had followed initially and experimented with various wiring techniques so that all of my sensors, LEDs and buttons could fit on one breadboard.
The following image includes all of the components in my project. They are not exactly mapped to the same pins in my product but their functionality should be the same.
I found that the best way for me to understand how each component worked according to my code logic was to test the output of each component separately. In the following example, I tested out associating the values of the potentiometer with a timer. The potentiometer generates analog values between 0 and 1023 and I mapped those values to the run time loop using the map() function and recorded the current time using the variable timerTime. When timerTime was between 6000 and 7000 milliseconds the blue LED at pin 7 would turn on (output = high).
Often, when I ran my program I woud get errors like the timer not syncing up to the lights correctly or the buzzer would sound even when the timer was not finished. I went back to my code and added a few print statements so that when the program was running it would show the time elapsed and remaining time live. Adding in comments to each function and process helped me organize the functionality of the code as well.
Once I had tested my code and all of the functionalities were in place, I used many double-headed female to male dupont wires to adjust the user interface from the breadboard to the exterior of my enclosure. I made sure to arrange the potentiometer, buttons and LEDs in an intuitive and easy to use interface. Opening up the enclosure, you’ll see my attempt to arrange the crazy mess of extension wires and thankfully all of that is hidden in the enclosure.
Final Deliverables
What I learned
Throughout this project I’ve gained a greater appreciation for the timing devices that we take for granted each day. All timers have the purpose of counting the time between two events — either presenting them as time elapsed since the first event, or time remaining till the second event, but to tailor it to the specific task of brewing coffee was a huge challenge for me. Not only did I learn how to program an Arduino from scratch, but also I created a product that could be seamlessly integrated to a person’s typical morning routine. From completing multiple iterations of the user interface based on feedback from user testing, to presenting a final design, I was able to gain experience in the end to end process of going from a concept to a physical model.
I’d love to have the opportunity to explore the nuances of the Arduino platform further to build more meaningful devices.