padelscore — Marcador portátil para padel y tenis
Marcador de bolsillo para partidos de padel y tenis. PCB custom 33×38mm, display OLED, dos botones, batería LiPo. Construido en dos variantes de MCU (RP2040 standalone, nrf52840 con sync a la nube planeado) sobre la misma placa base intercambiable.
Problema
El padel es rápido: puntos, juegos, golden points, tiebreaks, indicador de saque. Cuando dos amigos juegan, lo más común es perder la cuenta del tanteo, no recordar si era 30-30 o 30-40, quién saca, o cómo van los sets. El móvil sirve, pero se llena de sudor, tarda en desbloquearse, y rompe el ritmo del partido.
Solución
Un dispositivo de bolsillo dedicado a contar puntos, juegos y sets para padel y tenis, elegir el saque, y mostrar un marcador global. Dos botones grandes controlan todo: pulsación corta añade punto, pulsación larga deshace, mantener ambos abre el marcador global. El OLED muestra el tanteo en curso más un indicador de saque. El modo de puntuación (Punto de Oro o Ventaja) se elige al arrancar. Cabe en la palma de la mano y aguanta un partido entero con una sola carga de la LiPo.
Logros clave
- PCB custom de 33×38mm diseñado en KiCad, soldado a mano
- Módulo de MCU apilable: RP2040 para standalone, XIAO nrf52840 para cloud-capable
- Display OLED SSD1306 0.96" I2C, dos botones táctiles, carga USB-C
- Cargador LiPo TP4056 + boost converter en la misma placa
- Firmware bare-metal en C/C++, modos Punto de Oro / Ventaja, tiebreak, indicador de saque
- Sistema de gestos con dos botones: corta, larga, mantener para deshacer, ambos para marcador global
El problema con el móvil
Juego a padel con regularidad, y después de un tiempo me pasaba siempre lo mismo: en el 30-30 (o el estado en que fuera) alguien perdía la cuenta y pasábamos un minuto reconstruyendo el tanteo. El móvil en teoría vale, pero en la práctica no quieres desbloquear, abrir app, y tapear el botón correcto mientras sudas y te preparas para sacar. Necesitábamos un dispositivo que hiciera una cosa bien y la hiciera al instante.
El dispositivo
La placa es de 33×38mm — cabe en el bolsillo, más pequeña de lo que tapa una bola de padel. El frontal lleva el OLED SSD1306 (0.96”, I2C) y dos botones táctiles grandes. La trasera lleva un cargador LiPo TP4056 y un boost converter, más un conector USB-C para cargar. El MCU es un módulo aparte que se enchufa en un footprint de la propia placa, que es la decisión de diseño que hizo posibles las dos variantes sin tener que redibujar nada.
Se construyeron dos variantes:
- v1, RP2040: el MCU más simple posible que puede llevar un display I2C y leer dos botones. Sin conectividad. Funciona como marcador standalone puro.
- v2, XIAO nrf52840: mismo formato, misma placa base, se cambia el módulo. Añade BLE y un camino hacia sync en la nube (MQTT era el plan original, luego BLE-a-móvil como alternativa de bajo consumo — ninguno se completó, ver abajo).
Cómo dos botones hacen todo
Al arrancar, el usuario elige un modo de puntuación: Punto de Oro (el estándar moderno del padel: a 40-40 el siguiente punto gana) o Ventajas (tenis clásico: deuce + punto de ventaja). La pantalla principal muestra el juego actual, el tanteo de sets, el indicador de saque (un pequeño triángulo junto al jugador que saca), y el modo activo.
Los gestos de los botones:
- Pulsación corta izquierda = punto para Team 1
- Pulsación corta derecha = punto para Team 2
- Mantener derecha 1 segundo = deshace el último punto (soltar para confirmar; el marcador vuelve al estado anterior)
- Mantener derecha 5 segundos = reset completo, vuelve al mismo modo de puntuación
- Mantener izquierda 1 segundo, luego pulsar corta para cambiar, luego derecha para confirmar = cambia el indicador de saque (el icono parpadea para señalizar el modo edición)
- Pulsar ambos a la vez = abre el marcador global (cuadrícula por set: J1 / J2 / J3 con los puntos de cada equipo)
Al final del partido la pantalla se bloquea con un tag “FINAL” y los botones dejan de responder — el dispositivo solo muestra el resultado. Aparece un tag “T!” en el indicador de modo cuando el juego actual es un tiebreak.
El prototipo en fotos
Los renders y el hardware real. Nada aquí es un render haciéndose pasar por un dispositivo real — son la placa base, el layout, y los dos prototipos soldados a mano.






Lo que funcionó y lo que no
El lado hardware funcionó: la PCB salió limpia, el OLED y los botones se comportan como se espera, el cargador LiPo hace su trabajo, el dispositivo arranca y cuenta de forma fiable. La separación entre placa base y módulo de MCU resultó ser una buena decisión — me dejó iterar la historia de conectividad (RP2040 → nrf52840) sin tener que redibujar el resto.
El sync a la nube no llegó. El plan era empujar el tanteo en curso a un móvil o a un backend para que alguien viendo el partido pudiera seguirlo en una segunda pantalla (útil en torneos). El RP2040 no tiene radio, el nrf52840 tiene BLE pero su presupuesto de energía con una LiPo pequeña es ajustado, y MQTT desde un dispositivo battery-powered sin chip WiFi requiere una radio extra. BLE-a-móvil es el camino más razonable y lo dejé planteado, pero nunca terminé el firmware. El dispositivo v2 está construido; la parte de nube no.
Qué haría distinto hoy
Mirando hacia atrás, tres cosas destacan:
- El modelo de dos botones funciona para dos jugadores, pero un tercer selector de rueda giratoria con forma de engranaje habría hecho la configuración trivial. Un encoder rotativo para el menú de settings, con la perilla en forma de engranaje que se gira para desplazarse y se pulsa para confirmar, habría eliminado todos los gestos de pulsación larga / mantener ambos botones y habría hecho el dispositivo autoexplicativo. Dos botones grandes para el tanteo en juego, una rueda giratoria para setup y selección de modo — una separación más limpia.
- El chip de carga LiPo es el sitio equivocado para ser ingenioso. Un módulo más simple (una placa USB LiPo charger off-the-shelf, con el boost converter integrado) me habría ahorrado una semana de debug.
- El sync a la nube debería haber sido BLE-a-móvil desde el día uno. MQTT directo desde el dispositivo era over-engineering para un proyecto hobby; una app de móvil que refleja el tanteo es suficiente para el caso de uso de segunda pantalla.
El hardware es real, el firmware corre, y el dispositivo está en mi bolsa de padel. La historia de la nube es lo que nunca cerré.