This project provides a serial interface for controlling the historical LED matrix display at the regatta course in Berlin-Grünau. The display consists of 8 lines with exactly 30 characters each. It is controlled via a serial connection at 38400 baud.
regatta.py– Python source code with GUIregatta.exe– precompiled standalone Windows executable
- GUI with 8×30 input fields
- automatic cursor jump after each character input
- manual "Send" button to transmit all content
- sends data using the original historical serial protocol
- optional animation mode (ASCII frames from a file)
- character encoding: ISO-8859-1 (supports ÄÖÜ, §$%&, etc.)
- Communication via USB-to-Serial adapter
- Protocol format:
- Start byte:
0x01 - Brightness identifier, full brightness is set by 0xFF
- exactly 30 bytes per line including spaces
- Start byte:
- No STX/ETX possible! (legacy matrix controller does not support them)
- Character set: ISO-8859-1 (not UTF-8!)
- Python 3.9+
- tkinter (included in standard Python installation)
- pyserial
To install pyserial:
pip install pyserial- Run
regatta.py - Enter characters in each field (cursor moves automatically)
- Lines are padded or wrapped based on overflow behavior
- Click “Send” to transmit the content to the serial port
regatta.exe is a compiled version of the script and can be run on any Windows machine without Python.
An ASCII animation mode reads .txt files formatted like this:
#MODE:LOOP
#LOOPS:unlimited
#FPS:2
- Each frame must be 8 lines of 30 characters
- Only ISO-8859-1 compatible characters are supported
- FPS controls animation speed
- LOOPS can be a number or
unlimited
- The display does not support UTF-8
- Umlauts like
ä,ö,üwork correctly if sent as0xE4,0xF6,0xFC(ISO-8859-1) - Accented letters like
é,èare not supported - Control characters like STX/ETX are not allowed, they will destroy the alignment
The display has undergone several changes to ensure continued operation and readability. Below are images showing the display before and after restoration:
| Before (old) | After (new) |
|---|---|
![]() |
![]() |
- The original program dates back to 2002 and showed signs of aging and limited functionality.
- It was challenging to quickly input and update race results and other relevant data.
- Compatibility with modern hardware interfaces was lacking.
- Improving readability and reliability of the display was needed.
Certain characters are displayed in red to indicate defective matrix cells. These cells cannot correctly display characters. The software marks these positions so users are aware that reliable display is not possible there.
This project is licensed under the GNU Affero General Public License v3.0.
This means:
- You may use, modify and distribute the software freely.
- If you make changes or run this software as a service (e.g., a web interface), you must also release your modified source code.
- Commercial use is only allowed if the full source code (including modifications) is also published under the same license.
Full license text: GNU AGPL v3.0
Developed to preserve and enable the use of historical display technology at the Berlin-Grünau Regatta course

