freeDSP-aurora - DSP with 8 I/Os, USB Audio, S/P-DIF, ADAT, Bluetooth and Wifi contro

Hello,

I would like to introduce my newest design of the freeDSP family: freeDSP-aurora. It was already introduced in the freeDSP main thread, but there the idea came up to open a new thread only for freeDSP-aurora.

freeDSP-aurora is a one board DSP solution. It all started with the development of a DSP powered subwoofer amplifier. Once the prototype of this amplifier was presented on the German forum diy-hifi.forum.de a fruitful discussion about additional features and ideas started. After two years of development freeDSP-aurora is the distillation of the best ideas.
So here are the features of the board:

  • Analog Devices ADAU1452, 294.912 MHz, 32-bit SigmaDSP, 6144 SIMD instructions per sample @ 48kHz fs, 40kWords of data RAM, 800ms digital audio delay pool @ 48kHz fs, eight stereo ASRCs with 139dB DNR
  • XMOS XE216-512-TQ128 for multichannel bidirectional audio streaming
  • ESP32 for WiFi or Bluetooth control
  • AKM AK4458 32bit-DAC
  • AKM AK5558 32bit-ADC
  • Supporting sample rates between 44.1kHz and 192kHz
  • 8 analog balanced input channels, +6dBu
  • 8 analog balanced output channels, +6dBu
  • S/P-DIF input and output
  • ADAT input and output
  • Wordclock input and output
  • Support for display, rotary encoder, volume potentiometer, temperature sensor, PWM controlled fan, IR sensor
  • One freeDSP expansion header
  • USB Audio Class 2 Bidirectional streaming with 8 channels in and 8 channels out, full-duplex. Works with ASIO driver under Windows 10 and driverless under macOS and Linux.
  • Board dimensions: 100mm x 100mm

To make using as easy as possible I wrote my own app that controls the DSP via Bluetooth. The app runs on macOS, Windows or iOS. Thanks to the ESP32 framework Wifi instead of Bluetooth is an option.
The features of the DSP depend on the DSP firmware. Therefore, I have made a first DSP firmware with the following features per channel.
  • Input select
  • High pass up to fourth order (Bessel, Butterworth, Linkwitz-Riley)
  • Low shelving
  • 10 parametric EQs
  • High shelving
  • Low pass up to fourth order (Bessel, Butterworth, Linkwitz-Riley)
  • Frequency depending phase shift (allpass)
  • Phase inversion
  • Delay 100ms
  • Gain
It supports 8 channels in and out.
This feature list is only a first step. It can be extended in the future, e.g. FIR-Filters are already on the ToDo list.

Like any other freeDSP the project is licensed under an open source license. Thus, everybody is invited to modify or contribute to this project. You can even download everything and build as many freeDSPs as you want. You can find everything on freeDSP | An Open-Source Low-Budget Audio DSP and in the git repository GitHub - freeDSP/freeDSP-aurora: freeDSP ADAU1452 with 8 analog input, 8 analog outputs, S/P-DIF I/O, ADAT I/O, USB Audio Class2, WiFi, Bluetooth

Well, for freeDSP-aurora a new idea came up: A kickstarter campaign has been launched. This campaign shall help to make boards available for those who do not want to order empty PCBs and solder the SMD stuff and do all the firmware flashing. The kickstarter campaign can be found here:
freeDSP-aurora DSP by auverdion — Kickstarter

I am sure you will have a lot of questions because the board has so many features. Please feel free, to ask me!

Raphael
 

Attachments

  • a0eae6529aa63742db253cbade505578_original.png
    a0eae6529aa63742db253cbade505578_original.png
    494.1 KB · Views: 7,167
  • 6b202550d548f147f75bdbb9adb6701c_original.png
    6b202550d548f147f75bdbb9adb6701c_original.png
    85.2 KB · Views: 7,204
  • bd2b2def632df9ec4a0de80b0380038d_original.png
    bd2b2def632df9ec4a0de80b0380038d_original.png
    169.8 KB · Views: 7,082
  • Thank You
Reactions: 1 user
Wow, that seems pretty awesome!

Looking at your list of supported filter types, one thing I strongly suggest is making something like the MiniDSP "advanced biquiad" functionality - the user can input the five biquad coefficients as real numbers. This makes it possible to make other kinds of filters, like higpass-notch, and lowpass-notch, or anything that can be realized with a biquad.

