The Nerd Watch

258,032

1,297

110

Posted

Introduction: The Nerd Watch

Hello! Welcome to another Other Machine project tutorial! I'm Sam DeRose, a former Other Machine Co. Summer Intern. I created the Nerd Watch last summer while working at OMC.

The Nerd Watch displays the time in binary when the button is pushed. The watch shows the hour and minutes by flashing two LEDs in sequence to represent two 4-bit binary numbers (in big-endian format). Here's a great description of how to read binary numbers.

I'll show you how to build a Nerd Watch from scratch with a few electronics components and an Othermill.

This tutorial presumes you have previous experience working with surface-mount electronic components and that you're no stranger to a multimeter and soldering. It's also helpful to pick up a little information on how Arduino works.

Step 1: A Few Notes Before We Get Started

How to Tell the Time:
The first number represents the hour and the second number represents the number the minute hand would be pointing to if it were an analog clock. For example, if the watch flashes 0010 - 0110, this corresponds to 2 - 6, which means the hour is 2 and the minute hand points to the 6. It's 2:30. (Check out the image above for a graphic description!) There's no indication of a.m. or p.m., but hopefully it's clear whether it's 2:30 in the morning or not :)

The watch is based on a project my dad made for Maker Faire. It uses the same code and schematic, but now the board is laid out to look more like a watch, and sleeker surface-mount (SMD) components are used to make it lower profile.

Note: I made many iterations of this watch – you'll see version numbers in the photos. Because of this, the progress pictures in this post skip around between different versions pretty frequently. The general process for every version is exactly the same, though, so don't worry if your watch doesn't look exactly like the picture.

Another Note: The main part of this post will cover how to build version 2.5, the most current version that uses a regular ATtiny chip. However, Step 9 shows a variation, version 3.1, which uses a surface-mount ATtiny and a mini-USB port to program it. This version is significantly more difficult to build and program, so I'd recommend starting with version 2.5 and only trying version 3.1 if you feel really ambitious (or have experience with soldering SMD components).

Step 2: How It Works

The ATtiny chip (the black 8-pin IC chip) is the heart of the watch. This chip is basically a small version of the same chip that's inside an Arduino, and thus it can be programmed to perform different functions. In this case, the chip has a program on it that waits for a button press, and when it senses one, it grounds several of its pins so that current can flow from +3 volts through the LEDs, lighting them up. The ATtiny has an internal clock, so the LEDs are programmed to flash to display the time.

Step 3: Tools, Materials, and Files

TOOLS

  • Othermill
  • Computerwith Otherplan installed
  • Alignment bracket and mounting hardware included with the Othermill
  • Soldering iron
  • Flat end mills, 1/64" and 1/32"
  • Flat end mill, 1/16" for clearing out all excess copper (optional but recommended)

MATERIALS

  • Double-sided FR-1 PCB blank
  • Double-sided tape
  • Solder
  • Solder paste
  • Sewing needle
  • Black thread
  • Velcro straps, 3/4", blackor another form of watch strap

ELECTRONIC COMPONENTS

  • IC socket, 8-pin
  • Atmel ATtiny chip I used the ATtiny85.
  • LEDs, SMD (2)SMD = surface mount device
  • Resistors, ~50 ohms, SMD (2) Exact value isn't important.
  • Momentary button, square, SMD I used these, but others will fit too.
  • Coin cell battery, CR2032, 3-volt
  • Coin cell battery holder

