A Kivy-based Digital Read-Out (DRO) and single-axis controller UI for rotary tables and similar devices, designed to run on Raspberry Pi or desktop environments (Windows, macOS, Linux). Interfaces via RS-485 with a dedicated STM32-based control board.
🛒 Purchase all boards from our shop: Provvedo Shop
- Responsive touch-capable UI built with Kivy
 - Communicates over RS-485 with an STM32 controller for stepper/encoder control (github.com)
 - Works on Raspberry Pi 3/4, Windows, macOS, and Linux
 - Runs headless on Pi using the custom OSPI OS with pre-installed RCP (github.com)
 
- 
Hardware
- Rotary controller board (STM32 firmware from 
bartei/rotary-controller-f4) - RS-485 interface (e.g. via Power Hat)
 - Raspberry Pi 3/4 for Pi deployments
 
 - Rotary controller board (STM32 firmware from 
 - 
Software
- Python 3.8+
 uvvirtual environment managerkivy,pyserial, and other dependencies frompyproject.toml
 
git clone https://github.com/bartei/rotary-controller-python.git
cd rotary-controller-pythonInstall uv (Linux/macOS):
curl -LsSf https://astral.sh/uv/install.sh | shFor Windows, follow instructions on the [Astral uv docs].
uv venv       # creates .venv/
uv sync       # installs required dependenciesuv run python ./rcp/main.py- Use Python >=3.8
 - Virtual environment recommended via 
uv - Ensure 
pyserialcan access your RS-485 adapter (permissions on Linux/macOS) 
- 
Install an SD card image from the OSPI project
 - 
RCP is pre-installed in
/root/rotary-controller-python/ - 
To update:
sudo systemctl stop rotary-controller cd /root/rotary-controller-python git pull uv sync reboot - 
View logs:
journalctl -u rotary-controller journalctl -xeu rotary-controller tail -n +1 /var/log/kivy* 
- Serial issues: Verify RS-485 wiring, correct serial port, and permissions
 - Service failures (Pi): Check 
journalctllogs and Kivy log files, check the /var/log folder for OSPI release 
- Firmware & hardware: [rotary-controller-f4] (github.com)
 - PCB design & BOM: [rotary-controller-pcb] (github.com)
 - OSPI OS with pre-installed RCP: [ospi] (github.com)
 
See CHANGELOG.md for detailed history, updates, and breaking changes.
Contributions are welcome! Please:
- Open issues for bugs or feature requests
 - Submit pull requests or improvements
 - Help with testing, documentation, porting new features
 
Join our Discord community for support, collaboration, and updates.
Licensed under MIT. See LICENSE for full terms.
README last updated: June 23, 2025