Українська DIY-консоль Лілка: що це таке, як зібрати і чим вона цікава (Частина 1)

15.07.2025 2 хвилин Автор: Lady Liberty

DIY-консоль Лілка на базі ESP32‑S3 — це відкритий український проєкт для навчання, хобі та геймінгу. У цій статті розглядаємо, як зібрати Лілку, де взяти компоненти, і чому вона вже підкорює спільноту.

Українська DIY-консоль Лілка

Усім привіт. Нещодавно вийшов перший реліз української навчально-хакерської консолі Лілка на базі мікроконтролера ESP32-S3 від Андерсона та його друзів. І, як на мене, спричинив немалий ажіотаж в українській IT-спільноті. Я в повному захваті від цього проєкту. Тож у цій статті докладно ознайомлю вас із Лілкою та її можливостями.

Лілка (GitHub) це open source портативна консоль для розробки на базі мікроконтролера ESP32-S3-wroom1, зібрана з доступних компонентів. Лілка має власну друковану плату, операційну систему, готову бібліотеку для спрощення розробки, програми, ігри, демо, детальну документацію та чудову спільноту.

Де придбати Лілку

Орієнтовна вартість усіх деталей базової версії — 500-700 гривень.

  • Будь-хто може легко зібрати Лілку, придбавши комплект для збірки (на цей момент дві перші партії розкупили, коли буде наступна — невідомо).

  • Якщо наборів Лілки немає у продажі можна написати на електрону пошту магазину Imrad ([email protected]) та зробити передзамовлення наступної партії.

  • Можна запитати, чи немає у когось зайвої плати Лілки у загальній гілці Discord-спільноти. Проте компоненти потрібно купити самостійно. Або написати в гілку купівля-продаж.

  • Плату Лілки також можна надрукувати самостійно за допомогою китайських сайтів JLC PCB, або PCBWay. Для цього потрібно завантажити усі .gbr, .drl та .gbrjob-файли звідси. Додати їх в ZIP-архів та завантажити на сайт. Налаштування друку плати можна подивитись тут. Виготовлення займає приблизно тиждень, дорога ще два тижні.

  • Якщо хочеться швидше, можна надрукувати в Україні — pcb24.com.ua. Для цього також потрібно завантажити усі .gbr, .drl та .gbrjob-файли звідси та відправити їх на електрону пошту компанії.

  • Отримати допомогу та поради стосовно самостійного замовлення плати Лілки можна у гілці Лілкаv2: розробка PCB.

Що може Лілка

Лілку вже називають українським Flipper Zero або ігровою консоллю. Для мене відео Aндерсона має вайб епохи компʼютерів ZX-Spectrum та Comadore. А Лілка асоціюється з часом, коли я намагався отримати максимум можливостей від свого Java-телефону. Для вас цей проєкт може мати свої асоціації.

Сама Лілка позиціонується як народна портативна навчально-хакерська консоль для технічної творчості. І як багатофункціональна зручна платформа для розробки, що дає набір інструментів, а ви можете перетворити її на те, на що забажаєте.

Лілка може бути використана як:

  • Інструмент для самостійного вивчення мов програмування.

  • Платформа для створення пет-проєкту.

  • Пристрій для навчання Arduino та мікроконтролерам на уроках інформатики у школах та олімпіадах.

  • Пристрій для моніторингу та вимірювань (температури, вологості, якості повітря тощо).

  • Пристрій для вивчення схемотехніки, мереж, алгоритмів, автоматизацій, розробки інтелектуальних пристроїв в університетах.

  • Контролер ЧПУ-верстатів (числове програмне керування, CNC).

  • Пристрій для створення та запуску ігор.

  • Бездротовий Bluetooth-геймпад.

  • Інструмент пентестингу та хакерства (Wi-Fi jamming, bad USB тощо).

  • SDR (RFID, NFC, 443).

  • Пристрій для керування кліматом, освітленням, безпекою, інтеграції з MQTT, Rest, Post, ESPHome, Home Assistant тощо.

  • Контролер для створення автономних дронів чи інших транспортних засобів.

  • Пристрій для написання та прослуховування трекерної музики.

  • Пристрій для демосцени.

  • Пристрій для створення інтерактивних артінсталяцій або музичних інструментів.

І це не повний список того, чим може бути Лілка. Межа сфер використання залежить від вашої фантазії.

Для збірки Лілки потрібна друкована плата проєкту та набір електронних компонентів. Їх можна придбати у готовому наборі (на момент написання статті розкупили), запитати у Discord-спільноті, чи немає в кого зайвої плати, або надрукувати самостійно, завантаживши окремий Gerber-файл або весь каталог. В Україні можна роздрукувати тут: pcb24, у Китаї популярні сайти pcbway та jlcpcb. Мій знайомий друкував на jlc pcb 10 плат за 25 доларів.

