---
title: "BoulderTimer: a countdown clock for bouldering"
description: "A Raspberry Pi shows a fullscreen countdown on a TV, with beeps and a spoken warning, and you control it from a phone."
date: 2026-04-24T12:47:00+02:00
lastmod: 2026-10-16T18:58:52+02:00
url: https://klimek.link/projects/bouldertimer/
author: "Marcin Klimek"
source: https://klimek.link/projects/bouldertimer/
---

# BoulderTimer: a countdown clock for bouldering

For bouldering sessions and local competitions you need a big clock everybody can see, and that's what **BoulderTimer** is for. A Raspberry Pi 3B+ draws a fullscreen countdown on any HDMI TV, and you start, pause and reset it from a browser on a phone or any other device in the same network.

It's the plain, cheap cousin of [Timeotron 3000](/projects/timeotron3000/), which times speed-climbing runs on an LED matrix.

## What I did

I wrote everything in Python, about 1,500 lines covering timer logic, display, audio and a web server.

The Pi runs Raspberry Pi OS Lite without a desktop, and pygame draws straight to the screen, which means there's no X11 to install or to break. A small Flask server passes commands from browsers to the clock. Its control page answers at `bz-clock.local`, so nobody at the gym has to type an IP address.

*Diagram: BoulderTimer: a phone sends commands, the Pi runs the clock and drives the TV and the sound*

Before the start you get three seconds of warmup with short beeps, then a long beep. The last three seconds of a round beep again, a long beep ends it, and a voice warns climbers when they have a minute left.

Sizes are computed from the real resolution of the screen, so the same code fits HD and 4K TVs. Once installed, the clock works offline. There's a script to set up a fresh Pi and another to copy new code to it and restart the clock.

Source: https://klimek.link/projects/bouldertimer/
