Robin Scheibler says he has always been interested in Atmel’s popular ATtiny85 microcontroller. Indeed, Scheibler describes the MCU as “minimalist, yet powerful,” making the silicon a very attractive platform for both gadgets and hacks.
Unsurprisingly, Scheibler is also interested various charlieplexing techniques, or the art of controlling multiple LEDs with as few pins as possible. Recently, he decided to combine both interests by building a custom timer for the Pomodoro technique – which aims to increase productivity by splitting time into slices of 25 minutes of work followed by a 5 minutes rest period.
“The technique proposes using a tomato shaped kitchen timer to keep track of time, but I designed and built my own,” he explained in a blog post. ”The ATtiny85, with its 5 GPIO pins available by default (sacrificing ISP yields an extra pin, but I didn’t want to go down that road), seemed like the perfect candidate.”
Aside from the ATtiny85 MCU (as TIMER1), key specs for Scheibler’s Pomodoro timer include a basic user interface (a single tactile switch), buzzer (driven by TIMER0 in PWM mode at 4 kHz, 50% duty cycle) and power (CR2032 lithium coin cell).
In addition, Scheibler assigned the three remaining GPIO pins to LEDs using charlieplexing – driving 6 LEDs using on three pins. On the software side, Scheibler says the code is completely interrupt driven.
“TIMER1 and its overflow interrupt are used to keep track of time during each state, [while] the tactile switch triggers an interrupt to wake up the AVR, or switch between states,” he added.
“Blue arrows are state switching triggered by a push on the button. Red arrows switching are caused by the timer expiration. The main states are black circles [and] the grey circles the transition states. It was important to add the BACKOFF state to debounce the tactile button because it triggered multiple interrupts.”
Interested in learning more Scheibler’s Atmel-powered Pomodoro timer? You can check out the project’s official page here.