TIRO (Time is Running Out) is a watch that vibrates every few minutes to remind the user that time in this world is quickly running out.
I just recently learned about the Tell Time Contest here on Hackaday and immediately thought that TIRO is a good fit for it.
I feel that my project is unique enough and has a function that can easily tell time (Although without a display). These tick two out of the three judging criterias. What's lacking is in the craftsmanship department.
I might re-build TIRO and add some improvements to it, like having an external crystal for accurate timing. I will also need to ditch protoboards and have a proper one printed. And for the case, maybe a 3D printed case?
I'm not fully committed to joining yet as I do have a lot of other projects that are pending. Updating TIRO has been in my backlog for quite awhile though and this might be the perfect time to revive it.
I've been wearing the watch constantly for two weeks already and it has been working great. Thanks to the slider switch that I added the battery life has been extended even more.
The only thing that I want to improve with this build is how it looks. The case is too bulky and, i admit, not that good looking that my wife is always unsure whenever I try to wear it in public. This of course, defeats the purpose of my design. So the next obvious step is to go smaller. And this can be done by using SMD components.
I've already designed a circuit in Eagle which has been a fun experience.
I had fun making the guide as it allowed me to go through the steps myself and contemplate about my design decisions. It was a lot of work though. It's a good thing that the project is not that complex.
I've mentioned this a couple of times already, but the next step for this project is for me to redesign the circuit by using SMD components. This will result in a smaller watch. This is my first time doing this though so I might take the time to learn and research about it first.
An on-and-off switch is a feature that I didn't have in the design of the initial prototype, but became obvious is needed during testing. This allows users to turn off the watch when not worn to conserve battery life.
Initially my plan was to have the ATTiny85 go to low power sleep when the power down button is pressed and then awaken using an interrupt when pressed again. But I later realized that I don't need something as complicated as this. It's the correct approach if I have an external crystal for timing. For my current design, a simple slide switch in between the battery and the circuit is simpler.
As you can see there is a slot that allowed me to secure the slider in place. I also had to rotate and move motor which I am not sure is okay as it may have affected how strong the motor is felt.
The next and possibly last step for this version of the prototype is testing how long it would run under normal use. I'll also begin plans for the next prototype iteration which I am excited for.
The first prototype for the TIRO Watch (Time is Running Out) can now finally be worn and tested under real world conditions. It looks ugly and too pink right now, but aside from that everything works!
After wearing the prototype I immediately noticed how weak the vibration of the motor was. This makes sense because the vibration motor now needs to vibrate while attached to the back side of the casing not unlike when it was vibrating freely when it was running on a breadboard.
A quick fix I made was that I removed the Resistor 1 in the circuit (At 47 ohms) and placed a wire in it's place (See below image). This made the vibration stronger making it easier to notice. A downside to this change is that the current draw will increase. I have not measured it but based on previous experiments it should be around 20mA more.Read more »
Initially I was planning to use the case of a bluetooth dongle as the container for my prototype. Even though I said that aesthetics is not important for now, it did bug me that the case did not look like a watch at all.
I reasoned to myself that in order for me to properly evaluate my prototype, I need to be able to wear it as a watch. To most makers this is an easy problem thanks to 3D printing. Sadly, I don't have one so I have no choice but to use whatever is lying around.
Here's a toy watch that I "borrowed" from my daughter (She's 4, she wouldn't mind).
Opening it up shows that there is a lot of room for my project.
I am now moving to the next stage of my prototype, which is moving the circuit from the breadboard to perfboard. This means no more new hardware features will be added anymore, at least for this version of the project. I have plans on adding an on-off button and hooking up external clock, but that would be for the next iteration.
Before I could do the move I needed a container first. Sadly, 3D printing a case is out of my reach at the moment, so I have to make do with using the shell of a car Bluetooth device that I have lying around.
Using this case means that I can't be able to wear it as a watch. I was thinking of drilling holes on the sides and slip a watch band through the case. It would not look good but since it's only a prototype, aesthetics is not my priority at the moment.
Thankfully, the CR2032 coin cell fits perfectly! I just had to modify the arrangement and placement of the components and ended up with the one below:
The top image is the top view of the prototype with the components shown, while the bottom image shows the solder connections underneath.
It's a bit tight but I am very happy with the placement. The disc motor I'd have to secure to the casing in some way to make sure that the vibration is more pronounced. Maybe tape it to the top wall, or maybe put it at the bottom of the board? We'll see.
I'll be starting the soldering possibly this weekend.
It has all the basic code that handles running the motor, delays, watchdog timing, and sleeping. It's actually really short but a lot is happening.
If you are interested, you also may want to look into the previous commits. How I started off from the code made by the user Azeria from the Arduino forums, how I then slowly modified it to try out various optimizations, up to the cleaned-up version it is today.
There are still more features to be added to the project (e.g. A button to turn the watch on and off) so the code will definitely be changes to the code in the near future.
[Update 2: 72 hours!]
[Update: It's now more than 48 hours!]
More than 24 hours ago I started the test to find out how long my project would run on a CR2032 coin cell battery (More info about the project here). Thankfully, it is still running with still a lot of power left.
Of course, 24 hours is not a lot, especially for a watch, but it is a big deal because the project that inspired me only run for around 10-11 hours. Plus, my initial pen and paper calculations based on the current drain was around 5-6 hours.
Before this test started I measured the voltage at around 3.17 Volts. Now it's at 2.97 Volts and it seems that the optimizations backed by my research is paying off. I'll continue to run this test until the battery dies out. Will make another log to summarize my findings.
I've read it countless of times: the internal clock on the ATTiny85 is very unreliable. It's said that it's accuracy vary wildly depending on various factors like temperature and voltage.
I still wanted to test it out for myself. I wanted to find out just how unreliable it is. And if it is possible at all to do some hacks to it to increase the accuracy. What followed was a lot of lessons learned mixed with frustrations.
First, a brief overview of what my project is about. TIRO (Time is Running Out) is a simple wearable that vibrates every 5 minutes to remind the user of the passage of time. I don't need exact intervals between vibrations, since the timing does not need to be exact (The user won't be able to tell if the vibrations were late or early, anyway),Read more »