Show HN: Physical Pomodoro Timer with ESP32 and e-paper screen
315 points
4 days ago
| 23 comments
| github.com
| HN
teddyh
4 days ago
[-]
reply
ibizaman
4 days ago
[-]
Do not underestimate the joy of using something beautiful and something one crafted. Those little bit of joy add up in the end.

At least, they matter to me. I “smartened” an energy meter with an ESP32 and a photoresistor that measures every blink from the energy meter. It’s really crude but it works and everytime I go in the garage, I see the little device blink and it brings me joy. It brings me determination to pursue the next project and motivates me to no end. I know I can build stuff and that I can succeed. I know I can progress in life.

It will probably sound stupid but that’s how I interpret the author’s project.

reply
ISL
4 days ago
[-]
Yep. Any timer will do.

If you find yourself programming an eInk display and a microchip in order to improve your procrastination, it is time to stop working on the project, get a physical timer, and work on the thing.

If you feel inclined to shop around for a timer before getting to work, I'll save you the search. These work great. https://www.amazon.com/dp/B07TLC9SFZ (but any timer will do).

Go do the thing. You're worth it.

reply
jiehong
4 days ago
[-]
Indeed.

I tend to like quiet visual timers, though.

Something like:

https://i5.walmartimages.com/asr/63f18bde-f179-4b8e-a32a-8e4...

reply
javajosh
3 days ago
[-]
That's a very unhelpful link if you want to buy or comparison shop. Online walmart sells over 300 different styles of countdown timer, including ones shaped like a tomato. Note that the Pomadoro Technique recommends a timer that ticks or makes some other unobtrusive sound to remind you that you are in focus mode, and to associate the sound with focus.

https://www.walmart.com/c/kp/countdown-timers

reply
jfim
4 days ago
[-]
They also sell physical hourglasses if you don't want to be interrupted by a distracting beeping thing once the timer is over, especially if the activity you're trying to start with a pomodoro requires concentration like coding.
reply
cwmoore
4 days ago
[-]
I attached an ESP32 and accelerometer to an hourglass for this purpose, calling back to https://pypi.org/project/gitime/ to log pomodoros on my dev machine.

If it was overengineered and trivially redundant, it was relatable and tactile.

reply
loloquwowndueo
4 days ago
[-]
But then you have to glance at the thing every few minutes to ensure it didn’t run out
reply
j45
4 days ago
[-]
It builds muscle memory over time.

Analysis paralysis and getting it perfect before beginning is the enemy of good.

reply
TechDebtDevin
4 days ago
[-]
Watches that are already on most people's wrist work great too!
reply
Procrastes
4 days ago
[-]
It's interesting that your experience is different, but in my region and social circles, I haven't seen anyone wear a watch in ten years or more, other than the occasional smart watch. That habit doesn't seem to last long, either. For people I know, watches have turned into fashion accessories for millionaires.
reply
spookie
4 days ago
[-]
> other than the occasional smart watch. That habit doesn't seem to last long, either.

I'm gonna go on a whim and say the habit doesn't last cause you cannot truly depend on them. My watch never leaves my wrist, it never fails me, it is just a "dumb" one.

reply
maccard
4 days ago
[-]
I wear a watch. Nothing fancy, but I do have a few of them (and none worth more than 2-£300.) it’s about the only accessory I wear so it’s nice to have some variety. My day to day is a smart watch (and has been for a few years now). Lots of my circle is similar.
reply
TechDebtDevin
4 days ago
[-]
Probably just demographics. I live in a mountainous city that's very outdoorsy and athletic so everyone has a garmin/apple watch.
reply
kaonwarb
4 days ago
[-]
Of course that's an easier solution to the problem.

OP is quite clear in the writeup that this is a project for the sake of trying new tools to make something for a friend.

A fun hack need not be constrained by meeting a real market need. It can just be fun.

reply
hiddencost
4 days ago
[-]
It's a joke. Pomodoro means tomato.
reply
SamBam
4 days ago
[-]
But it's also not a joke.

Pomodoro timers are designed to increase productivity. But once of the things that many people who try to increase their productivity discover is that they sink so much time into these tools that they are less productive. Because the underlying procrastination isn't solved, and these tools are a wonderful outlet for procrastination because it feels productive.

That may indeed not be OP's problem, but anyone looking at this saying "I need to be more productive, I should make one of these" would be better off with the tomato.

