New audio board: Audio Injector Ultra sound card for the Raspberry Pi


Ok, the price segment for the ultra changed.
Before I buy a new one, somebody else should really make it work first.


Ok, i made it work.
The Ultra runs with 48k, so that the jack options needed to be changed.
I made it transparent in the webconf.
The two alsa sliders DAC and PGA are visible.
I am not quite sure how to separate the level of playback and capture though.
But I am in contact with Matt to solve this issue.


I am going to avoid the Audioinjector Ultra 2 until some things changed.
This might be a new driver or I give it another try when Raspi 4 is out.

Those are the main issues:

  1. alsactl store
    alsactl: get_control:256: Cannot read control ‘2,0,0,C Data Buffer,0’: Input/output error
    That makes it impossible to save the volume. As it is resetting to 100 every boot, which is too loud. I used a script which sets it to 80% at boot time.

  2. The volume for the playback and the capture is called “DAC” in both cases and “amixer controls” doesn’t show two different controls either so that I could use numid=xy to handle it. This means, that both output volume and input volume are the same. When alsamixer is used, they are locked together as well.
    If Matt would change the driver, so that there are two mixers, we could set two different volume levels.

  3. As I have to use a different jack setting, Pianoteq is not as nice as with other cards. And I get more xruns either. That’s why I said, I would give it another try when there is a Raspi 4.

But as of know, I am going to use the Zero again.


Yes indeed.
The ultra uses the linux/sound/soc/codecs/cs4265.c driver. This driver is a little bit of a mess, I have already made many fixes to it.

To address your points:

  1. Yes this is a problem - it is to do with buggy code in the linux driver. I will look into it when I get more time.
  2. I believe the ADC is called PGA in the capture screen of alsamixer. Again the “DAC” in the alsamixer capture section is due to buggy linux codec code. So to sum up, use DAC in the playback section of alsamixer and PGA (for ADC) in the capture section of alsamixer.
  3. It wasn’t clear whether there are more xruns or not - which jack settings are being used ?