Повний список усіх деталей можна знайти у документації проєкту Лілка. Мені дуже сподобалось, що є посилання, де купити в Україні на Ali та Mouser.

Для здешевлення вартості проєкту існує три різних комплектації.

  1. Базова — має дисплей, кнопки, п’єзо-динамік, слот micro sd, живиться від кабеля usb type-c.

  2. Базова + Батарея — має все те саме, що і базова комплектація, але дозволяє приєднати акумулятор, щоб консоль стала портативною, не привʼязаною до дротів. Можна використати будь-який акумулятор на 3.7 вольт. 18650, bl 5c, АА акумулятори або будь-який інший зручний для вас варіант.

  3. Базова + Звук — має все те саме, що й базова комплектація, але додатково ще й підсилювач MAX98357 та маленький динамік 8 Ohm 1 W або порт 3.5 для навушників.

Мене здивувало, чому потрібно обирати. Дуже круто, що увесь процес збірки покроково документований.

Для дисплея рекомендується спочатку припаяти розʼєм до плати, а потім вставити в нього дисплей. Це полегшить його монтаж і демонтаж за необхідності.

У переліку деталей не вказані стійки під дисплей. На сайті імрад вказані такі деталі стійки: TFF-M2.5×10 (6 шт), TFM-M2×10 (3 шт). Гвинти та гайки: Гайка M2 (3 шт), Гвинт M2.5×6 (12 шт), Гвинт M2×6 (3 шт). Під дисплей використовуються стійки гайки та гвинти М2 — ті, що в кількості 3 шт.

Також в переліку трохи оманливе посилання на кнопку SW11 на AliExpress. Вона не кутова, коли припаюється вимикач, дивиться не в ту сторону. На Ali є бічні кнопки, називаються вони MSK-05G2.0 або horizontal slide switch dip. Якщо ви плануєте друкувати корпус, перегляньте розділ про нього, бо пайка type c та дисплею має бути висока.

Як прошити Лілку

Після того, як пристрій зібрано, при під’єднанні його кабелем usb type-c (для передачі даних) він має відобразитись як USB-пристрій. Якщо так і є, можна його прошивати.

Якщо Лілка не відображається в компʼютері, можливо, щось залишилось недопаяне. Ви можете сфотографувати свою плату з обох боків та надіслати в загальну гілку Discord-спільноти. Там можна запитати, чому не працює, та отримати допомогу.

1. Завантажте та встановіть Visual Studio Code з офіційного сайту.

2. Перейдіть у розділ Extensions та встановіть плагін PlatformIO IDE.

3. Перейдіть у розділ Source Control (за необхідності завантажте Git) >> натисніть Clone Repository >> вставте посилання github.com/lilka-dev/keira (посилання оновлено 25.06.25) і завантажте код проєкту.

4. Перейдіть до File >> Open Folder >> lilka >> firmware >> kiera.

5. Встановіть драйвери СЗ210x USB to UART.

6. Під’єднайте Лілку кабелем usb type-c — type для передачі даних до компʼютера. Обовʼязково потрібен кабель type c — type a, оскільки usb 3.0 і кабелі type-c type-c не підтримуються.

У Linux можна перегянути підключені USB-пристрої за допомогою команд sudo dmesg -wH або lsusb.

У MacOS: sudo dmesg або ls /dev/tty.* /dev/cu.*ioreg -p IOUSB — виводить інформацію про всі підключені USB-пристрої, використовуючи дерево IORegistry.

У Windows — можна переглянути через диспетчер пристроїв.

7. Перейдіть у вкладку з мурахою PlatformIO. Розкрийте каталог v2 >> General >> Build та зачекайте збірки прошивки Лілки.

При успішній збірці отримаєте повідомлення success.

8. Тепер вам потрібно натиснути та утримувати кнопку SELECT і увімкнути Лілку. Після цього можна відпустити кнопку SELECT. Це переведе Лілку в режим завантаження (bootloader mode): в ньому ви можете завантажити в неї нову прошивку.

9. Розкрийте каталог v2 >> General >> Upload.

Keira OS

Keira (Операційна Система «Кіра») — це прошивка та операційна система, що базується на проєкті FreeRTOS і містить основні функції для демонстрації можливостей пристрою. Вона підтримує мультизадачність (одночасне виконання кількох завдань), мережу, запуск програм та прошивок прямо з SD-карти.

Примітка: зазвичай прошивкою називається будь-яка скомпільована програма, розроблена для мікроконтролера.

Усі програми Kiera можна поділити на дві категорії.

