I mean, I presume that the low latency performance can only be achieved with an audio codec like the Texas Instruments PCM3168 used on the Elk Pi Hat, not with the internal audio system of the RPi or for instance a simple USB-connected audio interface.
Would it be possible/allowed to develop a custom audio hat using such a codec and run the Elk Audio OS, or would there be more to that?
if I correctly interpret your question:
sure, you can build your own audio hat using the same codec. If you want to keep performances decent, still you want something connected over I2S. No USB audio soundcards, for which we don’t have support in Xenomai.
If you’re interested in developing a custom hardware, check our HW repository on Github, where we published with a very permissive CC-BY-SA license the full project:
I see - so if I understand you correctly, for basic low-latency/high-performance running of the Elk Audio OS, the minimal hardware requirement would be a Raspberry Pi (also Zero or Compute Module?) and any I2S-connected codec?
I’m quite impressed already by the opportunity that Elk is offering to the community with this new release/announcement; I’m just trying to understand how wonderful it is exactly
To be very clear: the basic requirements to do low-latency performance without modifying Elk itself are to use a Raspberry Pi 3B / 3B+ together with the Elk Pi board, as we write on the website.
In addition to that, it is relatively simple to adapt Elk Audio OS running on Raspberry Pi 3B/3B+ to work with another audio codec but still keep in mind that this requires some expertise with Linux driver development and is not for anyone. Still, it is way simpler than starting from scratch.
Supporting other Raspberry Pis like the Zero is a pretty difficult job. The Compute Module version of the 3B / 3B+ is relatively simple, though, as it has the same SOC and main components.
Alright, I see. Very interesting, thank you for the clarification.
If I want to use an existing RPi hat with Elk, for example, the Audio Injector Octo Sound Card, can I use it with its existing Linux driver?
Or do I need to write a custom driver on the low latency side?
If you use the Audio Injector Octo Sound Card, you will have to write your own Real-time audio driver with the help of RTDM frame work provided by the Xenomai guys. The existing driver for Octo sound card is an ALSA driver and it wont be useful with ELK Audio OS.
Understood, that makes sense. Thanks!