The Nerd Watch




Introduction: The Nerd Watch

About: Bantam Tools desktop CNC machines provide professional reliability and precision at an affordable price. (Bantam Tools was formerly Other Machine Co.)

The Nerd Watch displays the time in binary when the button is pushed and was created by Sam DeRose during a summer internship at our HQ. 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.

This tutorial (written by Sam DeRose) shows you how to build a Nerd Watch from scratch with a few electronics components and a Bantam Tools Desktop PCB Milling Machine. It does presume that 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, making it 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 Tony DeRose 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: Sam 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 how-to covers 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




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


  • 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 file and remember where you saved it.
    • Launch Arduino. Go to Sketch > Import Library > Add Library and navigate to where you saved
    • 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 the Bantam Tools Milling Machine Software

Fire up the Bantam Tools software. Then connect your milling machine to your computer and power it on.

Import the EAGLE file into the Bantam Tools software 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.)

      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 (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 the Bantam Tools Desktop PCB Milling Machine and setting up the software, 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 the Bantam Tools software 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 the description below. You can also find some tips in the Light-Up PCB Necklace project.

      For this process, we used a toaster oven to reflow solder the smaller SMD components like the LEDs and resistors. Then we 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, and 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.


      • 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.


      • 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 Fabrics. Eventually we'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 us know if you come up with any cool 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 we 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, Sam 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, he had to add a mini-USB port that connects to necessary pins so that the ATtiny can be programmed externally.

      He then 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

      6 People Made This Project!


      • Clocks Contest

        Clocks Contest
      • Cold Challenge

        Cold Challenge
      • Organization Challenge

        Organization Challenge



      1 year ago

      This is AWESOME!!! Great idea and thank you for sharing. Great job. 👍🙂


      1 year ago

      It would be very interesting for someone to develop a program to work the clock in morse code flashing the led with the time.


      1 year ago

      I just found this article that is 7 years old, but still so nice ! I really enjoy the design. Just one question: how long time can the battery last, if we don't use it too often ?


      4 years ago

      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.


      Reply 1 year ago

      Suggest you read the first lines of the sketch :
      The green LED indicates a binary 1, and yellow indicates a binary zero.
      For instance, the time 6:50 would be displayed using the following flashing pattern (Y = yellow, G = green):
      Y G G Y <pause> G Y G Y
      This is 0110 - 1010 = 6 - 10 = 6h50


      2 years ago

      This looks great. Are you please able to attach the PCB as a Gerber file for me?


      3 years ago on Step 10

      Giá bán hiện tại 1 sản phẩm là bao nhiêu nhỉ


      4 years ago on Introduction

      Wonderful! I love this project. In regard to button cell battery, please take caution to manufactures safety warnings

      andrea biffi
      andrea biffi

      4 years ago

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

      nedim emrey
      nedim emrey

      5 years ago

      hi can you show it how do you make usb part

      Jhonys FernandoV
      Jhonys FernandoV

      5 years ago

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


      5 years ago

      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.


      6 years ago

      I don't have OtherMill or OtherPlan with me..

      Can anyone suggest any software to design PCB and also suggest how to do it..!

      Praneeth..... :)


      Reply 5 years ago

      no longer ??

      surya raju
      surya raju

      Reply 6 years ago

      Eagle Cad is a good option,u can use the free student version.

      It has a steep learning curve compared to other alternstives but its worth it.


      6 years ago

      hey plz help!
      can i use normal components instead of smd? plz answer soon.


      Reply 6 years ago

      Look below there is an example de JRV31

      short stack
      short stack

      6 years ago

      hi, I was just wondering if it would be possible for you to mail me an unpopulated board in Australia, If so I would like one of the smd versions, feel free to contact me on