The sheer number of Olympic events is staggering (46!). How do you keep track of them all? The MacroPad is the perfect organizer for checking in on each sport and scrolling through the different Olympics channels. 


In this project you'll be able to (from a browser):

  • View live and past Olympic events from 6 different channels/sources
  • Check the schedules and results of all 46 Olympic events (individually and at a glance)
  • View the medal count by country in real time
  • Switch between tabs of all the channels, results, schedules etc.
  • Navigate up and down pages
  • Close tabs

All with a couple of clickity clackity keyboard clicks on an Adafruit MacroPad!

What's a MacroPad?

It's a speedy little microcontroller with lots of GPIO pins and a 64 times more RAM than the Apollo Guidance Computer. The MacroPad can be powered by either CircuitPython or Arduino - complete with 12 buttons, an OLED display, a speaker, and a rotary encoder. Read about it here if you'd like more details.

For the scope of this guide, we're going to focus on the application of the MacroPad as a hotkeys shortcut to make your Olympic viewing experience a 10 out of 10. This project is based on a tutorial called MACROPAD Hotkeys which shows you how to turn your MacroPad into a keyboard shortcut device for your computer. Please read through that guide before continuing here.


You can buy a kit with all the parts with Kailh Red keys and clear keycaps or build your own custom configuration:

Strap yourself in, we're launching in T-minus 10 seconds...Destination? A new Class M planet called MACROPAD! M here stands for Microcontroller because this 3x4 keyboard...
Out of Stock

- or -

Strap yourself in, we're launching in T-minus 10 seconds...Destination? A new Class M planet called MACROPAD! M here, stands for Microcontroller because this 3x4 keyboard...
Out of Stock
Dress up your Adafruit Macropad with PaintYourDragon's fabulous decorative silkscreen enclosure and hardware kit. You get the two custom PCBs that are cut to act as a protective...
In Stock
For crafting your very own custom keyboard, these Kailh mechanical key switches are deeee-luxe!Come in a pack of 10 switches, plenty to make a...
Out of Stock
Here is a 12 pack of Clear DSA keycaps for your next mechanical keyboard or 
In Stock
Get ready to clacky to your heart's content. Here is a 10 pack of translucent keycaps for your next mechanical keyboard or
In Stock

As stated earlier, this project is based off the MACROPAD Hotkeys guide. Once you have read through that guide you are ready to add the files from this guide.

# MACROPAD Olympic Hotkeys main page
# pylint: disable=line-too-long

from adafruit_hid.keycode import Keycode # REQUIRED if using Keycode.* values

app = {                # REQUIRED dict, must be named 'app'
    'name' : 'Olympics Home', # Application name
    'macros' : [       # List of button macros...
        # 1st row ----------
        (0x004000, '< Tab', [Keycode.CONTROL, Keycode.SHIFT, Keycode.TAB]),
        (0x004000, 'Tab >', [Keycode.CONTROL, Keycode.TAB]),
        (0x400000, 'Up', [Keycode.SHIFT, ' ']),      # Scroll up
        # 2nd row ----------
        # Full schedule in new tab
        (0x3F3F3F, 'Sched', [Keycode.COMMAND, 't', -Keycode.COMMAND,
        # Medal standings in new tab
        (0x404000 , 'Medals', [Keycode.COMMAND, 't', -Keycode.COMMAND,
        (0x400000, 'Down', ' '),     # Scroll down
        # 3rd row ----------
        # Peacock streaming service Olympics home in new tab
        (0x000040, 'PC', [Keycode.COMMAND, 't', -Keycode.COMMAND,
        # NBC channel in new tab
        (0x000040, 'NBC', [Keycode.COMMAND, 't', -Keycode.COMMAND,
        # Olympics youtube channel in new tab
        (0x000040 , 'YT', [Keycode.COMMAND, 't', -Keycode.COMMAND,
        # 4th row ----------
        # CNBC in new tab
        (0x000040, 'CNBC', [Keycode.COMMAND, 't', -Keycode.COMMAND,
        # USA in new tab
        (0x000040, 'USA', [Keycode.COMMAND, 't', -Keycode.COMMAND,
        # NBCSN in new tab
        (0x000040, 'NBCSN', [Keycode.COMMAND, 't', -Keycode.COMMAND,
        # Encoder button ---
        (0x000000, '', [Keycode.COMMAND, 'w']) # Close window/tab

Download the entire project code from above and save the specified files in your macros folder on your CIRCUITPY drive. 

Make sure to delete any other unwanted files in this folder. The macros folder on your CIRCUITPY drive should look like this.

Mac or Windows?

There are two folders of macros code in this project. One for Mac users and one for Windows users.

When you download the project bundle drag only the files for your operating system into macros folder on your CIRCUITPY drive.

Once you have the code running, it's time to take it on the field and put it into action!


You are welcome to use any browser you would like with the project. Make sure you have one open before pressing keys.


  • Tap on any key that's associated with a website (Sched, Medals, NBC, etc.), and that site will open up in a new tab on your browser
  • Close any tab by pressing down on the rotary encoder
  • Navigate between tabs by tapping the Tab keys
  • Navigate up and down web pages by tapping the up and down keys.
  • Scroll through the different macros pages to view all different sports and go back home by turning the rotary encoder

Accessing the various channels

There are 6 websites/channels with various live and past Olympic events in this project:

You will have to sign into each service before being able to view that channel's content. For all the live only channels (NBC, CNBC, NBCSN, and USA) you will only have to sign in once to the USA website as all these channels can be accessed through USA.

Going Further

Now is your chance to edit, adapt and change the macros code to however you'd like! Find another channel? Or just wanna have a Netflix button for good measure? You can add it! If you got this far, you earned a gold medal no matter what :)

This guide was first published on Jul 27, 2021. It was last updated on 2021-07-27 17:24:53 -0400.