树莓派HiFi

Updates
UPS
工作正常,之前以为不能兼容可能是因为UPS用顶针方式集成树莓派和DAC需要用到的GPIO冲突,和卖家交流了一番觉得可以试试,结果充电后就正常了,电量不足时UPS发出了蜂鸣音。图片已经更新成了带UPS的样子。
Nintendo Switch蓝牙音频
一个通宵捣鼓switch, 因为switch用蓝牙会很方便,不然还得换成2和1的线接到音箱和switch上。为什么需要花一个通宵?大概是某些bug在一起很难弄吧。在我刚刚发文放弃switch的时候,鬼使神差般的尝试了一种办法,竟然可以让switch配对上——就是关闭蓝牙,再打开,然后紧接着配对。在stackoverflow中看到有人提到3分钟问题,文档这样说:
Once the discovery stops, devices neither connected to or paired will be automatically removed by bluetoothd within three minutes.
总之我这样做了之后,就能在agent上收到消息是否同意设备加入的提醒了,之前一直遇到的问题是:
- switch说自己的IO Capability是NoInputNoOutput,还问我的IO Capability
- 我试了agent能支持的4种IO Capability,不管哪一种,switch都给我发passkey(随机6位数字)
- 然后“我”拒绝了这个配对请求(User Confirmation Request Neg Reply)
重启蓝牙后,忘记用哪种agent,反正是在bluetoothctl交互式中,收到提醒了,问yes/no, 可能需要回答2次,就配对成功了。
除了switch,我尝试过用iphone, pixel, nuc连接树莓派,都正常,都可以串流音乐给树莓派,再通过音箱播放出来。
已经没有精力再折腾,反正配对之后,断开再连接也没问题了。如果还有问题,可以再看看bluetoothd的启动参数,我加了2个——"--noplugin=sap -E",也许那个-E
有点关系。
如图啊,树莓派Zero W + HiFi DAC模块(当然还有音箱),组成了一套家庭HiFi系统。
原本树莓派Zero也没啥用,那天(买了音箱后)找出来,想着之前见过的那些树莓派模块里有个DAC模块,想买来看看有啥用。
淘宝买来后试了下和树莓派非常搭。。。但我的UPS模块(原来在树莓派下面),和这个DAC默认有些冲突,就被我抛弃了,所以只能插USB启动。
这是DAC文档:https://shumeipai.nxez.com/hifidac-zero-hat-for-raspberry-pi
一开始我跟着文档安装Volumio系统,基本就是下载最新的镜像,拷贝到TF卡,启动,配置。但我总遇到ALSA device错误,无法驱动起来DAC。如果正常启动,设备的蓝色灯会亮起来,图上看到紫色样子的灯光是因为蓝色+红色灯一起亮的效果。可能和Volumio版本有关吧,我用最新版就是不行。后来试了下moOde, 一下就成功,我应该是参考这个配置教程:https://shumeipai.nxez.com/2019/04/20/hifidac-hat-for-raspberry-pi-moodeaudio-instructions.html,新版moOde也许有些地方不一样,但是还好差别不大。
蓝牙支持
其实树莓派Zero W版支持蓝牙,闲着无事体验一下吧,结果也还不错,起码比Airplay,DLNA那些强多了,因为Airplay和DLNA我都试了一下,只是很容易遇到乱码,得重新播放一次,反正体验不好,也许和设备有关,不过蓝牙,用起来还挺好的。
蓝牙遇到的问题是树莓派自身的问题,也可能是moOde镜像不好,默认蓝牙没开起来。。。
需要加载蓝牙模块:
sudo modprobe bluetooth
然后开蓝牙服务
sudo systemctl bluetooth
打开hciuart.service,否则用bluetoothctl
会出现no default controller available错误
sudo systemctl start hciuart
然后bluetoothctl
就可以用了
bluetoothctl power on
bluetoothctl discoverable on
最后,可以考虑把bluetooth模块和服务都放在自动启动中,这样下次用就不用再操作这些了
sudo echo bluetooth >> /etc/modules
sudo systemctl enable bluetooth
sudo systemctl enable hciuart
电脑可以添加Moode Bluetooth设备了,但还要记得配置moOde中的蓝牙,如下:

配置了Pairing agent才会同意你的配对哦,否则配不上!