Skip to content

tommikulevich/esp-astrobox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛸 ESP-AstroBox

🔎 Overview

ESP-AstroBox is a FreeRTOS-based modal application for ESP32-S3-BOX-3 development board. It provides four independent modes: remote control setup with IR learning and voice commands, live sensor monitoring, NASA Astronomy Picture of the Day fetching with Wi-Fi connectivity, and an offline image storage for viewing stored photos on SD card via IR or BLE shutter control. The device works entirely standalone without a companion app or cloud backend.

ESP-AstroBox
ESP-AstroBox Setup

📟 Hardware & Stack

  • HW: ESP32-S3-BOX-3 with ESP32-S3-BOX-3-SENSOR accessory
  • Frameworks: ESP-ADF v2.8 with ESP-IDF v5.5.3
  • Libraries: libjpeg-turbo 3.1.4.1
  • UI: LVGL 9.5.0, built with EEZ Studio v0.27.1
  • Speech recognition: ESP-SR v2.1.5 with MultiNet7 (quantized)
  • NASA APIs: NASA Astronomy Picture of the Day
  • Dev tools: VSCode 1.117.0 (Ubuntu 26.04 LTS), cmake 4.3.1, Python 3.14.4, clangd 22.1.0, clang-format 21.1.8

🕹️ Modes

Mode Description Requirements
Setup
  • Learn IR buttons from physical remote (🔼🔽🆗◀️▶️)
  • Voice commands via MultiNet7:
    • "Learn OK"
    • "Learn UP"
    • "Learn DOWN"
    • "Learn LEFT"
    • "Learn RIGHT"
    • "Clear all commands"
  • Codes persisted in NVS flash
  • IR remote (NEC protocol)
  • Built-in dual microphone (already in dock)
Telemetry
  • Live dashboard with sensor readings:
    • Temperature & humidity
    • 6-axis IMU accel + gyro
    • Human presence radar
  • Built-in sensors (already in dock)
APOD
  • Fetches NASA APOD via HTTPS
  • JPEG → RGB565 auto-conversion
  • Images saved on SD card
  • Pan/scroll within image with IR remote
  • Wi-Fi connectivity
  • NASA API key
  • microSD card (FAT32)
  • IR remote (optional, for scrolling)
Vault
  • SD card JPEG slideshow
  • JPEG → RGB565 auto-cached for fast loading
  • Navigate images: BLE shutter button or IR remote button 🆗
  • Pan/scroll within image with IR remote
  • microSD card (FAT32)
  • BLE HID shutter remote (optional, IR fallback)
  • IR remote (optional, for scrolling)

🦾 Getting Started

Clone

git clone https://github.com/tommikulevich/esp-astrobox.git
cd esp-astrobox
git submodule update --init --recursive

Install & Export

./tools/astrobox-dev.sh --install
source ./tools/astrobox-dev.sh --export

Configure

./tools/astrobox-dev.sh menuconfig

Required configuration parameters (see app/astrobox/main/Kconfig for full list):

  • CONFIG_ASTROBOX_WIFI_SSID | CONFIG_ASTROBOX_WIFI_PASSWORD - set to your network credentials
  • CONFIG_ASTROBOX_NASA_API_KEY - get a free key at NASA APIs page; DEMO_KEY works but is rate-limited
  • CONFIG_ASTROBOX_BLE_DEVICE_MAC - MAC address of your BLE shutter remote; required for Vault mode BLE control (IR fallback works without it)

Build, Flash & Monitor

./tools/astrobox-dev.sh build flash monitor

📸 Screenshots

Menu
Menu
Mode: Setup
Mode: Setup
Mode: Telemetry
Mode: Telemetry
Mode: APOD/Vault
Mode: APOD (fetching)
Mode: APOD (displaying)

Displayed image: M82: Starburst Galaxy with a Superwind from 17/04/2026

⚖️ License

This project is licensed under the Apache License 2.0. See LICENSE.md for details.

Third-party components

  1. ESP-ADF (frameworks/esp-adf)

    • Licensed under: ESPRESSIF MIT License
    • See: frameworks/esp-adf/LICENSE
  2. libjpeg-turbo (libs/libjpeg-turbo)

    • Licensed under: IJG License | BSD-3-Clause License
    • See: libs/libjpeg-turbo/LICENSE.md | libs/libjpeg-turbo/README.ijg

About

Application for ESP32-S3-BOX-3-SENSOR featuring IR remote learning with voice recognition, live sensor monitoring, NASA APOD fetching with Wi-Fi, and offline image viewer with BLE/IR control

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages