Download latest

upcoming (not yet released / ANNOUNCED)

  • crash when unexpected zip in sound directory
  • also extract folder sound packs on the fly
  • LUA functions for volume control and sound packs
  • make command separation with semicolon LUA aware
  • LUA function for sending serial commands
  • added documentation for coin door buttons
  • better default for max preload size (safes memory)
  • automatic detection of low memory condition when preloading

1.41 (22.03.2022)

  • preload in altsound, when convert to wav
  • logging of firmware flash
  • altsound: don’t discard sound, when just one sound file is missing
  • more tolerant update zip file names[1]
  • loader / starter script for DSP
  • default for DE pot range (volume control)
  • better support: upload logfile on demand
  • remove altsound sound packs, when sound pack was deleted
  • sound pack menu update after remove
  • announce sound pack even if no preload
  • altsound ZIPs will be unpacked automatically[2]

1this means you don’t need to rename to, update-*.zip is also accepted.
2this means you can just copy the altsound_*.zip directly to the sound directory.

1.40 (06.02.2022)

  • progress indicator in UI on upload soundset
  • locale handling depending on browser preferred language
  • typo in german locale
  • auto detection of game type
  • altsound: load wav automatically, when ogg is missing

1.39 (05.01.2022)

  • another bugfix in the DCS decoder for high IDs
  • don’t detect MCU on old boards
  • version response for license and mcu
  • extensive / unnecessary logging for whitestar
  • logging in startup (typo)

1.38 (23.11.2021)

  • correct decoding of wifi ssid with special chars
  • extended demo mode until communication with games starts
    (enables full testing outside of the machine)
  • support sound packs specific lua code
  • preloading in background (faster start)
  • added config option for background preloading
  • performance on startup in general
  • show version of mcu firmware in web UI and OLED display
  • fixed led mode in mcu firmware
  • added manual flash for MCU in web UI
  • diagnose mode for IO with MCU
  • avoid crackles while preloading in background
  • translations of UI
  • added option to adjust ALSA sound buffer
  • DCS command decoder: allow high sound IDs (up to 08FF)

1.37 (29.05.2021)

  • more reliable success check after flashing stm
  • consistent versioning in update checker
  • added more unit tests
  • add USB sound device equalizer support
  • avoid null name for audio devices
  • config handler, stop cmd lists
  • lua module path in start script
  • better stop cmd handling for WPC
  • undetected file overwrite when adding samples (altsound)
  • minor UI improvements: EQ settings

1.36 (07.05.2021)

  • Option in the sound engine: voice callouts can be displaceable[1]
  • DSP only: add chebyshev / butterworth filter adjustment support
  • config page restructured (expert / normal settings)
  • config changes are directly applied, (mostly) no restart needed
  • optional firmware for DSP that supports aux-in
  • command test feature in web UI (encoding problems)
  • DSP parameter setup (only relevant for boards with DSP)

1 – this means if a new voice callout is triggered before the previous one is finished, it will be faded out.

1.35 (03.05.2021)

  • auto detect for DCS

1.34 (21.04.2021)

  • added hex id values in logfile
  • maximum size for samples to preload (configurable)
  • regression: play system sound from web UI
  • size formatted string for small value (logging)
  • remove sample from sound (first or old sample)12
  • logging on range checks
  • sound details UI: delete is disabled, if only one effect left
  • default stop cmds on top of configured (not instead)
  • removed 0x7F as music stop command for WPC
  • configurable fade out for stop commands
  • auto detection of game type, depending on soundset or hardware detect (only >3.5)


Improved mobile experience
  • setting Wifi password with special chars
  • multi language support for UI (german/english)
  • mobile expirence
  • bluetooth device control
  • automatically switch to bluetooth on connect
  • added default stop cmds for WPC
  • Buffer overflow for very big soundpacks (many sounds per category)
  • potential buffer overflow in OLED output processing
  • remove soundpack switch with repeated volume=0 command for whitestar[1]
  • to reduce log lines, pincom low level logging for white star is now TRACE level (was DEBUG)[2]
  • altsound: getting file size for preload. (may result in no preload at all)
  • removed a lot of potential buffer overflows, increased test coverage
  • Equalizer presets
Equalizer Presets (highlighted in orange)

1 – for wpc it is possible to switch sound pack by repeatedly press “vol-” even if volume is already zero. This way you can switch sound pack with cabinet buttons
2 – you can still include these log line in your log file, but you need to set log level to TRACE


