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.

That part about not having to wire up a breakout is really the inspiration for this project, as well as many others. There are breakout boards for all sorts of things, but they don't always mount neatly on the Feather system (sometimes not even the Arduino, Raspberry Pi, or other systems either, for that matter), making them a challenge to mount into a neatly-packaged final product, and often to connect as well. This is the one example that stood out to me the most, because I have a couple of larger projects in mind that would make use of it.

(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, actors in live theater, or those with certain medical conditions (such as some forms of muscular dystrophy) 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
  • Electronic tuner/pitch pipe
  • Myriad things I haven't thought of yet! (If you have an idea, please put it in the Comments below!)

Obligatory Tech Info:

This device takes audio from a microphone input and sends it out to a speaker, in both cases connecting to the main Feather board through the I2C bus. This connection allows the user to process the audio in various ways, depending on the needs of the application.

The microphone input is an MAX4468 from Maxim, while the speaker output comes from an ON Semiconductor NCS2211D. Both are 8-pin SOIC chips -- a nice, compact size.

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 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. (A jumper header 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 with an NXP Semiconductors PCF8591T/2,518 A/D and D/A Converter (a 16-pin SOIC). The default I2C address (with all three address pins connected to GND) is 1001000; the last three digits can be changed with solder jumpers. This means that one Feather can have a maximum of eight of these on board! (It's unlikely that you'll ever need more than one, but the possibility is there if I'm wrong. Besides that, there's room in any event for up to eight boards using the same or a similar I2C chip.)

Besides the Analog Reference for the PCF8591T, the only connections on the board not already mentioned are for the 3.3V and Ground.


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!)

The actual connections for the mike and speaker are simple right-angle 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).

Other than the mike and speaker connections, the board should be a simple "plug-and-play" affair, at least in terms of hardware.


Maxim MAX4465-4469 data sheet

ON Semiconductor NCS2211D data sheet

PCF8591T/2,518 data sheet

Bill of Materials at Octopart (excludes headers, other than the jumper header)...

Read more »

AudioWing 3-chip.fzz

An update of the project using a single I2C chip (and, thereby, a single I2C address). This is now the version I'm promoting for the Take Flight With Feather contest!

- 44.33 kB - 01/09/2020 at 23:30


AudioWing Semi-Final.fzz

An improved layout for the earlier I2C-capable version (which is now deleted). I'm holding on to this one in case the 3-chip version sucks.

- 46.59 kB - 12/07/2019 at 17:22


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


Audio IO Feather Wing.fzz

This is the board as it will be if I have to hand-solder it.

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


  • 1 × Printed circuit board from the Fritzing file provided
  • 1 × Maxim MAX4468 Microphone Preamplifier IC; substitute the (pin-compatible) MAX4467 if desired
  • 3 × 10kΩ resistor
  • 2 × 2kΩ resistor
  • 4 × 1µF ceramic capacitor

View all 17 components

  • Price Estimate: That's More Like It

    bobgreenwade01/14/2020 at 16:34 0 comments

    I just got the estimate from PCBway for the new configuration: $95 for five boards. That's $19 each, which is not a bad price at all.

    I don't think I'll be needing any more revisions; I just need to wait to find out what happens with the contest, and for my bank account to have that much space in it. If I end up buying them myself, it'll probably be at least February 5, and possibly as late as March or April.

    (I may be wasting money by buying assembly for five boards. PCBway only makes boards in lots of 5, or I'd get just one or two. I may revise my order and get only one assembled, especially if I have to revise the board design.)

  • Now Do 2 Pull-Ups

    bobgreenwade01/12/2020 at 19:17 0 comments

    Note to self: Always double-check the pull-up resistors for the I2C bus.

    (I inadvertently deleted them when I cleared out the two separate I2C chips to replace them with just one. It's fixed now.)

  • 100kHz or 400kHz?

    bobgreenwade01/12/2020 at 00:36 0 comments

    Working out some details, I noticed that the PCF8591T only works at the 100kHz speed on the I2C bus, and I'm not sure how well audio will transmit both ways well through the bus at that speed (especially since the device I'll mainly be using this for also uses an EchoWing, which also drives audio along the I2C bus both directions, making four signals along that bus). I took a look around for something that could go on the 400kHz speed, and found the Analog Devices AD5593R will do that.

    The bad news is that the AD5593R has many bells and whistles (it's an 8-channel configurable chip, with each channel configurable to ADC, DAC, or GPIO) that I won't use, but that drive the price up another $2-3. Given that I'm trying to keep the price down, I think I'll hold off on that configuration, unless someone advises otherwise.

    (I did put together the layout, though, so it'll be ready just in case.)

  • The 3-chip Approach

    bobgreenwade01/09/2020 at 23:43 0 comments

    After the price shock I got this morning, I went on a more dedicated search for a less expensive, single-chip option for an ADC/DAC. I think I found one, with the NXP Semiconductor PCF8591T. It has four analog inputs, but it's not a problem to just tie the extra three to Ground; the $2-3 price tag also makes the board much, much less expensive, as well as much more open in terms of space.

    I'm going to just hold on to this for a while before I send another quote request to PCBWay. Just from that one change, I do think I'll end up saving about $25 from that $138. I probably can also eliminate a few other components; I'll have to study the data sheets a bit more than I have. With any luck, I'll be able to bring the total with them to under $100 (meaning less than $20 per board).

    Barring some calamity, I hopefully will have something truly presentable by the time a decision is made on the Take Flight With Feather contest (this is the version I'm now promoting for it -- unless, of course, it's too late to do something like that).

  • Price Tag

    bobgreenwade01/09/2020 at 16:29 0 comments

    I've managed a quote from PCBway for this board: including parts and assembly, it would cost $138 for five, which comes to $27.60 each. That's not terrible; there are FeatherWings on the market that cost more. I wish it could be lower, though.

    The total component price is $88.20 -- $17.64 apiece, not counting the board itself.

    (For comparison, the BOM at Octowing tells me I can get all the components for $7.75 going with the lowest overall price, or $14.43 if I get them all from Digi-Key -- in both cases not including shipping.)

    The real killer is the DAC8571, which runs $5.25 per unit (online prices run $3-6 apiece). That's almost one-third of the component price, and almost one-fifth of the overall price!

    At $3.88 on their BOM, the MCP3422 isn't much better (though prices I've found have been in the $2-3 range).

    I'd love to find something less spendy for the DAC and ADC; and, like I say in the Description, one chip to perform both functions would really be ideal. Any recommendations?

  • Don't Panic!

    bobgreenwade12/24/2019 at 15:53 0 comments

    I fixed a couple of minor things this morning: a typo in the description, and the solder header on the PCB (which had been represented by a row of vias). With a week to go before the contest deadline, I'm pretty sure this will be the final revision.

    Looking at the other entries in the Take Flight With Feather contest, I think this one has a decent shot at taking the top prize, though I'm far from convinced -- there are a lot of turkeys in there, but some really cool ideas too, including a couple that I wouldn't mind having myself.

    If it doesn't win, I'll probably see about starting up some real-world experimentation in the spring.

  • "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.)

View all 18 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

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