A modular, feature-rich firmware for the ESP32-S3-DevKitC-1, designed for embedded applications with advanced UI, multitasking, and hardware abstraction.
Supports LVGL GUI, FreeRTOS process management, OTA updates, external app loading, and robust system/resource monitoring.
Originally based on the microByte project, this version has been adapted for Arduino and PlatformIO environments, with a focus on modularity and ease of use.
- Modular Drivers: WiFi, SD, display (ST7789), sound, vibration, LED, user input
- Process Manager: Multitasking, resource monitoring, process callbacks
- LVGL GUI: Modern, user friendly interface
- OTA Updates: Wireless firmware upgrades
- External App Loader: Run user apps from SD card
- System Monitoring: Heap/stack usage, task stats, watchdog
- NTP Time Sync: Accurate timekeeping
- Logging & Error Handling: ESP-IDF style logs, resource alerts
- Power Management: (Planned) Sleep modes, peripheral shutdown
- Target: ESP32-S3-DevKitC-1 (16MB QD, 8MB PSRAM)
- Display: ST7789 SPI TFT
- Input: Buttons, vibration motor, LEDs, speaker/buzzer
- Storage: microSD card (SPI)
- Connectivity: WiFi
src/
├── components/
│ ├── core/ # Process manager, system, app loader
│ ├── drivers/ # Hardware abstraction (SPI, display, input, etc.)
│ ├── system/ # OTA, NTP, watchdog, logging
│ └── ui/ # LVGL UI, screens, widgets
├── main.cpp # Entry point
└── ...
- PlatformIO or ESP-IDF toolchain
- ESP32-S3-DevKitC-1 board
- microSD card (optional, for app loader)
-
Clone the repository:
git clone https://github.com/DRIFTYY777/microByte_Arduino.git cd microByte_Arduino -
Build and upload:
pio run --target upload -
Monitor serial output:
pio device monitor
- On boot, the LVGL UI is displayed.
- Use hardware buttons for navigation.
- Apps can be loaded from SD card.
- OTA updates are available via WiFi.
- Pin assignments: Edit in
src/components/drivers/or use a centralized config (recommended). - Add drivers: Place new drivers in
drivers/and register with the core. - UI: Modify or add screens in
ui/.
- Linker errors: Ensure all source files (e.g.,
spiManager.c) are included in the build. - SPI errors: Check device handle initialization and SPI bus setup.
- Resource warnings: Monitor heap/stack usage via serial logs.
Pull requests and issues are welcome!
Please document new modules and follow the existing code style.
MIT License







