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.
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).
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.
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.
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.
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.
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.
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.
- 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)
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!
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.
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.
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.
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.
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.
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.
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.
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.
I tend to like quiet visual timers, though.
Something like:
https://i5.walmartimages.com/asr/63f18bde-f179-4b8e-a32a-8e4...
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.
[0] https://www.amazon.com/product-reviews/B07H59ZL1L/ref=acr_se...
Personally, I like the look of these disc-based ones: https://m.media-amazon.com/images/I/618WCXnyfXL._SL1500_.jpg
https://en.wikipedia.org/wiki/Pomodoro_Technique
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
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.
- 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)
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.
[0] - https://github.com/lvgl/lvgl
[0] https://play.google.com/store/apps/details?id=at.cwiesner.an...
Deleted Comment
The best UX for the pomodoro technique can be found in this physical kitchen timer, if you'd ask me.
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.
Update: here it is https://github.com/robertolupi/augmented-awareness/tree/main...