---
title: "PadelX : Scoring System for Padel Games"
url: "https://maker.wiznet.io/sekolahrobot/contest/padelx--scoring-system-for-padel-games/"
markdown_url: "https://maker.wiznet.io/sekolahrobot/contest/padelx--scoring-system-for-padel-games/md"
type: "Contests"
author: "Sekolah Robot Indonesia"
author_url: "https://maker.wiznet.io/sekolahrobot/"
original_author: "Dhadhang SBW"
license: "Creative Commons Attribution-NonCommercial-ShareAlike CC BY-NC-SA version 4.0 or later (CC BY-NC-SA 4+)"
published: "2026-06-30"
language: "en"
tags: ["Arduino", "MQTT", "CircuitPython"]
hardware: ["WIZnet W55RP20-EVB-Pico", "Espressif ESP8266 ESP-12E", "SparkFun Big Red Dome Button", "Generic LED Matrix 32x8 MAX7219", "Raspberry Pi 4"]
likes: 1
views: 262
comments: 1
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# PadelX : Scoring System for Padel Games

> PadelX is a scoring system that updates scores in real-time and is stored in a database for accurate tracking and review.

Original author: Dhadhang SBW

## Components

- **WIZnet W55RP20-EVB-Pico** x 1 ([docs](https://wiznet.io/products/powered-by-raspberry-pi/w55rp20-evb-pico))
- **Espressif ESP8266 ESP-12E** x 1
- **SparkFun Big Red Dome Button** x 2 ([docs](http://cdn.sparkfun.com/datasheets/Components/General/WhackDome.zip))
- **Generic LED Matrix 32x8 MAX7219** x 1
- **Raspberry Pi 4** x 1 ([docs](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/))
- Software: **Arduino IDE** ([docs](https://www.arduino.cc/en/software))
- Software: **Eclipse Foundation Mosquitto** ([docs](https://mosquitto.org/))
- Software: **PostgreSQL**
- Software: **Python** ([docs](https://docs.python.org/3/))

## Documents and links

- [Github](https://github.com/sekolahrobot/padelX-wiznet) (code)

## Article

**Description**

PadelX is a smart digital scoring solution that transforms the way padel matches are managed. Players can update scores instantly using wireless controllers while a live scoreboard displays the current match status. Every match is securely stored in a cloud database, enabling statistics, history tracking, and performance analysis. Designed for padel clubs, tournaments, and training sessions, PadelX delivers a faster, more accurate, and professional scoring experience.

**System Architecture**

![](https://maker.wiznet.io/upload/ckeditor5/205724639%5F1782767608%2Ejpg)

PadelX consists of three interconnected systems that work together to provide real-time score updates, centralized data management, and live scoreboard visualization.

**System 1 – Score Input Controller**

System 1 serves as the score input controller used by players or referees to update match scores during a padel game. This system is built around a W55RP20-EVB-Pico microcontroller and two pushbuttons representing each team's score.

The W55RP20-EVB-Pico is connected to the local network via an Ethernet cable and communicates with a Wi-Fi router. Each time a button is pressed, the microcontroller publishes the updated score using the MQTT protocol. By utilizing Ethernet communication, the system provides a fast, reliable, and low-latency connection, ensuring that every score update is sent instantly to the server.

![](https://maker.wiznet.io/upload/ckeditor5/205724639%5F1782768346%2Ejpg)

**System 2 – Central Server**

System 2 acts as the central processing unit of the PadelX ecosystem. It is powered by a Raspberry Pi running PostgreSQL, an MQTT Broker (Mosquitto), and a Python-based graphical user interface (GUI).

The Raspberry Pi subscribes to MQTT messages sent from System 1, processes each score update, and stores all match information in a PostgreSQL database. A Python GUI provides a user-friendly interface for managing matches, displaying live scores, recording match history, and monitoring game progress in real-time.

![](https://maker.wiznet.io/upload/ckeditor5/205724639%5F1782777044%2Ejpg)

**System 3 – LED Matrix Scoreboard**

System 3 is a real-time digital scoreboard that displays the current match score to players and spectators. The system is built using an ESP8266 microcontroller and a P10 LED Matrix Display.

The ESP8266 is connected to a local Wi-Fi network and subscribes to an MQTT topic published by the server. Each time the score changes, the Raspberry Pi publishes the latest data, allowing the LED matrix display to update almost instantly. This architecture ensures that the displayed score is always in sync with the database and match management application.

![](https://maker.wiznet.io/upload/ckeditor5/205724639%5F1782770602%2Ejpg)

**PROCESS (Hardware and Software)Step 1. Prepare Raspberry pi as a Server**

- Install MQTT Mosquito

```plaintext
sudo apt install -y mosquitto mosquitto-clients
```

- Make Mosquito auto run when raspberry pi boots

```plaintext
sudo systemctl enable mosquitto.service
```

- Test Mosquitto

```plaintext
sudo systemctl status mosquitto
Subscirber : mosquitto_sub -h 192.168.0.3 -t "padel/#" -v
Publisher : mosquitto_pub -h 192.168.0.3 -t "padel/user2/score" -m "10"
```

- Install postgreeSQL

```plaintext
sudo apt update
sudo apt install postgresql postgresql-contrib -y
```

- enable postgreeSQL Auto run if booting server

```plaintext
sudo systemctl enable postgresql
sudo systemctl start postgresql
```

- create database gelangpadel

![](https://maker.wiznet.io/upload/ckeditor5/205724639%5F1782778721%2Ejpeg)

- Active Python MQTT Listener (file mqtt_to_postgres.py)

**Step 2. Make GUI Score Padel in Raspberry **

- Prepare 3 file .py (main.py, config.py, database.py)

![](https://maker.wiznet.io/upload/ckeditor5/205724639%5F1782780853%2Epng)

**Step 3. Wiring W55RP20-EVB-Pico**

Simple wiring W55RP20-EVB-Pico with 2 buttons and 2 resistor as pull-up, Button User 1 connect to pin 6 and Button User 2 Connect to pin 7

![](https://maker.wiznet.io/upload/ckeditor5/205724639%5F1782781173%2Ejpg)

**Step 4. Coding W55RP20-EVB-Pico**

Preparation Installing Raspberry Pi Pico/RP2040/RP2350 Boards Open Arduino, go to File -> Preferences -> Additional Boards Manager URLs:
[**https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json**](https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json)

![](https://maker.wiznet.io/upload/ckeditor5/205724639%5F1782781751%2Ejpg)

File Arduino Code ( wiznet_Lan_btn.ino), after upload program can check in serial monitor

![](https://maker.wiznet.io/upload/ckeditor5/205724639%5F1782782284%2Ejpg)

connected is mean W55RP20-EVB-Pico connect mqtt in server raspberry, USER1 +1 button user 1 is pressed, USER2 +1 button user 2 is pressed and in GUI Raspberry automatically to generate score user 1 is twice pressed and user 2 is one pressed, so score 2 vs 1

**Step 5. Wiring P10 Led Matrix**

Configurasi Pin P10 with esp8266 nodemcu

| DMD P10 | NODEMCU |
| --- | --- |
| A | D0 |
| B | D6 |
| CLK | D5 |
| SCK | D3 |
| R | D7 |
| NOE | D8 |
| GND | GND |

**Step 6. Coding P10 ESP8266**

Before code need library to support DMD porting in esp8266 nodemcu.

- [HJS589 Library](https://github.com/busel7/Arduino/tree/master/NodeMCU/JadwalSholat-P10-2Panel/libraries/HJS589)

- [ArduinoJson](https://github.com/bblanchon/ArduinoJson)

FIle Arduino (test_p10_scoringmqtt.ino)

concept this P10 is receive subscriber MQTT from the server, so p10 display always connect wifi and standby. every server have change number, server will Publish data

```plaintext
MQTT Publish: {'scoreA': 0, 'scoreB': 0}
MQTT Publish: {'scoreA': 0, 'scoreB': 1}
MQTT Publish: {'scoreA': 1, 'scoreB': 1}
```

so ESP8266 can Subscribe topic padel/score, and show in matrix display. The display can be adjusted according to your taste

![](https://maker.wiznet.io/upload/ckeditor5/205729962%5F1782804611%2Epng)

**Final Test padelX**

[Embedded media](https://www.youtube.com/embed/KWA1AM7ZRGs)

---

Source: https://maker.wiznet.io/sekolahrobot/contest/padelx--scoring-system-for-padel-games/
