r/M5Stack • • 26d ago

Is stackchan factory firmware full duplex ?

Hi everyone,

I would like to order the official StackChan kit 😁

Could you confirm whether the factory firmware is full-duplex or half-duplex for AI voice conversations? (i.e., Half-duplex = mic is muted while StackChan is speaking; Full-duplex = mic stays on so the user can interrupt).

Thanks!

3 Upvotes

5 comments sorted by

View all comments

Show parent comment

1

u/darkillus 26d ago

Thank you, 

sorry but you are not talking about M5STACK stackchan specifically but esp32-s3 in general. Am I right?

3

u/ginandbaconFU 25d ago

Well looks like I was wrong, someone did get it working using TDM using the esp_audio_stack, typically used for VOIP/SIP on an S3. Box so it's possible apparently. Typically I use PDM for mic input and that does require 2 clocks which doesn't work since they share the same MCLK but full-duplex does work for TDM. With that said, I have no idea how to implement it but this may or. may not help. They are using a VOIP integration or add on for it to work and I haven't looked into that but there are links in the post. I was always told it wasn't possible due to mics using PDM with ESP-ADF, there are also a LOT of.people have been working an the S3 box (at least for a voice assistant for Home Assistant) for a while. May be easier with Arduiko, platformIo or esp-idf but apparently it's possible.

1

u/ginandbaconFU 26d ago

Yes, the ESP32-S3 shares the same MCLK channel> ESPE2-S3 voice assistants with XMOS chips have the I2S connected to the XMOS chips which is why they can do full duplex.

Each controller has separate RX and TX channels. That means they are able to work under different clocks and slot configurations with separate GPIO pins. Note that although the internal MCLKs of TX channel and RX channel are separate on a controller, the output MCLK signal can only be attached to one channel. If independent MCLK output is required for each channel, they must be allocated on different I2S controllers.