GadgetWatch 2.0 - an arduino smart wristwatch

One of my more successful arduino projects was to make a wristwatch. I have seen many other attempts online, but I wanted to challenge myself to make something that is ascetically pleasing, useful, and made by myself. I have not made a full writeup yet, but I will try and recount some of the challenges and processes that I went through.

When I first wanted to make a watch, I wanted one that had it all. So my first prototype had all the gadgets: Li-ion charger, Voltage regulator, humidity, temperature, pressure sensor, gyroscope, accelerometer, magnetometer, flashlight, beeper, OLED display, bluetooth, onboard USB for programming, IR receiver, IR transmitter, vibrator motor ect. ect. I even threw in a laser pointer at the last minute. It required a 4 layer PCB and QFN components. Assembly was a pain with hand tools, and it was very hard to debug.
Case size is 48.3 x 29.9 x 14.0mm. Total width is 34.4mm.


GadgetWatch 1.0


Front


Back

Although it was a good learning experience, the downsides were many:
• The battery life was less than a day (even with sleep mode, I could not figure out what was taking the power... I suspect the bluetooth module). Also, one of the issues of a "smart watch" is to remember to charge it everyday. My watch would often die, and I'd be left without the time.
• The OLED screen was normally off to save power, and I had to push a button to turn it on, so leaving the watch on a desk as a clock, or by the sink in in the bathroom to see the time while showering was not an option. Also, the OLED was great in the dark, but difficult to see in direct sunlight.
• The QFN components were hard to hand solder, the screen needed to be soldered on with point-to-point soldering, and the case was an afterthought and was held together with hot glue. Version 2.0 had to address many of these assembly challenges.
• Size is important. Many of the home-made watches on hackaday or youtube are very thick. 20mm does not sound like much, but a watch that thick is huge on a person's wrist. My watch was 14 mm thick. version 2.0 would have to improve on that.
• I realized that I didn't need a watch with all the gadgets, so version 2.0 could be much simpler.

For the 2.0, I decided what I wanted to keep, and what I wanted to change. I refined my goals and realized that I wanted a smart wrist watch, not a smart watch. I don't need bluetooth, accelerometer, ect. My ideal watch would be simple to assemble, as small as possible, and with adequate features to be as useful as possible. If a single CR2032 coin cell could power the watch for many weeks, then that eliminates the bulky li-ion cell, charger, voltage regulator, usb port, hassle of charging, ect. This simplifies construction and reduces final size. If I can utilize a Sharp memory display, then that solves the OLED problems (power consumption, daylight readability). If I could plan the case better, then it would be an integrated part of the entire watch, and assembly would be easier.

