Better Raspberry Pi Support

A project log for Teensy Super Audio Board

Professional quality, 24 bit, 192kHz audio breakout board for Teensy 3.x, Raspberry Pi, and more.

RF William HollenderRF William Hollender 10/29/2015 at 04:430 Comments

After all the last minute soldering and testing just before the Hackaday best product semifinals deadline, I was ready for a bit of a break. Things got busy at home and at work, and I haven't done hardly anything on the SuperAudioBoard for 2 months!

In the mean time, I had received a batch of the pi->SAB adapter boards and soldered them up, but hadn't tested them. A few days ago, I got a few hours to actually try them out. The boards are working great, but I still had a few bugs left over in the SAB kernel driver for the Pi.

The new adapter boards in action:

One of the issues that I had earlier with the Raspberry Pi was that I couldn't get files with sample rates other than 48kHz/96kHz/192kHz to play. Most consumer audio (mp3s, etc) have a rate of 44.1kHz, so this was a pretty big downside.

It turns out that I was missing a bit of code in the kernel driver that constrained the available sample rates to the ones that are actually achievable with the SAB hardware setup. There doesn't seem to be much documentation on the kernel sound support, so finding out exactly what was needed was quite an ordeal.

Anyway, with the additional code in place, the SAB works really nicely with the Raspberry Pi. There are a million different ways to get audio setup under Linux, but with the driver fixed, things worked well right out of the box. The only third party tool that I installed on top of the base Raspbian distro was pulseaudio, which tends to make dealing with different sample rates and bit depths more seamless than just using the basic ALSA playback methods.

Here are a couple screenshots showing the board in action:

The first shows the SAB recognized, and its sample rate and bit depth capabilities:

Next there's the stream info (48kHz @ 16 bits) while playing back an online stream of a local radio station:

And, finally, playing back a test mp3 with pulseaudio (resampling from 44.1kHz to 48kHz):