reply
dullcrisp
4 days ago
[-]
I’m pretty sure that’s the origin of the term
reply
wrycoder
3 days ago
[-]
LOL, read the one star reviews [0]. The problem with the mechanical ones is they are shoddy these days and can't be depended on. It seems no one knows how to make a high quality mechanical timer any more.

[0] https://www.amazon.com/product-reviews/B07H59ZL1L/ref=acr_se...

reply
layer8
4 days ago
[-]
If you can stand the ticking noise. ;)

Personally, I like the look of these disc-based ones: https://m.media-amazon.com/images/I/618WCXnyfXL._SL1500_.jpg

reply
sinuhe69
4 days ago
[-]
Yep. I think a timer with a physical dial is much more pleasant and easier to work with. I really hate things with knobs when there is nothing to click. A talking/voice controlled pomodoro is also a very nice idea for a ESP32.
reply
neuah
4 days ago
[-]
Exactly what i thought of as well. That's what i always used to use.
reply
latexr
4 days ago
[-]
That’s where the concept and name come from. “Pomodo” means “tomato” in Italian, and the author of the technique had one of those. The image comes from its Wikipedia page.

https://en.wikipedia.org/wiki/Pomodoro_Technique

reply
stavros
4 days ago
[-]
Correction: "pomodoro" means "tomato".
reply
latexr
4 days ago
[-]
Thank you for the correction. It was a typo, but it’s unfortunately too late to edit the post.
reply
stavros
4 days ago
[-]
No problem, I wasn't sure so I had to go looking, and I figured I'd post a correction for anyone who saw it.
reply
gbraad
3 days ago
[-]
Simple and tactile; a user interface anyone understands
reply
sambroner
4 days ago
[-]
I love this project! The UI feels so delightful and well thought out. I guess I found another weekend (multi-week?) activity.

If you're looking for hackathon projects, the E-ink ecosystem is well developed enough that they're pretty easy to program against and Claude/the AIs can pick up the API surface. Plus, people generally don't know what they're looking at -- you have to say "kindle-style screen" -- but people (me? but also guests) do seem to prefer having a e-ink screen in the living room over a backlit display because it's so much less intrusive.

FWIW, E-ink [0] AND pomdoros [1] are each a whole thing of mine.

[0] https://sambroner.com/posts/raspberry-pi-train

[1] https://sambroner.com/posts/personal-analytics-2024

reply
btbuildem
4 days ago
[-]
Always interested to see a "device" type of project on here -- they tend to be the most challenging, even if the goal is simple. The intersection of object design, electronics and code is a great playground.

I really like the choice of screen, and generally the considerations given (and explained in the readme!) for purpose and usability.

Couple of notes on the object design (and this is something I find very challenging, and spend a lot of time iterating on)

- What if the knob was on top of the device, wide and flat? you could center the screen, make the device smaller, and the physical action of turning it would be less likely to push the box around

- Chamfers and fillets go a long way to make a thing look polished -- it's a small detail, but the difference between a sharp edge and a rounded one somehow seems to matter a lot.

- Since the menu always has three options, what if instead of the knob there were three buttons on the top surface (like the "snooze" of an alarm clock)? Fewer interactions to fiddle with!

- You can get translucent filament, and it makes for very cool "light conduit" parts -- eg, the LED box could be solid, and it would look like something from an 80s dashboard. Alternately, you could print a border for the screen, and light that up instead, making for a more minimalist design.

