Skip to content

Repository files navigation

A modular, open-source smart speaker platform built around the ESP32 ecosystem.


Overview

Wavelet is a family of ESP32-based smart speakers built from a single shared codebase.

Each model targets a different use case, from a compact BLE-enabled desktop speaker to a future high-power smart speaker, while sharing the same firmware architecture through PlatformIO environments and compile-time feature flags.

The project is currently undergoing a major rewrite focused on modular firmware, modern embedded UI with LVGL and EEZ Studio, BLE onboarding, and a Flutter companion application.


The Wavelet Family

Model Target Current Status
Wavelet Mini ESP32-S3 Active development
Wavelet Regular ESP32-WROOM-32 Being migrated to the new architecture
Wavelet Max ESP32-S3 Planned

Wavelet Mini

The Mini is the current focus of development and serves as the foundation for the rest of the Wavelet ecosystem.

It features:

  • ESP32-S3
  • LVGL + EEZ Studio interface
  • QR-code BLE onboarding
  • Wi-Fi provisioning
  • Spotify API integration
  • Battery monitoring
  • RTC support
  • Touchscreen interface

Unlike previous versions, the Mini no longer supports Bluetooth Classic audio. Instead, it focuses on becoming a connected smart speaker controlled through the companion app.


Wavelet Regular

The Regular is the original portable stereo speaker.

The firmware is currently being migrated to the new modular architecture after much of the original implementation was replaced during Mini development.

Planned features include:

  • Stereo audio
  • Physical controls
  • Battery operation
  • Companion app support

Wavelet Max

The Max is the planned flagship model.

It is intended to become a wall-powered smart speaker with significantly more processing power and expanded connectivity.

Development has not yet started as the required hardware is still being acquired.


Project Status

Feature Mini Regular Max
BLE Onboarding Planned Planned
LVGL + EEZ Studio N/A N/A
Companion App Pairing Planned Planned
Wi-Fi Provisioning N/A Planned
Physical Buttons In Progress In Progress Planned
Battery Monitoring In Progress Untested N/A
Spotify API In Progress N/A Planned
Bluetooth Audio N/A Broken (rewrite in progress) N/A
OTA Updates Planned Planned Planned
Clock Faces Planned N/A N/A

Gallery

Wavelet Mini UI

boot screen QR Setup page Onboarding Tutorial: Swipe down


Repository Structure

esp32-smart-speaker/
├── assets/
├── data/
├── esp32-smart-speaker-schema/
├── include/
├── lib/
├── src/
│   ├── audio/
│   ├── ble/
│   ├── core/
│   ├── input/
│   ├── mini/
│   ├── screens/
│   ├── spotify_controller/
│   ├── storage/
│   ├── web/
│   ├── wifi/
│   └── main.cpp
├── spk-sounds/
├── test/
├── wavelet_app/          Flutter companion app (Git submodule)
├── webpage_iterations/
└── platformio.ini

Getting Started

Clone the repository together with the companion app submodule.

git clone --recursive https://github.com/serenebliss0/wavelet.git

If you've already cloned the repository:

git submodule update --init --recursive

Install PlatformIO if needed.

pip install platformio

Build the desired firmware:

pio run -e mini

or

pio run -e regular

or

pio run -e max

Upload to your board:

pio run -t upload -e mini

Roadmap

Wavelet Mini

  • QR BLE onboarding
  • LVGL integration
  • EEZ Studio integration
  • Companion app pairing
  • Wi-Fi provisioning
  • Clock faces
  • Spotify interface
  • Battery management
  • Settings pages

Wavelet Regular

  • Restore Bluetooth audio
  • Migrate to new architecture
  • Companion app support

Wavelet Max

  • Hardware prototype
  • Firmware foundation
  • Network services
  • OTA updates
  • Smart home integration

Companion Application

Wavelet includes a Flutter companion application used for:

  • Onboarding
  • BLE pairing
  • Wi-Fi setup
  • Device management
  • Future firmware updates

The app lives in its own repository and is included here as a Git submodule.

Repository: https://github.com/serenebliss0/wavelet-app


Built With

  • C++
  • Arduino Framework
  • PlatformIO
  • LVGL 8.4
  • EEZ Studio
  • NimBLE
  • ArduinoJson
  • Flutter
  • Dart

Contributing

Contributions, suggestions and bug reports are always welcome.

If you have ideas or improvements, feel free to open an issue or submit a pull request.


License

MIT License


Made with ❤️ by Semire Ajayi

Figma Designs


About

Official firmware for the Wavelet Mini, Regular, and Max smart speakers built on the ESP32 platform.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages