Bluetooth Table Tennis Scoreboard



Introduction: Bluetooth Table Tennis Scoreboard


My new project, the Table Tennis Scoreboard is dedicated for amateur sport`s fans and table tennis players. The Scoreboard is amazing enhancement for Table Tennis at home. Especially children like to play the games only in order "push" touch buttons. But even for adults there is big contribution. If game is interrupted, score is memorized, or serve side is memorized. Futhermore, the mistake in score counting during match is eliminated.

Scoreboard is applicable for other sports without time measuring, like Badminton, Volleyball and others. By simple software change, the maximum score count could be adopted to any values. Scoreboard with large digits 2.3 inch is mounted on visible place between players and indicate score in serves and games. Score counting is controlled by players, by touch sensors easy accessible. Each player winning the serve, touch button and score is changed in the value plus one.

Technical principle is completely new, including software. Scoreboard is communicated via Bluetooth to control boxes on playing table. MCU`s inside Scoreboard and inside Table unit are the same type, Arduino Nano. All buttons are touch sensors. They are easy to use, easy to connect and have a big advantage: debouncing is not needed. Scoreboard is mounted inside wooden frame, which could be finish to surface of other furniture at home. Front panel is made of glass, without any holes in it. The only manually driven component is power switch, accessible through hole in bottom part of frame.

Setting mode after switch on, allow to set:

  1. Number of the first win games in match, according agreement between players , preset is 3, options 4, 5, 6, 7, 8, 9
  2. The first serve for player A or player B
  3. Switch Side option, players can decide if side after each game would be changed or not
  4. Start game, leaving setting mode

Main features of The Scoreboard are:

  • Switch Side selected, change appropriate part of display according to player position side A/B
  • Rules are international Ping Rules
  • Main Display consist of 7-segments LEDs, size is 2.3 inch
  • Table unit contain 2 control boxes, each one easy accessible for each player
  • Control box contain one button UP, to add 1 to score, and one hidden button DOWN for correction.
  • Each winner serve button push is confirmed by sound
  • End of game and end of match is announced by different sound sequence
  • Final score remain displayed for 10 seconds at the end of match
  • End of match activates start of a new game by entering to setting mode


Please be very careful. In this project, inside the Scoreboard is used as power supply, high voltage.
If you are not familiar with a risk of touching main voltage, do not attempt this construction!


Scoreboard - main board:

  • IC1 MAX7219 Led Display driver, aliexpress
  • IC2, IC3 MAX394 Analog switch 2 x, aliexpress
  • U1 Arduino Nano, aliexpress
  • U2 HC-05 Wireless Bluetooth, aliexpress
  • Q1 - Q6, IRF540 N-Channel MOSFET, 6 x, ebay
  • R1 - R4, R9 Resistor 470, 5 x
  • R5 Resistor 1k
  • R6 Resistor 2k2
  • R7 Resistor 22k
  • R8 Resistor 33k
  • R10 - R15 Resistor 4k7 6 x
  • C1 Capacitor M1
  • C2 Capacitor 10M
  • J1, J2 jumpers 2 x
  • Connectors JST XH, aliexpress and pinhead connectors, aliexpress

Scoreboard - other parts:

  • 7-segments Led display 2.3 inch 6 x, ebay
  • 7-segments Led display 0.56 inch, ebay
  • Led 10mm, white 2 x, red, yellow
  • Touch sensor TTP223A (small version), 4 x aliexpress
  • Hi Link power adapter 230V/5V DC, 2 x, aliexpress
  • Power switch 230V/3A
  • Power cable with main plug
  • Thermistor F2, F3 72 degree C, 2 x
  • Varistor, aliexpress
  • Fuse F1 250mA slow, F4,F5 1A fast, 2 x
  • Capacitor 4700M, 2 x
  • Speaker 8 ohm, 6cm
  • Amplifier module LM386, aliexpress

Table unit and control boxes:

  • U1 HC-05 Wireless Bluetooth, aliexpress
  • U2 Arduino Nano, aliexpress
  • R1,R4 Resistor 1k, 2 x
  • R2 Resistor 2k2
  • R3 Resistor 22k
  • C1 Capacitor 47M
  • C2 Capacitor 470M
  • Touch sensors TTP223B (larger version) 4 x, aliexpress
  • Speaker 8 ohm, 6cm
  • Amplifier module LM386, aliexpress
  • Li-Ion Battery 18650
  • Toggle panel switc, ebay
  • Battery charger and holder Li-Ion, banggood
  • JP1.JP2 jumpers 2 x or double dipswitch
  • Connectors JST XH aliexpress
  • USB-C connector, aliexpress
  • Plastic box, aliexpress
  • Plastic box, ebay 2pc
  • 4 wire cable for connection Table unit to Control boxes for player A and B, about 3m

Some small parts were purchased locally, other parts are mainly from Aliexpress, ebay, Banggod and some were bought at LCSC, there is wide selection for good prices.

Step 1: Wiring Diagram - Scoreboard


Wiring diagram for the Scoreboard is on the picture. The Scoreboard itself consist of parts on main PCB and Other parts, which are not located on PCB due their specific location. Therefore all components are divided to two parts. Design of PCB was done in Eagle and fabrication of PCB was ordered at JLCPCB and it was done very cheap and with good quality.

There were used six large 7-segments led displays with common cathode for serve score inside game (4 digits in bottom row) and for counting games (2 digits in upper row). One small display with common cathode is used for setting number of games for match. Each segment for large display consist from more led diodes and required voltage should be higher than 5V. In our case it is 10V with ground in the middle. This power is connected on the right side of board. IC1 MAX7219 is driver for all displays (including small one) and IC2 and IC3 MAX 394 with MOSFET transistors Q1 to Q6 switch segments in proper time.

Data sheet for MAX components is here MAX7219 . Driver for 2.3 inch display is on page 12. Serial data are coming from Arduino to pin 1, DIN, clock to pin 13 CLK and data are transferred with pin 12 LOAD. Resistor on pin ISET adjust brightness of segments and its value should be selected according table in data sheet.

Arduino Nano control led driver and displays, all inputs with touch buttons and outputs with led diodes as indicators. Fortunately, number of all digital pins is sufficient. Arduino is connected to bluetooth module HC-05 via serial communication. During programming Arduino, module HC-05 serial communication should be disconnected and this is function of jumpers JP1 and JP2.

Bluetooth module HC-05 is working in Master mode and provide wireless connection to Slave module in the Table unit. By this communication are transmitted simple data from control boxes under playing table. They are signals for counting score up (down) from player A or B.

Arduino D5 output is fed to output connector and than to amplifier and speaker. Provide tones for input confirmation of touch buttons in control boxes and provide melodies at the end of game and match. Inputs D2, D3, D8, D9 are connected to control part of the Scoreboard, to competent touch switches. Outputs D6, D7 are linked to leds A and B, indicating which player serve. D4,D13 leds are placed on control part of the Scoreboard and lit, if device is in Setting Mode or Side Switch option is set.

Power supply connection diagram is on next picture. Consist of two modules adapters 230V AC to 5V DC, creating voltage +5V and -5V with common ground. 230V is transferred to modules through main switch and set of fuses. F2 and F3 are thermostats for about 72 degrees Celsius. This fuses are attached to each adapter module on top side. Varistor protect modules from over voltage.

Step 2: Wiring Diagram - Table Unit

Table Unit

connection is displayed on the picture. This unit is controlled again with MCU Arduino Nano. MCU is linked to Bluetooth module HC-05 in Slave mode via serial communication. Jumper JP1 and JP2 make easier programming mode. Resistor R1, R2, R3 adopt 5V to 3.3V, required by input HC-05. Both Bluetooth modules, Master and Slave must be preprogrammed to common communication parameters, through AT commands.

