Pomodoro r2 – Update 1

Today, I did some research on my Pomodoro revision 2 specifications, and have come to some valuable conclusions. The main one being that my idea to control the brightness of all the LEDs via PWM, sadly, won’t work. Apparently, to use PWM with timer interrupts on an AVR, you need to use dedicated output pins to do so. When exploring the possible μCs that I could use to rework the Pomodoro timer, I settled on the ATtiny84. That μC has just enough pins, belongs to the AVR family, so my program will need minimal adjustment, and I have a fairly good idea on how to downclock it to save power. However, it only has four possible pins to use for PWM, as you can see below.

A schematic showing the pinouts of the ATtiny 24/44/84 family of microcontrollers. Each pin has an overview of all its functions next to it.
Figure 1: The pin-out schematic for the ATtiny84

Now, to be fair, I don’t even know exactly if all four can be used equally for single PWM signals, or if they need do be used in pairs. Regardless, even if they could all be used, that would still leave me one short even if I just wanted to adjust only the timing LEDs. So, easily said, I’ll scrap that off my list; it was an optional feature in any case. That makes for the second feature to be scrapped (I already concluded that the LCD screen would raise my voltage requirements).

I’ve also reconsidered my choice of the coin cell battery, opting instead for two rechargeable batteries. Firstly, I want to move towards more rechargeable power in any case (sustainability is important to me), and this offers me an easy way to do that without immediately having to learn about USB charging in a project. While I want to learn about that, it seems a little overkill for this project. Plus, I figure that including the battery holder on the back of the board somehow may actually provide it with something of a stand.

My first experiments with the volume control for the beeper were successful, but not particularly satisfying. Using a potentiometer, I could adjust the volume; however, it took so little resistance for the beeper to mute, that most of the potentiometer was wasted. I’ll have to test out a range of resistance values to see what makes a relevant value of potentiometer to use. If I can’t find a satisfactory value, I may also just use a switch to make a mute button. I mean, it’s either there to attract your attention, or it isn’t, right?

That leads to the following update to the feature list:

  • Include a 3v coin cell battery; and
  • Include 2 1.5v rechargeable batteries; and
  • Rewrite the program to run off a type of ATtiny an ATtiny84; and
  • Rework the program to use timer interrupts.
  • Change the LEDs to a single LCD screen; and
  • Add a volume control for the beeper; and
  • Add a brightness control for the lights.

Leave a Reply

Your email address will not be published. Required fields are marked *