I have a broken AVR receiver with faulty digital board so I decided to turn it into a DIY projekt. I want to reuse it's power amp section (7 channels), FM/AM tuner, VFD, buttons, remote, and all the connectors (sub output, SPDIF in/out, analog inputs, USB, antennas etc.). The plan was to use an Arduino to control everything including power amp and power supply relays, and Raspberry Pi running Volumio. But the missing thing is the preamp/DSP. Minimally I need a multi input / multi output I2C controlled module with volume control, minimum 3-band EQ and input selector. But ideally I would like to have parametric EQ, loudness, subwoofer out, SPDIF in/out, HDMI in, completely configurable inputs and outputs etc.
I have some experience with soldering, Arduino and I2C module boards. I already have at home some simpler boards with volume control, tone controls and 4 channel stereo input. But it's not sufficient for my project, sound quality is meh and I'm struggling to find any other better board.
Until I didn't stumble upon the FreeDSP project. ADAU1452 seems to offer everything that I need and much more, but I'm wondering if this is too much for my knowledge. Good thing is that there are many examples with Kicad files, schematics, Sigma config and everything so my plan was to use all this info to try to build something for myself. I would like to build a custom board that will fit instead of the original board into my AVR and re-use all the connectors.
Is there anything better/simpler for my use case? If not, what is the best way to start diving into this? Where to buy parts? Mouser? I guess having an evaluation board to experiment first would be the best, but those are too expensive so I would probably be brave enough to build my custom board immediatelly. I guess I should start by learning Kicad and everything about FreeDSP and Sigma, right? How hard is to get those things working? Is the sound quality in pair with DSP that is usually built into AVRs?
Currently I'm looking to combine PiDSP and Aurora to get everything that I need. Having ESP32 onboard seems nice for OTA programming. And I can connect my RPi directly via I2S.
For now, my biggest question is, once I "design" the DSP in Sigma, how do I send instructions to it? Eg. if I add a parametric EQ, can I use ESP32 or some other Arduino to send commands via I2C to change actual values for each EQ preset?
Any info, link, suggestion or other things on how to start with this is welcome.
I have some experience with soldering, Arduino and I2C module boards. I already have at home some simpler boards with volume control, tone controls and 4 channel stereo input. But it's not sufficient for my project, sound quality is meh and I'm struggling to find any other better board.
Until I didn't stumble upon the FreeDSP project. ADAU1452 seems to offer everything that I need and much more, but I'm wondering if this is too much for my knowledge. Good thing is that there are many examples with Kicad files, schematics, Sigma config and everything so my plan was to use all this info to try to build something for myself. I would like to build a custom board that will fit instead of the original board into my AVR and re-use all the connectors.
Is there anything better/simpler for my use case? If not, what is the best way to start diving into this? Where to buy parts? Mouser? I guess having an evaluation board to experiment first would be the best, but those are too expensive so I would probably be brave enough to build my custom board immediatelly. I guess I should start by learning Kicad and everything about FreeDSP and Sigma, right? How hard is to get those things working? Is the sound quality in pair with DSP that is usually built into AVRs?
Currently I'm looking to combine PiDSP and Aurora to get everything that I need. Having ESP32 onboard seems nice for OTA programming. And I can connect my RPi directly via I2S.
For now, my biggest question is, once I "design" the DSP in Sigma, how do I send instructions to it? Eg. if I add a parametric EQ, can I use ESP32 or some other Arduino to send commands via I2C to change actual values for each EQ preset?
Any info, link, suggestion or other things on how to start with this is welcome.
Thank you, this will help! So I finally invested some significant amount of time on a research with this project and found out that maybe I took to big challenge since this DSP is not so noob friendly as I thought. I though that it has analog inputs and outputs built-in but apparently I need to "design my own" ADCs and DACs. So I wanted to gave up but the good news is that there are lots of examples so I'm hoping I will be able "copy/paste" parts from various examples and make something for myself. So I learned some Kicad basics and started drawing my own schematic.
The first thing I'm temporarily "stuck" is the fact that the Octavia example doesn't have single-ended analog inputs/outputs but rather differential ones (each input has it's own plus and minus, instead of just signal and common ground). I have three stereo analog inputs (cinches), and a built-in FM/AM tuner with again single-ended output (L, R, GND). Can I just refactor the opamp schematic from Octavia to achieve this, or do I need some additional components for this?
The first thing I'm temporarily "stuck" is the fact that the Octavia example doesn't have single-ended analog inputs/outputs but rather differential ones (each input has it's own plus and minus, instead of just signal and common ground). I have three stereo analog inputs (cinches), and a built-in FM/AM tuner with again single-ended output (L, R, GND). Can I just refactor the opamp schematic from Octavia to achieve this, or do I need some additional components for this?
Mayby you should try ADAU1701 ie. freeDSP, although it's less powerfull then ADAU1452 it has ADAC&DAC onboard.I though that it has analog inputs and outputs built-in but apparently I need to "design my own" ADCs and DACs.
Example:
https://pl.aliexpress.com/item/4000...b5075e441978812d6c84b93af75&afSmartRedirect=y
ADAU1701 is not enough for my needs. I need:
And I would like all those inputs/outputs to be fully configurable (eg. my original receiver was 2-zone so I'm planning to keep that).
External ADC/DAC is not such a problem because I have an example from OCTAVIA so I just copied that schematic already, that's OK. Soldering those ICs also shouldn't be a problem as the website where I will order my PCBs is offering to solder everything for you so I will get a finished product.
I'm now stuck with OPAMPs because OCTAVIA has balanced (differential) inputs/outputs and I need unbalanced (single-ended) and I'm struggling to find a proper schematic with OPA1652. I've found an example in one of the other examples (INSANITY I think) but it uses different OPA series, and I managed to find schematic with NE5532 somewhere but out of all these, I think the 1652 is the best so I would really like to use that one but I'm struggling to find a schematic with single-ended input. Do you know where I can find one? I don't have the needed knowledge to build my own one.
- 7 analog outputs
- 2 subwoofer outputs (so in total 9 analog)
- at least 4 analog inputs
- I2S input for Raspberry Pi
- 2 optical SPDIF inputs
- 1 coaxial SPDIF input
And I would like all those inputs/outputs to be fully configurable (eg. my original receiver was 2-zone so I'm planning to keep that).
External ADC/DAC is not such a problem because I have an example from OCTAVIA so I just copied that schematic already, that's OK. Soldering those ICs also shouldn't be a problem as the website where I will order my PCBs is offering to solder everything for you so I will get a finished product.
I'm now stuck with OPAMPs because OCTAVIA has balanced (differential) inputs/outputs and I need unbalanced (single-ended) and I'm struggling to find a proper schematic with OPA1652. I've found an example in one of the other examples (INSANITY I think) but it uses different OPA series, and I managed to find schematic with NE5532 somewhere but out of all these, I think the 1652 is the best so I would really like to use that one but I'm struggling to find a schematic with single-ended input. Do you know where I can find one? I don't have the needed knowledge to build my own one.
Here you have ADAU1452 plus 4In 8Out codec:
https://pl.aliexpress.com/item/1005...b5075e441978812d6c84b93af75&afSmartRedirect=y
Another 2 outputs you can get using PCM5102 board.
https://pl.aliexpress.com/item/1005...b5075e441978812d6c84b93af75&afSmartRedirect=y
Another 2 outputs you can get using PCM5102 board.
A lot of DSP, CODEC ... - https://www.chipdip.ru/catalog-show/digital-audio
There's also this - https://www.chipdip.ru/catalog-show/for-you-projects
There is KiCad projects, SigaStudio projects e.t.c
There's also this - https://www.chipdip.ru/catalog-show/for-you-projects
There is KiCad projects, SigaStudio projects e.t.c
This one from Ali looks interesting. But the reason why I wanted my own board is so that I can re-use what I have in my amplifier so all the connectors. I wanted to create a board of the same size of the original one so that I can re-use all connectors that go to chassis as well as other ones (for display, buttons, relays and amplifier itself). I I buy a finished module, it will be a pain in the a** to connect all this as half of the internal connectors are flat cables, I cannot solder that.
So my idea is to have DSP together with ESP32 (for controlling everything, from the DSP itself through all the relays, buttons, IR receiver, VFD display, AM/FM tuner etc.) and also Raspberry Pi Compute Module 4 onboard. And then I can route existing connectors directly to each of the module (ethernet and hdmi to compute module, all analog and SPDIF inputs to DSP, front board with display and buttons to ESP32 etc.).
I will try to see on those last two links if I can find a schematic for OPAMP that I currently need and are stuck with.
So my idea is to have DSP together with ESP32 (for controlling everything, from the DSP itself through all the relays, buttons, IR receiver, VFD display, AM/FM tuner etc.) and also Raspberry Pi Compute Module 4 onboard. And then I can route existing connectors directly to each of the module (ethernet and hdmi to compute module, all analog and SPDIF inputs to DSP, front board with display and buttons to ESP32 etc.).
I will try to see on those last two links if I can find a schematic for OPAMP that I currently need and are stuck with.
OK, I'm stupid 🙂 I'm mentioning OCTAVIA the whole time although I was looking at AURORA. Actually, OCTAVIA has a schematic for everything that I want so I think I now have all the info. This one: https://github.com/freeDSP/freeDSP-OCTAVIA
There are PCM DAC/ADC rather than the AKM, but it still sounds like a more than a decent one. As I see, Denon/Marantz receivers use those so I expect a decend SQ. And I have now my schematic for unbalanced single-ended inputs/outputs.
There are PCM DAC/ADC rather than the AKM, but it still sounds like a more than a decent one. As I see, Denon/Marantz receivers use those so I expect a decend SQ. And I have now my schematic for unbalanced single-ended inputs/outputs.
Is it wise to include some kind of separate volume control outside of ADAU1452 to prevent full signal going directly to amplifier and damaging amplifier/speakers or some pop/crack during programming? I'm considering re-using the NJU72340AFH3 from my Denon which has some nice features (volume control and input selector, REC out, ADC out). If I decide that I'm willing to sacrifice the possibility to use multiple inputs at once, I can even get away with only one stereo ADC for ADAU1452, and use the ADC out from this IC as single input to ADAU. But then I'm getting the possibility to have SOURCE DIRECT option where I can connect an analog input directly to power amplifier, bypassing ADC/DAC and DSP and retain only the volume control.
This site might help, also: www.audiodevelopers.com. There are a lot of variations of both ADAU1452, ADAU1467 and ADAU1701 designs. I'd recommend the ADAU1463/ADAU1467 to make it easier to meet your I/O requirements--see the current post for details
Thank you! I will check this blog more details. If I understood correctly, the ADAU1452 already contains everything that I need, and I chose it because I was planning to use the OCTAVIA project as a base and modify it to my needs as I have no knowledge to design my own schematic and can only combine existing ones. But I will check the ADAU1463/1467 and compare the differences. To me it seems like there's not much difference, it seems that 1463 has more multipurpose pins and ADC inputs (not for audio but for auxiliary control), which I don't need as I'm planning to use ESP32 and I will be controlling the DSP only through I2C.
I've also found another good info on this blog regarding the Linkplay A31 module! Actually, I have an Arylic Up2Stream Mini at home that I was planning to integrate in an old Sony EX-77 amp that I have. I was also considering using Arylic for this project as well instead of Raspberry Pi but it's very limited, eg. it has connections for buttons or IR remote, but there's no way for me to control the playback and fetch playback data from Arduino. But now I learned about Linkplay, and guess what? My Arylic is actually the A31 module on a shield board that Arylic made! And the A31 itself has I2C, it's just not exposed to the Arylic shield. So maybe I can use this one, as RPi is kind of an overkill. Although I can run a dual-boot Volumio + CoreElec on the RPi and have also Kodi integrated into my AVR to watch movies.
PS: I decided to go with my idea to also reuse NJU72340AFH3 for volume control. This way I can have a separate volume control, not to accidentally pass something too loud directly to power amps, and I can have the SOURCE DIRECT option. I'm also confused here as the schematic from my Denon service manual is different than from the NJU72340AFH3 datasheed (it has resistors instead of capacitors on the input/output lines) but I trust the Denon design and will just C/P the schematic from there. I can also re-use the built-in microphone input to convert it to digital and send to ADAU for eventual room correction in next phases.
The only problem is that NJU72340AFH3 is not easy to get and if I damage mine during de-solder and solder, I'm in problem.
I've also found another good info on this blog regarding the Linkplay A31 module! Actually, I have an Arylic Up2Stream Mini at home that I was planning to integrate in an old Sony EX-77 amp that I have. I was also considering using Arylic for this project as well instead of Raspberry Pi but it's very limited, eg. it has connections for buttons or IR remote, but there's no way for me to control the playback and fetch playback data from Arduino. But now I learned about Linkplay, and guess what? My Arylic is actually the A31 module on a shield board that Arylic made! And the A31 itself has I2C, it's just not exposed to the Arylic shield. So maybe I can use this one, as RPi is kind of an overkill. Although I can run a dual-boot Volumio + CoreElec on the RPi and have also Kodi integrated into my AVR to watch movies.
PS: I decided to go with my idea to also reuse NJU72340AFH3 for volume control. This way I can have a separate volume control, not to accidentally pass something too loud directly to power amps, and I can have the SOURCE DIRECT option. I'm also confused here as the schematic from my Denon service manual is different than from the NJU72340AFH3 datasheed (it has resistors instead of capacitors on the input/output lines) but I trust the Denon design and will just C/P the schematic from there. I can also re-use the built-in microphone input to convert it to digital and send to ADAU for eventual room correction in next phases.
The only problem is that NJU72340AFH3 is not easy to get and if I damage mine during de-solder and solder, I'm in problem.
Last edited:
The major difference between the ADAU1463 and ADAU1452 is the extra pins. Some of those pins are ADC's, which you don't need. But what you need are the extra serial data pins. Without those extra pins, you can only output 8 channels (4 stereo I2S streams) through the 4 serial data ports. With the extra serial data pins, you can get 16 channels (8 stereo I2S streams. See this discussion: https://ez.analog.com/audio/f/q-a/3249/convert-tdm-stream-into-i2s.. The only other way to get more than 4 stereo channels is to use TDM, which gets complicated.
Don't bother with the A31. It is fairly old and only uses 2.5GHz WiFi. The newer modules are far better, with better data rates, more features, and 5GHz WiFi. Just buy a reconditioned WiiM Mini for $60 and use the TOSLINK output.
Don't bother with the A31. It is fairly old and only uses 2.5GHz WiFi. The newer modules are far better, with better data rates, more features, and 5GHz WiFi. Just buy a reconditioned WiiM Mini for $60 and use the TOSLINK output.
8-channel output is actually what I need. My AVR is a 7.1 and has 7 amplifiers inside (mono) for 7 channels + two subwoofer outputs which are actually just one input channel multiplied on two connectors. So it should suffice.
Wiim is a "finished" device, I need something for DIY so that I can control it with Arduino and get the AVR's remote to control it, and display the info on my VFD. But I investigated a little bit, it seems that Wiim is actually using LinkPlay modules inside!? Wiim Mini is actually LinkPlay A97L and Wiim Pro is A98. In this topic: https://www.diyaudio.com/community/threads/wiim-pro-information-requested.393202/page-2 I can see a board which actually has what I need: A98 + ADAU1452 + DAC.
That's some valuable info! If I decide that the RPi is an overkill, I might use some of the LinkPlay modules in this project. I want to make this Denon a standalone amp, so that I can stream Spotify/Bluetooth/DLNA to it, without any external devices. Don't forget that my end goal is to learn something and do something myself 🙂 otherwise it wouldn't be worth it at all as I will spend tons of money and time instead of simply buying a fully functional refurbished/used AVR.
Wiim is a "finished" device, I need something for DIY so that I can control it with Arduino and get the AVR's remote to control it, and display the info on my VFD. But I investigated a little bit, it seems that Wiim is actually using LinkPlay modules inside!? Wiim Mini is actually LinkPlay A97L and Wiim Pro is A98. In this topic: https://www.diyaudio.com/community/threads/wiim-pro-information-requested.393202/page-2 I can see a board which actually has what I need: A98 + ADAU1452 + DAC.
That's some valuable info! If I decide that the RPi is an overkill, I might use some of the LinkPlay modules in this project. I want to make this Denon a standalone amp, so that I can stream Spotify/Bluetooth/DLNA to it, without any external devices. Don't forget that my end goal is to learn something and do something myself 🙂 otherwise it wouldn't be worth it at all as I will spend tons of money and time instead of simply buying a fully functional refurbished/used AVR.
I've still got 8 more of those PCB boards if you want one 🙂
Wiim is a brand name of Linkplay.
Wiim is a brand name of Linkplay.
Last edited:
Haha, I somehow missed that this was your comment in that other thread 😀 And it looks like you're the author of the suggested site. Do you have just boards without components or complete modules? Is there any documentation for this board (schematic, pinout, code etc.)? Maybe I can re-use them for my project. Or at least, it sounds interesting for active speakers, which I noticed you're working on a lot. I had some ideas about making some DIY BT speakers, and I was looking for a board I can use before the amplifier for DSP and music streaming.
PS. the MIDIWORX ADAU boards that you're using look interesting. Maybe I can just integrate this one into my PCB to save some time.
PS. the MIDIWORX ADAU boards that you're using look interesting. Maybe I can just integrate this one into my PCB to save some time.
I'm not selling anything--no boards, no modules, no software. If anyone wants any of the hardware designs, I'll post the Kicad files here or else on audiodevelopers.com. However, the Arduino software is still changing too much for me to feel comfortable with posting it or putting it on Github. Also, it is tied to the SigmaStudio DSP design and the AndroidStudio app for Bluetooth control and the Arduino IOT app for WiFi control. I also use a Visual Studio app to process the SigmaStudio compiler output for importing it into the Arduino IDE. I've tried to describe the interconnection of these parts on my web site, but I would have to do a better job of documenting interfaces and describing the overall design before feeling comfortable with sharing all the code.
I might post the Arduino library files that I created for the ADAUXXXX, since they have been stable for a while. But my concern with posting software in general is that I would have to spend time supporting it. I don't have the time or interest for supporting software. My interest is in developing innovative active speakers, and the boards and software are part of the journey, but not the end goal. Also, I'm at a point in my life where I am more concerned with downsizing and finishing off or disposing of old projects than taking on new challenges.
The Kicad files for the board that you referenced are attached.
I might post the Arduino library files that I created for the ADAUXXXX, since they have been stable for a while. But my concern with posting software in general is that I would have to spend time supporting it. I don't have the time or interest for supporting software. My interest is in developing innovative active speakers, and the boards and software are part of the journey, but not the end goal. Also, I'm at a point in my life where I am more concerned with downsizing and finishing off or disposing of old projects than taking on new challenges.
The Kicad files for the board that you referenced are attached.
Attachments
Great, thank you! This will be helpful. If you want, you can send me on PM other files, they don't have to be complete or stable, but it will help me to understand how some things work. I still don't have an idea how Arduino is communicating with the ADAU.
Read the articles on the microprocessor and the code overview to get a feel for how the micro communicates with the DSP. But substitute "SPI" for I2C, because those Midiworx boards are configured for SPI. I've thought about writing a clearer and easier to follow "beginner's guide" to understanding the Arduino-to-DSP communications, but it might be a while before I get to it.
- Home
- Source & Line
- Digital Line Level
- Arduino controlled DSP for my project - FreeDSP?