On the upper part of the picture, there are connectors to Control Boxes. Each control box contain two touch sensors. One of touch sensors is easy accessible on the front of box and is used for Up counting. The second one is hidden on back side of box and could be used in case of player`s mistake, for counting Down.

Arduino D9 output is fed to simple amplifier module with LM386. Components R4, C1 are reducing noise of the output of amplifier. I have tried some experiments on noise redaction and this solution is acceptable, but not the best. one. Output of amplifier is connected to small speaker.

The Table Unit is powered from Li-Ion battery, one cell 18560 with about 4000mAh. Battery is the only solution because the table for game is located somewhere in the middle of room and around the table could not lay cable.

Needed voltage is 5V and battery provide less voltage, therefore battery boost module with charger was used. I have found very nice holder for battery, which at the same time control battery charge, protect battery and boost voltage to 5V. Bottom side of module is on the next picture. This module is used in Eagle instead of symbol battery and battery charger on picture. I did not find in Eagle library more suitable symbol. As indicators of charging and switch on there are leds replacing original led on battery holder. These leds are mounted on Table Unit. There are three leds: Battery charge, Charge Done, Output voltage or Unit ON.

Step 3: Construction Scoreboard

Construction Scoreboard

I intended for size of score board as the best size about A4 format and in thickness - slim as possible, because my intention was to place it inside photo frame. Final size is OK, but thickness is slightly higher, about 5cm.

To make wire interconnections between displays as simple as possible, there are used strip prototype boards which can connect all identical segments and all digits to PCB. Principle is clear from the first picture. Overall there are nine strip boards, one for each display, one for bottom row, one for upper row and one vertical connecting both rows. Bottom row strip is too long and consist from two strips soldered together. Strips are interrupted on relevant places. (This places are clear from picture and therefore are not indicated).

Displays are placed in sockets, soldered on strip boards. I used classic sockets for IC`s, but connection is not very fix. I recommend to use round female pin header. There is soldered one more pinhead connector for main PCB, which is attached from bottom side of displays. For test reason I put one pinhead connector more, on vertical strip board, it is on next picture with label.

Set of displays on strip boards is very fragile and mechanical construction must be added to hold parts together. I use aluminium U profile 10x10mm. On frame from aluminium profile are mounted other parts, like PCB with power supply on left bottom side, speaker and amplifier on the right side. On lower part of frame, there is power switch and cable holder, on the right side there are two panels for indicators and setting.

All parts of power supply are placed on protoboard with cooper pads on both sides. The same boards are used for indicators board and setting board. Connection is relatively simple and there is no reason to design special PCB.

Assembly of Score Board is inserted in wooden frame. Front panel is made of glass and behind glass is mask paper printed with appropriate labels. Nice could be a transparent paper, because there is no need to make windows for digits. But I did not find such type and using blank white paper is not perfect, light from segments is shielded. In my case there is white classic paper for printer with cut windows. Template is on picture.

Step 4: Construction Table Unit

Construction Table Unit

Table unit is assembly under table for table tennis. Consist of Table unit itself and two Control boxes, each box is placed on player side just under table on left side, and wired to Control unit, the first picture.

Table unit is mounted inside plastic box. The second picture shows the layout of all parts. On the left side is battery inside holder and below holder is placed switch. On the right side, there is a board with Arduino Nano, HC-05 Bluetooth module and amplifier 386. Below is board with USB and led indicators. I have used 3mm leds. USB-C connector is wrapped to rubber and mounted under metal holder. All boards are protoboards cut for proper size.

Connectors for Control boxes are mounted on the right side behind window in cover. Cable could be 4 wire (my was 8-wire from old VGA monitor), but UTP LAN cable could be OK with double wires.

I recommend to prepare battery holder in advance as you can see on the picture. Solder 2 wires for output 5V, 2 wires for switch ON and 2 wires for charging voltage 5V from USB connector. On next step softly destroy all three leds on holder PCB, (with description "charging indicators" and "output indigator"). I have removed them by pliers. It is simplest solution than to desolder them. Finally solder 5 wires on leds pads. Take care about polarity. Common plus for two leds in upper part is pad between leds. For led in down part of picture, there is plus on the right side. Limited resistors are not necessary because they are already mounted on holder PCB.

Control box is made of plastic box with two touch sensors on each side of box. Holes with diameters 12mm allow access to touch sensors without seeing it.. Construction inside box is clear from picture.

Step 5: Wooden Frame

Wooden Frame

Wooden frame is made of planed profile 20x50mm, probably Spruce. I have cut it to four pieces. Exact sizes with accuracy less than 0.1mm must be observed, otherwise frame would not be a rectangle. I did it manually with hand precision mitre saw. After cutting all part I recommend to put them together for check inner space for size of glass. Dimensions must be about 2mm large as space inside frame, (one mm on each side).

