Skip to content

DSPi Firmware v1.1.5

Latest

Choose a tag to compare

@WeebLabs WeebLabs released this 04 Aug 00:08

The stable release closing out the v1.1.5 beta series. Everything below is new since v1.1.4.

Changes since v1.1.5-beta6

If you are already running beta6, this is the whole delta:

  • Significant PEQ and XO filter efficiency improvement (up to 25%)
  • Stereo upmixer gains a centre engine OFF mode, for surrounds-only upmixing that leaves left and right untouched.
  • New first-order high pass and low pass filter types.
  • Maximum selectable S/PDIF inputs raised from 3 to 4.
  • IR remote learns up to 16 buttons per receiver, up from 8.
  • Loudness reference SPL and intensity can now be bound to a knob, encoder, or remote button.

Everything else since beta6 was test-suite and internal DSP refactoring with no change in behaviour.

New inputs and outputs

  • ADAT input: 8 channels over lightpipe, with master and slave clock modes (RP2350).
  • ADAT output: 8-channel lightpipe mirror of outputs 1-8 (RP2350).
  • I2S input, 2/4/6/8 channels, with a slave clock mode so an external master can drive BCK and LRCLK.
  • Up to 4 selectable S/PDIF inputs on the shared receiver, switchable at runtime.
  • USB input now runs 2, 4, 6, or 8 channels, with inputs treated as first-class channels throughout the mixer.
  • Master clock output on GPOUT, jitter-free at 128x and 256x at 48 kHz and 128x at 96 kHz.

New processing

  • Stereo upmixer: derives centre and surround channels from a stereo pair, with Passive and Logic engines, a centre presence bell, and a surrounds-only mode (RP2350).
  • Psychoacoustic bass: missing-fundamental harmonic generation per output, so small speakers get perceived bass below their real limit.
  • Crossover filters: Linkwitz-Riley, Butterworth, and Bessel, up to 4 bands per channel.
  • New filter types: Linkwitz Transform, first-order high pass, low pass, shelves, and all-pass, plus a second-order all-pass.
  • Volume leveller and crossfeed both go multichannel, with per-channel selection.
  • Loudness compensation is now per output, selectable by channel.
  • Onboard signal generator with 15 signal types, surviving preset loads.

Control

  • Control Surfaces: wire your own buttons, switches, pots, rotary encoders, and LEDs to firmware parameters. Supports long press, double press, hold-to-repeat, momentary actions, encoder acceleration, PWM-dimmed meter LEDs, and per-slot names.
  • IR remote control: learn up to 16 buttons from any handset and bind each to a parameter.
  • Loudness reference SPL and intensity are now bindable to a knob, not just the on/off switch.
  • UART and I2C control interfaces, so an external microcontroller can drive the device without USB.
  • Output configuration can persist independently of presets, or travel with them.
  • Every pin setting accepts 0xFF to reset that pin to its default.
  • Per-band EQ bypass toggle.

Improvements and fixes

  • Loudness compensation math corrected; the previous curve overshot by roughly 2.5x.
  • Outputs keep clocking through flash writes, so saving a preset no longer risks a click or a wedged DAC.
  • Fixed a crash during flash writes on RP2350 caused by unmasked interrupts.
  • Fixed full-volume noise when editing DAC mute settings during a flash write.
  • Fixed incorrect S/PDIF input levels on RP2040.
  • Fixed output type switching between S/PDIF and I2S.
  • Fixed global EQ bypass incorrectly gating outputs on RP2040.
  • Defeated auto-mute on 32-bit I2S DACs.
  • Click-free master and host volume control.
  • LG Sound Sync support for LG televisions.
  • USB descriptors corrected for Windows driver binding (WCID and MS OS 2.0).
  • Firmware now runs from flash with hot paths pinned in RAM, freeing about 70 KB of SRAM on RP2040 and 107 KB on RP2350.
  • Master volume no longer changes on a runtime preset load in independent mode.

Changed defaults

  • S/PDIF receive pin default moved to GPIO 5.
  • Debug UART moved off GPIO 12 to GPIO 16 and 17.
  • I2S input data pins default to GPIO 1 through 4.

Downloads

  • DSPi-RP2040-v1.1.5.uf2 for RP2040 (Pico).
  • DSPi-RP2350-v1.1.5.uf2 for RP2350 (Pico 2).