The other thing to consider, based on my experience with the miniDSP interface, was that there were too few biquad stages available on the inputs before stages that were dedicated to crossover filters. The input filters are used for global EQ and you want them applied to all outputs without having to duplicate each filter in the output filter chain.

With the ADAU1452 you have a lot more processing power on tap compared to the ADAU1701 and the specs of the DSP are better. That should deliver a big improvement all around. Glad to see you are using the separate AK4458 DAC. Lots of promise there.

Have you built and measured a prototype for S/N, etc? Apart from the main PCB, what other PCBs will be available (e.g. power supply) and will there be a case/chassis available?
 
Don't want to be a downer, but at one point I looked into possibly using ADAU1452 or even SHARC processors for some prospective applications. Decided they have more distortion than I would prefer for some things such as ASRC, when compared some other possible chip choices. If anyone else is like me in terms of listening preferences, I would suggest maybe taking a look at the specs of whatever you might consider using and see if you think it will satisfy all your requirements.
 
Last edited:
Page 4 of the ADAU1452 data sheet says ASRC THD+N = -120dB. By way of comparison SRC4392 is hovers around -140dB. AK4137 claims somewhere between -133dBt and -153dB, depending, and with typical DNR around 184dB.

I fully understand that some people will be skeptical that anyone can hear any distortion at even -120dBFS under any conditions. I don't want to start up another debate on that subject, so i will leave it with an acknowledgement that it remains a controversial subject in the minds of many people who happen to be interested in audio.
 
I'm sure the quality if this chip is plenty fine for my digital mixer project. This chip is used in many commercial live audio products. It uses industry best practices to get the job done nicely. I'm looking forward to building my project with it.

I wanted to mention that it might be possible to swap an ADAU1466/ADAU1462 to get more memory. "1600 ms digital audio delay pool at 48 kHz".
 
Have you built and measured a prototype for S/N, etc? Apart from the main PCB, what other PCBs will be available (e.g. power supply) and will there be a case/chassis available?

Some final measurements of the prototype will be made next week.
For power supply you just need a +12V DC. You can use a wall mount AC/DC power supply or one of these SMPS modules. But of course you can build your own power supply. I have no chassis available yet. The discussion on the German forum has shown there is no clear favorite for a connector configuration. My idea is to design a few add-on boards for some use cases (e.g. loudspeaker management, active loudspeaker box). Then it would be possible to make a case design for e.g. a loudspeaker management solution.
I am still hoping that soon other DIY'ers will start to contribute add-ons (either hardware or software) to this project.
 
Page 4 of the ADAU1452 data sheet says ASRC THD+N = -120dB. By way of comparison SRC4392 is hovers around -140dB. AK4137 claims somewhere between -133dBt and -153dB, depending, and with typical DNR around 184dB.

I fully understand your point. Well, you only need to think about this, if you use the internal ASRCs of the DSP. So far, I never used them in my DSP programs on SigmaDSPs. By turning off the ASRCs are not in the signal path.
 
My idea is to design a few add-on boards for some use cases (e.g. loudspeaker management, active loudspeaker box). Then it would be possible to make a case design for e.g. a loudspeaker management solution.
I am still hoping that soon other DIY'ers will start to contribute add-ons (either hardware or software) to this project.

Does this circuit require a mic preamp? Or can the input stage be modified to add additional gain?

How about a preamp like this, but instead of xlr, it would have the analog i/o pinout as seen on the Aurora... A circuit like this would be between the port/jack. We would create chasis mount pcb->Aurora io separately.

attachment.php


Chasis mount xlr> Aurora io > mic preamp > Aurora io > Aurora.

I can help getting some parts into the kicad library, and I can help create some simple conversion boards for different io. What's your thoughts?
 

Attachments

  • ehUQm.png
    ehUQm.png
    34.6 KB · Views: 9,080
Here is the recommended input stage of the AKM AK5558 32bit-ADC.

attachment.php


And the input stage of the Aurora.

attachment.php


====Preamp?
So it's implimenting the recommended input. My question is whether this input can (and/or should) be modified to allow for preamp gain for my dynamic microphones. I'm also curious if a potentiometer can be rigged to the aurora's existing input stage to give an adjustable control. Please note that for my purposes, I can be OK with a "set it and forget it" gain. I would adjust the overall levels in the DSP parameters, not on the preamp. For some users, a digitally controlled preamp would be nice. Yes, very nice. :)

