GPS Powered Alarm Clock

For ECE 473 (Microcontroller System Design) I designed a GPS-powered alarm clock. To satisfy class requirements, we designed a radio alarm clock. This was one of my favorite Tekbots labs (the ECE labs at OSU) that I’ve taken so far. It was a lot of work (towards the end I easily spent over 30 hours a week working on the project), but it was a very satisfying experience. We used most of the features built into a mega128 processor! This included the following: UART, Timers (in 3 different modes), I/O configuration, I2C, SPI, ADC, Interrupts, External Oscillators, and more! You can find the final design document here [link].

Messy final implementation. I could have made it neater, but I was planning on potentially making a PCB someday. And also, after spending 40 hours a week on this project for a few weeks, I was pretty done with it…

Extra Credit

You may be wondering why the GPS? For this project, we were required to implement an “external temperature sensor”, that was a mega48 connected to the “main” mega128 over RS232. I connected a UART-enabled GPS to the mega48, and had it parse the UTC time reported by the GPS. The mega then sends this information to the mega128. To use this feature, I took advantage of one of the core principals of GPS. The GPS system relies upon satellites sending the exact current time at the exact same time, then receivers calculate their position based on changes in how this time is received. I can use this time to set my alarm clock! The system works perfectly, and only requires the slightly inconvenient GPS antenna outside the window 🙂

Code

The code for this project can be found on GitHub [link].

PCB

I’ve begun to make a PCB for this project. I’m not sure if It’ll end up being made (simply because of cost and lack of need), but it was a fun evening either way!

Schematics

mega128 Alarm Clock Schematic

mega48 Remote Temperature Sensor Schematic