Close
0%
0%

SoundWing Audio I/O Board

Sound in, sound out. Now both on one FeatherWing.

Public Chat
Similar projects worth following
In from the microphone, out to the speaker... for any project that involves both microphone input and speaker output, this FeatherWing puts those two things conveniently on the same board. And if you only need one, well, at least you have that one without needing to wire up a breakout, and the other is available should your device's needs change.

(Microphone and speaker not included.)

This is, essentially, two mono audio breakout boards on one FeatherWing.  With this board, any of these functions (and sometimes more than one at the same time) can be either turned into or integrated into a Feather project:

  • Voice changer (primarily for cosplay, Halloween costumes, and similar projects; fit the device inside a helmet, or in your pocket!)
  • Voice amplifier for teachers and other small-room speakers, or those with certain medical conditions (such as some forms of muscular dystrohy) that result in an unusually quiet voice
  • Two-way communicator (over wires, or whatever wireless protocol you deem best -- LoRa, XBee, Bluetooth, etc.)
  • Effects processor for musical instruments (generally but not necessarily acoustic instruments on mikes)
  • Smart speaker (or interface with an existing smart speaker system)
  • Hearing aid (probably with some extra features that can't be found in commercial hearing aids, since those can fit inside your ear)
  • Boom mike operator's sound unit (in a film/TV setting)
  • Parabolic microphone
  • Myriad things I haven't thought of yet! (If you have an idea, please put it in the Comments below!)

Obligatory Tech Info:

The microphone pre-amplifier chip takes audio from a microphone input and sends it out to a speaker, in both cases connecting through the I2C bus.

The microphone input is an MAX4468 from Maxim, while the speaker output comes from an ON Semiconductor NCS2211D. Both are 8-pin SOIC chips, which can make breadboarding and freehand soldering a serious challenge but goes a long way toward freeing up space on the board.

In each case the application, other than connecting directly to two of the Feather's Analog pins, follows the suggested application on the respective chip's data sheet (page 9 in both cases).

The actual connections for the mike and speaker are next to each other, using wire-to-board terminals. This is probably the cleanest solution, since the overall device will probably be kept in an enclosure that includes either mounts or jacks for these parts. You may, of course, replace them with whatever type of connector that you find appropriate (though you may need to edit the .fzz file, depending on what you choose).

The MAX4468 has a Shutdown pin which may be connected to D12. It normally is set to Low; set it to High, and the chip enters a power-saving Shutdown mode (supply current drops to 5nA, output enters a high impedance state, and bias current is switched off). In case you don't want to use it, a jumper is available to connect it to Ground full-time; it should not be left unconnected. (This is my preferred way of running an on-board selection for something that might change after installation, but not often.)

The input and output are connected to the I2C bus using a Microchip Technologies MCP3424 and a Texas Instruments DAC8571, respectively. These are also given passive components in the manner suggested by their data sheets. The MCP3424 has two possible I2C addresses, selectable with a solder jumper on the board's underside.

Besides the optional D12 connection for the Shutdown and the Analog Reference for the DAC8571, the only other connections on the board are for the 3.3V and Ground.

Application:

The MAX4468 is explicitly designed for an electret microphone; I don't know for sure whether it would work with a piezoelectric mike, but I think it should. (I hope it does; one of my own designs calls for it!)

Links:

MAX4456-4469 data sheet

NCS2211D data sheet

Microchip Technologies MCP3422/3/4 data sheet

Texas Instruments DAC8571 data sheet

Open Questions:

I'm open to just about any input on these questions. I've divided them into those calling for a bit of expertise that I don't have, and those calling for opinions from a prospective user's perspective. On any of these, if nobody says anything, I'll just assume I got it right, at least until any breadboarding or other real-world attempt on my part shows otherwise.

Expertise needed:

  1. I'm pretty sure -- but not 100% -- that...
Read more »

AudioWing Semi-Final.fzz

An improved layout for the I2C-capable version.

fzz - 46.18 kB - 12/07/2019 at 17:22

Download

Audio IO Feather Wing I2C.fzz

This is essentially the same as the main project, but all of the resistors are 0602 profile and the wire jumper connections are removed, to make room for an ADC and a DAC with I2C interface.

fzz - 49.20 kB - 12/06/2019 at 19:25

Download

Audio IO Feather Wing I.fzz

An earlier version of the board, left here for commentary and comparison (such as if this was actually the better approach after all).

fzz - 38.02 kB - 11/25/2019 at 16:14

Download

Audio IO Feather Wing.fzz

This is the board as described in the Project. The file is for use mainly for the PCB layout.

- 40.80 kB - 11/16/2019 at 16:04

Download

  • 1 × Printed circuit board from the Fritzing file provided
  • 1 × Maxim MAX4468 Microphone Preamplifier IC; substitute the (pin-compatible) MAX4467 if desired
  • 1 × 1MΩ resistor
  • 2 × 20kΩ resistor
  • 2 × 100kΩ resistor

View all 18 components

  • "But I'm feeling much better now!"

    bobgreenwade12/07/2019 at 18:52 0 comments

    I decided to rework the I2C version of the board, as though I was putting it together from scratch. I started with the ADC and DAC sitting right next to the I2C ports, then I set up the mike and speaker connectors to the other end of the board with their respective chips nearby. Then I put in the passive components one at a time, using the shortest routes possible. I think it came out fairly well. Certainly there are fewer twists and turns around the board (though about twice as many vias),

    I'm calling it the "semifinal" because it has yet to be tested; passive components may need to be added, removed, or changed in value, and other changes may be needed.

    Heck, if I was confident that the CoolAudio V1000 was I2C-compatible, I would've added it. I'm pretty sure there'd be room. (Not 100%, but fairly sure.)

    We'll just see what develops from here.

  • Going with the I2C version (for the contest, at least)

    bobgreenwade12/06/2019 at 19:36 0 comments

    I've made a new version of the board, which I think I'll treat as my "official" contest entry version. It replaces all of the resistors with 0602 SMD versions, removes all of the wire jumper connectors, and redirects the input and output to a couple of chips for ADC and DAC (respectively) with I2C connections. I probably need to add a couple of pull-up resistors for the I2C wires, but there's room for that; I made sure of it. I just need to work out the best values.

    Once I make that modification (and possibly others based on viewer feedback), I'll post that update and start editing the Details section to reflect what I've done.

    PS: Based on a commenter's recommendation, I've downloaded and tried out KiCad. I'm having a bit of a learning curve with it, but I'll get used to it in time. For now, for anything I want to complete I'm going to continue with Fritzing, and then try to duplicate with KiCad until I get the hang of it.

    (I'd actually love to see what any of my boards -- but especially the two connector boards -- would look like in 3D!)

  • SMD vs TFT: I'm asking you...

    bobgreenwade12/04/2019 at 15:47 3 comments

    Here's a question for all of you folks following this project:

    How much of an improvement would it be to convert all of the resistors to SMD (instead of TFT)? It would save a good bit of space, but I'm not sure what I'd be trading off for that.

    (I'm re-learning electronics after some 40 years away, so bear with me here! I'm not sure there even were SMD components back then!)

  • Darn you, bias!

    bobgreenwade11/29/2019 at 16:08 0 comments

    Well, it turns out that I wasn't quite as done as I'd thought. That hanging bias pin was bothering me, so I took a look at what would be needed on it. I didn't really find anything specific for this circumstance, so I took a cue from the data sheet and added a 100K resistor and 100pf capacitor there, connecting the series to Ground. I think only experience and/or experimentation will tell for sure whether that's the right approach, and whether those are the correct values.

    I do hope I don't have to add anything else. Board space has become premium. I'd have to seriously juggle some things around for that. (EDIT: I probably will need to do that anyway, so what's just been done will probably not be the final version of things.)

  • Design phase finished! (I think.)

    bobgreenwade11/28/2019 at 16:19 0 comments

    I took some time last night to complete the board's design. After a last-ditch effort to see if there was some way to include I2C on this board (short answer: no flippin' way), I moved things around so the mike output could go to any of A1-A5 with a wire jumper.

    In a satisfying twist, removing the trace from the mike output to A5 allowed me to neaten up the other traces in that part of the board considerably.

    I've also checked the measurements for the headers and mounting holes to make sure they match up with the Feather standard. They didn't, but they do now.

    Overall, I feel pretty satisfied with how this has turned out so far. I may tweak the design a little, mostly depending on any feedback I get, but I think it looks pretty good from here.

    It'll be at least January before I can start actually getting the hardware to test this out, which I'll do depending on (among other things) what happens with the Take Flight With Feather contest.

  • Not as "done" as I'd thought

    bobgreenwade11/27/2019 at 18:01 0 comments

    From the Department of Always Double-Check Your Stuff: The A1 pin on the Feather is not usable for analog output, so A0 is the only place to hook up the NCS2211. The A1 has thus been completely cut out of the equation.

    While I was at it, I migrated the components as much toward the left and bottom ("southwest") as I could, leaving lots of room around the I2C pins. Not surprisingly, there's still not room for an I2C chip, especially considering that two of the ports would have to be analog. I'd still love to make this I2C compatible, but unless I'm missing something here, it's just not meant to be. (There might be room there for something else, though. I just don't know what, yet.)

  • A different approach to the mike

    bobgreenwade11/25/2019 at 16:42 0 comments

    Okay, I was wrong. I just did a big update to the circuitry around the MAX4468.

    That had been bothering me a bit, and I wanted to see if what I had could work with a piezoelectric mike, so I did a little digging and found that my approach was (as far as I could figure) altogether wrong, and would probably not work with an electret either. The electret was the main point (the piezo is only secondary), so I needed to fix things.

    The recommendation I found was basically to rely on the schematic for the MAX4466. I'd switch to that chip altogether, but now that I have a grasp on what the Shutdown does I'd like to keep that functionality. This does leave the Bias pin open, though; I'm not sure whether I should do that (which is my impression at present) or hook it up to Ground, 3.3V, or IN+.

    I also moved all of the electronics for the MAX4468 as far west as I could (though there's probably room for even more), just to leave more room for new electronics for the NCS2211 (or something altogether new).

    Anyway, I've updated the parts list, and I've also kept the previous version of the board here in case anyone wants to compare them (and tell me that I had the whole thing right to begin with -- even though I'm pretty sure I didn't).

    I still wouldn't want to try this with a piezoelectric mike without breadboarding first, but I think I at least have a model that would be worth trying out on an electret now.

  • Mostly Done (The Design Stage, Anyway)

    bobgreenwade11/23/2019 at 21:10 0 comments

    I think I have a handle on the Shutdown pin; it looks like a nice, power-saving Mute button. Thus, I've put in a Jumper to allow the user to take its signal from D12, or just sit on the Ground.

    Other than that, I've more or less left things as they were.

    I'm contemplating replacing the TFT components (the resistors, anyway) with SMD versions to reduce space, but I'm leaning against it. I'm not sure how much benefit it would bring; and, from what I can tell, hand-soldering would be a pain in the keester.

    That, and the aligning of the Feather-related headers and mounting holes, are basically just "design tweaks." Unless someone posts something about it, I'm done with adding, changing, or significantly rearranging the actual components.

  • I2C? Never mind.

    bobgreenwade11/22/2019 at 06:20 0 comments

    After plunking around a bit, I've decided to abandon the I2C interface. Doing that with Analog I/O just takes up too much space for a FeatherWing, at least for these purposes. (If this was a full-sized Arduino Shield, that would be a different story!)

    On the other hand, I'm increasingly uncertain about the MAX2268's Shutdown pin. I thought I had a handle on it, but turned out to be wrong. For now I've moved the connection from D12 to Ground; in a future update I'll either switch it back or abandon having the function altogether.

    Once I've figured that part out, I'll check on the measurements for the headers and mounting holes.

    On the upside, I think I've sufficiently de-spaghettified the layout that I'll no longer have to worry about that... at least for now. Of course, if I add any features, that may change.

  • New team members?

    bobgreenwade11/20/2019 at 23:22 0 comments

    Just so I'm clear: There is some urgency about anyone willing to offer expertise, do breadboarding, etc., but only in terms of entering this project in the Take Flight with Feather contest. I plan to see what I can do on all that on my own -- I do want at least a couple of these in my hands -- but for financial reasons I won't be able to until after the contest is over.

    And of course anyone providing any of that help would be invited to join the Team on this Project, whether it's before the contest deadline or after. (In case it helps, I'm not sure I could even make use of that gift certificate.)

View all 12 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates