I2S MEMS Digital Microphone used with a Photon?

Hi guys,

Has anybody used a I2S Microphone with the Photon?

I saw this awesome board on Tindie and was wondering if somebody has already used the I2S library in a Photon. There are some examples on this Github written for Teensy.

The board uses InvenSense ICS-43432 MEMS microphone (it is a newer version of the popular INMP441).

Did you figure this out?

Unfortunately, no.

Hi @zachary, @amacasas and I are planning to invest a lot of time to make this work. Could you give us some guidance on where should we start?


Have you tried the teensy library?

We haven’t. But is should be very easy to do using the examples on the github repository. The million dollar question is how to port that library to Particle :slight_smile:

Looks interesting. I ordered two; will give it a shot when they arrive. The Photon datasheet lists I2S support though I don’t see a mention of it in the software docs. How hard could it be to implement? LOL


I just ordered one. I too will try to get this working.

Found this link in GitHub

Also this link

1 Like

Sorry for the delayed response — I just returned from parental leave. :baby: :baby_bottle: :smile:

Sounds like an amazing project! Good luck! My best first tip is to carefully and thoroughly read section 25.4 of the STM32F205 Reference Manual about the I2S peripheral. Make sure you fully understand the capabilities and expectations of both the STM32F205 and the ICS-43432. I2S has a bunch of different standards, so getting the devices talking in the first place will probably take some work.

We don’t have an I2S library built into the firmware, but if you can get this working, that’s a big step toward such a library. I2S shares interrupts and other functionality with SPI, so you might be able to reuse some code there. The entrance to that rabbit hole is our SPI class.

The Photon pin-out diagrams show WS, SCK, and SD on pins D5, D4, and D2 respectively. If you need the MCK line for an audio sampling rate, you’ll have to solder to the pad directly under the setup button, documented as Photon pin 26 in the PCB land pattern and be aware that that is the same pin that the setup button is on.

Have fun, and keep letting us know your progress!


Any news on this? I love to see i2c working as well.

You meant i2s, right? ic2 has worked for a long, long time now. Similar but different protocols.

1 Like

Oeps, Yes i mend I2S indeed. Any plans to add this to the SDK?

1 Like

I’m could need I2S support too. Following…

Any update?

I hate to bump semi-old threads, but I would love to hear if any of you had luck working out I2S for either Photon or Electron? Or can point me in the right direction, I’m thinking of porting the Arduino I2S library, but that is based on SAMD. I’ll update if I have any luck getting it to work.

Me too I would like to hear something about I2S.
just ordered a I2S MEMS Microphone.
Would like to connect this chip to a Particle Photon.

I too would love to see I2S working on the Particle Photon. I am looking to get the Adafruit SPH0645 working and will post back here if I manage.

@Winand I’m investigating a project using I2S microphone on Xenon. Can you give any hints? Share your experience?

@janek Unfortunately we ditched the idea due to lack of available libraries and we wanted a quick solution, this was some months ago though so maybe there is something available now. Unfortunately I cannot help you.