Deco Time – Angular Timer

(Currently a work in progress! But almost done as of 3/2016)

Goals

This project as with many, began with a cup of tea, an over brewed one. To start my day I always brew a cup of tea, usually a green tea but always a tea that is sensitive to how long it is brewed. Normally I would just time it with my Pebble, or the tea timer I wrote for my phone(Tea Pal!), but I go to the kitchen to make the tea before I even pick those things up. So I wanted a nice timer for the kitchen. I had analog ones that I liked the look of, but they were just to imprecise for tea timing. Some of my favorite teas only brew for 30-90 seconds. Instead of buying a new one, I decided this would make a great project, so I decided on a few “needs” for this timer.

  • Analog Display:  While a digital display would be more straight forward, I wanted the aesthetic and feel of something more analog. My morning tea is a time to meditate and prepare for the day, I don’t usually look at my phone or computer until the second cup.
  • Multi Use: I wanted to be able to use this for cooking, and games as well.
  • Portable: I wanted to be able to have it on the game table, in the kitchen or where ever.
  • Stand alone: Unlike a phone, I wanted it to be able to stand on it’s own where I left it for others to see, be readable and not falling asleep when I am not there.
  • Easy to read at a glance: I should be able to tell the time remaining in less then a second. I also should be able to get a feel to how much time has passed.
  • Easy and fun to set: I wanted it to be very quick and easy to set. Many high tech timers are down right annoying to set. For example a phone timer. You have to unlock the phone, launch the app, go through a touch interface, etc. With this I wanted to be able to set the timer in less then 3 steps and find it fun.
  • 3-D printable: I wanted the over all size to be able to be printed on a makerbot.
  • Look great: I wanted it to compliment my kitchen, and be an item to enjoy looking at.

Design

After much more thinking and discussing with friends then a simple timer should ever need, I started to have an idea of what I wanted in my head. The best way to convey the time was still eluding me. My friend Steve had a really fun idea, why not use speedometer stepper motors? They are super cheap, and work great with Arduino. So that’s what I ended up doing, using one for minutes and another for seconds.

To show the progress, I decided to use LED’s like a level indicator, when “finished” it would light a top LED that would blink to indicate it is done. It also will ring a bell when finished. For inputs and setting, I wanted a very analog feel as well, so I went with two rotary encoders, that each have a push buttons. I picked ones that have no detents(clicks), so it would feel continuous. Then to make setting even easier, I added “pre-sets” buttons like a car radio might have. To set the time for 3:30 sec, just hit button one, for 5 min, hit button 4.

For power I designed a simple AAA battery box that can take ether rechargeable or regular ones. I also wanted the USB port available for long term outlet use, and easy program updates.

Electronics:

I went with an extra Arduino I was not using (UNO) and a proto board I had picked up at radio shack on the cheap. The steppers are x27 168 originally used in GM cars and very cheap. They are small, fast, and have 600+ steps in there 315 degree sweep. They also are very low power and 5v, making them ideal for an Arduino.
I will try to include a full parts list, many parts I used or designed around because that is what I had already laying around.

Parts:
– (1) Arduino (uno is what I used)
– (1) Proto board for Arduino
– (2) x27 168 stepper motors or switec X25 (older version)
– (9) LEDs
– (2) Bourns PEC11R Digital rotary encoders with push buttons.
– (1) MCP23S17 I/O expander //I went with the SPI version vs the I2C because of it’s higher refresh rate. I wanted to rotary encoders to “feel” as smooth as posable. The MCP23017 would probably be just as good, and use two less digital pins, but I wanted to be sure.
– (10) 300 ohm resistors
– (8) 10k ohm resistors
– (4) .1uF capacitors (104)
– (5) push buttons, micro switches
– (2) switches, on for power and another for sound
– (1) Pololu 5V Step-Up/Step-Down Voltage Regulator S7V8F5 //used for efficient battery power
– (1) Mini 5v Solenoid from Sparkfun
– (1) Diode //any will do, just to prevent solenoid kick back voltage.
– (1) Mosfet transistor, N-CH 30V 90A IPS040N03L  //Cheap and very efficient!
– (1) RJ9 Jack, 4P4C  Molex made in USA //aka phone headset jack, this is for the I2C expansion port

Wiring Diagram:

to come

Early breadboard layout for testing code.

Early breadboard layout for testing code.

Button Detail

Button Detail

Wiring in progress, and test fitting.

Wiring in progress, and test fitting.

Code

The code is for the most part fairly strait forward. I found some really great libraries that took out most of the grunt work.
MCP23S17 library
– UP/Down Timer library
– SPI library
– Switec X25 library  (His site has a TON of great info about these, including wiring and such!)

Here is the Arduino code

 

Case

With the case I really wanted to make it more interesting then a simple box. I happen to love art deco designs and thought this would be an ideal fit for that style. I came up with a number of designs and drawings that I really like, and honestly would kind of like to make a few other timers. I used Tinkercad for all of the design from scratch. I know some others criticize Tinkercad for its simplicity, but it works great and is free!

Although I tried to keep 3D printability in mind while it worked on the design, I did not let it dictate the design ether. This leads to it requiring support material on many printers unfortunately, but thats ok with me. I tried to follow the golden ratio when ever I could in its elements as well so it should be pleasing to the eye.

You can view the case top, bottom and battery box at the following links.
Top: TinkerCad or Thingiverse
Bottom: TinkerCad or Thingiverse
Battery Box: Thingiverse

Building required supports on test print.

Building required supports on test print.

An early test print of the top.

An early test print of the top.

Battery box, later version has taps to mount to case bottom.

Battery box, later version has taps to mount to case bottom.

Battery box, wires can just be looped through.

Battery box, wires can just be looped through.

Inside bottom details

Inside bottom details

Inside bottom details.

Much earlier Inside bottom detail, before I added features.

Bottom CAD, notice kickstand and bell mount.

Bottom CAD, notice kickstand and bell mount.

Bottom CAD

EARLY simple Bottom CAD

Top CAD

Top CAD

Face and dial details

 

Finished timer

Coming soon I hope! 🙂

 

Other Links and info

X25 Data sheet 1

Strip Board Layout Worksheet

Rotary Encoders explained video

MCP23017 tutorial

DIY dash cluster info

Beverage-o-meter using x25

Gaugette Blog again  //great info

X27 on board with diode protection. //$19 each tho

Another rotary encoder tutorial

SPI vs i2c

Peignot Font used for dial faces

Art Deco Analog thermometer  recently released, uses nice deco font Grenadier 

pixelstats trackingpixel
Share

Comments are closed.