FILES

  • EAGLE board file NerdWatchV2.5.brd for the watch
  • Arduino sketch NerdWatch.ino to go on the ATTiny. The .zip file included here has the sketch, as well as the libraries you'll need to install to get the sketch working properly.
  • EAGLE file for ATtiny Programmer TinyProgShield.brd (optional)

  • NOTE: Remember to install the libraries in Arduino before you try to compile the sketch. Here's how:
    • Download and install Arduino if you haven't already. You can get it from the Arduino site.
    • Download the NerdWatch.zip file and remember where you saved it.
    • Launch Arduino. Go to Sketch > Import Library > Add Library and navigate to where you saved NerdWatch.zip.
    • Select the whole .zip file, and let Arduino install the libraries automatically.
    • Restart Arduino to activate the libraries. Note: If you have any issues, the Arduino Forums are a spectacular place to ask questions for advanced users and new programmers alike.
    • Use Arduino to open NerdWatch.ino and compile your code.

For Version 3.1 you'll need these files:

  • EAGLE file NerdWatchV3.1.brd
  • NerdWatch.zipsame file as for v2.5
  • EAGLE file SMDtinyProgrammer.brd for the SMD ATtiny programmer board

Step 4: Set Up Otherplan

Fire up Otherplan. Then connect your Othermill to your comuter and power it on.

Import the EAGLE file into Otherplan and perform the following steps to set up the cut:

  • Use theSetup Fixturing button to walk you through the installation and location of the alignment bracket.
  • Once the bracket is installed, set your material to double-sided FR1 board using the Setup Material button.
  • In this dialogue, make sure to align the material's origin to the bracket.
  • Use a 1/32" and 1/64" flat endmill for the front of the board, and a 1/32"for the back of the board. (The back is also where you might add your optional 1/16" end mill if you have one and you want to.)
  • The default setting for your FR-1 board works fine for this project. If you want to experiment with more trace clearance, you can turn on BitBreaker Mode (Otherplan > Preferences > click on the BitBreaker box) and experiment with the depth and clearance settings (this is for the user who knows their way around a mill).

If you need a refresher on using Otherplan and setting up the Othermill, check out this Getting Started guide.

Step 5: Cut Out the Watch

Load your blank PCB:

  • Use the Loading button to bring the machining bed forward.
  • Cover one side of a double-sided FR-1 with double-sided tape, and match the board up with the left corner of the alignment bracket.
  • Firmly press down the board and then hit the Home button.

Cut your board:

  • First cut the traces and holes for the top. Do this by clicking on Traces and Holesin the plan file window.
  • When that's done, flip the board in Otherplan by clicking on the Bottom button.
  • Also flip the actual board in the machine so the uncut side faces up. Make sure the bottom side of the board is flush with the right cornerof the alignment jig.
  • Click on Traces and Outline in the plan file window.

The mill will cut out the remaining traces and holes, and you'll have a finished board!

Step 6: Solder on the Electronics

Now comes the tedious part: soldering the components onto the watch. If you're new to surface-mount soldering, or soldering in general, read my description and find some tips here.

For this process, I used a toaster oven to reflow solder the smaller SMD components like the LEDs and resistors. Then I used a regular soldering iron to attach the larger components like the IC socket, button, and battery holder.

Follow these general steps to add the components:

SMD Components

  • Dab solder paste onto the 8 pads which will mount the 2 LEDs and 2 resistors. Check out the photos above to get the placement locations.
  • Check that you know the polarity of the LEDs. To do this, you can use a multimeter in its "continuity" setting, or you can look at the LED and find the tick mark or green line(s), which marks the ground side.
  • Using tweezers, place the LEDs and resistors on the pads with the solder paste. Make sure to get the polarity correct! For both LEDs, ground is closer to the bottom of the watch.
  • Use a hotplate, toaster oven, or just a regular soldering iron to melt the solder paste and attach the components.

IC Socket

  • Bend the leads of the through-hole IC socket flat so that it looks like a SMD component instead of a through-hole component.
  • The pads on the watch will be long enough to accommodate the bent-out leads of the socket. Place the socket and make sure you understand how it mounts to the watch.
  • Remove the socket, dab solder paste on at least one pad on each side of the socket. I usually do one corner and then the opposite corner.
  • Place the socket back on the pads with the alignment mark facing up. This isn't required, but it'll help you remember which way the ATtiny goes in.
  • Press down on the socket so that it's all the way down on the board, and use a soldering iron to tack the leads with the solder paste to the board.
  • Finish soldering the rest of the leads to the pads with a soldering iron and a spool of regular solder.

