Open-source Audio DSP shield idea! - Page 1
Forum section: electronics / general

author: mikefatom
author_rank: Contributor
timestamp: November 29, 2013, 03:34:15 am
content: Hi everyone,This is my first post so I hope that this doesn't come out as too forthright or undiplomatic. I have been reading this forum for quite some time now and I'm a big fan of the EEVBlog. I have never had much to contribute here until now.Background: I am a EE with an interest in audio. I am currently employed by a fairly large manufacturer of professional audio equipment (power amps, powered speakers, mixers, etc..). We have been using the SigmaDSP line of chips from Analog Devices for a few years now. These chips are embedded in some of our products and take care of things such as limiting, EQing, filtering, etc. Although my main gig is the electronics manufacturing aspect of the company, I have recently started to get involved with product development and got my hands on an evaluation board for the ADAU1701 SigmaDSP and SigmaStudio. I am investigating the possibility of using that particular chip in a new product design.SigmaDSP and SigmaStudio: I would consider myself a noob when it comes to DSP coding (I have never done it). My experience with embedded systems is with the usual PIC, AVR, ARM micros. With that said, I was thoroughly impressed by the (FREE!)SigmaStudio Graphical Development Toolinterface and how easy it is to create "code" for the DSP. Being able to simply grab some graphical blocks and string them together to create a signal processing path is a huge time-saver for a beginner like myself! It makes DSP seem easy.This made me ponder on the idea of creating a real DSP shield for the Arduino platform. Although some such solutions already exist, none of them are particularly easy to use for beginners. They also lack power (because they rely on the AVR to do the heavy lifting) or are simply not flexible enough for anything more than basic algorithms. My hope is that this new shield would allow hobbyist and inquisitive minds to toy around with a 'real' DSP, giving them access to all the good stuff that comes along with that.Preliminary Design Idea: This new DSP shield would integrate anADAU1701and interface with an Arduino via I2C for loading the DSP code (upon boot-up) and updating coefficients (i.e. parameters) in real-time. It would also work stand-alone if required, with an EEPROM on-board to run the shield in self-boot mode. The shield would utilize the ADAU1701's built-in ADC/DACs. That means 2 ADC channels and 4 DAC channels, giving us one stereo input and two stereo outputs, all on 3.5mm jacks. A breakdown of the main features are as follow:- Minimal design to reduce build cost- Shield or stand-alone operation- On-board EEPROM for stand-alone operation (self-boot)- All GPIO pins broken out to a header for experimentation- GPIO pins can be configured for I2S I/O or user-interface I/O (pots, buttons, leds, ...)- Stereo input via 3.5mm jack to the DSP's ADC- Two Stereo outputs via 3.5mm jacks from the DSP's DACs- The two stereo outputs will be able to drive 16 ohm headphones directly (via two LM4808)- External power connector- USBi port for connecting to ADI's own EVAL-ADUSB2EBZ. This would enable real-time tweaking of all parameters from within Sigma Studio- Open Source (of course!)Why I am posting this here: To open a constructive discussion with potential users of this shield. I would be grateful for some ideas on refining the feature set and design. Any comment is helpful. I want this to be as useful as possible to as many people as possible. Also, if you have any experience with the SigmaDSP chips and can point out the "traps for young players", please share.I am sure that some of you will have questions (I certainly did not cover everything in this post) so please ask away.Although I am mainly an Altium user, I will be doing the design in Eagle to keep things as accessible as possible. This will add quite a bit of time to the project since I have to learn a new tool from scratch. I hear that Eagle has a steep learning curve...Any links to some good tutorials are appreciated.If this project goes somewhere, I will consider doing a batch of boards and possibly putting it on kickstarter to make this commercially available.Any feedback is welcome!Thanks,Mike

author: Marco
author_rank: Super Contributor
timestamp: December 03, 2013, 12:05:35 am
content: Those ICs are so incredibly limited ... why not use something based on C6000? TI supplies a free graphical programming environment for that :http://www.ti.com/tool/c6flo-dsptool

author: mikefatom
author_rank: Contributor
timestamp: December 04, 2013, 12:52:50 am
content: The ADAU1701 is more than enough for any beginner looking to play with a DSP for audio.The C6000 on the other hand is more general purpose (complex), more expensive and the c6flo graphical tool is no longer under development by TI. Doesn't seem like a good choice to me for the hobbyist. Especially when the said hobbyist is coming from the Arduino platform.

author: apelly
author_rank: Unknown
timestamp: December 04, 2013, 01:18:49 am
content: Quote from: mikefatom on November 29, 2013, 03:34:15 amPlease consider KiCad, which is actually open, if less popular.

author: Marco
author_rank: Super Contributor
timestamp: December 04, 2013, 08:35:20 pm
content: Quote from: mikefatom on December 04, 2013, 12:52:50 amIt's enough to make yet another cross over box I guess ... ehh, boring. Any way ... did you notice that someone is doing a similar project using the ADAU1701 for Raspberry Pi? (They use Kicad BTW.)http://www.crazy-audio.com/tag/dsp/

author: Harvs
author_rank: Super Contributor
timestamp: December 05, 2013, 08:14:37 am
content: Quote from: Marco on December 04, 2013, 08:35:20 pmSounds like something that would be really useful to drop into my home build amps to replace the old analog crossover circuits (that really need re-tuning for new speakers.) Obviously you're saying this sort of thing is already widespread. Could you name a couple of decent flexible boards that are reasonably priced?

author: EEVblog
author_rank: Unknown
timestamp: December 05, 2013, 09:40:47 am
content: Quote from: mikefatom on November 29, 2013, 03:34:15 amDon't bother. Use the tool that you know. Spend the time on making the project work, not learning a new tool just for this.Few people will complain that the original files are in Altium, let them re-do it in eagle if they are keen enough, a shield is not that big of a circuit.

author: Stonent
author_rank: Super Contributor
timestamp: December 05, 2013, 10:05:52 am
content: I guess if you can get your basic schematic out there, it should be fairly trivial to make a shield from it. LQFP-48 chip and looks like it needs minimal support components.

author: mikefatom
author_rank: Contributor
timestamp: December 05, 2013, 02:24:12 pm
content: Quote from: apelly on December 04, 2013, 01:18:49 amI had a look at KiCad and watched Dave's first-impressions video. Unfortunately, it doesn't look like a tool that I would get along with. I will download it anyway and give it a shot but I have already invested quite some time in learning Eagle, so no promises...Eagle is ok. I am still learning new things every time I use it but so far so good. One thing is for sure, it is a HUGE step back from Altium.

author: mikefatom
author_rank: Contributor
timestamp: December 05, 2013, 02:27:31 pm
content: Quote from: Marco on December 04, 2013, 08:35:20 pmYes, I have seen the Raspberry Pi DSP project. It may be similar but it is far from the same.

author: mikefatom
author_rank: Contributor
timestamp: December 05, 2013, 02:31:54 pm
content: Quote from: EEVblog on December 05, 2013, 09:40:47 amThanks for your input Dave. Unfortunately, I do not own an Altium license myself, my employer does. The price is prohibitive for a single personal license at the moment.

author: mikefatom
author_rank: Contributor
timestamp: December 05, 2013, 02:34:17 pm
content: Quote from: Stonent on December 05, 2013, 10:05:52 amYes. It is a fairly simple part to implement with low parts count. This makes it attractive for this project as I can keep the cost low.

author: senso
author_rank: Frequent Contributor
timestamp: December 05, 2013, 03:15:37 pm
content: If you jump over at DiyAudio, there are dozens of those things, with topics that have more than 1800 pages, lots of ideas, pcb's, clocks, buffers, adc's and dac boards, at least for audio there are lots of options, and for example the minidsp guys have affordable pcb's with a lot of software to generate the filter coefficients.Take a look at them/maybe you already know all this

author: Marco
author_rank: Super Contributor
timestamp: December 05, 2013, 04:13:51 pm
content: Quote from: Harvs on December 05, 2013, 08:14:37 amThe MiniDSP guys have build a (closed source) business around boxes with these ICs.

author: mikefatom
author_rank: Contributor
timestamp: December 05, 2013, 06:29:50 pm
content: Quote from: senso on December 05, 2013, 03:15:37 pmHi senso,Yes, I've had a look at the miniDSP stuff which is unfortunately all proprietary (closed) has Marco mentioned already.Thanks,Mike

author: ChrisGammell
author_rank: Unknown
timestamp: December 06, 2013, 04:01:56 pm
content: If you are interested in trying KiCad (not just listening to Dave's first impressions), I recommend you try building a small board:http://contextualelectronics.com/buildpcbsAs I recall, Dave even said he might give KiCad a shot at some point in the near future!More generally though, I agree with Dave though. A project is hard enough on its own. If you had the option (which it doesn't appear you do), I would definitely agree with "use what you already know". In my quest to convince people to use KiCad I leave people who use EAGLE/Altium/Etc alone because it is a considerable time investment. Once people decide they're ready to learn something new though, I pounce