(Sorry, I can't help it, I like thinking about these things)

How did you design the knob, OpenSCAD? The knurling is a nice touch, and looks like it was done in a programmatic way.

reply
rukenshia
4 days ago
[-]
great questions!

- knob: yeah, if I were to redesign that part I would move it to the top. I had a total schedule of 4 weeks for this project, and I didn't feel confident enough to rebuild (and print prototypes) of the case when I encountered the weight problem, but that would definitely make it better

- I did fillet/chamfer (almost) every edge I believe, I also printed the final case with fuzzy skin to make it feel higher quality

- The knob was originally meant to also allow you to change the timer, so having a dial felt like the right thing to do. Didn't turn out that way, so yes three buttons might be the better UX for the menus I ended up with (and would make the device smaller)

- The shroud actually started out as a way to prevent light leaking (and then I re-printed it in white so that it would boost the LED diffusion a bit together with the diffusion plastic film), but I like your idea of having an LED strip around the edges of the screen - didn't think of that!

- I am usually more of a Blender guy, so I followed a tutorial for doing knurling in onshape. The tool really doesn't like that much geometry and is laggy to work with, but feel free to check out the onshape file (linked in the README)

reply
CWIZO
4 days ago
[-]
If you put the knob in a different parts studio then you'd probably have a lot less lag.
reply
rukenshia
4 days ago
[-]
will give that a try next time, thank you!
reply
gorgoiler
4 days ago
[-]
Lasering in on the three different use cases (rather than just one generic 25min focus time) and also providing statistics are both cool additions. Nice.

It would be a good addition to your write up to mention, for the uninitiated, that pomodoro is of course named after a physical timer with a rotary encoder!

https://medium.com/@thejinxes/ditch-the-tomato-timer-d8bbf01...

If you ever get around to your goal of having a red e-ink screen, that would be a fun alternative to Pepe.

reply
knowknow
4 days ago
[-]
Cool project! I would recommend checking out the LVGL library [0], it’s an embedded graphics library to create UIs. It’s pretty simply to use and feels a bit like html. It’s a little bit harder to set up hardware communication, but once it’s set up, it streamlines making the UI and responding to input immensely.

[0] - https://github.com/lvgl/lvgl

reply
rukenshia
4 days ago
[-]
Oh that looks very cool! I spent some time researching when I started but didn’t come across this. Thanks!
reply
fredzel
4 days ago
[-]
Very interesting, I've been thinking on how to make physical pomodoro timer (or just display for one), but with circular screen and preferably no exact time remaining visible. as for me it is both distracting and anxiety-inducing. I've been using Visual Timer app [0] on my android phone and it has mostly been great, but putting phone away would obviously be better.

[0] https://play.google.com/store/apps/details?id=at.cwiesner.an...

reply
rukenshia
4 days ago
[-]
I actually bought a 4" round LCD for that reason, but ended up ditching it in favor for the e-paper display. I also stuck to just showing minutes (and in the last minute 10-second interval updates) so that it doesn't get too distracting.
reply
rambambram
4 days ago
[-]
The whole idea of pomodoro comes from a physical kitchen timer in the shape of... you guessed it, a pomodoro.

The best UX for the pomodoro technique can be found in this physical kitchen timer, if you'd ask me.

reply
rukenshia
4 days ago
[-]
I think functionally the Focus Dial (I linked to it in my README as well) is the much better „product“ and keeps exactly that UX compared to what I built. I had to face the reality of my own limited knowledge and skillset to build something like that (and wanted to do my own thing), plus I really ended up liking that epaper display.
reply
rambambram
4 days ago
[-]
I must admit I've been guilty of reacting on the title and not your post. I opened it, saw some machine and immediately thought of the kitchen timer in the shape of a pomodoro I have on my desk here. Which is so dead simple, that's why I like it.

Now that I read your post and look at the photos, I think you definitely add something with the division of certain tasks! Besides, it's always cool to build something yourself, so please don't read my previous comment as a snark about reinventing the wheel or something. I just really appreciate the simple mechanical kitchen timer recommended for the pomodoro technique.

reply
rukenshia
4 days ago
[-]
Absolutely no offense taken! I knew I was overengineering the hell out of this when I started it :)
reply
pimlottc
3 days ago
[-]
It would help if the intro section mentioned the added features so the reader would understand why a custom device was necessary.
reply
pedalpete
3 days ago
[-]
A guy I know tried to build a business around a physical pomodoro timer a while back - https://www.indiegogo.com/projects/timechi-your-smart-produc...

A useful addition for those using this in an office, and even for those who don't want to look at the screen for the remaining time, would be to have an LED (maybe as a nice lightbar) on the top of the device which shines red or green to suggest to those who can't see the screen (viewing from the other side) if you are available to be interrupted or not. You could even make it as a progressive light bar if you were so inclined.

reply
atemerev
4 days ago
[-]
I know assembling things is half the fun, but if you just want a universal ESP32 device with screen and buttons, I recommend M5stack. Cheap, programmable, uniquitous.
reply
rlupi
4 days ago
[-]
They are great. I have actually built my own pomodoro timer using a M5Stack Core2, maybe I should publish the code. It's a lot simpler than this one.

Update: here it is https://github.com/robertolupi/augmented-awareness/tree/main...

reply
chungus
4 days ago
[-]
Absolutely love it. Inspires me to think about porting my own productivity tools to an IRL device.
reply
thunder-blue-3
4 days ago
[-]
Every time I see something pertaining to a pomodoro timer, I'm reminded of interviewing with a YC founder in downtown san mateo in the early 2010s (he was working on websockets + slide deck/prezi-like tech iirc), and half our interview consisted of him hyping up this technique. The company went under within a year, and I could never respect this technique afterwards
reply
dexterdog
4 days ago
[-]
The technique isn't what caused his company to fail. A big part of it was likely his obsession with the technique. He also probably wasted massive amounts of time setting up his other tools instead of using them.
reply
rukenshia
4 days ago
[-]
honestly feeling this - I (or my friend who now has the device) don't really follow this religiously either. I think it's great when you have a lot of work to be done and feel a little overwhelmed. Getting down into this rhythm can help you chip away at it.
reply
egypturnash
4 days ago
[-]
understandable, it's a very useful way to trick yourself into getting shit done but it's also very possible to turn "making the perfect work tracker-timer-app" into a giant rabbit hole instead of just getting a cheap, goofy-looking kitchen timer and keeping some notes on paper.
reply
ifellover
4 days ago
[-]
I love this! I’ve been playing around with browser extensions to achieve this, and it always seems to get lost in the clutter of my busy workspace. A physical timer for this is a brilliant idea.

Another thing I’ve been contemplating is a “do not disturb” signpost on my desk when in focus time; might be that this timer could also double as that.

reply
jpcom
4 days ago
[-]
It's very beautiful, lovely work. Sleek and shiny, it's a device that begs for interaction, which is important in something that you'll be engaging with every 24-30 minutes. I would like a version of the display to show grains of sand falling through a digital hourglass.
reply
ozim
4 days ago
[-]
Not sure if author posted it here but don't forget use of "pomodoro" term is copyrighted.

https://www.pomodorotechnique.com/pomodoro-trademark-guideli...

reply
tonymet
4 days ago
[-]
would it need to be distinguishable from the general term (tomato)?
reply
rukenshia
4 days ago
[-]
thanks for that, i'll update references.
reply
hinkley
3 days ago
[-]
Really??

Time to change some code.

reply
jjice
4 days ago
[-]
$35 for the ePaper display seems pretty decent these days. Are these actually getting cheaper or am I off? I know it’s a patent riddled tech so that probably is the bit cost limiter, but I’ve been so excited seeing it more and more the last few years.
reply
jrockway
4 days ago
[-]
I made an e-ink clock once. The display documentation basically said you'd break the display if you refreshed more frequently than some long interval. I refreshed it every minute and indeed it broke after a year.
reply
mavamaarten
4 days ago
[-]
I'm so sad that ePaper displays are still so expensive. They'd be perfect for splashing some home assistant driven goodness around my house. But the tiny ones are too tiny for my taste, and the big ones too expensive.
reply
jfim
4 days ago
[-]
If you're not dead set on having eink, there's always the ESP 32 cheap yellow display board: https://makeradvisor.com/tools/cyd-cheap-yellow-display-esp3...
reply
hinkley
3 days ago
[-]
Where are we at on transflective lcd? I saw a decent demo a while back but I cannot recall the brand.
reply
dartharva
4 days ago
[-]
GPLv3-licensed GUI Pomodoro app for Linux, for anyone who needs it: https://gitlab.gnome.org/World/Solanum/
reply
johntopia
4 days ago
[-]
Neat project!
reply
bloopernova
4 days ago
[-]
This is fantastic and I want to build one. The UI is delightful, and as other people have said, the multiple modes for different tasks is a great idea.
reply
desertmonad
4 days ago
[-]
Awesome project :-)

I think the missing ingredient here is a way to export the tracked activities, but this looks like it was fun to make!

reply
vram22
4 days ago
[-]
Anyone made a cool software Pomodoro or other time-related app with interesting variations?
reply
gregwebs
4 days ago
[-]
I use this timer which has the advantage of being portable: https://gymboss.com/
reply
timetc
1 day ago
[-]
I was going to say that any watch would do, but having two timers for interval is pretty awesome. Maybe I need to add a "Work" activity on my Garmin :')
reply