For update 1.32 there is also a complete new image, that includes all updates until 1.32. For the new bluetooth feature to work, you need to flash the entire image. Just uploading the update package is not enough! For those who like to use other sd card sizes the howto in this article is still valid and links are up to date.

  • Bluetooth sound
  • only pi4: read serial number
  • reset update packages (smaller updates). always install update-1.31 first (or new image 1.32)
  • Bluetooth & Pinball Sound simultaneous
  • install license file in web ui
  • upgrade to latest DietPi 6.34.3


  • json response of sound details, if sound command includes “
  • handling of sound command updates in altsound
    (adding serial column if missing, improved value update)
  • altsound loading with missing columns
  • stop command, that gets triggered when a sound effect ends or is stopped
  • internal volume on sound pack change
  • potential buffer overflow in server response
  • server success messages
  • refactored whitestar protocol decoder
  • removed unnecessary delay when reading data east pot
  • resume background music, if faded out because of timeout
  • altsound gains / ducking can adjusted by category
  • cleanup for altsound updates
  • more (and fixed) unit tests
  • add doc comments to all updateXX functions
  • set lua library path (enables loading libraries in init.lua)


  • live update volume when adjusting gain in sound details
  • altsound: discard sounds on load, if sound file does not exist
  • error handling when updating altsound.csv


  • system volume is adjustable
  • soundset annoucement could be switched off
  • mini display works again


  • ensure backwards compatibility with really old boards by making even i2c optional (check i2c device and skip all related functions if not present)
  • finally fixed data east volume control with pot for old board releases (< 2.8 without ADC). Replacement of tantal elko required.
  • license check / capability check
  • added licensing page to website
  • improved changelog with tags
  • mini display status, cleanup / more infos e.g. volume
  • cycle to next soundset with push button
  • ssd1306 display recognition (could crash on older boards with no display)
  • crash in web ui – sounds, when no soundset loaded
  • upload of new soundset in web ui


  • GainByType / DuckingByType in webUI (each sound has its own ducking / gain)
  • server response on load sound set (misleading error message)
  • online sound adjustments also for non altsound to give instant feedback (realtime update of volume control, no reload of sound pack)
  • automatic online update to latest firmware version (you still have to confirm)


  • in firmware loader for DSP


Only minor changes:

  • links in the web UI to latest versions / change logs …
  • wrong build number in ui
  • new event server, that allows to trigger events via network (udp)


  • in white star protocol decoder, that could lead to volume control confusion
  • in altsound “single” sound mapping: singles where not playing
  • volume control: 1.30rc19 introduced a regression bug, when reading volume gains from soundset


  • button functions: super long press (> 2s) -> reset, medium (>0.3s) -> cycle audio device, short (<0.2s) -> cycle sound pack
  • control: better up- / down-scaling, wpc gain fix, music track changes, while ducking
  • mini display shows audio device
  • better dsp support (automatically choose dsp audio, if present and nothing special configured)
  • SDL upgrade to
  • when lua license option is missing (was causing “register announcements”)


  • timing issue that could cause background music to be faded
  • whitestar volume control “on the wire” (bus commands)


  • added dbus control for omxplayer
  • better measurement of memory consumption for preloaded sounds
  • added display of consumed memory in web UI
  • create compile option for server / docker build
  • preload threshold when loading altsound


  • dsp loader support build in
  • dsp parser support to get filter parameter address
  • support to set dsp filter parameter “on the fly” & “on load”
  • added sections in config to make it more lucid
  • support for a api prefix in JS
  • added ducking support in browser sound simulation
  • web UI dynamic server mode support
  • remove some functions in server mode web UI (e.g. remove sound pack)
  • code cleanup

New with 1.30 / 2.0

see full blog post: Whats new with 2.0

New with 1.25

  • Wifi Setup
  • 10-Band Equalizer
  • various bugfixes

see full blog post:

Older changelog


  • enabled core dumps in case service breaks


  • bugfix: resume from jingle was playing wrong music


  • stop cmd fix for DCS
  • configureable shaker pin
  • i2s support for external DAC (PCM5102) for improved sound
  • configurable pinout for i2s support


  • new smaller image (based on diet pi), should always fit on a 16GB card
  • faster startup time
  • full support for usb stick


  • working with DCS machines
  • support for USB stick based setup
  • support for recording / playback
  • improved testing
  • builtin descrambling support for most sounds
  • support for serial commands for controlling serial-media-server
  • support for additional stop commands
  • background music looping configurable
  • experimental whitestar support


  • support for older data east
  • announcement of mode
  • improved WPC mode, handling of 0x6x cmds
  • bugfix in volume handling (ducking vs. jingle)
  • fixed handling of rotary encoder for data east
  • added output enable for latest pcb rev.
  • shaker support config: active high or low


  • playback & recording option
  • combined config file: config.raspisnd -> contains settings and hash mapping


  • DCS support (vendor = 5)
  • log level configurable
  • playback of recordings
  • various bugfixes


  • support for mapping files ‘config.raspisnd’ to map scrambled IDs to hardware ID from pinball machine
  • preload control can now be based on size, so only big ones get preloaded (save startup time & delay when loading on demand)
  • preload settings option: preload_threshold=XX size in byte for sample to get preloaed
  • no audio start option for tests and debug
  • more debug log output on start to detect audio problems
  • sound sets directories must no longer be numbers but arbitrary names


  • even more bugfixes for WPC (do not use 1.5 with WPC)
  • improved soundset switching with WPC
  • new config switches in raspisound.ini:
    • preload = 0: no preload of sounds at all
    • vendor = X: controls vendor 0=DataEast, 1=WPC
  • introduced shuffle mode, where soundset changes automatically every 5 min