Stream32 is a DIY stream deck built around the accessible and versatile ESP32 platform. The goal is a device you can build, understand, repair, and adapt to your own workflow, without proprietary hardware or software lock-in.
You buy an off-the-shelf touch display, flash it from the desktop app, and lay out pages of keys that launch apps, press hotkeys, run multi-step actions, and more. Everything needed to reproduce and modify the project lives here in the open.
Note
Stream32 is usable today. The desktop app ships installers for Windows, macOS, and Linux, and supports two off-the-shelf touch displays. Custom open-hardware designs (schematics, BOM, and enclosures) are still on the roadmap.
- Pick a supported display. See Buying a display.
- Install the desktop app. Download the latest build for your operating system from the releases page.
- Flash the firmware. Connect the board over USB and let the app download and flash the matching firmware.
- Build your deck. Add pages and keys, then assign actions.
The Getting started guide walks through each step, including the USB and power requirements for each board.
| Display | Screen | Deck size | Notes |
|---|---|---|---|
Waveshare ESP32-S3-Touch-LCD-4 |
480x480, 4" | up to 5x5, 8 pages | Rev 3.0 only (not Rev 4 or the 4.3" board) |
Elecrow CrowPanel Advanced 10.1" ESP32-P4 |
1024x600, 10.1" | up to 40 keys/page, 8 pages | UART0 carries power and data; USB 2.0 is optional supplemental power |
Purchase links and buying tips are in Buying a display.
Firmware, flashing, and the USB protocol are documented in
boards/README.md.
| Guide | For | What it covers |
|---|---|---|
| Getting started | Users | Install, flash, and set up your first deck |
| Buying a display | Users | Which board to buy and what to avoid |
| Waveshare Rev 3 power-button bypass | Waveshare owners | Optional automatic power-on hardware modification |
| Decks and profiles | Users | Profiles, focused-app switching, editing, Multi Actions |
| Action plugins | Users and authors | Installing, publishing, and writing action plugins |
| Companion surfaces | Users | Driving a deck from Bitfocus Companion over the Satellite API |
| Board support | Contributors | Firmware builds, flashing behavior, and the USB protocol |
The Electron companion lives in desktop/. Node.js 22 or newer is
required:
cd desktop
npm ci
npm startRun npm test and npm run check before opening a pull request. Pull requests
that touch the desktop app are packaged on Windows, macOS, and Linux. To build
an installer for your current platform locally, run npm run dist.
Board profiles and firmware are versioned independently of the desktop app, so
adding a compatible board does not require a desktop release. See
boards/README.md for the board workflow.
The package version and Git tag must match. For example:
cd desktop
npm ci
npm test
npm run check
npm version 1.1.0 --no-git-tag-version
cd ..
git add desktop/package.json desktop/package-lock.json
git commit -m "chore(desktop): prepare v1.1.0"
git tag v1.1.0
git push origin main v1.1.0The v* tag starts the release workflow, which packages Windows, macOS, and
Linux builds and publishes a GitHub Release. macOS automatic installation
requires a signed build, so the unsigned CI artifacts must be signed and
notarized before macOS auto-update can complete.
Ideas, hardware suggestions, and early contributions are welcome. Start a conversation by opening an issue.
Stream32 is released under the MIT License.
