The Ultimate Open-Source Stream Controller & Macro Deck Ecosystem
Complete All-in-One ecosystem engineered for streamers, video editors, and power users.
Tactile physical macro deck with dual-state buttons, rotary encoder audio scrubbing, and zero-latency hardware sync.
PeciTech Studio is a modern desktop suite and companion microcontroller firmware built from the ground up to bring tactile, hardware-grade control to your daily workflow.
Featuring a sleek visual design with a cyberpunk-inspired dark palette (#0B0B0E with #FF7A29 warm accent), smooth CustomTkinter controls, and real-time bidirectional USB-Serial communication, PeciTech Studio pairs seamlessly with the PeciDeck MK.1 physical macro pad to replace fragile hotkey setups with an intuitive, unified workstation.
- ⚡ High-Speed Bidirectional Serial Bridge: Real-time communication over USB-Serial (115200 baud) with sub-millisecond trigger latency.
- 🖥️ Live TFT Screen Rendering: Dynamic color screen rendering showing active button icons, labels, page indicators, and encoder levels on the ST7789 display.
- 🎚️ Triple Precision Encoders with Push Buttons: Smooth scrubbing for master audio, discrete OBS audio tracks, song seeking, display brightness, and scene cycling.
- 🖌️ Modern Dark-Themed UI: Clean, responsive layout crafted with CustomTkinter, featuring high-contrast typography and glowing active badges.
- 🔍 Interactive Property Inspector: Click any button or rotary dial on the virtual deck to instantly inspect and configure its action, target, custom icons, and typography.
- 🔄 Dual-State Dynamic Buttons: Set separate icons and labels for active vs. inactive states (e.g., Mic Muted / Unmuted, Camera On / Off) with live hardware sync.
- 📁 Profile & Hierarchical Folder System: Create dedicated profiles (
Stream,Gaming,Editing) and nest actions into multi-level folders with one-touch navigation.
- 🔊 Rotary Encoder Audio Scrubbing: Rotate knobs to adjust specific audio inputs (Spotify, Mic/Aux, Game Audio) in precise 2 dB increments, and click to toggle mute.
- 🎬 Scene Management: One-touch scene transitions with automatic scene list discovery and visual feedback.
- 🔴 Broadcast & Recording Control: Start, pause, and stop streaming or recording sessions with color-coded status badges.
- 🌐 Hardware Scan-Code Capture: 100% layout-independent key recording using physical scan codes — zero conflicts between QWERTY, QWERTZ, or localized keyboards.
- ⏱️ Guaranteed Background Key Injection: 45 ms hold time prevents dropped keystrokes in background apps, Discord, DaVinci Resolve, and DirectX games.
- 🏷️ Interactive Key Badge Recorder: Press any physical key combination to see real-time visual badges (Ctrl + Shift + M) and save instantly.
- 🖱️ Gaming Mouse Optimized (1000 Hz): Tuned GIL switch interval eliminates mouse stutter and cursor lag even during intense gameplay.
- 🛡️ Win32 Mutex Protection: Prevents duplicate application instances, guarantees clean COM port acquisition, and restores existing windows from the system tray automatically.
| Component | Specification | Description |
|---|---|---|
| Microcontroller | ESP32 Dev Module | Dual-core 240 MHz, 4MB Flash, high-speed hardware SPI |
| Display | 1.3" / 1.54" ST7789 IPS LCD | 240×240 / 240×280 resolution, 16-bit high-contrast color |
| Keys | 8× Mechanical Switches | Cherry MX / Gateron style tactile mechanical switches |
| Encoders | 3× EC11 Rotary Encoders | 20 pulses/rev with integrated tactile push buttons |
| Connection | USB Type-C | Hardware UART serial communication @ 115200 Baud |
PeciTech-Studio/
├── PeciTech/
│ ├── Aplikace/ # Python Desktop Studio Suite
│ │ ├── assets/ # Application icons, logos, and graphic assets
│ │ ├── profiles/ # User profile configurations (JSON)
│ │ ├── ui/ # CustomTkinter views, modals, and inspector panels
│ │ ├── action_handler.py # High-reliability macro & shortcut execution engine
│ │ ├── hardware_serial.py# USB-Serial bridge communicating with PeciDeck
│ │ ├── obs_controller.py # OBS WebSocket v5 controller
│ │ └── main.py # Application entry point & tray management
│ │
│ └── Finware/ # ESP32 Arduino Firmware
│ ├── PeciDeck_Firmware/# Main Arduino sketch (ST7789 TFT, Encoders, Buttons)
│ └── NAVOD_K_NAHRANI.md# Step-by-step firmware flashing guide
│
├── .gitignore # Git exclusions
└── README.md # Project documentation
- Ensure Python 3.10+ is installed on your computer.
- Clone this repository:
git clone https://github.com/Pecislav/PeciTech-Studio.git
- Navigate to the application directory and install dependencies:
cd PeciTech-Studio/PeciTech/Aplikace pip install customtkinter pillow pyserial pywin32 websocket-client pystray requests keyboard - Launch the application:
Tip: You can also double-click
python main.py
Spustit_Aplikaci.batfor an instant one-click launch!
- Install Arduino IDE (or PlatformIO).
- Install the ESP32 board package in Arduino IDE (Boards Manager ->
esp32by Espressif). - Install required libraries:
TFT_eSPI(configured for ST7789)Encoderor native hardware interrupt pins
- Open
PeciTech/Finware/PeciDeck_Firmware/PeciDeck_Firmware.ino. - Select board ESP32 Dev Module, choose your COM port, and click Upload.
- Refer to
PeciTech/Finware/NAVOD_K_NAHRANI.mdfor wiring schematics and pin assignments.
- CustomTkinter – Modern, dark-themed GUI library
- Pillow – Image processing and icon rendering
- PySerial – Serial communication with the ESP32
- OBS-WebSocket – OBS Studio v5 control
- pystray – Windows System Tray integration
- ESP32 Arduino Core – Microcontroller firmware framework
Distributed under the MIT License. Created with ❤️ for the PeciTech community by Pecislav.