Introduction: The Nerd Watch
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
- Bantam Tools Desktop PCB Milling Machine
- Computerwith Bantam Tools software installed
- Alignment bracket and mounting hardware included with the milling machine
- Soldering iron
- Flat end mills, 1/64", 1/32", and 1/16" (optional but recommended, for clearing out excess copper)
- PCB blank, FR-1, double-sided
- Double-sided tape
- Solder paste
- Sewing needle
- Thread, black
- Velcro straps, 3/4", blackor another form of watch strap
- 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 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 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:
- 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.
- 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.
- 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 firstname.lastname@example.org.