Skip to content

DRIFTYY777/microByte_Arduino

Repository files navigation

MicroByte Arduino

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.


Features

  • 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

Hardware

  • 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

Project Structure

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
 └── ...

Getting Started

Prerequisites

  • PlatformIO or ESP-IDF toolchain
  • ESP32-S3-DevKitC-1 board
  • microSD card (optional, for app loader)

Build & Flash

  1. Clone the repository:

    git clone https://github.com/DRIFTYY777/microByte_Arduino.git
    cd microByte_Arduino
    
  2. Build and upload:

    pio run --target upload
    
  3. Monitor serial output:

    pio device monitor
    

Usage

  • 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.

Customization

  • 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/.

Troubleshooting

  • 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.

Contributing

Pull requests and issues are welcome!
Please document new modules and follow the existing code style.


License

MIT License


Screenshots

Main UI Process Table System Resources


Credits


Main Menu System Info Brightnes Settings Notification Led Evil Apple

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published