No announcement yet.

Arduino-based ADAU1701 ("miniDSP")

  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Like Hong, I'm interested in this too. Its a nice idea and looks like you are doing good work.
    Audio: Media PC -> Sabre ESS 9023 DAC -> Behringer EP2500 -> (insert speakers of the moment)
    Sites: Jupiter Audioworks - Flicker Stream - Proud Member of Midwest Audio Club


    • #17
      I just came across this thread- this is an awesome project. Big kudos. I'm excited to get my hands on one.... Sent from my iPad using Tapatalk


      • #18
        Originally posted by neildavis View Post

        ​Thanks. What's really impressive is how inexpensive this stuff is. I think all of the parts for the DSP board are around $20, and it only takes about one hour to assemble the board. The CPU is $20 and the display board is less than $10, so this a lot of capability for a fairly low price.

        The ADAU1701 can be configured in many ways, but the load I'm using is 4 channels with 8 biquads per channel, plus delay for each channel, plus 8 shared biquads for overall EQ. That's a lot of DSP horsepower for such a low price.

        Very nicely done!
        Time for me to warm up my SMD hot air rig and start practicing on those tiny components.

        I think I hear a difference - wow, it's amazing!" Ethan Winer: audio myths
        "As God is my witness I'll never be without a good pair of speakers!" Scarlett O'Hara

        High value, high quality RS150/TB28-537SH bookshelf - TARGAS NLA!
        SB13/Vifa BC25SC06 MTM DCR Galeons-SB13-MTM
        My Voxel min sub Yet-another-Voxel-build

        Tangband W6-sub


        • #19
          Have you seen this

          Some guys in Germany have an open source project for hardware based on this DSP. I did order their kit and soldered it together few weeks ago. That + the Analog Devices software is a nice flexible platform as is. I do have MiniDSP too, but for some off stuff the plugin based more simplistic system is limiting the use.


          • #20
            Yep. But I don't understand the appeal for the freeDSP product. Everything is done either by programming the EEPROM and then resetting the board, or else by using SigmaStudio. That doesn't seem very convenient for development and it limits what you can do for deployment.

            The approach I'm using is all real-time control: the Arduino and the .NET application both directly program the Parameter RAM in the ADAU1701. And for most applications I don't need SigmaStudio at all. I use SigmaStudio to set up a very general DSP architecture and then I process the output of the SigmaStudio compiler to find out where all the cells are. Once I know where the cells are, I just change the Parameter RAM values. I only need to use SigmaStudio if I need a different architecture or some of the specialized algorithms.

            SigmaStudio was designed to define the SigmaDSP architectures, and it is a great tool for that. But it is not a user-friendly way to specify crossover types and it requires a PC to do real-time control. Their approach doesn't allow using a local display to interact with the DSP. And you can't do system development by reading in driver measurement data and interactively tweaking the response, which I can do with the ASD program. SigmaStudio is great for what it was designed to do, but it wasn't designed to be used as a GUI for real-time control. In fact, if you look at the earlier posts on the ADI tech board, their own tech reps kept emphasizing that.

            Right now the freeDSP "product" is a board that you can make yourself--it's just the Analog Devices reference circuit with expansion connectors. Once they finish off a couple more of those proposed products they might have something more exciting. But eventually they are going to need some better software if they expect that effort to really flourish.
            Free Passive Speaker Designer Lite (PSD-Lite) --


            • #21
              As a programmer I must ask, are you planning on letting this be open source or closed? What if I wanted to wade and tweak it so that I could change the filter to support a parametric eq, etc. Not being able to do such isn't a deal breaker, but it alters the way I think about this project.
              Audio: Media PC -> Sabre ESS 9023 DAC -> Behringer EP2500 -> (insert speakers of the moment)
              Sites: Jupiter Audioworks - Flicker Stream - Proud Member of Midwest Audio Club


              • #22
                Originally posted by JasonP View Post
                As a programmer I must ask, are you planning on letting this be open source or closed?
                ​As I said earlier, I'm OK with making this open source, but I don't want to spend a lot of time going through the steps to make it open source and support it, so I would need some help. I'm a hardware/systems guy, without formal software training. The code is logically structured and well documented, but it isn't "elegantly" written, and I would need some help making sure it conforms to standards for sharable code. Right now it's segmented into 12 separate files. I've got separate .ino files for:
                • Main, with global variables and structures and setup/loop
                • the ADAU1701 support functions
                • coefficient and volume tables
                • HCI (a table-driven menu system for the LCD display)
                • I2C routines (the ADAU1701 uses 16-bit sub-addresses, which aren't directly supported by the Wire library),
                • Input (keyboard, rotary encode and remote control),
                • SCI (there is a command interpreter to response to the ASD program command protocol),
                • cell map (code generated by processing the SigmaStudio compiler output),
                • ADAU1701 code (.h file from the SigmaStudio compiler),
                • an HCI execution module to control the ADUA1701 from the LCD HCI menus
                • EEPROM (the HCI state is stored every time it is updated and restored on power-up)
                • Other tables -- EQ and BSC
                • Coefficient calculations (in progress...)
                Right now this isn't organized into separate library files, and that is one of several things that needs to be done. Also, the key piece of this functionality is code that runs in my .NET program: it reads the SigmaStudio compiler output and generates the cell map. That could be done with some other program, but I'm not going to write it. So there is a fair amount of work here to make this suitable for sharing.

                So whether or not this is "truly" open source comes down to how much help I get and whether it can be done in a way that makes sense. In the meantime, it is open source in the sense that if you ask me, I'll send you a zip file of the Arduino directory that will compile for an Uno.

                Also, I'll be selling a couple of the "original" ADAU1701 shields at cost (around $20). I made 5 of them. These don't have an output reconstruction filter, as they were designed to be used with the small class D amps that have a filter stage on the input (on-chip). But they are fine for testing the code, and there will be a new version with the filters coming soon.
                Free Passive Speaker Designer Lite (PSD-Lite) --