Skip to content
Projects

BambooMaster/pico_usb_i2s_speaker

View on GitHub

BambooMaster/pico_usb_i2s_speaker has 26 GitHub stars and 14 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-14 19:09 UTC. Last push 2026-10-01.

How these counts are measured

Measured star growth

in 24h
0
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

About

High-resolution USB-DDC based on tinyusb. Features I2S output with low-jitter MCLK.

Creative & Media

README.md

Original

pico_usb_i2s_speaker

Raspberry Pi Picoとtinyusbを使ったマスタークロック付きのi2sを出力するUSB DDCです。 uac2_speaker_fbをベースに、ハイレゾ(96kHz 24bit)に対応しました。 USBスタックには、tinyusbを使用しています。

Interpolation 機能

RP2350のDSPを使用したインターポレーション(オーバーサンプリング)機能を実装しています。 RP2350のデュアルコアを活かし、高性能なフィルタを実装したものがinterpolationブランチ、シングルコアのみで実装をしたものがinterpolation-liteブランチです。

インターポレーション倍率

  • 44.1/48kHz: 8倍
  • 88.2/96kHz: 4倍

フィルタ特性 (44.1KHz)

interpolation ブランチ

  • Passband: 20.5kHz
  • Passband Ripple: 0.001dB
  • Stopband: 22.05kHz
  • Stopband Attenuation: -140dB

interpolation-lite ブランチ

  • Passband: 20kHz
  • Passband Ripple: 0.002dB
  • Stopband: 24.1kHz
  • Stopband Attenuation: -100dB

i2s

pico-i2s-pioを使っています。RP2040/RP2350のシステムクロックをMCLKの整数倍に設定し、pioのフラクショナル分周を使わないlowジッタモードを搭載しています。
i2s、PT8211の16bit右詰め、AK449XのEXDF、i2sのスレーブモードに対応しています。また、i2sとPT8211をデュアルモノで動作させることも可能です。

デフォルト

lowジッタ、i2sモード

name pin
DATA GPIO18
LRCLK GPIO20
BCLK GPIO21
MCLK GPIO22

build

vscodeの拡張機能を使う場合

git clone https://github.com/BambooMaster/pico_usb_i2s_speaker.git
cd pico_usb_i2s_speaker
git switch main
git submodule update --init

を実行した後、vscodeの拡張機能(Raspberry Pi Pico)でインポートし、ビルドしてください。
interpolation機能を使用する場合は、git switch mainをgit switch interpolationに変更してください。

vscodeの拡張機能を使わない場合

git clone https://github.com/BambooMaster/pico_usb_i2s_speaker.git
cd pico_usb_i2s_speaker
git switch main
git submodule update --init
mkdir build && cd build
cmake .. && make -j4

interpolation機能を使用する場合は、git switch mainをgit switch interpolationまたはgit switch interpolation-liteに変更してください。

動作確認環境

  • Windows11
  • Ubuntu 24.04
  • Pixel6a (Android 16)
  • iPad Air Gen4 (iPadOS 26.3.1)