A low-cost DIY alternative to commercial stream decks powered by the ESP32-S3.
Important
Work in Progress: This project is currently in early development and is intended as a hobby project. Features, APIs, and documentation are subject to change as the v1.0.0 release approaches.
Why, u may ask?
Years ago, I wanted a macro pad like Elgato Stream Deck or Loupedeck but couldn't afford it. However, since I had discovered my fascination for microcontrollers such as the esp32 at the time, I came up with the idea of simply building one myself. This isn't the first prototype, but thanks to the Waveshare board, I can finally get around to realizing my idea and share it here for people who might also be interested in something like this.
To get your LucydDeck up and running, you will need the supported hardware and a local development environment to flash the firmware and run the desktop application. In the future you can flash the firmware directly through the app and only need it for development.
The app allows you to configure your deck and manage plugins.
-
Clone the repository to your local machine:
git clone https://github.com/lucyd-dev/LucydDeck.git cd LucydDeck -
Install Dependencies:
npm install
-
Run in Development:
npm run dev
-
Build Executable:
# Build for all platforms npm run dist # Build for specific platform npm run dist:win npm run dist:linux
See the Firmware Repository for more information on how to build, upload and monitor the firmware/device.
- Intuitive UI: Drag-and-drop style customization.
- Page Management: Organize buttons across multiple virtual pages.
- Plugin overview: Manage your plugins for more functionality
- Device Management: Integrated serial monitor, connection diagnostics, and "one-click" firmware flashing/updates.
- Core: Built on the ESP32-S3 with PSRAM for smooth UI performance
- Storage: SD card support for storing icons, layouts, and configurations.
- Connectivity: High-speed USB communication (WiFi support planned).
- Input: Supports standard keyboard macros, media keys, mouse functions, and complex command sequences. Custom commands available with plugins.
LucydDeck is built upon these incredible open-source libraries and frameworks:
- Electron - Cross-platform desktop framework.
- Vue.js - Progressive JavaScript framework for the UI.
- Vite - Next-generation frontend tooling for fast builds.
- crc - For calculating cyclic redundancy checks during data transfer.
- ESP32_Display_Panel - Display driver implementation.
- LVGL - Light and Versatile Graphics Library.
- ArduinoJson - JSON serialization/deserialization.
- CRC32 - Hardware-side Cyclic Redundancy Check.
- write plugins for basic apps like spotify, discord, obs etc.
- communication over WiFi
- custom PCB with tactical switches and rotary encoders
- rewrite for better performance, maybe in espressif/esp-idf
If you find this project interesting or useful, contributions are highly welcome! Please feel free to leave a star ⭐ on the repo or submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE.md file for details.
Made with 💜 by Lucyd | 2026
