
StubbyDevs has published a driver on GitHub for HUB75 LED panels that use SM16380 S-PWM column drivers, running on the ESP32-S3. The row scan runs in hardware with no CPU time, and a new frame is spliced in at the end of a scan pass, so updates do not tear or blink. A 128×64 panel animates at about 67 fps.
S-PWM panels are not shift registers. Each driver chip has its own frame memory, generates its own PWM, and needs to be configured and uploaded to over its own protocol. That is why the common HUB75 libraries do not work with them. This code does, on a $10 board.
It uses the LCD_CAM peripheral in i80 mode with GDMA, sending one 16-bit word per bus cycle, with CLK carried as a data bit rather than the LCD write strobe. Color depth is 4 bits per channel. The speed ceiling is PSRAM bandwidth, not the panel. Examples include color bars, a plasma demo that prints fps, a two-panel 256×64 layout, and scrolling text through Adafruit_GFX. The protocol notes are in extras/PROTOCOL.md.
See more on GitHub.