remix logo

Hacker Remix

Show HN: Physical Pomodoro Timer with ESP32 and e-paper screen

315 points by rukenshia 3 months ago | 68 comments

teddyh 3 months ago

ibizaman 3 months 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.

ISL 3 months 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.

jiehong 3 months ago

Indeed.

I tend to like quiet visual timers, though.

Something like:

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

javajosh 3 months 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

jfim 3 months 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.

cwmoore 3 months 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.

loloquwowndueo 3 months ago

But then you have to glance at the thing every few minutes to ensure it didn’t run out

j45 3 months ago

It builds muscle memory over time.

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

TechDebtDevin 3 months ago

Watches that are already on most people's wrist work great too!

Procrastes 3 months 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.

spookie 3 months 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.

maccard 3 months 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.

TechDebtDevin 3 months ago

Probably just demographics. I live in a mountainous city that's very outdoorsy and athletic so everyone has a garmin/apple watch.

kaonwarb 3 months 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.

hiddencost 3 months ago

It's a joke. Pomodoro means tomato.

SamBam 3 months 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.

dullcrisp 3 months ago

I’m pretty sure that’s the origin of the term

wrycoder 3 months 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...

layer8 3 months 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

sinuhe69 3 months 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.

neuah 3 months ago

Exactly what i thought of as well. That's what i always used to use.

latexr 3 months 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

stavros 3 months ago

Correction: "pomodoro" means "tomato".

latexr 3 months ago

Thank you for the correction. It was a typo, but it’s unfortunately too late to edit the post.

stavros 3 months 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.

gbraad 3 months ago

Simple and tactile; a user interface anyone understands

sambroner 3 months 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

btbuildem 3 months 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.

rukenshia 3 months 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)

CWIZO 3 months ago

If you put the knob in a different parts studio then you'd probably have a lot less lag.

rukenshia 3 months ago

will give that a try next time, thank you!

gorgoiler 3 months 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.

knowknow 3 months 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

rukenshia 3 months ago

Oh that looks very cool! I spent some time researching when I started but didn’t come across this. Thanks!

fredzel 3 months 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...

rukenshia 3 months 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.

rambambram 3 months 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.

rukenshia 3 months 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.

rambambram 3 months 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.

rukenshia 3 months ago

Absolutely no offense taken! I knew I was overengineering the hell out of this when I started it :)

pimlottc 3 months ago

It would help if the intro section mentioned the added features so the reader would understand why a custom device was necessary.

atemerev 3 months 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.

rlupi 3 months 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...

pedalpete 3 months 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.

chungus 3 months ago

Absolutely love it. Inspires me to think about porting my own productivity tools to an IRL device.

thunder-blue-3 3 months 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

dexterdog 3 months 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.

rukenshia 3 months 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.

egypturnash 3 months 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.

ifellover 3 months 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.

jpcom 3 months 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.

ozim 3 months 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...

tonymet 3 months ago

would it need to be distinguishable from the general term (tomato)?

rukenshia 3 months ago

thanks for that, i'll update references.

hinkley 3 months ago

Really??

Time to change some code.

jjice 3 months 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.

mavamaarten 3 months 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.

jfim 3 months 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...

hinkley 3 months ago

Where are we at on transflective lcd? I saw a decent demo a while back but I cannot recall the brand.

dartharva 3 months ago

GPLv3-licensed GUI Pomodoro app for Linux, for anyone who needs it: https://gitlab.gnome.org/World/Solanum/

jrockway 3 months 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.

johntopia 3 months ago

Neat project!

bloopernova 3 months 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.

desertmonad 3 months 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!

3 months ago

vram22 3 months ago

Anyone made a cool software Pomodoro or other time-related app with interesting variations?

3 months ago

13_9_7_7_5_18 3 months ago

[dead]

gregwebs 3 months ago

I use this timer which has the advantage of being portable: https://gymboss.com/

timetc 3 months 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 :')