From and idea to a Product. Making a vibrating clock for my Grandma
Most of my projects so far was more or less for fun , robots , LEDs,
mechanics ... , but this time the idea came from an actual need. My
grandma started to have more difficulties to keep track of the exact day
time due to the deterioration of her vision . So i had to think of
something to help her, while there are already commercially available
devices , like talking clocks but they are usually not small enough to
keep around as they includes radio, the easiest alternative solution
probably is to use an app on a phone, but touch screen phones appears to
be a bit difficult for visually impaired person , and that would be an
expensive solution , moreover where is the fun on that : ).
So then a vibrating watch idea came to my mind, that way it's quiet and so to keep the project simple and cheap to make . There is some requirement though . the device need to be fairly small , simple to use, easy to setup even for a visually impaired person and a long lasting battery .
First i had to see if the idea of a vibrating watch is even practical , so i had to start with a prototype and let my grandma use it for sometime .
There is nothing more easy than to grab an Arduino and start playing with it. adding a push button as input trigger , a small vibrating motor from a broken phone, a transistor and few resistors and why not adding real time clock (RTC ) module to keep things interesting .
The prototype looks something like this :
For now it's directly powered using a samll 5v transformer .
The Arduino scketch code was fairly simple as well . we wait for the button to be pressed , then fetch the current time from the RTC module and make the vibrating motor to buzz the number of hours , then an aproximate minutes range for convenience, like one vibration for the first quarter , two vibrations for the 2nd quarter etc ... . to setup the time is easy , you hold the button for longer than 5sec to enter the setup mode, then push the button couple of times to set the hour , hold again for 5sec , set the minutes , and hold one last time to end the setup mode .
I let my grandma use it for few weeks , and she really loved it , specially at night when she doesn't want to bother anyone to tell her the time . however the transformer wire was a bit annoying and need to be rid off ,adding a 9V battery should fix that, but then i had to add some voltage regulator to step it down to 5V . or maybe a lithium battery but then a charger module will be required , and then the enclosure starting getting bigger ... it was time to review the prototype and make a more compact version.
If i can make it to run on CR2032 coin battery that will be perfect , they are small , largely available and with modest capacity for it size . the question now is how long will it last . i've used an Arduino pro mini clone which includes an Atmega328p micorcontroller , a quick look in the data sheet shows that it can run from 1.8V to 5V at 4Mhz , and it consume only few micro-amps on sleep mode, great ! . The RTC clock doesn't consume much either , the vibrating motor however needs about 70ma max but it will be pulsing for few miliseconds . so that should work .
At that time i started wondering if i can made this project into a product that may be commercializable , what will i need to accomplish that ?, can i do it alone ?, how much will it cost for around 50 samples .
I started laying down the circuit schematic on Eagle, and the current version looks something like this :
Everything will be running on 3V , i've chosen to use the PCF8563T RTC because it can run from 1.8V as well and it's cheaper than the DS3231 that are usually found in the Arduino RTC modules . The Arduino communicate with the RTC using the I2C . The vibrator motor is driven by a 2N2222 transistor and for extra protection against the voltage spikes i added a diode there . The button is connected to a hardware interruption PIN of the Atmega328P so we can wake it from the sleep mode .
And the BCP layout looked like this once routed :
Now what left is to make it, i did make PCBs at home before , but it's a hard process specially with double sided ones, and it will be more harder now that i need a bunch to make . so i decided to send the layout to a PCB manufacturing company , there are a lot of Chinese ones out there that can make that happen , and very cheaply , however shipping to Morocco can get very very expensive with shipping companies like Fedex , UPS , DHL ... it can reach 5 times or more the cost of the PCB ... so i need a one that allows free shipping . after few googling , i end up using smart-prototyping 5 PCBs of 100x100mm double sided with 10$ , my board has about 40x40mm dimension so i can get 20 units for 10$ or 0.5$ for each , not bad i guess . except in order for them to cut the PCB into panels i needed to pay 25$ extra , i though it was expensive so i left the boards as single piece and then i will see how to cut them myself :/ .
It took about 15 days to produce , and about a month to ship, it's
better than i had expected, it usually takes over 2 months with free
shipping to Morocco from China .
The boards came out nicely , i have nothing to complain about !:
Cutting them was a bit painful though , maybe i should have paid the $25 , or at least to order a 0.8mm thickness instead of 1.6mm . anyway those are things to consider in my next product ...
I bought most of the needed components from ebay as small qualities ranging from 10 to 20 to reduce the product cost a little bit
Assembling the first board was fun :
Now it's time to make an enclosure for it , and this comes when it just happened that i bought a 3D printer. Perfect ! . To design the case i used FreeCAD :
For simplicity i kept a rectangular shape . getting a perfect fit was a bit harder than i thought , and here it is printed, and assembled :
I may review the design for a more ergonomic one later, for now this will do .
The product is finished at this stage, but i wanted to take it a step further and make some kind of product promotion video, some kind of 3D animation with Blender .
The case is easily imported into blender from FreeCAD , using the export import stl file . The difficulty comes on making a 3D model of the board and the components . unfortunately Eagle has no such feature, at least in the version 7 i'm using. luckily Kicad does, and it's possible to import the eagle .brd file into Kicad , simply launch pcbnew ,which is a program that comes with Kikad . Once it's open, import the eagle .brd file , and under View menu click on the 3D viewer, unfortunately it does not render the components :
Then we can export it as VRML file , i find it to work the best . and then we can import it into blender from file->import->X3D Extensible 3D(.x3d/wrl) :
Now what's left are the components . the only way i could find is to import them from the kicad-library into blender as stl file and then place them manually :
And now only left is to do some crazy animation ! :