IO Watch (Arduino IDE Powered Wristwatch)

20,046

138

28

Introduction: IO Watch (Arduino IDE Powered Wristwatch)

About: Electronics enthusiast

The iO Watch (Arduino IDE Powered Wristwatch) is now LIVE and available to preorder on tindie!

Watch uses the same microcontroller as one on Arduino UNO - super hackable and easy to use! In this instructable, I'll be showing how you can make your own programmable wristwatch - from the design process to sourcing parts, soldering and programming.

This simple digital watch is inspired by the Eiriks Binary Wrist Watch from Sverd Industries!

Stick on and let's move forward!

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Overview

Measuring thickness at only 10 mm this wristwatch can last for a couple of years on one CR2032 battery and keep extremely precise time and even compensate for temperature using DS3231 Real Time Clock (RTC) chip with built-in crystal!

Step 2: Device Requirements

An overview of what components and tools were used in this build.

Microcontroller

The IC on this board is the ATMega328. This is the same chip that runs the Arduino Uno boards. However, this board relies on the internal oscillator of the 328, instead of having an external crystal like the Uno.

Power system

The watch has a battery holder for a 3V, 20mm coin cell battery. I recommend using the CR2032, as this has a higher capacity of 250mAh at 3V. The watch wakes up when one of two interrupt buttons are pressed. When it's time the watch enters the deep sleep mode to improve battery life.

User interface

To show the time we will use 12 LED's positioned in a circle like a simple analog watch face. for that, I picked size 0603 RED led's coupled with fairly high value (680 Ohm) resistors keeping the current low and still visible in direct sunlight. We will show the time after pressing the side button (the same one used in smartphones, because the thickens now matters).

Keeping the time

The finest RTC I can get is DS3231 keeping the time precise as it gets. Internal temperature compensation and integrated crystal make this chip ideal.

More

Full BOM can be seen HERE - most of the parts are linked on eBay or similar places so you can order it in normal quantities while LCSC and Mouser stocks are full of components in case you need more.

Step 3: PCB - Schematics and Layout

I will be using Autodesk Eagle to create a PCB. First, we will start with schematics, importing part libraries, looking trough datasheets and determining the right and logical connections. After the circuit (schematics) I designed the PCB layout and generated the Gerber and Drill files.

PCB specifications

  • Layers:2
  • Dimension:35mm*35mm
  • Thickness:0.8
  • Impedance: no
  • PCB Color: Black
  • Surface Finish: HASL(with lead)
  • Copper Weight:1 oz
  • Gold Fingers: No
  • Material Details: FR4-Standard Tg 130-140C
  • Panel By JLCPCB: No
  • Flying Probe Test: Fully
  • Test Castellated Holes: no

Then upload a Zip or RAR file containing all the gerbers and drill files to JLCPCB (cheapest) and have the PCB fabricated for 2$ + shipping cost in any color (at the time of making this instructable).

Step 4: Burning the Bootloader

If you have a brand new ATmega328 (or ATmega168/88), you'll need to burn the bootloader onto it.

The microcontroller can't interpret Arduino instructions without its initial code. It first needs a bootloader (program), which acts somewhat like the BIOS/drivers on your computer.

Bootloader has to be burned before soldering! Follow this tutorial and burn the microcontoller with following options:

  • Board: ATmega328
  • Bootlader: Yes
  • Clock: 1 Mhz internal
  • Compiler LTO: Disabled
  • Variant: 328P / 328PA
  • BOD: 1.8V

Once your ATmega328p has the Arduino bootloader on it, you can upload programs to it using the USB-to-serial convertor (FTDI chip) on an Arduino board.

Step 5: Soldering and Assembly

The assembly process should be fairly simple and straight forward. Gather the parts, start with one side at a time and you shouldn't run into problems.

For a detailed step by step guide visit my website.

If it's your first time soldering I definitely recommend checking some tutorials before soldering some of the smaller components 0603 etc.

Step 6: Programming

Using the FTDI test (connection) pads provided on the back of the PCB you can use a cheap FTDI converter to upload the code.

I went a step further and created a custom FTDI converter that utilizes the micro USB type B on the watch PCB so that modifying and uploading code is straight forward and easy (simply remove the battery and connect the custom converter to watch PCB and to your programming PC/MAC etc as shown in pictures).

Visit GITHUB for complete detailed instructions on how to read the time, set time and even read a temperature.

Step 7: 3D Modeling and Printing

Designed in Fusion 360, after countless versions I was finally satisfied and these are the results!

Everything except wrist watch band and glass - 3D prints, That includes

  1. Main body
  2. Outer Glass ring
  3. Bottom body
  4. Buttons

