PipCore

PipCore — низкоуровневое ядро для embedded-прошивок на ESP32. Оно объединяет работу с платформой, дисплеями, графикой, вводом, звуком и сетью и служит общей основой для PipKit и Pip3D.

Приложения обращаются к общим интерфейсам ядра, а PipCore связывает их с аппаратными возможностями выбранной платы. Это позволяет не дублировать один и тот же низкоуровневый код в каждой библиотеке.

Архитектура PipCore: приложения используют API ядра и его сервисы, подключённые к платформам ESP32 и Desktop.

Это разделение хорошо видно на примере дисплея. PipKit строит интерфейс, а Pip3D — графику и физику, но обе библиотеки используют платформенный слой PipCore. Драйвер дисплея передаёт кадры асинхронно через два буфера: пока экран принимает один кадр, система может готовить следующий.

Ядро отвечает и за системную часть прошивки. Файлы хранятся через LittleFS, настройки — в NVS, а Wi-Fi работает как событийный сервис. OTA-обновление не блокирует основной цикл и перед установкой проверяет подпись Ed25519 и целостность данных по SHA-256.

Для разработки есть встроенный симулятор Windows: он запускает тот же код ядра, эмулирует ввод, сохраняет кадры в PNG и позволяет записать видео в MP4. Так поведение приложения можно проверить до прошивки платы. Драйвер ILI9488 пока экспериментальный, и его стабильность зависит от дисплейного модуля и конфигурации.