Button

  • Depending on which button you get, you may have to bend the leads down so that they contact the pads better.
  • Place the button on the board and make sure that the 2 leads that are normally open are on the bottom left and upper left pads. (When the button is pressed, the 2 left pads get connected.)
  • Use the same tacking technique explained in the IC socket section above to solder the button on.

Vias

  • For the vias, you can either use a clipped lead from an LED or resistor, or you can strip a length of 22-gauge solid-core hookup wire.
  • Stick the wire through the hole and use a soldering iron to solder wire to the pads on both sides of the board.
  • Clip the excess wire off with wire snippers.

Battery Holder

  • Use tape to hold the surface-mount CR2032 battery holder in place while you solder it. (It gets really hot so you don't want to hold it with your fingers!)
  • Attach the holder to the back of the board by soldering the feet on both sides to the square pads.

Step 7: Add the Strap

This part is really up to you. The easiest way to add a strap is by sewing on some cheap velcro strips that you can find at any craft/fabric store like Michael's or Jo-Ann. Eventually I'd like to make the strap out of nicer material like leather, and add a buckle to fasten it, but this works in the meantime.

Please let me know if you come up with any cool or nice-looking ways to attach the watch to your wrist!

Step 8: Program the ATtiny

Now the watch is physically complete, but the ATtiny chip doesn't yet know how to control the LEDs. That's why we have to program it!

There are several options when it comes to programming an ATtiny. You can make a quick breadboard circuit, use a special ATtiny programming board, or you can make a nifty Arduino shield, like I did, so you can easily program these chips from now on!

If you're an experienced Arduino shield maker and you'd like to choose this method, the board file for the programmer (TinyProgShield.brd) is available on this step. Simply cut it out, solder the components, and couple it up with your Arduino.

The .ino file here and in the intro step is the file with which you'll be programming your ATtiny85. Change the time in the code to the current time. Be sure to upload the file to your ATtiny within a minute or two so that the watch is synced up with the correct time.

Step 9: Other Variations

As mentioned in the first step, I made a fully SMD version of the watch, complete with a surface-mount ATtiny. Since you can't pull out the ATtiny to program it, I had to add a mini-USB port that connects to necessary pins so that the ATtiny can be programmed externally.

I made a shield for the other end of the USB cable so that all you need to do is hook the watch to the shield and then program the ATtiny as if it's on the shield.

Step 10: Use It!

Put your Nerd Watch on and test it out by pushing the button.

Can you read the time? If you're able to tell the time by watching the sequence just once, then congratulations, you're a nerd! If it takes you two or three times to get the time, well, you're still a nerd because you're wearing this super nerdy watch.

Have any questions or comments? Shoot us an email at support@othermachine.co.

4 People Made This Project!

Recommendations

  • Microcontroller Contest

    Microcontroller Contest
  • Science of Cooking

    Science of Cooking
  • Pocket-Sized Contest

    Pocket-Sized Contest
user

We have a be nice policy.
Please be positive and constructive.

Tips

Questions

97 Comments

Your idea is very interesting and is a great example to make an object not very useful in itself, but very useful for learning programming, implementation and to overcome the difficulties of this small as powerful MCU.

I have read the article with interest, but I do not intend to make your nice Nerd Clock.

I will still be useful for some ideas, in the future.

But I have a question for you.

There is no question of the binary visualization method because it is obvious that if you want to use only two LEDs, you do not have much freedom of choice.

Reading binary values is not easy for everyone, but it is a motivated choice and can even become a useful exercise.

I would say to get along well, but perhaps because I have not read the code yet, your description leaves me in doubt.

You write correctly that the number 2 should be represented with 0010: it is true.

But if the led will flash for bit 2^1, what will it do for bits 2^3 and 2^2 that precede it and for 2^0 that follows?

For logic it should be turned off: right?

But if the LED is off, a "non-flashing" is distinguished.

Difficult to explain, but it is substantially a "serial" view, but the observer lacks the synchronism.

One way to indicate LOW (0) could be a much shorter flash than the one to indicate HIGH (1).

Another way could be the use of any two colors, for example Red er HIGH and Green for LOW.

In both these ways it would be easy to read the numbers distinguishing 0 from 1.

A more complicated way could be the addition of an LED to be used as a synchro flash, but although it would be unexceptionable it seems to me that it would not be suitable for the purpose.

I repeat that I have not read the code yet, where perhaps you have already solved this problem.

If, as I believe, you did it, I think it would be interesting if you spent a little time explaining the method you chose, but also on the problem that can escape a first reading of the article.

Anyway congratulations for the ingenious and unusual initiative: beautiful project.

Congratulations also to your father.

I really love this watch, it's a wonderful project for a high-school technology class!

hi can you show it how do you make usb part

I just finished my NerdWatch with Aduino on Windows 7 x64.

Thanks to the author of this instructable :)