I used the following settings in Cura for my prints:

  • 3D Printer - Prusa I3 MK3S
  • Material: PLA
  • Layer Height - 0.1 mm
  • Shell Thickness - 0.8 mm (Nozzle: 0.4 - 2 Shells)
  • Top and Bottom Thickness - 0.8mm
  • Fill Density - 100%
  • Filament - 1.75mm
  • Support Type - Everywhere
  • Platform adhesion Type - Skirt

Watch glass is press-fitted, so is a glass ring to the main body. PCB screws with M1.4 Phillips screws to bottom casing and then to the main casing but don't forget to place the 3D printed buttons.

In case you have trouble 3D printing, I included CAD files and adapter so that you can wear the watch as a badge!

All STL files and .f3d files can be found HERE.

Step 8: Final Notes

Thank you for reading this Instructable! Feel free to leave a comment and If you wish to know more about assembly and soldering, proceed to my web page where you can find detailed guides on how to prepare for soldering, what tools to use, step by step soldering tutorials and much more. Good luck creating your own programmable "smartwatch".

DIY KIT is now LIVE for preorder at - tindie.com

Best

Marijo

Be the First to Share

    Recommendations

    • Magnets Challenge

      Magnets Challenge
    • Raspberry Pi Contest 2020

      Raspberry Pi Contest 2020
    • Wearables Contest

      Wearables Contest

    28 Discussions

    1
    The404error
    The404error

    Question 13 days ago

    Hello,
    (with a friend) we are re-rooting your awesome project to add some new features!

    But we do not understand why you connected adc6 to pb5 in your schematic...

    What is the reason for that?

    Because we would like to use the pin pb5 and we would also like to simplify the rooting.

    Thanks,
    Great work!

    0
    Joey_A_G
    Joey_A_G

    4 weeks ago

    This is so cool bro!

    0
    mblaz
    mblaz

    Reply 4 weeks ago

    Thank you Joey!

    0
    dkelley
    dkelley

    5 weeks ago

    I just noticed that you didn't have a listing in the BOM for the USB connector. Could you add a source for that. Would hate to order the wrong component. :)

    0
    mblaz
    mblaz

    Reply 5 weeks ago

    Good catch, thanks!

    0
    dkelley
    dkelley

    Reply 5 weeks ago

    Don't mean to be a pest but that vendor link does not ship to the United States. :(

    0
    homertwigg
    homertwigg

    Question 6 weeks ago

    Hi! The last two electronic components listed on your spreadsheet (the LED and CLK resistors) seem to be out of stock. Can you recommend another vendor?

    ...And just to be totally clear, the 0603s @ 680R and the clock resistors @ 10k, right?

    1
    mblaz
    mblaz

    Answer 5 weeks ago

    Hi, thanks for the comment. I updated the links in a spreadsheet!
    You will need 12x 0603 680 Ohms and 3x 0603 @ 10K Ohms.

    I'm working a complete step by step soldering and preparation tutorial at mblazevic.com/tutorials be sure to check that when you start building your watch.

    Thanks!

    0
    agarner333
    agarner333

    5 weeks ago

    I would like a kit as well. Pre programmed chips would be super convenient.

    0
    dkelley
    dkelley

    6 weeks ago

    What thickness PCB did you use? .8mm or something thicker? If you used .8mm could you use 1.0mm without modifying the watch case dimensions? Thanks... really like the project.

    0
    mblaz
    mblaz

    Reply 6 weeks ago

    I used 0.8mm, Yes you have about 0.4mm left so I think even 1.2 would fit! Thanks!

    1
    ohoilett
    ohoilett

    6 weeks ago

    This is really nice.

    0
    mblaz
    mblaz

    6 weeks ago

    You asked for it - DIY KIT is now LIVE for preorder at tindie!

    1
    Sverd Industries
    Sverd Industries

    6 weeks ago

    Hey mblaz congrats on the project, that came out fantastic! I really appreciate the shout out!
    I love the two button setup and how slim you made it, great job.

    0
    mblaz
    mblaz

    Reply 6 weeks ago

    Hey, yea 2 button setup comes in handy when your setting time on spot. thank you for those kind words!

    0
    John Bobbs
    John Bobbs

    6 weeks ago

    Yes I would be interested in a couple kits. What a great project.

    0
    le_fleurs
    le_fleurs

    Question 6 weeks ago

    Hi, could you share the circuit and the circuit board file. I want to use DS3231MZ this will reduce the space. Gerber file does not suit me need a circuit board. thanks
    onatskiy.sergey@gmail.com

    1
    mblaz
    mblaz

    Answer 6 weeks ago

    Hey, just uploaded scheme and board files under Step 5!

    0
    dBuggz
    dBuggz

    6 weeks ago

    Hi,
    I'd be interested in a kit if you can supply one.

    1
    Robepper
    Robepper

    Question 6 weeks ago

    Would you be able to provide the schematics? I want to try building this with a couple tweaks to the LED circuits. Great project, thanks for posting.