Christmas Themed Focus Clock
A christmas themed clock with an adjustable pomodoro timer with an optional screen time reminder (20-20-20 rule) to help you focus on studying or work.
Created by
Shaan
Tier 3
2 views
0 followers
Iamalive 🚀
requested changes for Christmas Themed Focus Clock ago
Hey, nice project! But I do have some questions: First, is the single journal entry that you have mean that you did 18 hours of work in one day? If not please show on what day what you did! Additionally, please include a wiring diagram that shows how your final project's parts will wire together(and include that image in your readme), and also make some basic code that your board will use! It's fine if it's basic, as long as you tried :D
Shaan
submitted Christmas Themed Focus Clock for review ago
Shaan
added to the journal ago
Creating project
Planning (0.5h)
For my clock I plan on including:
- A rotary encoder
- A screen
- Lights
- Buttons
I'm going to start off designing my PCB first, then creating the case afterwards. I want this project to be minimal while also having a lot of functionality at the same time so I'm not going to try and add any extra stuff beyond my original plans.
Here's some features that I have planned out:
- Pomorodo timer
- Screen time reminder
- Custom timers
To start, I chose a RP2040 as the brain of this project as I have the most experience with it and its a versatile chip that can be used for almost anything. I already have a 3.7v rechargable battery that I have laying around so I'll use that as the power source for this project.
..
Brainstorming CAD + Picking screen (2.5h)
I'm going to go design the case first because I still need to figure out what screen I need and creating the case for me to look at will help in deciding what size to go for.
Heres a rough idea of what it might look like

For my screen I ended up choosing this 0.96in oled display since most screens that I looked at were either too expensive or needed a seperate module to control it which increased the total cost a ton.
Creating schematic (6h)
I wired up my battery, LDO, RP2040, decoupling caps, crystal, and flash storage as a start.

I added the LCD as a connector symbol but for the footprint I'm going to create a custom one so that I can mount it on the board itself. I then added my controls; my rotary encoder, buttons, and some mode indicator LEDs.
For the speaker I wanted something that is easy enough to program and I can upload custom alarm sounds to it, which is when I found the DF Player mini. I plan on having a small speaker attached to it with wires and have it mounted somewhere on the box.
I can't mount the player directly on the pcb so I'm going to use a 2x3 connector instead to represent the pins that I'm actually going to use (I'm also using the SPK1 and SPK2 pins for wiring up the speaker but since its not on the pcb I'm not including it in the schematic).


Here is all my peripherals wired up now

Now to program my board, I need to add a USB-C connector. My goal is for the USB C connector to charge the battery and to be able to program my board. I can do this because I discovered on my charger, I don't have to use the mini usb connector to charge the battery, I can also charge it through the 5V and GND pins too. There's also a BAT pin and a second GND pin on the module that can directly power my PCB.


Now it's time to clean up/organize my schematic and have it reviewed.

After some small changes (some visual changes and a flipped diode) I'm now ready to start PCB Designing
PCB (3.5h)
The PCB was relatively straightforward but took a bit of time.
Started with the RP2040, flash memory, and crystal

Decoupling caps, USB Lines, Power, and Onboard LED


Added the rest of the components and connectors

The most time consuming part was trying to get all the GPIO pins connected with all the traffic on the RP2040, but after maneuvering a lot of traces to make room for new via's I finally was able to finish routing them.
Organized all the silkscreen references and created boxes to label each connector

Because there was no stock available for my old transistor controlling the vibration motor I switched to the Si2302CDS-T1-GE3

BOM & Cart(2h)
Here's my BOM that I've been building on in the background
| Item Name | URL | Price | Quantity |
|---|---|---|---|
| SSD1306 OLED Display | AliExpress | $5.58 | 1 |
| Rotary Encoder | - | $0.00 | 1 |
| Vibration Motor | DigiKey | $2.82 | 1 |
| Speaker Driver | DigiKey | $8.53 | 1 |
| Speaker | DigiKey | $3.36 | 1 |
| 3.7V Battery (self provided, not included in total) | - | $0.00 | 1 |
| Adafruit Battery Charger (self provided, not included in total) | - | $0.00 | 1 |
| 1x2 Male Pin Connector | DigiKey | $1.48 | 10 |
| 1x3 Male Pin Connector | DigiKey | $0.15 | 1 |
| 1x4 Male Pin Connector | DigiKey | $0.15 | 1 |
| 1x5 Male Pin Connector | DigiKey | $0.15 | 1 |
| 2x3 Male Pin Connector | DigiKey | $0.18 | 1 |
| PushButton | DigiKey | $0.45 | 3 |
Totalling to $22.85 CAD or $16.57 USD
Now all I need is to gather all my cart screenshots before I submit
CAD (4h)

I roughly recreated the LCD screen using the measurements provided online. Now I'm going to finalize the case

I think this is good now. I'm going to hollow the inside and create the parts where the buttons, rotary encoder, speakers, battery, vibration motor, and screen go.
My original plan of having everything mounted on the board is unfortunately not going to work because of some components being too long, so I'm going to have to wire everything manually and use connectors instead.

After I updated the PCB to use connectors I decided since most of my parts that I'm going to order will be so small and that I can't find their dimensions online and that they don't need proper mounts I can just hot glue all of them in place. And for my PCB I already have screws from my other projects to secure it to the case
Shaan
started Christmas Themed Focus Clock ago
1/5/2026 - Creating project
Planning (0.5h)
For my clock I plan on including:
- A rotary encoder
- A screen
- Lights
- Buttons
I'm going to start off designing my PCB first, then creating the case afterwards. I want this project to be minimal while also having a lot of functionality at the same time so I'm not going to try and add any extra stuff beyond my original plans.
Here's some features that I have planned out:
- Pomorodo timer
- Screen time reminder
- Custom timers
To start, I chose a RP2040 as the brain of this project as I have the most experience with it and its a versatile chip that can be used for almost anything. I already have a 3.7v rechargable battery that I have laying around so I'll use that as the power source for this project.
..
Brainstorming CAD + Picking screen (2.5h)
I'm going to go design the case first because I still need to figure out what screen I need and creating the case for me to look at will help in deciding what size to go for.
Heres a rough idea of what it might look like

For my screen I ended up choosing this 0.96in oled display since most screens that I looked at were either too expensive or needed a seperate module to control it which increased the total cost a ton.
Creating schematic (6h)
I wired up my battery, LDO, RP2040, decoupling caps, crystal, and flash storage as a start.

I added the LCD as a connector symbol but for the footprint I'm going to create a custom one so that I can mount it on the board itself. I then added my controls; my rotary encoder, buttons, and some mode indicator LEDs.
For the speaker I wanted something that is easy enough to program and I can upload custom alarm sounds to it, which is when I found the DF Player mini. I plan on having a small speaker attached to it with wires and have it mounted somewhere on the box.
I can't mount the player directly on the pcb so I'm going to use a 2x3 connector instead to represent the pins that I'm actually going to use (I'm also using the SPK1 and SPK2 pins for wiring up the speaker but since its not on the pcb I'm not including it in the schematic).


Here is all my peripherals wired up now

Now to program my board, I need to add a USB-C connector. My goal is for the USB C connector to charge the battery and to be able to program my board. I can do this because I discovered on my charger, I don't have to use the mini usb connector to charge the battery, I can also charge it through the 5V and GND pins too. There's also a BAT pin and a second GND pin on the module that can directly power my PCB.


Now it's time to clean up/organize my schematic and have it reviewed.

After some small changes (some visual changes and a flipped diode) I'm now ready to start PCB Designing
PCB (3.5h)
The PCB was relatively straightforward but took a bit of time.
Started with the RP2040, flash memory, and crystal

Decoupling caps, USB Lines, Power, and Onboard LED


Added the rest of the components and connectors

The most time consuming part was trying to get all the GPIO pins connected with all the traffic on the RP2040, but after maneuvering a lot of traces to make room for new via's I finally was able to finish routing them.
Organized all the silkscreen references and created boxes to label each connector

Because there was no stock available for my old transistor controlling the vibration motor I switched to the Si2302CDS-T1-GE3

BOM & Cart(2h)
Here's my BOM that I've been building on in the background
| Item Name | URL | Price | Quantity |
|---|---|---|---|
| SSD1306 OLED Display | AliExpress | $5.58 | 1 |
| Rotary Encoder | - | $0.00 | 1 |
| Vibration Motor | DigiKey | $2.82 | 1 |
| Speaker Driver | DigiKey | $8.53 | 1 |
| Speaker | DigiKey | $3.36 | 1 |
| 3.7V Battery (self provided, not included in total) | - | $0.00 | 1 |
| Adafruit Battery Charger (self provided, not included in total) | - | $0.00 | 1 |
| 1x2 Male Pin Connector | DigiKey | $1.48 | 10 |
| 1x3 Male Pin Connector | DigiKey | $0.15 | 1 |
| 1x4 Male Pin Connector | DigiKey | $0.15 | 1 |
| 1x5 Male Pin Connector | DigiKey | $0.15 | 1 |
| 2x3 Male Pin Connector | DigiKey | $0.18 | 1 |
| PushButton | DigiKey | $0.45 | 3 |
Totalling to $22.85 CAD or $16.57 USD
Now all I need is to gather all my cart screenshots before I submit
CAD (4h)

I roughly recreated the LCD screen using the measurements provided online. Now I'm going to finalize the case

I think this is good now. I'm going to hollow the inside and create the parts where the buttons, rotary encoder, speakers, battery, vibration motor, and screen go.
My original plan of having everything mounted on the board is unfortunately not going to work because of some components being too long, so I'm going to have to wire everything manually and use connectors instead.

After I updated the PCB to use connectors I decided since most of my parts that I'm going to order will be so small and that I can't find their dimensions online and that they don't need proper mounts I can just hot glue all of them in place. And for my PCB I already have screws from my other projects to secure it to the case