Вбудовані (постійні) програми — це програми, написані на C++, які компілюються в прошивку і зберігаються в пам’яті ESP. Вони є частиною основної системи та завжди доступні для виконання.

Зовнішні (завантажувані) програми зберігаються на microSD-картці. Їх можна запускати без змін у прошивці, що дозволяє додавати нові функції або пробувати нові програми без необхідності перепрошивати пристрій.

Написання програм на C++

Keira написана на C++, і вона містить ряд вбудованих програм. Всі програми є вбудованими, тобто вони мають бути частиною Keira. Це означає, що ви не можете додати свою програму до Keira, якщо не зміните код Keira і не перепрошиєте Лілку новим кодом.

Усі програми у Лілці зберігаються за адресою firmware/keira/src/apps. Найпростіша програма складається з двох файлів: myapp.h та myapp.cpp. Переглянути приклад програми можна тут.

  • myapp.cpp — це файл, де знаходиться основний текст вашої програми. Тут описано, що саме вона робить.

  • myapp.h — це файл, де записано список важливих частин програми (наприклад, назв функцій), які можуть знадобитися в інших місцях.

Основна програма Кіри — Launcher. Вона відображає меню програм, налаштувань, інформації й запускає програми. Щоб ваша програма з’явилася в меню, потрібно зареєструвати її в Launcher. Найпростіше — додати її до меню застосунків. Для цього знайдіть у файлі launcher.cpp код зі списком програм і додайте вашу програму до нього.

Бібліотека lilka

Хоча для програмування Лілки на C++ можна використовувати функції Arduino або ESP-IDF, бібліотека lilka забезпечує значно простіший і зручніший спосіб роботи з усіма ключовими компонентами пристрою. Вона дозволяє легко працювати з дисплеєм, кнопками, звуком, акумулятором, файлами, SPI та іншими функціями. Використання цієї бібліотеки не тільки спрощує написання коду, але й допомагає зменшити кількість рядків програми та ймовірність помилок.

Бібліотека вже доступна в репозиторії PlatformIO, тож її легко додати до вашого проєкту. Детальніше про усі функції бібліотеки можна прочитати тут.

Завантажувані програми та скрипти

Бінарні файли (.bin) — це скомпільовані програми, які містять машинний код, готовий до виконання мікроконтролером. Вони дозволяють запускати вторинні прошивки або програми без перепрошивки основної пам’яті пристрою.

Lua-скрипти (.lua) — це текстові файли з кодом, які виконуються безпосередньо на Лілці завдяки вбудованому інтерпретатору Lua версії 5.4.6. Їх не потрібно компілювати заздалегідь — достатньо скопіювати файл на SD-картку та запустити. Це економить час і дозволяє легко ділитися скриптами для використання на інших пристроях. Усі функції Lua можна зручно переглянути на цій сторінці.

mJS-скрипти (.js) — це мінімалістичний діалект JavaScript, що дозволяє запускати .js-файли безпосередньо з SD-картки на Лілці. Хоча це додає певної гнучкості, mJS має суттєві обмеження: відсутність класів, обмежений набір функцій і несумісність зі стандартними бібліотеками JavaScript.

Через ці недоліки команда проєкту рекомендує використовувати Lua, яка є більш функціональною, зручною та стабільною для роботи на Лілці.

Планується також портувати інтерпретатор MicroPython, але через ряд технічних складнощів ця ідея перебуває на ранній стадії реалізації.

Альтернативні прошивки Лілки

Проєкт Rustilka націлений на підтримку мови програмування Rust для платформ Lilka. Це мініпроєкт, який дозволяє розробникам використовувати Rust для створення прошивок для Lilka без залежності від офіційного SDK. Для використання Rust необхідно встановити спеціальну прошивку, що доступна на rust.lilka.dev.

Цей проєкт спрощує налаштування та розробку, а також надає бібліотеку для роботи з апаратними можливостями Lilka. Він орієнтований на розробників, які мають досвід роботи з Rust та базові знання в області embedded-систем. Ось гілка, присвячена Rustilka.

MeowUI — це альтернативна прошивка для Лілки v2 на основі фреймворку meowui. Призначена для створення гарних графічних інтерфейсів користувача на мікроконтролерах esp32, esp32-s3. MeowUI пропонує набір віджетів (меню, скролбар, клавіатура, перемикачі тощо), підтримує створення макетів вікон із контекстами, обробляє стани пінів, включає простий рушій для 2D-ігор і бібліотеки для роботи з периферією (i2s, spi). Віднедавна рушій дозволяє створювати багатокористувацькі ігри. Гілка присвячена MeowUI. Також нещодавно в проєкту зʼявилась гарна документація. У ній окремий розділ присвячений створенню гри з нуля.

