Introduction: Workout Routine Timer

About: Lifelong technology geek

‘Eat healthy, Stay fit, and Don’t sit still all day.’ Good advice, eh. Well, here’s an idea to help with Two of these.


I do sit too much. I’ve made some desktop clocks that get me up every hour, but a little more is always better. So, if it’s broke, fix it and if it’s not, break it and make it better!

I recently got an 8x32 LED Matrix panel and it’s perfect for a readout that I can see across the room. Hmm, sounds like a recipe for an idea. That idea is too make a routine trainer that will display short interval counts repeatedly with a rest period in between. Basically, do “something” for a minute or two, rest for some seconds and then do “something else”. Repeat for a 20-30 minute workout. If it sounds like a good idea, keep reading.

Step 1: Parts and Pieces

Not a lot is required for the project, that’s a plus.


Arduino Mega

8x32 LED Matrix

2.8” TFT

RTC Clock

Buck converter

12v Power supply

Plexiglass sheet

Parchment paper (or other translucent sheet/coating)

(2) Power barrels - for the 12v IN and for Mega. The TFT covers the Vin so I chose to put the power into the 5v USB. (Note: Normally I would use the 12v input, but the screen I used had an issue with 12v so I rerouted the power to the Mega through the USB input.)

Step 2: Objectives and Menus

An idea is one thing, but planning it out and making it so it’s really useful is the goal. I had some ideas and here’s what I think it should do, sorted by must have and nice to have.


Things that a trainer must do are:

Provide a consistent timed set of routines to perform.

Provide a rest period between intervals.

As an alternative, provide a timer for duration exercises like treadmill or cycling

Be readable from a distance, hanging on a wall or on a shelf.

Be flexible in providing number of routines, length of routine and rest durations.

Be able to easily distinguish work routines from rest periods.

Be able to adjust the time of the RTC without the Arduino IDE.

Easy to use.

Things to make it friendlier:

Clock with date when not in use - on the TFT, not on LED panel though.

Visible touch feedback - TFT’s are not always the easiest to deal with.

Display the number of routines completed.

Display information on both the panel and TFT.

Give some activity suggestions for each routine during the breaks.

Ability to make aesthetic adjustments.

Easy to use.

It sounds doable, now to be able to use it, the menus needed are:

Home screen - clock, calendar, sub menu buttons

Routine options screen - # of routines, routine duration, rest period duration

Routine active - duration countdown, routine count, activity suggestions

Timer - simple digital stopwatch that counts up to an hour

Time adjust screen - Hour/Min Up and Dn

Real time aesthetics changes for… a growing list

Step 3: Putting It All Together

Electronics - The nice part about the project is that only a few components are needed.
Attach the TFT to the Mega in it’s GPIO slots

Run 5v,Gnd,SCL,SDA for the RTC from the Mega

Run 5v,Gnd,data for the LED panel - power from buck, data to (1) GPIO on the Mega Bring in 12v and split it between the Mega and the Buck (set to 5v)

As a wiring note, the LED Panel has a (3) power lines. A pigtail IN (5v,Gnd,data), a center power line (5v,Gnd) and a pigtail OUT (5v,Gnd,Data). For my use, with only a few LEDs running at any time, I only used the pigtail IN. If more pixels are used (especially bright white) on this panel, you can also hook up the center connections to supplement the IN. If needed, a higher amp (4-5A maybe) could be used as well.

As far as most projects go, this one is pretty simple and straightforward.

Programming - For me this took some time. Display screens, touch points, timing. But it’s all come together and I like the results. Below, I included a short video (about 2 min) of it working before I made the case. Well worth the challenges.

Case - Building a framework to mount the unit in isn’t too bad and the possibilities are endless. I decided on a simple box case from some old walnut panels I had around the workshop. I Just mounted the LED panel on the front and created a 3D frame to make the TFT readable and accessible on top.

I attached the LED panel to the front of the case with a small panel behind it to raise it to match a frame used to mount the clear cover. When the LED panel is bare, the readout is really hard to see so I placed a piece of parchment paper between it and the clear plexiglass to defuse the readout and it works quite well.

Step 4: First Demo

To see it in action, here is a short video of it working before I started the case as I was doing its final testing (the link is the same as above in case it doesn't load).

Step 5: Final Product - Time to Workout!

Finally done! I can easily read it from across the room and the suggestions for “what’s next” are even more useful than I thought. Using the rest period to see what to do next and be ready to go right away was the way to go.


Thank you for your interest and Happy Tinkering! Now go make something cool!