I2S with asyncio doesn't work on ESP32-S3 with OCT SPIRAM
Port, board and/or hardware
esp32-s3 SPIRAM_OCT variant
MicroPython version
MicroPython v1.23.0 on 2024-10-16; Chroma.tech S3 SPIRAM with ESP32S3
Reproduction
- Run any of the I2S uasyncio examples from https://github.com/miketeachman/micropython-i2s-examples/tree/master/examples
- The program freezes when
await swriter.drain()doesn't return (after the first few iterations to fill up ibuf)
Expected behaviour
I expect the asyncio version to work. The blocking and non-blocking versions both work
Observed behaviour
await swriter.drain() doesn't return
Additional Information
No, I've provided everything above.
Code of Conduct
Yes, I agree
ESP32-S3: machine.bitstream() can't send 6 bytes
Port, board and/or hardware
ESP32-S3, octal SPIRAM on ESP32-S3-WROOM-1-N8R16 module
MicroPython version
MicroPython v1.23.0 on 2024-08-19; Generic ESP32S3 module with Octal-SPIRAM with ESP32S3
built using ESP-IDF v5.2.2
Reproduction
When I execute the following code and watch GPIO12 on an oscilloscope, I see 96 pulses instead of the expected 48:
from machine import Pin, bitstream
buf = bytearray(6)
bitstream(Pin(12, Pin.OUT), 0, (240, 480, 480, 240), buf)
I have tested with a buffer of between 1 and 19 bytes, and I only get the wrong number of pulses for 6 byte buffers.
Expected behaviour
I expect to get 48 pulses on my pin.
Observed behaviour
I see 96 pulses on the pin.
Additional Information
No, I've provided everything above.
Code of Conduct
Yes, I agree