Розʼєм розширення

Роз’єм розширення (англ. extension header) — дозволяє підключати до основної плати додаткові модулі, наприклад: мікрофон, реле, сервоприводи, GPS, гіроскоп, LTE, LoRa, ERLS тощо. Лілка має 12-контактний роз’єм розширення. Ці піни можна використовувати для будь-якої цілі. За бажанням для зручності можна припаяти до розʼєму гребінку (GPIO), або 2.54 конектор типу мама.

Корпус для Лілки

Костянтин Поліщук розробив дуже гарний корпус для Лілки — LilCase. Відео з ним можна переглянути тут. Наразі це вже третя версія корпусу. Для використання важливо запаювати дисплей і роз’єм живлення, як на фото, і стійки для дисплея 8 мм.

Нижньої частини немає — вона кастомна під різні типи акумуляторів. Автор має намір з часом проєктувати нижню кришечку під різні типи акумуляторів: 18650 або ті, що є в одноразках 18350, 17350, 16350, 13400. Поредагувати корпус онлайн можна тут. Детальніше про розробку корпусу можна дізнатись у гілці Лілка v2: корпус.

Slim Case — це компактний корпус для Лілки. Його розміри 24×58×149 мм, і він повністю сумісний з комплектуючими від Imrad без потреби у додаткових деталях. Конструкція передбачає використання тонкого акумулятора PR-285083. Процес складання потребує ретельної підгонки та паяння до латунних стійок.

Low profile case — компактний корпус (22мм), простий у друку, без зайвих деталей, вміщує акумулятор BL-5C/BL-6C (аккумулятор nokia) або аналогічний до 53×34мм. Дисплей встановлюється на стійках M2×5мм врівень із кнопками, можна припаяти напряму або через нестандартний роз’єм. USB-модуль припаяний впритул, microSD — з відступом. Кнопки можна використовувати різної висоти, вимикач — будь-який повзунковий, конденсатор С1 — не вище 5мм.

Case for Lilka (Shashel) — Корпус для плати Лілка з припаяним дисплеєм на 5-мм стійках, без виходу на навушники та гребінки. Збирання: дисплей кріпиться, гребінка припаюється, зайві штирі обрізаються. Вплавлюються різьбові втулки, встановлюються кнопки й повзунок, плата монтується й перевіряється. Після припою динаміка й акумулятора корпус з’єднується гвинтами. Друк PET-G на Elegoo Neptune 4 MAX, шар 0,16 мм, сопло 0,6 мм, підтримки мінімальні.

Також ще одним варіантом захисту Лілки є використання задньої кришечки. Придбати її окремо від комплекту немає можливості, але можна надрукувати на 3D принтері, або замовити, вирізати з акрилу чи фанери.

Більше про корпуси, кнопки та акумулятори для Лілки можна подискутувати в гілці Лілка v2 корпус.

Форматування Micro SD для Лілки

Для роботи у Лілці Micro SD карта має бути форматована у форматі FAT32. Обʼєм памʼяті не важливий, обмежень немає. Користувачі запускали на Лілці картки на 128 GB. Форматувати картку можна за допомогою Windows, програми Rufus, Gparted або fdisk на Linux. Також можна форматувати за допомогою кнопкового мобільного телефону.

Проте у деяких користувачів періодично виникають проблеми з форматуванням Micro SD. Можливо, не усі картки підходять. Помилки з форматуванням досі трапляються, тому підтримку з налаштування карти можна знайти у гілці Проблема з SD-картами.

Також ви можете завантажити та записати на карту демонстраційні програми. Вони знаходяться в директорії firmware/keira/sdcard в репозиторії проєкту на GitHub.

Висновок

Завершуючи першу частину, хочеться сказати одне — Лілка дійсно вражає. Вона не просто про ESP32 чи пайку. Це повноцінна платформа з душею, яка відкриває двері до технічної творчості, геймінгу, STEM-навчання й навіть пентесту. І найголовніше — це український проєкт, що об’єднав навколо себе сотні ентузіастів, учителів, учнів, мейкерів і просто фанатів DIY.

Ми вже розібрали, як зібрати Лілку, де дістати компоненти, як її прошивати, які бувають корпуси й чому ця консоль може стати початком великого технічного шляху. Але це лише поверхня.

У другій частині ми перейдемо до реального використання Лілки. Вивчимо, як писати свої програми, запускати скрипти, керувати модулями, перетворювати пристрій на інструмент для навчання чи хакінгу.

Підписатися
Сповістити про
0 Коментарі
Найстаріші
Найновіше Найбільше голосів
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.