Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 6 additions & 83 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,92 +1,15 @@
# Patch | Intelektika-team
Hardware Automation Controller
<img width="900" height="600" alt="pacth-transparent" src="https://github.com/user-attachments/assets/36169b20-72f2-46cb-9dfa-c112f5cc64d2" />
# <img width="3840" height="2160" alt="logo" src="https://github.com/user-attachments/assets/15ee4746-7f3d-451e-b2ae-9e714ebf7043" />


## 🚀 Overvie
Patch is a programmable hardware panel designed for developers, engineers, and power users. It enables instant execution of custom automation scripts via physical buttons and encoders, connecting seamlessly over USB. Each button press or encoder rotation triggers user-defined Python scripts on the host computer, turning complex workflows into simple physical actions.

## 🧠 Core Philosophy
- **Simplicity:** Patch uses a straightforward UART-based protocol for reliable communication.
- **Power:** Execute any Python script—no limitations, no sandboxing.
- **Elegance:** Features a semi-transparent, minimalist design inspired by modern tech aesthetics.
- **Openness:** The protocol is open and extensible, allowing integration with any software stack.
<img width="200" align="left" alt="logo-small" src="https://github.com/user-attachments/assets/a6d88656-6ed8-4c2d-bbe8-533c55d55c5e" />

## ⚙️ Hardware Specifications
- **Microcontroller:** Raspberry Pi RP2040
- **Interface:** USB-C (UART/CDC)
- **Controls:**
⚒ - 8x Tactile buttons (programmable)
- 2x Rotary encoders (with push-button functionality)
- **Case:** 3D-printed matte finish shell
- **Firmware:** Custom-built in C/C++ (Arduino framework compatible)
**Intelektika Team · Started at 2025**

## 🛠 Communication Protocol
Patch communicates via serial (UART) at `115200 baud`. The protocol is text-based and human-readable.
Kvantorium 73.

### ► Device Discovery
Each Patch device has a unique ID printed on its packaging. To autodiscover the device:
[Our site](https://intelektika-team.github.io/)

1. Host sends: `start {id}\n`
2. Patch responds: `started {id}\n` (if ID matches)
<br clean="left">

### ► Event Reporting
Patch sends events in the format:
`{device}-{number}-{action}-{value}\n`

- **Examples:**
- `button-1-pressed-1`
- `button-1-released-0`
- `encoder-2-rotated-10` (value represents rotation steps)

## 💻 Software Setup (Host Computer)

### ► Python Daemon
The host runs a Python daemon that:
1. Discovers the Patch device via ID
2. Listens for incoming events
3. Maps events to user-defined Python scripts

### ► Required Libraries
```bash
pip install pyserial
```

### ► Configuration
Script mappings are defined in a `config.json` file:
```json
{
"button-1-pressed": "/path/to/script1.py",
"encoder-2-rotated": "/path/to/script2.py"
}
```

### ► Example Usage
```python
# Example script: git_push.py
import subprocess
subprocess.run(["git", "add", "."])
subprocess.run(["git", "commit", "-m", "Automated commit by Patch"])
subprocess.run(["git", "push"])
```

## ✅ Getting Started
1. Connect Patch via USB
2. Run the daemon: `patchwork --start-id YOUR_DEVICE_ID`
3. Press a button—your script executes instantly

## ✅ Support & Community
- **Documentation:** [docs](https://github.com/Intelektika-team/Project-PATCH)
- **Issues:** GitHub Issues
- **Discussions:** GitHub Discussions
- [**wiki**](https://github.com/Intelektika-team/Project-PATCH/wiki)
---

**Patch: Just press it.**

by Intelektika-team, teamlead - pt, status - active development.

**Intelektika 2025 - Dimitrovgrad - started at 30.08.2025**

keywords-
Intelektika team, Intelektika-team, Intelektika, Intelektika patch, team intelektika, project patch, the patch, patch
21 changes: 21 additions & 0 deletions ru-performance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
(Титульник)

Мы представляем проект Patch - Устройство для автоматизации рутинных процессов для разработчика.

(Актуальность)

Сейчас, во времена высоких технологий, у любого разработчика есть рутинная работа вне написания кода -

- Загрузка в облако
- Запуск сборки проекта
- Тестирование кода

Это может отнимать от 10 до 15 процентов времени разработчика. Кажется что это не много, но глобально, например в течении 6-ти часового рабочего дня это займет 54 минуты! Мы хотим оптимизировать этот процесс.
На рынке уже существуют подобные устройства - самое популярное из них это elgato streamdeck. Но это скорее вторая клавиатура с быстрыми сочетаниями клавиш и возможностью запуска четко прописанных программно действий.
Мы хотим создать полностью освобождающее устройство с максимально возможной кастомизацией. На каждую клавишу можно будет выбрать не одно определенное действие, а прикрепить скрипт, который будет выполняться при нажатии. Скрипт может выполнять абсолютно любые действия - открывать приложения, выполнять цепочку действий и так далее. Возможности ограничены лишь креативностью пользователя.

(Характеристики и устройство)

Устройство будет предельно просто простым в работе и понимании. Оно подключается к компьютеру по обычному USB, после чего сразу готово к работе.
Имеет всего 8 кнопок и один энкодер, который является выбором режима (всего режимов 9).
Тоесть 72 возможных разных действия. При нажатии устройство отправляет сигнал на компьютер в формате `номер кнопки - режим`. Такой формат оптимален и предельно прост.