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

Is there a timeline for official ADAT support on Aurora?

The current version of the Aurora XMOS firmware doesn't seem to have any code supporting it so it's not accessible in SigmaStudio.


The ADAT support tis part of the XMOS SDK. Therefore, you can't not see when looking at the aurora repository only.
You have to enable the ADAT support in the XMOS firmware. Just refer to the guides of XMOS. The ADAT is then available via the serial port of the DSP that is connected to the XMOS.
 
I’ve discovered an interesting behavior of Aurora that appears to be related to WiFi operation. As soon as the access point is opened on Aurora the ESP32 starts drawing HUGE current spikes every 100ms (> 500mA at minimum). This 10Hz pulse frequency is creating a lot of low frequency harmonics that are severely limiting the output noise levels.

Can you describe a bit further how you measured the pulse? I couldn't verify it so far.
 
The ADAT support tis part of the XMOS SDK. Therefore, you can't not see when looking at the aurora repository only.
You have to enable the ADAT support in the XMOS firmware. Just refer to the guides of XMOS. The ADAT is then available via the serial port of the DSP that is connected to the XMOS.


I've played around with trying to enable it on the existing firmware by setting the build flag in the makefile and changing the channel assignments in customdefines, but when searching through the existing firmware these flags don't actually seem to correspond to any existing code and probing the TDM output of XMOS does not result in additional channels successfully outputting.


Do you have a current XMOS build you could share with this support enabled that I could reference?
 
Can you describe a bit further how you measured the pulse? I couldn't verify it so far.


I first noticed the current pulses when measuring loopback in REW. Any channel to any channel should work, any plugin, all DSP disabled. I monitored the input in REW's RTA with the attached settings.


Once I saw the 10hz harmonics I put a 0.01 ohm current shunt in series with the power supply (9v, as this provides best S/N performance) and then probed across it, seeing the previously attached scope plot.
 

Attachments

  • Screenshot 2020-06-15 09.20.46.png
    Screenshot 2020-06-15 09.20.46.png
    98.5 KB · Views: 252
Last edited:
Across the 9v input rail


Edit: Apologies, I forgot the 9v input rail actually goes to a 9->7.5v buck converter to isolate Aurora from the rest of my project, so Aurora is receiving 7.5v instead of 9v. The bulk capacitance mostly in an attempt isolate the current spikes from the rest of the system but had the side effect of slightly reducing noise.
 
Last edited:
Ground loop?


Ground loop *might* be possible. The only additional ground-ish connection to Aurora is the "Low" terminal of a digital potentiometer on the volume input, through that should be ground-ground isolated (MAX5481). I will test again with this disconnected in a few minute and report back.



This still doesn't really explain the current consumption pulses appearing on the power supply... I will try again with a fully differential probe in case the single ended probe is picking up some strange interference
 
it is known that the ESP32 causes some short high current spikes once WiFi is enabled. I had trouble with that on the first prototype. There it caused the ESP32 to reboot every time WiFi was enabled because the voltage became too low. At that time an additional cap on +3V3 to GND helped. And later I added an extra LDO for the ESP32.
 
An additional 47uF tantalum on the 3.3v rail did not seem to significantly reduce the offending 10Hz harmonics, nor did disconnecting any additional grounds. However, as I was moving wires around I noticed that when my hand was near the antenna, the noise decreased slightly. Moving the antenna as far away from the board as possible decreased the 10Hz peaks by around 3-6dB, and placing my hand against the antenna between it and Aurora made them disappear below the noise floor. Seems like these harmonics are all radiated energy rather than power rail corruption.


I happened to have a flexible copper rf shield hanging around that I had used for other projects, but wrapping it over the Aurora board and grounding it to main 9v power ground actually increased the 10hz peaks, rather than attenuating them (possibly capacitive coupling), so I'm not sure what all I can do to improve this other than the 3-6dB boost from moving the antenna.
 
placing my hand against the antenna between it and Aurora made them disappear below the noise floor. Seems like these harmonics are all radiated energy rather than power rail corruption.

Aha. Sounds similar to something what I observed when I made the Aurora Limited builds for the kickstarter campaign: When aurora was placed in an aluminum case I could hear some ticking in the audio signal and the WiFi connection was really unstable. But only when the top cover was removed. Once the top cover was back and therefore the antenna could not see the board anymore, the ticking was gone and WiFi was stable again. Interestingly the case was not connected to any ground or earth.
 
When aurora was placed in an aluminum case I could hear some ticking in the audio signal and the WiFi connection was really unstable.


This describes what I'm seeing perfectly. My case is plastic and the antenna I'm using is an internal patch. I think the flexible copper I tried earlier produced something similar to your case with the open lid.

I'll try moving the antenna externally and foil wrapping the entirety of the case to see if that helps, thanks!
 
Incidentally, since the volume level is driven from a pot acting as a voltage divider then it should be possible to close the loop with an amplifier and have a clipping indicator reduce the reference voltage in proportion to how much the amp clips. Maybe by year end I'll have time for a complete circuit design since my plate is kinda full right now, but anyone else is welcome to have at it.

It should be fairly simple: an RC lowpass network (R1 C1) on the +3 reference with a few seconds time constant driving a noninverting unity gain follower to the volume control, and a FET switch with a smaller resistor (R2) to ground in parallel with the cap, with R2C1 having a shorter time constant than R1C1. On power-up the cap would charge up to +3 and stay there until a clip signal turns on the FET and shunts the cap to ground through the smaller resistor, thus reducing the reference driving the volume control and bringing down the voltage going to the DACs and thus the output level. The R1C1 time constant would determine gain recovery time, of course, and the R1 and R2 voltage divider would determine maximum gain reduction during continuous amplifier clipping.

The time constants are fairly loose & probably want listening tests to make them minimally intrusive. Maybe 10 seconds / 1 second would work, but if the recovery time is that long then you'd want a bypass on powerup to get the level up promptly.
 
Member
Joined 2003
Paid Member
As a start of using the freeDSP-aurora a simple setup comes to mind: a dac with usb input and balanced outputs. After reading the manual it looks like 2 x AddOn-A is required for the I/O (and a power supply, of course).
Is that correct?

I still need to explore the software in order to get started in Windows 10.
 
As a start of using the freeDSP-aurora a simple setup comes to mind: a dac with usb input and balanced outputs. After reading the manual it looks like 2 x AddOn-A is required for the I/O (and a power supply, of course).
Is that correct?

I still need to explore the software in order to get started in Windows 10.


AddOn A is designed for a DIY active speaker. Why 2x A instead of just AddOn D?
 
AddOn A is designed for a DIY active speaker. Why 2x A instead of just AddOn D?

That would only cover analog signal I/O, add on A includes other needed features:

1x TOSlink input (S / P-DIF via fiber optic cable)
1x TOSlink connector of unspecified use ;)
1x RCA digital input (S / P-DIF via coaxial cable)
1x RCA digital output (for connecting a subwoofer) :confused:
2x random switches? :D
1x USB
1x Potentiometer for volume adjustment


AddOnA.png
 
Member
Joined 2003
Paid Member
Thanks for thinking along.

As a next step in my applications it would be interesting to use the freeDSP-aurora as a ‘stand alone’ DSP-unit that can drive various analog or digital (pre)amplifiers. This allows for experimenting, for instance, with digital filters before boxing an aurora-unit in an active loudspeaker. Quite alike the category Minidsp-units. Such an application requires for stereo:
- 1 x usb input
- 2 x digital input: RCA for S/PDif, Optical for TOSlink
- 2 x input RCA
- 2 x input XLR
- 3 x output RCA (for standard analog amplifiers, and one to connect a subwoofer)
- 3 x output XLR (for standard analog amplifiers, and one to connect a subwoofer)
- 3 x digital output (for ‘digital’ amplifiers, and one to connect a subwoofer)
- Else ?

As many may still use RCA-connections the XLR-connections may be optional. A subwoofer can best be connected at the output of the speakers. Of course, this is hard to achieve in case of active speakers; hence an extra analog and/or digital output above.

Again, the 2 x AddOnA comes close to the above mentioned profile. Or is there an interest for an AddOnE (I would be interested)? Anyone?
 
I just ordered an Aurora board + addon B.
The recent move to web interface sold it to me, I'm using minisharc + curryman DACs since a long time, along REW, rephase, etc...


I'll likely use 4FIR setup (I only need 4 channels and definitively FIR).

According to documentation, the board has support for display, rotary encoder, volume potentiometer, temperature sensor, PWM controlled fan, IR sensor.

Volume potentiometer is trivial and is meant to control master volume.
But I don't see much infos anywhere about display, rotary encoder and IR sensor. Nor I found infos about the bunch of miniswitches at the back of addon B.

Any pointer?
I'd like to use IR sensor for remote volume control, and display for status.
What is the rotary encoder meant for?
Is the current firmware support those?

Also is there full case (with addon B backplate) available somewhere?

Also I'd like to contribute to documentation (including translation to French), where should I start?

Background: open source dev, my whole audio system is DIY (source, DSP/preamp, amplifiers, loudspeakers), currently using 4 channels (active, minisharc+curryman dacs, 4 amplifier 200W/8ohms channels, driving open baffle speakers, source is SPDIF/toslink up to 192khz/24bits).