VibClock (Vibrating Clock)

Arduino_AVR_PCB_FreeCAD_Blender_3D printing_KiCad_

From and idea to a Product. Making a vibrating clock for my Grandma

Now days it's becoming more and more easy for everyone to prototype, create and release their own electronics products to the word at a reasonably low cost. In this blog i'll be sharing with you my experience of how i started from a simple project idea to a final product and what steps and tools i used to make it .

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 ! :

Comments :