KryonOS is een open-source, lichtgewicht GUI-besturingssysteem en JavaScript-app-runtime specifiek ontworpen voor de ESP32-microcontroller. Het systeem transformeert embedded apparaten in een desktop-achtige ervaring door gebruik te maken van de Duktape JS-engine voor het uitvoeren van applicaties.
Belangrijkste kenmerken:
- JS Runtime & API: Mogelijkheid om interactieve JavaScript-apps te draaien met directe toegang tot hardware-API's (GPIO, sensoren).
- Grafische Interface: Ondersteuning voor double-buffered 2D- en 3D-rendering voor vloeiende beelden op ILI9341-displays.
- Ecosysteem: Een geïntegreerde App Store voor dynamische installaties via Wi-Fi en een volledig functioneel bestandsbeheer via SD-kaarten.
- Multitasking: Gebruikers kunnen schakelen tussen verschillende utility-apps, games en monitoren.
Technische details: Het systeem vereist specifieke hardware zoals ESP32-boards en een touch-display. Om bus-conflicten te voorkomen, maakt KryonOS gebruik van gesplitste SPI-bussen (VSPI voor het display en HSPI voor de SD-kaart). Installatie kan via vooraf gecompileerde binaries of door zelf te compileren met PlatformIO. Het project is gelicentieerd onder GNU GPL v3.0.
KryonOS
Ondersteunde apparaten
KryonOS kan op meerdere apparaten worden gedraaid, waaronder:
- M5Stack Cardputer
- CYD (Cheap Yellow Display)
- LilyGO T-HMI
Kenmerken
- JavaScript App Runtime: Voer interactieve JS-apps native uit op de ESP32 met de geoptimaliseerde Duktape-engine.
- Rijke UI & Graphics: Ingebouwde grafische bibliotheek met ondersteuning voor double-buffering voor vloeiende, tear-vrije 2D- en 3D-rendering.
- App Store & Installer: Browse, download en installeer JavaScript-apps en updates dynamisch via Wi-Fi.
- Bestandsbeheer: Volledig functionele bestandsverkenner en teksteditor die gebruikmaakt van de SD-kaart voor opslag.
- Hardware API: Gebruiksvriendelijke JavaScript-API's voor het aansturen van GPIO, het lezen van touch-input, toegang tot de SD-kaart en het uitlezen van sensoren.
- Multitasking-ervaring: Start, pauzeer en schakel tussen utility-apps, games en hardwaremonitoren.
Benodigde hardware
- ESP32 Development Boards (ondersteund: ESP32 WROOM-32, ESP32-S2, ESP32-S3, ESP32-C3)
- ILI9341 2.8" TFT Display (SPI-interface met XPT2046 Touch Controller)
- MicroSD-kaartmodule (SPI-interface)
- Breadboard & jumperdraden
Pinverbindingen
KryonOS vereist een ILI9341 2.8 inch touch-display en een SD-kaartmodule. Om de beste prestaties te behalen en bus-conflicten te voorkomen, maakt KryonOS gebruik van gesplitste SPI-bussen:
- VSPI: Exclusief gebruikt voor het TFT-display en de touch-controller.
- HSPI: Exclusief gebruikt voor de SD-kaartmodule.
Compatibiliteit met ESP32 Marauder
Standaard komen de display- en touch-pinouts in KryonOS perfect overeen met de hardware van de ESP32 Marauder (v4, v6 en v6.1).
Standaard pinconfiguratie
ILI9341 2.8 Inch Touch Display Pins
| ILI9341 Display Pin Label | ESP32 Pin |
| 1 VCC | 3.3V |
| 2 GND | GND |
| 3 CS | D17 (TXD 2) |
| 4 RESET | D5 |
| 5 DC | D16 (RXD 2) |
| 6 SDI (MOSI) | D23 |
| 7 SCK | D18 |
| 8 LED | D32 |
| 9 SDO (MISO) | D19 |
| 10 T_CLK | D18 |
| 11 T_CS | D21 |
| 12 T_DIN | D23 |
| 13 T_DO | D19 |
| 14 T_IRQ | X (Niet verbonden) |
SD Card Module (HSPI)
| SD Card Module | ESP32 Pin | Notities |
| MOSI | GPIO 13 | SD SPI MOSI |
| MISO | GPIO 26 | SD SPI MISO |
| SCK / CLK | GPIO 14 | SD SPI Clock |
| CS | GPIO 15 | SD Card Chip Select |
Pinnen wijzigen
Als uw specifieke hardware-setup andere pinnen gebruikt, moet u het OS opnieuw compileren:
- Voor het wijzigen van Display/Touch-pinnen: Open
platformio.ini en pas de buildflags aan (bijv. -D TFTMOSI=23).
- Voor het wijzigen van SD-kaartpinnen: Open
src/FileSystem/FileSystem.cpp en pas de regels sdSPI.begin() en SD.begin() aan.
Installatie (Flashing)
Optie 1: Gebruik van vooraf gecompileerde binaries
U kunt de nieuwste vooraf gecompileerde firmware .bin-bestanden direct downloaden van de Releases-pagina. Gebruik een ESP32-flasher tool (zoals esptool.py of de officiële ESP Flash Download Tool) om de binaries naar de juiste sectoren te schrijven:
esptool.py --chip esp32 --port COM3 --baud 921600 write_flash -z \
0x1000 bootloader.bin \
0x8000 partitions.bin \
0x10000 firmware.bin
Optie 2: Zelf bouwen
Om de firmware vanuit de broncode te bouwen en te flashen met PlatformIO:
- Download de repository als ZIP of clone deze via git.
- Open de projectmap in uw terminal of IDE (zoals VS Code).
- Bouw en upload met het PlatformIO-commando:
pio run -t upload
Documentatie & Community
- App Development Guide: Leer hoe u JavaScript-applicaties bouwt en structureert voor KryonOS.
- JavaScript API Guide: Leer hoe u systeemhardware kunt benaderen met de JS-API van KryonOS.
- KryonOS Wiki: Officiële wiki voor gedetailleerde handleidingen, tutorials en systeemarchitectuur.
- Discussions: Word lid van de community, stel vragen en deel uw ideeën.
Roadmap
- Uitgebreide Boardondersteuning: Toekomstige updates zullen ondersteuning bieden voor een grotere variëteit aan microcontrollers en ESP32-varianten.
- Meer Hardware API's: Continue uitbreiding van de JavaScript-API om meer low-level hardwarefuncties beschikbaar te stellen (bijv. Bluetooth, I2C, SPI-sensoren, geavanceerde PWM en deep sleep).
Licentie
KryonOS is gelicentieerd onder de GNU General Public License v3.0.
KryonOS is een open-source, lichtgewicht en hoogwaardig GUI-besturingssysteem en JavaScript-app-runtime, specifiek ontworpen voor de ESP32-microcontroller. Het biedt een complete desktop-achtige ervaring op embedded apparaten, met een geïntegreerde JS-engine (Duktape) voor het uitvoeren van zelfstandige JavaScript-applicaties, double-buffered graphics voor vloeiende 2D/3D-rendering, een App Store, bestandsbeheer en directe toegang tot hardware-API's.
KryonOS
Ondersteunde apparaten
KryonOS kan op meerdere apparaten worden gedraaid, waaronder:
- M5Stack Cardputer
- CYD (Cheap Yellow Display)
- LilyGO T-HMI
Kenmerken
- JavaScript App Runtime: Voer interactieve JS-apps native uit op de ESP32 met de geoptimaliseerde Duktape-engine.
- Rijke UI & Graphics: Ingebouwde grafische bibliotheek met ondersteuning voor double-buffering voor vloeiende, tear-vrije 2D- en 3D-rendering.
- App Store & Installer: Browse, download en installeer JavaScript-apps en updates dynamisch via Wi-Fi.
- Bestandsbeheer: Volledig functionele bestandsverkenner en teksteditor die gebruikmaakt van de SD-kaart voor opslag.
- Hardware API: Gebruiksvriendelijke JavaScript-API's voor het aansturen van GPIO, het lezen van touch-input, toegang tot de SD-kaart en het uitlezen van sensoren.
- Multitasking-ervaring: Start, pauzeer en schakel tussen utility-apps, games en hardwaremonitoren.
Benodigde hardware
- ESP32 Development Boards (ondersteund: ESP32 WROOM-32, ESP32-S2, ESP32-S3, ESP32-C3)
- ILI9341 2.8" TFT Display (SPI-interface met XPT2046 Touch Controller)
- MicroSD-kaartmodule (SPI-interface)
- Breadboard & jumperdraden
Pinverbindingen
KryonOS vereist een ILI9341 2.8 inch touch-display en een SD-kaartmodule. Om de beste prestaties te behalen en bus-conflicten te voorkomen, maakt KryonOS gebruik van gesplitste SPI-bussen:
- VSPI: Exclusief gebruikt voor het TFT-display en de touch-controller.
- HSPI: Exclusief gebruikt voor de SD-kaartmodule.
Compatibiliteit met ESP32 Marauder
Standaard komen de display- en touch-pinouts in KryonOS perfect overeen met de hardware van de ESP32 Marauder (v4, v6 en v6.1).
Standaard pinconfiguratie
ILI9341 2.8 Inch Touch Display Pins
| ILI9341 Display Pin Label | ESP32 Pin |
| 1 VCC | 3.3V |
| 2 GND | GND |
| 3 CS | D17 (TXD 2) |
| 4 RESET | D5 |
| 5 DC | D16 (RXD 2) |
| 6 SDI (MOSI) | D23 |
| 7 SCK | D18 |
| 8 LED | D32 |
| 9 SDO (MISO) | D19 |
| 10 T_CLK | D18 |
| 11 T_CS | D21 |
| 12 T_DIN | D23 |
| 13 T_DO | D19 |
| 14 T_IRQ | X (Niet verbonden) |
SD Card Module (HSPI)
| SD Card Module | ESP32 Pin | Notities |
| MOSI | GPIO 13 | SD SPI MOSI |
| MISO | GPIO 26 | SD SPI MISO |
| SCK / CLK | GPIO 14 | SD SPI Clock |
| CS | GPIO 15 | SD Card Chip Select |
Pinnen wijzigen
Als uw specifieke hardware-setup andere pinnen gebruikt, moet u het OS opnieuw compileren:
- Voor het wijzigen van Display/Touch-pinnen: Open
platformio.ini en pas de buildflags aan (bijv. -D TFTMOSI=23).
- Voor het wijzigen van SD-kaartpinnen: Open
src/FileSystem/FileSystem.cpp en pas de regels sdSPI.begin() en SD.begin() aan.
Installatie (Flashing)
Optie 1: Gebruik van vooraf gecompileerde binaries
U kunt de nieuwste vooraf gecompileerde firmware .bin-bestanden direct downloaden van de Releases-pagina. Gebruik een ESP32-flasher tool (zoals esptool.py of de officiële ESP Flash Download Tool) om de binaries naar de juiste sectoren te schrijven:
esptool.py --chip esp32 --port COM3 --baud 921600 write_flash -z \
0x1000 bootloader.bin \
0x8000 partitions.bin \
0x10000 firmware.bin
Optie 2: Zelf bouwen
Om de firmware vanuit de broncode te bouwen en te flashen met PlatformIO:
- Download de repository als ZIP of clone deze via git.
- Open de projectmap in uw terminal of IDE (zoals VS Code).
- Bouw en upload met het PlatformIO-commando:
pio run -t upload
Documentatie & Community
- App Development Guide: Leer hoe u JavaScript-applicaties bouwt en structureert voor KryonOS.
- JavaScript API Guide: Leer hoe u systeemhardware kunt benaderen met de JS-API van KryonOS.
- KryonOS Wiki: Officiële wiki voor gedetailleerde handleidingen, tutorials en systeemarchitectuur.
- Discussions: Word lid van de community, stel vragen en deel uw ideeën.
Roadmap
- Uitgebreide Boardondersteuning: Toekomstige updates zullen ondersteuning bieden voor een grotere variëteit aan microcontrollers en ESP32-varianten.
- Meer Hardware API's: Continue uitbreiding van de JavaScript-API om meer low-level hardwarefuncties beschikbaar te stellen (bijv. Bluetooth, I2C, SPI-sensoren, geavanceerde PWM en deep sleep).
Licentie
KryonOS is gelicentieerd onder de GNU General Public License v3.0.