This project was designed for me to personally learn more about electronics design and embedded software design. As such, there are guaranteed to be bugs, issues and things that can be improved. I recommend not taking any of my instructions or designs at face value. However, I do have a working device so I must of done something right(ish).

The watch itself is meant to be a fun project for a more advanced tinkerer/hacker/maker. The goal is to have something that is rugged and visually pretty enough for daily wear while offering several benefits to the electronics enthusiast. Specific design goals are:

Mechanical

Electrical

Firmware

Known Issues:

Lessons Learned:

  1. Finish your design specs before you build hardware. It is a lot harder to add a hardware function (like a speaker) after you have ordered the PCBs.
  2. Stop inventing the wheel. For every common thing that a processor can do, it's been done. While trying to write a function to draw lines on the screen, I floundered for about an hour to even comprehend how such a think is possible before discovering the Bresenham's Line Algorithm. Rosetta Code is amazingly awesome for this.
  3. Understand everything in the vendor code, but don't rely on it. I originally used vendor code to test and get the LCD working, but found that it left me without actually understanding what my hardware was doing. This being said, if you are not planning on writing a driver from scratch this isn't strictly necessary.
  4. Explode the prototype. I used an off the shelf SMD breakout board to prototype my specific processor on my specific LCD prior to assembling the whole mess. I really wish I spent more time exploring the firmware before I fully constructed the hardware. Then I would have known if my LCD was going to explode by changing the aforementioned code before combining it in a small combustible enclosure with other electronics.
  5. Document during design. Cool story, I actually designed and built the entire watch in February. Over the course of the year, I got busy and stopped at the point of getting numbers on the screen that may have been the correct time. It was late November before I got back to the project. I looked over my design files, looked over my code, looked over my notes. At no point did I write down how the programming header was laid out!! I had snaked wires from the PCB to the case in some order, but didn't write them down. Instead of opening the case and looking at it (smart), I started randomly guessing at what I would do if I were me (stupid). Luckily, I am me so I have a pretty good idea what I would do and I did what I would do, but I could have easily not done what I didn't do and then I would have been done for.
  6. Mechanical design is hard. If you think it isn't you are either 1) A mechanical engineer or 2) WRONG!