Alarm_clock

Tuesday, Apr 25, 2023 | 6 minute read | Updated at Wednesday, Feb 26, 2025

Will Rohren

Goal: to learn about microcontroller integration & usage in electronics projects.

To use an Arduino nano / ESP32 with a RTC module to create a functional alarm clock.

Status: Abandoned :(

(I plan on coming back to this later)

Back to Home Page

Going forward

This project has seen a lot of development, during which I learned a lot about the things I wanted to learn about.

I think that towards the end (right before abandoning it), I got very demotivated, as I was digging through the weeds of using a cheap ESP32 clone with the arduino IDE. I will revisit this project at some point once I finish learning how to embed my own microcontrollers into PCBs.

I think I can make this project a lot smaller with multiplexing/charliplexing the LED array instead of driving them all at once. Or I can still drive them all at the same time, but use some SMD shift registers instead of the huge, clunky through hole ones.

Motivation

This project started because there were several times where my iPhone’s alarm would not go off due to a software bug. I used this as an excuse to delve into digital electronics, and try my hand at fixing a problem using skills I had yet to develop. Up to this point, (1/5/23), I had very little experience with micro controllers, electronics design, etc. As such, I wanted to explore electronics a little bit more.

Design

As such, before comitting do buying anything, I spent some time in AutoDesk TinkerCAD, which is an online playground where I messed with the different components, to see what I could do. After a lot of messing around, I came up with a design that I liked, and a little bit of supporting code. Because there were so many moving parts, the simulation was brought down to single-digit FPS, but I knew that my idea may just work.

TinkerCAD

Physical Breadboard

From here, I bought myself an arduino nano, a few 74HC595 shift registers, a pcb soundboard, and a Real Time Clock (RTC) module from Adafruit. With these, I copied my TinkerCAD design onto the breadboard, and further customized it by adding a LCD screen and rotary encoder for navigation.

Breadboard mega Breadboard nano Idle Animation

KiCAD PCB Design

Shortly after I figured out the breadboard layout, I started looking into PCB design, because I knew that breadboards were only meant for prototyping, and not for permanent solutions. My first try was with KiCAD, a free PCB Software. I only used it to make one design, which I never got manufactured. This design was bad for a lot of reasons, but it was a starting place.

Additional Reading
  • Through-hole resistors take up a lot of space
  • I was using TWO additional shift registers to manually trigger the soundboard, INSTEAD OF USING SERIAL (TX/RX) COMMUNICATION
  • I, at that point, was just planning on using a 555 timer to use a PWM signal to control their brightness (instead of using a PWM pin on the nano to control the shift register’s output enable pin)
  • A lot of wasted space
  • I used some component for a 7 segment display, instead of just dedicating a 5 pin pin-header to each side. This meant that I dedicated a lot of PCB space to the displays, without the intent of soldering them to the PCB (MORE wasted space)
  • Probably a few more things

KiCAD Design

ESP32 :(

While doing this, I, at some point, had discovered the ESP32. Advertised as a faster, more powerful microcontroller with built-in bluetooth and WIFI, I figured that nothing could go wrong by learning to use it by implementing it in this project. Oh how wrong I was.

I went on Amazon and bought the cheapest ESP32 devboards I could find, which honestly was my main downfall, looking back. Anyhow, the Nano runs on 5V logic, whereras the ESP32 uses 3.3V logic, which means that all of my peripherals, built for 5V logic, would potentially fry the ESP32 board. This should have been my sign to just go back to the nano, but for some reason I really wanted to make it work. This being the case, I found some bi-directional logic level shifters on adafruit, which would allow my devices to safely connect to each other.

Eventually though, after too much time was spent figuring out the different programming considerations, and learning about operating dual-core microcontrollers, forcing watchdog timers to behave, and a lot more, I finally got back to where I was with the Nano.

Early ESP32 Test ESP32 Clock

Altium PCB Design

From here, I was finally ready to move to PCB desgin AGAIN… I got in contact with one of the Electrical Engineering professors at TAMU, and was able to get a student version of Altium Desginer. This software was a LOT more powerful, and I had heard it was used in the professional field.

I cooked up a V1 design, put some funny silkscreen content in some of the empty spaces, left some extra pins broken out for the ESP & soundboard pins I didn’t plan on using, and sent it off to JLCPCB for manufacturing.

V1 PCB Design Physical V1 PCB

Physical PCB

I made the mistake of not ordering a stencil, so I would have to add each of the SMD components by hand. I figured that I could just lay a blob of solder paste on each of the pads, and do a normal reflow… I learned that there’s a reason you don’t do that (it’s easy to add too much solder).

Thankfully, besides from looking really ugly, it functioned just fine.

Solder fail

After putting in the rest of the through-hole components, I was ready for a first power on. To my relief, most of the functionalities worked as expected. EXCEPT, I could not get the soundboard, the LCD, or any other I2C devices to detect or work.

Completed PCB PCB on!

This was nice, but also a little disappointing. I tried manually soldering a bodge wire from the ESP32 pins to the pins of the LCD. Still to no avail.

Bodge attempt

End

At this point, it was Summer of 2024, and my classes took up too much time, and prevented me from working on this. Later in the summer, I started working on the Atmega32U4, Battery Charger, and A4988 Projects.

I would really like to attempt this project again someday, because I know that I can probably do it MUCH smaller and MUCH better. But until I find the time to, I will just leave it here.

And as for the original motivation behind this project, the original software bug was fixed, and I addressed the reasons that I was sleeping through alarms.

Back to Home Page

© 2025 Will's Portfolio

Powered by Hugo with Dream.

Me

Howdy!

I am William Rohren, I am a senior Mechanical Engineering Major at Texas A&M University.

This site serves as a portfolio to display my various projects, as well as a blog so that I can have a log of the things I do.

pic of me

Contact Information

Email: wmrohren@gmail.com

Resume: here (last updated 8/30/25)

Google Sites Portfolio Warning: There’s a reason I abandoned the old portfolio & remade it with Hugo.

Additional Reading

It’s because google sites kinda sucks in terms of how customizable it is. As you’ll see if you visit my old portfolio, there’s a navigation bar at the top, some with drop downs. But as far as the actual content goes, it’s really space inefficient. Under ‘Personal Projects > Big Projects’, to even see the SECOND item requires scrolling past all of the content in the first item.

I didn’t like it. So I thought of trying Hugo, and was given the idea by seeing other people using it (namely various Starforge members Brandon and Ismael to name two examples). I found a theme I liked, with blog-like posts and decided that was a suitable way to display my content.

One last note about formatting, once I have a lot more projects under my belt, I’d like to switch to a grid-like format, similar to one used by mitxela

Anyhow, the google sites portfolio linked above has a lot of my smaller projects on it. From 3D prints to school engineering club events, to VEX Robotics.

I expect that I will make posts dedicated to grouping these together. This is relatively low priority right now though, since the projects I have been able to do in college have been much more impactful than the projects I did in middle or high school. This is mostly related to money, as working on the RPS is allowing me to spend my own money on projects.

Feel free to email with any questions :)

One More Note

Please note while I try to keep it reasonably updated, it may not be perfect. I’ve done markdown with the RPS, but setting up a website like this is entirely new to me.

Changelog

3/8/25 - Initial portfolio created Added:

  • A4988 Project
  • Arduino Alarm Clock
  • Atmega32U4 devboard
  • Battery Charger
  • LF3DP
  • PC
  • Photography
  • Plasma cutter (RPS)

4/21/25 - Minor tweaks

  • Added updated resume
  • Fixed dates on all posts

9/4/25 - Major update

  • Fixed categories & tags on all posts
  • Put all images into folders to clean up file structure
  • Added weights to customize order of posts
  • Replaced old resume with the new one
  • Added PBA/SAE Aero/StarTrackerV2
  • Added framework for adding smaller projects from Midd;e/High school
Current Projects

Priority: (Classes must take priority)

  • Personal: N/A
  • RPS: N/A

When I have the time:

  • Personal: Star Tracker V2
  • RPS: LF3DP
  • Dr. Pei’s Lab: PBA-V3