
Lilka Firmware Explained | Details | Hackaday.io
<p><span class="s2"><strong><strong><a href="https://hackaday.io/project/204948-lilka/log/245899-lilka-ukraines-diy-esp32-learning-console">Lilka</a></strong></strong></span> is a Ukrainian open-source DIY educational gaming console based on the ESP32-S3 microcontroller. It is designed so that even a beginner can assemble it using widely available modules.<br></p> <h1>KeiraOS</h1> <p>By itself, the console is just hardware: a screen, buttons, and a chip. To make everything work, it needs firmware — a software “control center”. The main firmware is <span class="s2"><strong>KeiraOS</strong></span> (named after the developer’s cat). It is an open-source operating system based on FreeRTOS, written in C++, that controls the device and allows you to run games and applications.</p> <figure><img class="lazy" data-src="https://cdn.hackaday.io/images/4326611774340912840.jpeg"></figure> <p>You can develop apps for KeiraOS in several ways:</p> <p><span class="s1"></span></p> <ul><li>🧩 C++ — using PlatformIO and the <a href="https://registry.platformio.org/libraries/lilka/Lilka">Lilka library</a> (requires compilation, similar to Arduino)</li><li>⚡ Lua and mJS — run directly from a microSD card without compilation, so you can see results almost instantly</li></ul> <p>You can find example apps in the <a href="https://hackaday.io/project/204948-lilka/log/246594-lilka-app-store">Lilka Apps & Mods</a><span class="s2"><strong><strong></strong></strong></span> repository.</p> <p>Lilka is not just for games. You can connect sensors and modules via GPIO and work with common interfaces:</p> <p><span class="s1"></span></p> <ul><li>🔌 I2C, UART, SPI</li><li>📊 ADC</li><li>🎛️ PWM</li></ul> <p>KeiraOS can also run retro games (.ROM and .NES) directly from an SD card using the <span class="s2"><strong><a href="https://github.com/nwagyu/nofrendo">Nofrendo</a></strong></span> emulator.</p> <p>In addition to the main system, Lilka supports running third-party firmware in <span class="s3">.bin</span> format. This means you can:</p> <p><span class="s1"></span></p> <ul><li>📦