Timers developed so far
So far I've built v0.1 and v0.2 of Pomodoro Timers (described here (v0.1) and here (v0.2)). Version 0.2 is pretty good (I've been using it every day for the last 3 years), but now I want to develop something that other people can use (which means the device has to have a case and built-in battery with a charger).
REQUIREMENTS SPECIFICATION
Outputs
LED bar – shows how much time is left
Status RGB LED (red – work state, green – break state)
Buzzer – beeps indicate time change (and possibly low battery?)
Inputs
Push button – to pause/resume/reset the timer
Bistable switch (slider) – turn the device on and off (cuts the power)
Micro-USB type-B receptacle – used to charge the battery
Light sensor - enable adaptation to ambient light
Mechanical
The timer should be inside a case (probably 3D-printed). Form factor can be similar to current Pomodoro timer.
Approximate outer case dimensions:
width: 70mm
height: 50mm
depth: 15mm
The case should have foldable support on the back side, so that when the support is extended, the device is at around 45deg angle to the desk. Support should have some kind of protruding element that enables the user to easily extend the support. When support is retracted, it should be flush with the back of the case.
Battery and charging
The device should have 20 hours work time (around 2 work days).
Battery should be charged via micro USB type-B receptacle.
When charging, current battery charge should be shown on the LED bar (low intensity).
Power switch
The device should be turned on via bistable switch (slider on the left side).
Ideally, current consumption with switch in OFF position should be 0uA.
Ideally, charging should be possible with switch in OFF position (+ showing charge on LED bar). When USB cable is unplugged, the device turns itself off again.
If power switch is in ON position and USB cable is plugged, then device is charging, but operates as normal (pomodoro timer function).
If power switch is in OFF position and USB cable is plugged, then device is charging and showing current battery charge (no pomodoro timer function).
Work cycle
Pomodoro states: WORK, BREAK.
Timer states: RUNNING, PAUSED.
When the device is powered up, it enters WORK PAUSED state – LED bar is full and status LED is blinking in red.
LED bar ‘progress’ should be proportional to how much time is left in current state.
Short button press changes PAUSED state to RUNNING and RUNNING state to PAUSED.
Status LED color shows current Pomodoro state (WORK – red, BREAK – green) and timer state by blinking (solid – RUNNING, blinking – PAUSED).
Long button press resets the device into WORK PAUSED state (with full time (25min)).
Ambient light adaptation
LEDs brightness should be automatically adjusted to ambient light. In bright ambient light the LEDs should produce more light. In dark room, the LEDs brightness should be lowered.
Low battery alarm
The device should inform the user in some way that the battery is running low. If battery charge is below certain threshold (e.g. 10%), the device should go into low power mode – one red LED blinking with very low light intensity. When battery charge is really low (e.g. 5%), the device should power itself off.