====Single Ended
I'm also noticing that the datasheet calls for a single to balanced conversion in the case of "BNC Connectors". I'm sure this is a common question, but should we actively convert the single ended inputs? Or should we just connect + and ground -?

====Active or Passive
I'm trying to understand what's required of these add on boards and what should be done to get them made. Are we designing a simple passive "jack on a PCB" with Aurora-IO headers to make hookups easy? Or do these input boards require some more active conversions?
 

Attachments

  • INPUT_STAGE_SCHEMATIC.png
    INPUT_STAGE_SCHEMATIC.png
    26.1 KB · Views: 5,090
  • INPUT_STAGE_DATASHEET_SCHEMATIC.png
    INPUT_STAGE_DATASHEET_SCHEMATIC.png
    179 KB · Views: 5,120
Last edited:
In case you want to use microphones, I would recommend to add another opamp stage like you have shown.
The maximum gain of the current input stage is a bit limited. The maximum negative swing is limited by the virtual ground of +2.5V required by the ADC. Therefore, I have also replaced the NE5532A by another rail-to-rail-opamp: OPA1652.
Having said this, an additional stage for the mics will preserve the option to connect line signals.
 
====Active or Passive
I'm trying to understand what's required of these add on boards and what should be done to get them made. Are we designing a simple passive "jack on a PCB" with Aurora-IO headers to make hookups easy? Or do these input boards require some more active conversions?

Yes, that is actually what needs to be done. Make a passive PCB with e.g. some XLRs and a pin header with aurora pin layout. You should also place some RFI stuff close to the XLRs. RFI has to be as close as possible to the input.

Regarding balanced vs. unbalanced: While you can do it passive an additional inverter stage on the input board would improve the signal quality.
And here you can see why I did not make a decision for the input and output connectors on the aurora board: There are so many variants and I did not want to limit freedom.
 
Great project! Would you like to add inverted all-pass for crossover phase shift correction? How does analog output stage, clock distribution and DAC Vref power supply looks like?

The inverted allpass is already there. It is splitted in an inverter stage and an allpass stage for phase manipulation.
Power supplies are all LDOs with DSP, USB, analog power for converters and opamp power having each a regulator. The +2.5 virtual ground is provided by TLE2426ID.
 
case you want to use microphones, I would recommend to add another opamp stage like you have shown.

I wonder if a THAT 1580/5173 or THAT 1583/5173 chipset with an i2C to SPI controller would be the correct choice for my mic preamp application with the FreeDSP Aurora? I wonder how much they would cost (read: $$$).

Alternatively I could choose an OPA1652 mic preamp circuit, not sure if it could be digitally controlled, not sure it matters for my application or not.

Hmm... This is why I was originally designing with the PCM1865, it has all the front-end input stuff incorporated into it. I might continue to develop that part with the aurora FreeDSP Expansion Connector. I'm ultimately looking for an inexpensive way to add the mic preamp to this design. Another idea could be to design a simple single ended to balanced converter board for the Aurora. There are many cheap balanced input to single ended microphone preamps on ebay.
 
I had an idea while I was sleeping that might solve the need for both of our purposes in one board. What if we were to create a preamp module that would have a series of "input inverters". These input inverters would also have a simple gain control in either fixed resistor or variable resistor format. If designed correctly, we would solve two birds with one stone.

Single ended inputs would be sent through both inverters, one after the next. This would thus create a balanced signal. Balanced signals would go through the same two inverters but in parallel, so that the balanced signal is just reversed. Both the single ended version and the balanced version would have gain control on the inverters (in the form of a fixed, or variable resistor), so you can add gain coming from the single ended or balanced input signal. The idea would be that at the right gain, this circuit would also be a mic preamp.

The result is an input stage board that would offer single to balanced conversions, input filtering (for standard balanced connections), and gain options (for microphones and instruments); all in one neat little package.

I started a project to draw out my idea.... This is a start. Where would the gain control variable or fixed resistor sit on the circuit? Is this a valid way to approach this situation? This would add gain to the mic input correct? Would it be of any decent quality?

attachment.php
 

Attachments

  • Input Gain and Balance Stager.png
    Input Gain and Balance Stager.png
    41.7 KB · Views: 3,726