I began anew, carefully choosing components to minimize size and power consumption while retaining final product usability.
• Display: Sharp 128x128 memory mono display with the FPC ribbon connector. One challenge is that it needs a constant 1hz square wave on the EXTCOMIN pin for the LCD bias. (4uA standby current.)
• MCU: AtMega 1284 for its 128K program space and 16K SRAM. Lots of space for custom fonts, functions, ect. (0.1 uA sleep current.)
• RTC: NXP PCF85263A. 0.28uA current, and has 2 interrupt generators. One is dedicated to toggling the EXCOMIN pin on the LCD without intervention of the MCU.
• Temp Sensor: BMP280 (not the BME280). Temp and pressure sensors. (0.1uA sleep mode.)
• I also have a magnetic buzzer for alarms, and backup battery for the RTC (don't have to re-set the time if the battery dies or you reprogram the watch).


Front View


Side View


Back View


Front cover off

The total power consumption in standby should be about 4.5uA (which is achievable in real life). The power to refresh the display every minute is about 5ma for 19ms. Using a 210mAh coin cell, it should theoretically run for more than 3 years.

There were many other challenges, such as moisture entering the watch (either from sweat or rain) and the power consumption increasing dramatically (up to 1ma in standby!). This was always hard to trouble shoot. Another major challenge was that the Sharp display had no backlight, and I wanted to use see watch at night. But that solution is a topic for another day...


PCB Back


PCB Front

The final 2.0 GadgetWatch case is 44.3 x 33.5 x 10.9 mm. Total width is 36.9mm. It has a stopwatch, calendar, sun rise and sunset calculations (and other almanac data), temp and pressure sensors, altimeter, countdown timer, IR remote, and several watch faces. It has been my daily timepiece for 2 years now, and most people are surprised to hear that I designed and built it (if they even notice - I didn't want a watch that looked home made!) I hope that someone can be inspired by this project. I am not taking orders. I am not selling kits or plans. I don't plan to release the sketch or the circuit diagram at this point, mainly because I cannot provide support for anyone who will attempt to build one. The cost of the parts is about $115, but the R&D is about $300 for parts and 600-800 hours of design, programming, troubleshooting and assembly. The final version probably took another 100 hours of troubleshooting and programming. These are just estimates because as a hobby, I don't keep a record of my investments. All said, it was a very good learning experience, and I learned much about power management, circuit design, product design, efficient programming, and many other skills.



I can make whatever watch face I can imagine!

WOW!
Great work & well described :smiley:

How do you configure f.e. the calendar, without bluetooth or something? Or is it just showing the days?

Your first version looks quite similar to my first smart/fitness-watch (Garmin Vivoactive).
It´s also a logical combination of battery-life and features. The display was not great (agains all the fancy samsung or apple watches) but it survived more than 14 days, even with Bluetooth (Low Energy) and GPS on sport activities.

Since you can develop Apps and Watchfaces yourself, I´d never challenge myself to create my own hardware. I´m too bad at that :grinning: But what you have done on that tiny space, is amazing!

K+

TriB:
How do you configure f.e. the calendar, without bluetooth or something? Or is it just showing the days?

Yes, it just shows the days of the month. I can scroll through the months and years, but there is no connection to an external calendar or my phone.
20190120_151350_2000.JPG
Calendar.

Here are some more screen shots of various features:
20190120_151406_2000.JPG
Display of the pressure trend. A similar view is available for the Temperature trend as well.

20190120_151435_2000.JPG
Sunrise/Sunset calculator

20190120_151450_2000.JPG
Up to 8 alarms can be set.

20190120_151536_2000.JPG
A watch face with 3 time zones.

It is still somewhat of a work in progress, and needs occasional troubleshooting (note the various wires and bodge jobs on the pcb in the original post), but overall has been a successful project!

20190120_151350_2000.JPG

20190120_151406_2000.JPG

20190120_151435_2000.JPG

20190120_151450_2000.JPG

20190120_151536_2000.JPG

Hi
It is really a good project. I have few questions

1-how did you program atmega328p-au (SMD)?
i'm seeing MOSI and MISO pin connection on PCB. Did you use USBAsp programmer.
2- did you use external eeprom?

can i have schematic and code for gadgetwatch 2. I'm interested in making one with few modifications in mind but i need a starting point as well.

Thanks and regards

1-how did you program atmega328p-au (SMD)?

I used the SPI pins to burn the bootloader after the chip was soldered to the board. Then I used a serial programmer (like this) to install the code. You can see the RX, TX, RST connections near the edge of the board.

2- did you use external eeprom?

No. The AtMega1284 has 4K of eeprom.

John_S:
I used the SPI pins to burn the bootloader after the chip was soldered to the board. Then I used a serial programmer (like this) to install the code. You can see the RX, TX, RST connections near the edge of the board.
No. The AtMega1284 has 4K of eeprom.

Is it necessary to burn bootloader?
Is it possible that i develop my watch on IDE and Arduino, generate hex file for UNO and program that file directly to ATmaga328p-au (without burning bootloader first) using USBASP programmer.

John_S:
No. The AtMega1284 has 4K of eeprom.

Is your main processor Atmega1284? i thought you used atmega328p

ahsan4288:
Is it necessary to burn bootloader?
Is it possible that i develop my watch on IDE and Arduino, generate hex file for UNO and program that file directly to ATmaga328p-au (without burning bootloader first) using USBASP programmer.

These are questions on programming in general. It is not necessary to use a bootloader, although I chose to use one. I have no experience with the USBASP programmer.

ahsan4288:
Is your main processor Atmega1284? i thought you used atmega328p

I am using the Atmega1284. Another poster thought I used the '328.