The Pi plays the music. The helm keeps the controls simple.
Pi playback demonstrated · development continuesUpdated: 1 November 2026
Current native audio view on the Lumina. Main and zone controls come from the running Pi DSP; no playback source was connected during capture. Boat telemetry in the header is labelled as simulated.HELM 206 · 0.8.134-sonar-start-depth-controls · Lumina K706 · Android 10 · 2000 × 1200
01 / STARTING POINT
What we wanted to solve.
The goal was not simply a Spotify window on a large display. Music should run independently of the screen, with large controls, physical knobs and one consistent volume state. Multiple speaker channels and useful sound processing were part of the task.
WHAT THIS COMPONENT MAKES POSSIBLE
The practical difference.
Music is not tied to one display. A control position can change while playback and sound processing remain in the independent Pi module.
Playback, equalizer and channel routing receive consistent controls. A requested state is only confirmed after a response. Current device captures show real Pi preset, equalizer, room and channel data. Track/playback state and sound controls are separate: track state was missing during capture while the DSP was running.
We separated playback from the display: a Spotify Connect receiver feeds digital sound processing (DSP) through CamillaDSP on the Pi. The Android interface receives state and sends commands through the gateway.
State synchronisation, volume, reconnects and handover between Spotify and our controls required substantial work. One shared master avoids competing volume controls.
Sound presets, filters and channel routing are kept separate from playback. Development views may show example tracks; they do not establish a finished personal Spotify-library integration.
03 / RESULTS
What exists today.
Audible Spotify playback through the receiver and CamillaDSP is documented in the lab; Pi migration and stability have separate records.
A DSP bus for front, rear and subwoofer channels is implemented. Virtual channel checks and actual speaker installation remain separate.
On 20 October, sound presets were saved and reselected through HELM on the physical Pi; the catalog survived a gateway restart.
Images show the development revisions identified in their captions. Today’s source may be newer than an existing image.
NATIVE DEVICE CAPTURE32 s · 1×
Two devices. One confirmed volume setting.
32 seconds of native recording on receiving client Lumina 1: the main fader is moved from −39 to −40 dB and restored on Lumina 2. Both devices, the gateway and Pi DSP show the same state.
2026-11-01 · Receiving Lumina 1 K706 · Android10 · 2000 × 1200 (recording1280 × 768); controller Lumina2 K706 · HELM 206 · 0.8.134-sonar-start-depth-controls on both devices · Original speed, silent
Text description and context
32 seconds of native recording on receiving client Lumina 1: the main fader is moved from −39 to −40 dB and restored on Lumina 2. Both devices, the gateway and Pi DSP show the same state.
Confirms the shared main-fader state in this setup; no claim of frame-accurate synchronization or measured latency. No montage, music playback or acoustic measurement. Other boat values remain labelled as simulated.
31 seconds from the current native HELM app: existing sound presets, EQ, room view and speaker positions. Real Pi sound settings were independently checked against the running DSP.
31 seconds from the current native HELM app: existing sound presets, EQ, room view and speaker positions. Real Pi sound settings were independently checked against the running DSP.
No playback source connected; no music, artificial spectra or changed sound settings. The boat header is labelled as simulated. This demonstrates operation on one client, not two-client synchronization, acoustic acceptance or GPU performance.
Direct captures of the installed apps. Captions identify device, version and data source; a displayed measurement is only as strong as the source described there.
At capture time, presets, equalizer, room and channel routing were connected to the real Pi service. Track/playback state was missing, so the music library and queue could not be opened on this device.
Current native audio view on the Lumina. Main and zone controls come from the running Pi DSP; no playback source was connected during capture. Boat telemetry in the header is labelled as simulated.HELM 206 · 0.8.134-sonar-start-depth-controls · Lumina K706 · Android 10 · 2000 × 1200
Current library with three existing presets. “No 5 – Immersive 4.1” is active; no other preset was loaded during capture.HELM 206 · 0.8.134-sonar-start-depth-controls · Lumina K706 · Android 10 · 2000 × 1200
The existing active preset: EQ off, saved point and 12 dB reserve. The Pi supplies real sound settings; no music or artificial spectrum is playing.HELM 206 · 0.8.134-sonar-start-depth-controls · Lumina K706 · Android 10 · 2000 × 1200
The same native EQ workspace at night. The existing EQ-off state was preserved.HELM 206 · 0.8.134-sonar-start-depth-controls · Lumina K706 · Android 10 · 2000 × 1200
Current room view of the active preset: rounded 34% effect amount and 57% room size. Reflection lines are explicitly schematic; not an acoustic measurement.HELM 206 · 0.8.134-sonar-start-depth-controls · Lumina K706 · Android 10 · 2000 × 1200
Native red night view of the same saved room settings. No sound values were changed during capture.HELM 206 · 0.8.134-sonar-start-depth-controls · Lumina K706 · Android 10 · 2000 × 1200
The current native speaker page shows existing geometry and derived delays. A two-dimensional approximation; not a new measurement or acoustic acceptance test.HELM 206 · 0.8.134-sonar-start-depth-controls · Lumina K706 · Android 10 · 2000 × 1200
Saved listener and subwoofer positions in the own boat plan. The view was opened without moving positions.HELM 206 · 0.8.134-sonar-start-depth-controls · Lumina K706 · Android 10 · 2000 × 1200
The same saved positions in the native night view.HELM 206 · 0.8.134-sonar-start-depth-controls · Lumina K706 · Android 10 · 2000 × 1200
Current detail dialog for an existing speaker. Coordinates are saved planning values; height remains unknown.HELM 206 · 0.8.134-sonar-start-depth-controls · Lumina K706 · Android 10 · 2000 × 1200
Three existing routing profiles in the current app. “Immersive 4.1” is loaded; no routing profile was switched during capture.HELM 206 · 0.8.134-sonar-start-depth-controls · Lumina K706 · Android 10 · 2000 × 1200
Current assignment of the four faders. The left knob controls “Main”; visibility and assignments were left unchanged.HELM 206 · 0.8.134-sonar-start-depth-controls · Lumina K706 · Android 10 · 2000 × 1200
Earlier development revisions and designs +
These images explain the development journey. Historical test views and designs are separate from current device captures.
The AUDIO interface with a demo track and simulated levels: playback, three audio areas and master volume.
The native DIR1 equalizer test rendering from 21 October puts frequency, gain and width under direct control. The confirmed fixture state is not proof of acoustic calibration or smooth editing on every device.
Native UI test view with a virtual boat room and speaker positions. The room model supports the controls; it does not prove a completed installation or measured room acoustics.
Sound presets and channel routing in an existing UI test rendering.
04 / REPRODUCE
What you will need.
Pi with a suitable audio output, amplifier and speakers
Spotify access subject to the terms of the services in use
CamillaDSP and channel routing matched to your installation