Multi-mode Bluetooth HID Controller for Lilka v2.
Modes: Gamepad • Mouse • Keyboard
- Gamepad Mode: D-pad + 6 buttons, works with games and emulators
- Mouse Mode: D-pad moves cursor, A/B for clicks, C/D for scroll, Start for middle click
- Keyboard Mode: On-screen keyboard with 5 rows including special keys
- Language Switch: Press SELECT in keyboard mode to switch language (WIN+SPACE)
- Battery Level: Displayed on screen and reported via BLE
| Button | Gamepad | Mouse | Keyboard |
|---|---|---|---|
| D-pad | Axes | Move cursor | Navigate keys |
| A | Button 1 | Left click | Type character |
| B | Button 2 | Right click | Backspace |
| C | Button 3 | Scroll up | Toggle layer (abc/ABC/!@#) |
| D | Button 4 | Scroll down | Space |
| Start | Button 5 | Middle click | Enter |
| Select | Button 6 | - | Switch language (WIN+Space) |
Hold START + SELECT for 3 seconds to switch mode
![]() |
![]() |
![]() |
![]() |
# Clone repository
git clone https://github.com/lilka-dev/BLE_Controller.git
cd BLE_Controller
# Build and upload (English)
pio run -e en -t upload
# Or Ukrainian version
pio run -e uk -t upload-
Download firmware
- Go to Releases
- Download
BLE_Controller_merged_en.bin(or_uk.binfor Ukrainian)
-
Open ESPTool
- Go to ESPTool Web Flasher
⚠️ Works only in Google Chrome or Chromium browsers
-
Connect Lilka
- Use a USB cable that supports data transfer (not just charging)
- ✅ Recommended: USB-A to USB-C cable
- ❌ USB-C to USB-C may not work
Enter Boot Mode if needed:
- Disconnect USB
- Hold BOOT (SELECT) button
- Connect USB
- Release button
-
Connect in ESPTool
- Click "Connect"
- Select COM port or
/dev/ttyUSB*or/dev/ttyACM* - Allow browser access
-
Erase Flash (recommended)
- Click "Erase Flash"
-
Flash firmware
- Click "Program"
- Select
BLE_Controller_merged_en.bin(or_uk.binfor Ukrainian) - Set address:
0x0 - Click "Program"
- Wait for "Success"
-
Done!
- Press RESET button on Lilka
- The controller will start and show "Disconnected"
- Connect via Bluetooth from your device
- Режим геймпаду: D-pad + 6 кнопок, працює з іграми та емуляторами
- Режим миші: D-pad рухає курсор, A/B для кліків, C/D для прокрутки, Start для середнього кліку
- Режим клавіатури: Екранна клавіатура з 5 рядками та спеціальними клавішами
- Перемикання мови: Натисніть SELECT в режимі клавіатури (WIN+SPACE)
- Рівень батареї: Відображається на екрані та передається через BLE
| Кнопка | Геймпад | Миша | Клавіатура |
|---|---|---|---|
| D-pad | Осі | Рух курсора | Навігація |
| A | Кнопка 1 | Лівий клік | Ввести символ |
| B | Кнопка 2 | Правий клік | Backspace |
| C | Кнопка 3 | Прокрутка вгору | Змінити шар (abc/ABC/!@#) |
| D | Кнопка 4 | Прокрутка вниз | Пробіл |
| Start | Кнопка 5 | Середній клік | Enter |
| Select | Кнопка 6 | - | Змінити мову (WIN+Space) |
Утримуйте START + SELECT 3 секунди для зміни режиму
![]() |
![]() |
![]() |
![]() |
# Клонувати репозиторій
git clone https://github.com/lilka-dev/BLE_Controller.git
cd BLE_Controller
# Зібрати та завантажити (Англійська)
pio run -e en -t upload
# Або українську версію
pio run -e uk -t upload-
Завантажити прошивку
- Перейдіть до Releases
- Завантажте
BLE_Controller_merged_uk.bin(або_en.binдля англійської)
-
Відкрити ESPTool
- Перейдіть на ESPTool Web Flasher
⚠️ Працює лише в Google Chrome або Chromium браузерах
-
Підключити Лілку
- Використовуйте USB кабель з передачею даних (не лише зарядка)
- ✅ Рекомендовано: USB-A до USB-C кабель
- ❌ USB-C до USB-C може не працювати
Вхід у Boot Mode (якщо потрібно):
- Від'єднайте USB
- Утримуйте кнопку BOOT (SELECT)
- Під'єднайте USB
- Відпустіть кнопку
-
Підключення в ESPTool
- Натисніть "Connect"
- Виберіть COM порт або
/dev/ttyUSB*або/dev/ttyACM* - Дозвольте браузеру доступ
-
Очистити Flash (рекомендовано)
- Натисніть "Erase Flash"
-
Прошити
- Натисніть "Program"
- Виберіть
BLE_Controller_merged_uk.bin(або_en.binдля англійської) - Введіть адресу:
0x0 - Натисніть "Program"
- Дочекайтесь "Success"
-
Готово!
- Натисніть кнопку RESET на Лілці
- Контролер запуститься і покаже "Disconnected"
- Підключіться через Bluetooth з вашого пристрою
- If flashing fails, try entering Boot Mode again
- Use "Erase Flash" before flashing a new version
- You can flash as many times as you want - it's safe
- Якщо прошивка не вдається, спробуйте знову увійти в Boot Mode
- Використовуйте "Erase Flash" перед прошивкою нової версії
- Можна прошивати скільки завгодно разів - це безпечно
MIT License



