A Hardware Pomodoro Timer Virtual Pet

Similar projects worth following
Pomo is a cute little buddy on your desk to help motivate you to work hard in concentrated bursts of productivity with small breaks in between. Feed Pomo by completing a set of timed work legs in a row. Give him food during downtime. Keep up a configurable goal rate of work for Pomo to keep him healthy.

Don't worry about tracking a clock; Pomo will let you know when it is time to take a break, suggest an activity, and let you know when to get back started. The only thing you need to do is press and hold the buttons to let Pomo know you are ready.


Like many, I had to work remotely starting with the pandemic, and had difficulty saying focused. I turned to Pomodoro, but it felt artificial and self-imposed. Pomodachi hopes to solve that in a few ways.

  • Make it fun: Pomodachi should give a fun little way to flavor and motivate productive time without being overly gamified.
  • Make it low impact: Pomodoro is about inducing flow, and the awareness of the state of timers can be a distraction. Pomo abstracts away the need to know the exact state of your timers during work time, letting you focus on the present.
  • Make it hackable: I'm learning a lot of stuff myself in the process of making this, so I picked parts and make choices that hopefully make the project accessible to any re-implementers.

User Experience (GIFS OF USE ON GITHUB)
On boot we see Pomo, a small clock in the bottom, and a food count at the top. Press either button alone to feed Pomo.

When you run out of food, Pomo will need to go exploring for new food. Press and hold both buttons down to start a Pomodoro session, Pomo will leave to search for food until break time where Pomo will return with a suggested break activity. 

Press either button to start the break, and then again when the break ends to start the next leg of the Pomodoro and so on until all legs are completed to get the session reward.

Based on a configurable daily eating rate, Pomo will need food to survive. Fall behind your goals and low on food? If Pomo is very hungry, it will feed a multiplier to restore health so you will always be able to recover from dips in productivity.

TIP: If the key buttons are lit up, holding both down will move you to the next phase.

* Code is by droxpopuli under the MIT Licence.  
* Runtime and Library is by Adafruit under the MIT Licence.  
* Art and Audio is by droxpopuli, under CC BY 4.0.  
* Enclosure is a modification of the PyPortal Retro Cases from Adafruit, edits  by droxpopuli, both under CC BY 4.0.


* Persistent Storage to hold state between boots.
* Total Refactor out of this Prototype/Proof of Concept Code
* Implement a "first boot" to allow time setting from the main file itself.

Ideas Going Forward
* Setting Time and other settings in runtime. Integrate with first boot.
* Increase Tactile Response of setting the timer with a haptic motor.
* Portable Enclosure
* Implement preferred work times where Pomo reminds the user to start a set.
* Create more virtual pet style features such as development, and growth.
* More Virtual Pet interactions (make use of the accelerometer, the touch analog connections?)

As of now all configuration is a set of constants at the top of the python file but configurable is:...

Read more »

  • Bill of Materials

    droxpopuli07/19/2021 at 02:51 0 comments

    As of this Log this is the Current Bill of Materials:

    * 1x HalloWing M4 Express - [$39.95 @ Adafruit](  

    The core of the build with the display, processing and connectivity all coming from here.

    * 1x Neokey 2 FeatherWing - [$4.50 @ Adafruit](
    * 1x Mini Oval 1W 8 OHM Speaker - [$1.95 @ Adafruit](
    * 2x Kaith Mechanical Keys, White - [$6.95 @ Adafruit](
    * 2x Translucent MX Keycaps - [$4.95 @ Adafruit](  

    A little speaker and a pair of tactile mechanical keyboard keys for I/O. Chosen as the Pomodoro technique requires a distinct sensory experience when setting a timer to work most effectively. The speaker allows for ~~annoying alarms~~ cute sounds (but not being used right now :( ).

    * 1x Adafruit PCF8523 Real Time Clock Assembled Breakout Board - [$4.95 @ Adafruit](
    * 1x CR1220 12mm Diameter - 3V Lithium Coin Cell Battery - [$0.95 @ Adafruit](  

    Virtual pets need an RTC to allow for accurate time telling, and tracking time differences between boots

    * 1x Enclosure, 3D printed from primarily [Hatchbox PLA, Beige]( and [eSun PLA+, Black]( for the face panel
    * 1x Convex Glass Lens with Edge - 40mm Diameter - [$5.95 @Adafruit](
    * 1x Clear Acrylic Lens Holder + Hardware Kit for HalloWing (we use the screws and spacers for mounting) - [$2.95 @ Adafruit](
    * Various Metric Screw hardware TBD  

    The enclosure gives this project all of its personality. The PyPortal-based case makes way for a convex glass lens that gives a nice retro effect.

    * 1x Micro-USB Cable - [$4.95 @ Adafruit](
    * Male-to-Female Jumpers (or other sufficient wiring) [$3.95 @ Adafruit](
    * 1x Lithium Ion Polymer Battery - 3.7v 500mAh - [$7.95 @ Adafruit](  

    Battery is optional but it adds weight and allows for off the desk use for short periods of time.

    Total: Around $125-175 depending on what you have on hand in terms of metric screws, filament, etc.

View project log

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates