← index #16029Issue #15682
Related · medium · value 1.862
QUERY · ISSUE

I2S with asyncio doesn't work on ESP32-S3 with OCT SPIRAM

openby shlomozippelopened 2024-10-17updated 2025-03-03
bugport-esp32

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

  1. Run any of the I2S uasyncio examples from https://github.com/miketeachman/micropython-i2s-examples/tree/master/examples
  2. 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

CANDIDATE · ISSUE

ESP32-S3: machine.bitstream() can't send 6 bytes

openby ned-pcsopened 2024-08-19updated 2025-09-15
bugport-esp32

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

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied