MicroPython I2S Audio with the ESP32

Опубликовано: 01 Апрель 2026
на канале: atomic14
17,440
349

I2S is now in the main branch so you should be able to use the nightly builds. If you follow this video then you'll need to replace "bufferlen" with "ibuf" - thanks Anders Weile for flagging this up.

Does Micropython support I2S Audio on the ESP32? Almost - let's build a custom version that includes support and try it out.

Thanks to PCBWay for sponsoring this video, PCBWay offer PCB Production, CNC and 3D Printing, PCB Assembly and much much more. You can find their details here: https://www.PCBWay.com/?from=atomic

I2S is not yet officially supported, but there is a Pull Request on GitHub that adds it in.

We can build a custom version of Micropython pretty easily. We just need the ESP-IDF from here: https://github.com/espressif/esp-idf.

And then we can get a copy of Micropython from here: https://github.com/micropython/microp...

and merge in the pull request with I2S support: https://github.com/micropython/microp...

The full commands to set up the IDF are:

git clone -b v4.2 --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
./install.sh
. export.sh

And then to build our custom version of Micropython:

git clone [email protected]:micropython/micropython.git
git fetch origin pull/7183/head:i2s_support
git merge i2s_support
make -C mpy-cross
cd ports/esp32
make submodules
make BOARD=UM_TINYPICO

You can find a bunch of sample code here for the I2S pull request: https://github.com/miketeachman/micro...

And I've pushed up my sample code here: https://github.com/atomic14/micropyth...

You can pick up the I2S Amplifier (MAX98357) here - https://amzn.to/3cg88Z5
And the TinyPico I'm using here - https://amzn.to/3vVoONp

----
Patreon:   / atomic14  
ko-fi: https://ko-fi.com/atomic14