Then comes the most complex part of work. Milling groove for the glass. I have ordered glass in local glazery and asked for thinnest type. It was clear type 2mm. Maybe white matt glass could be better one, but thickness was higher. Making groove could be done by electric router easy, but I did it manually by hand saw. It is difficult but possible. Make groove width 2mm, deep 1mm and shifted from front size 2mm.

There is a one problem with glass. Wooden frame could not be glued at first, because glass should be inserted inside. So I glued bottom side with two lateral sides. Then I fixed two bottom corners with metal corners. The same metal corners were prepared for upper part. Then I have inserted glass and glued and fix upper part of frame with help of special tool according the picture.

Then I drilled hole for power switch and cable groove. Finally the frame was paint by transparent lacquer.

Scoreboard could be inserted from back side of frame. On bottom part of frame there are two adhesive rubber foot and indents. Scoreboard is sitting on rubber foots and hold by two indent. On upper side there are two slide backstops made from metal and hold by screws.

Step 6: Programming and Setting


Two ino files with arduino software are in attachment. One file is for Score Board and second one for Table Unit. Communication via bluetooth is O.K. and very reliable. Both units are synchronized about 3 seconds after switching ON. At the end of coding, in file PingScoreBoard, line 437, there is delay(10). If this delay is removed, communication is unstable and interrupted after some time. I do not know why, comments are invited.

File PingTable is the last version for Nano inside Table. There are not any problems, coding is working perfect. The same is valid for ScoreBoard file.

There is a small problems after selected "Switch Side", with serving player after each game. But Side Switch option, concerning changing sides is working O.K. Numbers are switched and moved with players and counting inside game is good.

There is a uploading problem with Gerber zip file. I have ready this file for publish it, but it is not possible. Maybe in the future?


Putting in operation is simple. At first, check power supply voltage +5V and -5V. If it is present, connect main board with ammeter on common line - GND. There should be current less than 100mA, without displays. If it is OK, connect displays. Assume that you have tested display assembly before by simply connecting any 12V power supply through resistor 470 ohm and DIGIT to SEGMENT pin on its connector. (Connector on display assembly.)

Connected display require communication between units with Bluetooth and segments lit after setting is done. Communication is established if lights on both BT modules are synchronized, you can see it. There is different blinking before and after.

I have tested all components on breadboards and functionality for all device.. It was really confusing, see picture.

HC-05 modules must be adjusted for common communication by AT commands. Very good explanation how to do it is here: how to pair two HC 05

Just to remind, both units (Slave and then Master) must be set with Arduino Uno to AT command mode: to baud rate 38400, the first unit as Slave, its address should be recorded, the second unit must be set to Master, set addressing to fixed mode, and bind address to recorded address of Slave unit. Than try to connect both units on breadboards with simple button to led transfer.

Step 7: Conclusion


The Scoreboard was tested a few weeks and a few matches were made with it help. Its function is reliably and is really useful. Control of buttons during game is fast, simple and does not disturb players. Pressing button is like confirmation of won serve.

Despite the benefits, there are still some possibilities for improvement of device. Main problem is main power. There is relatively higher current consumption for battery power. Lit segment consumes about 10ma. Whole display from 200mA to 400mA, if other components are added, there could be consumption 600mA by voltage 10V.

Battery power could be done by Li-Ion batteries 18560 in two double holder-charger and booster for 5V. With batteries 2000mAh estimated time between charging could be 2 to 3 hours. Which is not bad, but worth to consideration.

Idea about connecting all display by strip boards is good but mechanically too fragile. The best way, how to make construction is to use one big print circuit board and put all components on it. In my case, using free Eagle PCB design there is maximum size of board 10cm2.

I hope you spent nice time with building described device.

Enjoy sport, enjoy the Scoreboard and the Table Tennis.

Multi-Discipline Contest

Participated in the
Multi-Discipline Contest

Be the First to Share


    • Arduino Contest

      Arduino Contest
    • Explore Science Challenge

      Explore Science Challenge
    • Toys & Games Contest

      Toys & Games Contest