Skip to content

0.2.31

Choose a tag to compare

@lovyan03 lovyan03 released this 29 Sep 23:08
· 302 commits to master since this release
cd363dd

Fixes

  • CoreS3 family / Core2 v1.1 (AXP2101): on a weak USB supply without a battery (e.g. behind several hubs) the backlight flashed once at startup and the board stayed off until the power key was pressed: the startup inrush pulled a DCDC output below 85% and the AXP2101 powered itself off. The DCDC under-voltage power-off is disabled when the panel is first powered; a dip now ends in an ESP32 brown-out reset that recovers. The VSYS under-voltage power-off stays enabled.
  • SPI DMA from PSRAM (pushImageDMA() / writePixelsDMA() with a PSRAM pointer): the cache is written back before the transfer (ESP32-S3 showed the previous buffer contents), the DMA starts on a 64-byte boundary (ESP32-S3 GDMA stalled 8..15 bytes before one), and the DMA channel and SPI FIFOs are reset before each transfer (ESP32-P4 transfers could stay shifted after a bad one). Taken from the external RAM handling of #297; sprites in PSRAM keep the CPU path.
  • ESP32-P4: an SPI DMA transfer larger than one descriptor (4092 bytes) stopped after the first descriptor, leaving the lower part of large images black on SPI displays. SPI DMA chains now use the ESP-IDF descriptor type, 16-byte dma_descriptor_align8_t where SPI sits on AXI DMA. (#316)
  • I2C: after a NACK, the controller finishes its own STOP instead of the pins being taken over mid-STOP; some slaves (firmware based PMICs / IO expanders) stopped answering after a bus scan hit an unused address. (#307)
  • I2C: the source clock is read from the crystal instead of assumed to be 40 MHz. SCL on the ESP32-H2 (32 MHz crystal) ran at 0.4 of the requested rate; the ESP32-C2 / C5 crystal variants were off as well. (#305)
  • SPI: on chips with SPI_UPDATE, the 1-bit dummy clock before a read waits for each update to complete; panel ID reads came back shifted by one bit at random, and display autodetect could fail after a reset. (#308)
  • VLW fonts drawn into a rotated sprite were misplaced (or crashed). (by @pvanbaren, #317)
  • Synced fixes: anti-aliased wide lines lost their last column / row when clipped at x = 0 or y = 0 (by @DragonCuds); the BMP (RLE), PNG, QOI and JPEG decoders refuse or survive malformed files, and valid RLE4 rows no longer get wrong pixels (by @mcupascal); fixed deflate blocks in PNG output build their Huffman codes directly, avoiding a 5.5 KB stack peak (by @xiaobai050, #310). (#314)