Repository navigation
Volco v1.0
🎚️ Welcome to Volco 1.0
This is the first release of Volco: a small hardware controller with real sliders and buttons, and a Windows tray app that turns them into a mixing desk for your PC's audio. Spotify on one fader, your game on another, Discord on a third. Mute the mic, flip between headphones and speakers, and see what each button does on its own LED or little OLED screen.
In short: everything you need to build a controller, flash it, set it up and use it every day is here, and it works well. Some corners of the firmware and the configuration screens are still rough (more on that below), but the core of Volco is stable.
📦 What's in the box
| File | What it is |
|---|---|
Volco.exe |
The app. One self-contained file for Windows 10/11 (x64), nothing to install. It carries the matching controller firmware inside it. |
volco-firmware-esp32-1.0.zip |
The same firmware on its own, for flashing with your own tools, plus its licence notices and the LGPL relink bundle. Most people won't need it. |
✨ What Volco does
🎛️ Control your audio
- Per-app volume. Put
spotify.exe,discord.exe, a game or a group of apps on a slider. - "Everything else." One slider for every app no other slider claims.
- Device volume. A specific output, or whatever your default device is right now.
- Response curves. Linear, logarithmic, exponential or S-curve, per slider.
- Mute anything. The current output, the microphone, or a specific device.
- Switch outputs. Toggle between two devices (say headphones ↔ speakers), or jump straight to one.
🔘 Buttons that do more
- Single, double and long press, each with its own action.
- Presets. Every button keeps its own actions per preset, and a button can flip to the next preset or jump to a specific one. When the preset changes, the controller announces it.
- Live feedback. Each button shows its state on a LED, a LED pair (A or B), or an OLED screen with an icon, a status line and the action's name.
🖥️ OLED button screens
- Up to 4 SSD1306 screens, one per button.
- Device icons and names, scrolling long names, Hebrew / right-to-left text, and slide animations that move every screen together when you change presets.
- Dimming, auto-off and pixel shift to look after the panels. The first press on a sleeping screen only wakes it.
🏷️ Friendly names everywhere
Give your devices nicknames and icons on the Devices page. "Sony WH-1000XM5 Hands-Free AG Audio" becomes Headphones 🎧 in the pickers, on the volume pop-up and on the controller's screens.
🧩 Your hardware, your layout
- Describe your controller in the app, not in code. The Controller page lists its sliders, its buttons with their indicators and its screen buses. Start from the DIY reference preset, change what you like, and Save to controller. The setup lives on the controller, and Volco keeps a copy.
- Install and update the firmware from the app. Plug the ESP32 in over USB and choose Install firmware…. It takes well under a minute. When a later Volco brings new firmware, the app offers Update firmware and keeps your setup.
- Hardware test. Start test shows every slider and button live without touching your volume, so you can check your wiring.
- Connect your way: USB, Wi-Fi (UDP) or WebSocket.
🫧 Everyday comforts
- A small click-through volume pop-up when you move a slider, mute or switch devices.
- A tray icon that turns red when the controller isn't connected and tells you why.
- Built-in updates. Volco checks GitHub Releases and can install new versions itself.
- Light, dark and high-contrast themes.
🧪 No hardware yet?
Open tools/simulator/index.html in a browser. It's a 3D controller on a desk that talks to Volco over WebSocket, with LEDs or screens, so you can try everything before you solder anything.
🚀 Getting started
- Build the controller. Wire sliders, buttons and LEDs or screens to an ESP32 (
esp32dev). The firmware guide covers wiring and pin choices. - Run
Volco.exe. It appears in the tray. Click it to open Settings. - Connect. On Connection, choose USB cable and the controller's COM port.
- Flash. On Controller, choose Install firmware….
- Set up. Still on Controller, choose Set up, start from the DIY reference (or your own layout) and Save to controller.
- Map it. Assign apps and devices on the Sliders page and actions on the Buttons page. That's it. 🎉
🚧 Known rough edges
Volco 1.0 is stable in what it does. Your volume, mutes, device switching, presets and screens all behave. Some parts are less polished:
- The Controller page and setup flow. The hardware editor, the Advanced settings (input tuning, bus clocks, Wi-Fi) and some of the wording and confirmations still need a design pass. They work, but they can feel technical.
- Firmware. Expect small display and behaviour quirks on the controller, especially with less common hardware layouts. The tested build is the DIY reference board: an ESP32 with a CH340 USB chip.
- Only the ESP32 is supported for now (not the S2, S3 or C3), and the app is Windows only. The app is built to be cross-platform, and Linux and macOS are on the roadmap.
Found something odd? Please open an issue. The log at %APPDATA%\Volco\volco.log helps a lot.
🙏 Thanks
Built on Avalonia UI, PlatformIO, the Arduino-ESP32 core, U8g2 and the Arimo font.
Volco is free software under the GPL-3.0.