Introduction: Pomodoro Timer

People struggle to study with all the distractions of the modern world. "Productivity hacks" circulate the internet, each claiming to help people achieve true focus.

While most of these methods are untested, the Pomodoro Technique is supported by scientific research. The issue: most people who use the technique are either using the "timer" app on their phones or some other phone/computer-based Pomodoro application. When people do this, they are often distracted by their phone/computer, which they justify keeping near them since they need the timer to use the Pomodoro technique.

The technique is simple: Study for 25 minutes before taking a 5 minute break. Repeat for a total of four times before taking a longer ~45 minute break. This has been found to lower long-term fatigue and help students study more effectively.

The biggest benefit of building a physical Pomodoro timer is that it creates a clear boundary between “study mode” and everything else. When you rely on your phone, you’re always one swipe away from messages, social media, or another distraction disguised as “productive procrastination.” By contrast, a dedicated device forces separation. The moment you press the button and the first LED lights up, you’ve committed to a focused session with zero digital noise. That physical ritual alone can reduce the mental friction that normally comes with getting started.

That's why I created the arduino Pomodoro Technique Timer. All you have to do is hit the button and the cycle starts by lighting up the first LED. After 25 minutes, the light shuts off, signaling a 5 minute break. This is considered the first complete "Pomodoro". Next, the first two lights turn on together for 25 minutes, followed by another 5 minute break where all lights are off. This cycle repeats for the 3rd and 4th lights. Finally, once the final Pomodoro is complete, the final light (which should be a different color) turns on for 45 minutes to indicate the "long break". To restart the cycle, press the button again.

Supplies

There are a couple of separate components to this project.


For the Pomodoro Timer itself, you will need:

  1. An arduino kit that includes an perfboard, a breadboard, a cord to connect your computer to the arduino, a button, 5 LEDs, wires, a 10kΩ resistor, and 5 220Ω resistors
  2. The code attached below (pomodoro_timer.ino)
  3. An application that allows you to run arduino
  4. Personally, I used the Vilros arduino kit.


For the box, you will need:

  1. The files attached to this step (both the lid and the main box)
  2. 3D printer
  3. Filament: PLA recommended
  4. Slicing software (I use bamboo)

Step 1: Assemble the Arduino

Using the diagram attached above, assemble your arduino and breadboard.

Before wiring everything together, it helps to know what each component does. The Arduino acts as the “brain” of the timer, controlling the LEDs, button, and timing sequence. The breadboard lets you prototype safely, while the perfboard gives you a permanent, stable place to solder everything once the circuit works. The 10kΩ resistor ensures the button reads cleanly by preventing “floating” signals, and the 220Ω resistors protect the LEDs by limiting current so they don’t burn out.

Before you follow the wiring diagram, group your components neatly and group them by function. This makes the entire setup easier.

  1. If you are unfamiliar with arduino or have any questions, submit the diagram to Claude and it will give further instructions.


Step 2: Connect the Code to the Arduino

  1. Download the code attached to this step
  2. Open the code in the program that you use to run your arduino
  3. Connect the Arduino to your computer with the USB cable. The board should power up (LED labeled ON or L) and the power LED should light
  4. Reminder: Make sure you select your board on the software

Step 3: Test the Pomodoro Timer

Now, you should have a functioning Pomodoro timer. It's time to test.


  1. You should see "Pomodoro Timer Ready" in the console of your program.
  2. Try hitting the button and making sure that everything works.


Before sealing everything inside the 3D-printed case, it’s important to thoroughly test the timer on your desk. Start by checking each LED one at a time. Press the button, make sure the correct light turns on, and verify that the timing matches the expected 25-minute and 5-minute cycles. If something doesn’t behave correctly, it’s almost always a wiring issue rather than a code issue. A loose ground wire, a reversed LED, or a resistor placed in the wrong row can cause the entire sequence to misfire. Fixing these problems while the circuit is exposed is far easier than troubleshooting once it’s inside the enclosure.

You should also gently wiggle wires to make sure nothing disconnects under light movement. A little extra testing up front saves you from having to reopen the case later.

Step 4: Print the Main Case

  1. Download the file attached to this step (also can be found at the supplies step)
  2. Open your slicer
  3. Import the file
  4. Set print settings (the correct printer) (note: no supports needed)
  5. Set infill to anywhere between 15-50%
  6. Slice
  7. Export the file
  8. Print & Wait

Step 5: Print the Lid

The process for printing the lid is identical to the process for printing the main case:

  1. Download the file attached to this step (also can be found at the supplies step)
  2. Open your slicer
  3. Import the file
  4. Set print settings (the correct printer) (note: no supports needed)
  5. Set infill to anywhere between 15-50%
  6. Slice
  7. Export the file
  8. Print & Wait

Step 6: Connecting the Parts

  1. Put your arduino kit in the box
  2. Connect your computer and your arduino kit using the hole in the side of the box
  3. Attach the lid to the main box using either tape (temporary) or hot glue


Great work! You've done it.

Step 7: Use & Reflect

Congrats! You can now study distraction-free using a scientificly-proven productivity method. Just plug in the device, let you computer go to sleep, and hit the button.


This project has multiple components, and even a tiny mistake can mess up your arduino circuit. Attention to detail is important. If you run into any issue, I encourage the use of Claude to ask questions. Personally, I learned a lot about practical design, electricity, and programming with AI assistance from this project.


Finally, building a custom enclosure with a 3D printer lets you personalize the project. You can choose the shape, the color, and even the layout of the LEDs. If you want something rugged or decorative, you can scale the design or change the filament color. This flexibility is something you’ll never get from a store-bought timer. You’re creating a tool to maximize your productivity in the exact way that you want to.

You can easily go into the code to adjust the work/break timers however you would like.


Enjoy!