Home

Awesome

Multiple Timers

This a simple circuitpython project that implements a set of 12 independent timers that can be configured as count up or down.

It is based on arduino and circuitpython files related to the ADABox019 kit with the MacroPad RS2040: MacroPad Overview <br> <br>

Some Images

Upon Boot with data.txt<br> <img src="./timer1.jpg" width="300">

Running 12 timers<br> <img src="./timer5.jpg" width="300">

Enter Setup<br> <img src="./timer2.jpg" width="300">

Number Timers<br> <img src="./timer3.jpg" width="300">

Faster Speed<br> <img src="./timer4.jpg" width="300"> <br> <br>

Usage

To configure the timers, press and hold the encoder knob (5-10 seconds) and follow the menu instructions, using the ecoder knob for input.

Once a number of count up/down timers, press the corresonding LED/key to start that timer. Subsequent key presses will pause/resume that timer. A long push of that key will cause that timer to reset to its original setting in a paused state.

Alternately, to start ALL timers press the encoder knob (1 second). Similarly, you can pause ALL timers by pressing the encoder knob again.

Count up timers will display a solid green led, and dim when paused. Count down timers will start as green and the color will vary with the percent of time remaining:

If data.txt is used, the Macropad will power up and show a number of timers ready to run.

Another "fun" feature is turning the encoder know while the timers are running. This will scale the clock speed by the number shown in the upper right. <br> <br>

How it Works

This was designed around the circuitpython Macropad libraries.

The first implementation was actually a command line version to design the basic application and test independent of the Arduino hardware. As the original version was tweaked to fix issues that appeared using the real hardware, a series of "phase" versions was started. (These can be found in the repo https://github.com/alpiepho/macropad/timers_cp).

Files:

Based on the latest implementation, the application consists of the following areas:

Like all Arduino applications, this follows the pattern of setup and loop forever. The main loop:

  1. checks buttons
  2. checks menu input
  3. updates timer data structures
  4. diplays those timer structures <br>
<br>

Learnings

<br>

Known Issues

<br> <br>

Progress List