DSPi — это полнофункциональная прошивка цифровой обработки звука (DSP) для плат Raspberry Pi Pico, Pico 2 и других устройств на базе Raspberry Pi RP2040/RP2350, которая превращает их в USB-звуковую карту со встроенным DSP.

Прошивка открывает доступ к таким важным инструментам, как коррекция акустики помещения, активные кроссоверы, параметрический эквалайзер и временное выравнивание, при этом в системе устройство определяется как обычная звуковая карта.

реклама кормит Уточку 🦆

Плата Raspberry Pi Pico с АЦП PCM1808 и разъёмами RCARaspberry Pi Pico, подключённая к АЦП PCM1808 и разъёмам RCA

Возможности прошивки DSPi:

  • Двухъядерная обработка — обработка эквалайзера распределяется между обоими ядрами как на RP2040, так и на RP2350.
  • USB-аудиоинтерфейс — поддержка входного сигнала PCM 16 и 24 бит на частотах 44,1, 48 и 96 кГц; работает в macOS, Windows, Linux и iOS.
  • Вход S/PDIF — стереозвук PCM 24 бит на частоте 44,1 или 48 кГц.
  • Выходы S/PDIF или I2S (24 бит) — до 4 независимых стереослотов (8 каналов на RP2350, 4 канала на RP2040).
  • Выход на сабвуфер — отдельный монофонический канал PDM с высокопроизводительным дельта-сигма-модулятором второго порядка, позволяющий подключить сабвуфер напрямую без второго ЦАП.
  • Предусилитель на каждый канал — независимая регулировка усиления для каждого входного USB-канала (L/R), применяемая на первом этапе (PASS 1) обработки до всех прочих операций.
  • Матричный микшер — направляет один или оба входных USB-канала на любой выход с независимой регулировкой усиления и инверсией фазы в каждой точке коммутации (2×9 на RP2350, 2×5 на RP2040).
  • Параметрический эквалайзер — до 10 полос PEQ на канал с 11 типами фильтров (пиковый, низко- и высокочастотный шелф, фильтры низких и высоких частот, режекторный, всепропускающий, а также мягкие варианты шелфа и всепропускающего фильтра первого порядка). Всего 110 полос фильтрации на RP2350 и 70 на RP2040.
  • Активные кроссоверы — до 4 выделенных кроссоверных фильтров на выходной канал: Линквица-Райли, Баттерворта и Бесселя (ФНЧ/ФВЧ) вплоть до 8-го порядка (48 дБ/окт) для многополосных акустических систем и подключения сабвуфера.
  • Выравниватель громкости — компрессор восходящего типа с привязкой к стереоканалам, работой по среднеквадратичному уровню (RMS) и мягким коленом, который подтягивает тихие фрагменты к целевому уровню, никогда не усиливая громкие участки. Доступны опциональное упреждение 10 мс, настраиваемая скорость и потолок максимального усиления, а также предохранительный лимитер с ослаблением до -6 dBFS.
  • Тонкомпенсация (loudness) — зависящая от громкости коррекция АЧХ на основе стандарта кривых равной громкости ISO 226:2003.
  • Кроссфид для наушников — функция на основе BS2B с межушной временной задержкой (ITD), которая уменьшает неестественное разделение каналов при прослушивании в наушниках.
  • Общая громкость (Master Volume) — ограничение выходного уровня на стороне устройства (от -128 до 0 дБ, с отдельным значением полного отключения звука), применяемое в самом конце тракта независимо от громкости USB-хоста и обработки DSP.
  • Усиление и отключение по каждому выходу — независимая регулировка усиления и отключения звука для каждого выходного канала.
  • Временное выравнивание — задержка по каждому выходу (до 85 мс) для согласования акустики и сабвуфера с автоматической компенсацией задержки между трактами S/PDIF/I2S и PDM.
  • Настраиваемые выходные контакты — все выходные контакты GPIO (включая I2S BCK/MCK) можно переназначить во время работы под собственную разводку платы.
  • Система из 10 пресетов — сохранение, загрузка и управление до 10 полными конфигурациями DSP с пользовательскими именами.
  • Диагностика — измерение пиков и клиппирования по каждому каналу, счётчики ошибок USB PHY (CRC, bit-stuff, тайм-аут, переполнение, нарушение последовательности), статистика заполнения буфера, счётчики нехватки данных DMA S/PDIF по каждому выходному слоту и отчёт о загрузке CPU по каждому ядру.
  • Обновление прошивки по USB — специальная команда перезагружает устройство в загрузчик UF2, позволяя залить новую прошивку через приложение DSPi Console без физического нажатия кнопки BOOTSEL.
реклама кормит Уточку 🦆

Реализации для Raspberry Pi RP2040 и RP2350 во многом схожи: ядра разогнаны до 307,2 МГц, поддерживаются частоты дискретизации 44,1 / 48 / 96 кГц, 24-битная разрядность выхода, 10 пользовательских пресетов, вход S/PDIF и так далее. Однако между ними есть и заметные различия, приведённые в таблице ниже.

ХарактеристикаRP2040 (Pico)RP2350 (Pico 2)
Обработка звукаФиксированная точка Q28Числа с плавающей точкой одинарной точности
Полосы эквалайзера10 на канал (всего 70)10 на канал (всего 110)
Всего каналов7 (2 мастер + 4 S/PDIF·I2S + 1 PDM)11 (2 мастер + 8 S/PDIF·I2S + 1 PDM)
Выходные слоты2 стерео (каждый S/PDIF или I2S)4 стерео (каждый S/PDIF или I2S)
Вычислительное ядроОптимизированный вручную ассемблер ARMАппаратный FPU (гибридный эквалайзер SVF/биквад)
Двухъядерный эквалайзерДа (ядро 1 обрабатывает выходы 3–4)Да (ядро 1 обрабатывает выходы 3–8)
реклама кормит Уточку 🦆

Помимо самой прошивки, команда Weeb Labs разработала графическое приложение DSPi Console для полного управления прошивкой DSPi в macOS, Windows и Linux. Оно обеспечивает управление в реальном времени, работу с фильтрами, настройку устройства, а также мониторинг и визуализацию.

Окно DSPi Console с графиком АЧХ фильтровОтображение АЧХ фильтров в приложении DSPi Console

реклама кормит Уточку 🦆

Для тех, кто предпочитает командную строку, предусмотрен DSPi Terminal — он предлагает практически те же возможности, что и DSPi Console.

Интерфейс командной утилиты DSPi TerminalИнтерфейс DSPi Terminal

Репозитории прошивки DSPi, портов DSPi Console, DSPi Terminal и других компонентов (порт на STM32, передняя панель на ESP32-S3) опубликованы на GitHub-аккаунте Weeb Labs. Автор также представил проект на форуме Audio Science Review в феврале 2026 года, и обсуждение по-прежнему активно — оно насчитывает 121 страницу, а репозиторий прошивки на GitHub уже собрал 1200 звёзд, что говорит о популярности проекта в аудиосообществе. Прошивка создавалась с помощью искусственного интеллекта (Claude); при этом, по данным анализа кода нейросетью, он отличается высоким качеством для любительского ПО, хотя некоторые файлы на C довольно длинные — во многом из-за обширных комментариев.