For the compilation, I used another library that can be downloaded at this address:

https://code.google.com/p/arduino-tiny/

it is very convenient because it emulates several ATtiny whose 2313

(Attention to read the README file for installation place of ficers this library in the correct folder),

after finishing the PCB I sanded with toothpaste to make it smooth, I rinsed well with water, dried, passed gloss copper, cleaned acetone, and welded the components,after I polish the PCB with gloss varnish (protecting the mini USB and hoder battery) it avoids oxidation.

it remained for me to flash the program,

I did not use the Arduino as ISP,

once the compiled program, do not close the Aduino program that generates a HEX temporary file named NerdWatch.cpp.hex,

it is in the hidden directory named C: \ Users \ yourusername \ AppData \ Local \ Temp \ buildxxxxxxxx.tmp

(yourusername is your Windows user name and Xxxxxx is a series of different amounts to each compilation)

I flashed the Attiny85 with my USBasp programmer 5 volts version (without battery on well) 2 minutes before the current time to have time to remove the programmer and I inserted the battery 3 volts on the hour :) Here are some pictures of my NerdWatch.

NerdWatch.jpgNerdWatchBottom.jpgNerdWatchLED.jpgNerdWatchTop.jpg

Hello..!

Could you send me picture(s) that how do you attach battery holder at the back side of board..?

Did you use dual sided pcb or single sided..?

I don't have othermill to do it..!

And also share video ( if taken) of making your nerd watch..!

And also send the pictures of your components used..!

it is a single sided board. And you can just glue the battery at the back of the pcb.

I made version 3.1 of the nerd watch.

I used Eagle to make the PCB which is double sided.

On the back side, there is the location to solder the battery (the two rectangular studs for the + and the center circle for the -) battery holder is a CRD3232 Keystone SMD as the picture attached.

It can also be seen in the pictures of the Nerd watch.

Sorry I did not do video construction.

Here is the list of components:

1 x ATtiny85 SU

1x SMD LED 0805 orange

1 x SMD LED 0805 green

1x SMD resistor 1206 680 Ohm for green LED

1x SMD resistor 1206 470 Ohm for yellow LED

Warning:

1) the battery is worn out quickly

(2) the prescription should be a little adjusted

Look at my method a little lower

the keystone smd battery holder

SMD CR2032 Keystone.jpg

Hi everyone!! I have a question for the people who already have a nerd watch; is easy to know the time always when you want to check it? I mean, you don't need pencil and paper to memorice the sequence and then check what time was? Don`t judge me If I make you feel stupid because of my question, regards!!!

Is there also an opinion to make the Nerd Watch with a normal Circuit Board because I can't afford an OtherMill or OtherPlan.

Nice if somebody can help me out because it's a nice project.