Just wanted to share something I've built.
It's fully reverse engineered, running on an old 2.4 Linux kernel I found on Nokia HD-1, but with a modern all-Rust userspace. Support Airplay 2 and Snapcast. The Airplay 2 implementation synchronizes with real Apple devices down to 1ms in the multi-room configuration. Spotify support is present, but it doesn't work for me because of librespot key issues.
It utilizes the MIPS co-processor cores I have found on it for audio decoding and crypto. There's no FPU on the ARM nor the MIPS, so all the codecs are reimplemented in fixed-point math and made to fit the very small shared SRAM buffers.
The DSP board firmware is also completely replaced. It fixes all the complaints I had about the original device: no source auto-switching, USB audio would de-enumerate when the speaker went to sleep, volume keys were sending HID events instead of using the proper UAC status interrupt endpoint, etc.
I tried getting 24b USB audio to work, but unfortunately the endpoint buffers on this old AVR32 are too small. The the network audio supports full 44.1/48/24b though.
The Wi-Fi chip is very old, there's no upgrading that, so realtime ALAC on Airplay or PCM/FLAC on Snapcast can be spotty if the connection isn't perfect, but Ethernet works too.
The iPod dock doesn't work, mainly because I can't find my old iPod anywhere to develop against. Send PRs if you have one!
Also partly for vanity and partly for UX I updated the LED colors and FX.
Comments URL: https://news.ycombinator.com/item?id=50485222
Points: 1
# Comments: 0

