Skip to content

board: add JC3248W535EN (ESP32-S3, AXS15231B QSPI 320x480)#266

Open
yaconsult wants to merge 1 commit into
esp-arduino-libs:masterfrom
yaconsult:feat/jc3248w535en-board-header
Open

board: add JC3248W535EN (ESP32-S3, AXS15231B QSPI 320x480)#266
yaconsult wants to merge 1 commit into
esp-arduino-libs:masterfrom
yaconsult:feat/jc3248w535en-board-header

Conversation

@yaconsult
Copy link
Copy Markdown

Summary

Adds board configuration for the Jingcai JC3248W535EN development board.

Hardware

  • MCU: ESP32-S3, 16 MB flash, 8 MB Octal PSRAM
  • Display: 3.2" 320×480 IPS, AXS15231B controller, QSPI
  • Touch: AXS15231B I2C, SCL=GPIO8, SDA=GPIO4, addr=0x3B

Key fixes vs default AXS15231B configuration

Vendor init sequence is mandatory.
The default library init sequence includes command 0x22 (ALL_PIXELS_OFF) which results in a blank or corrupted display. This PR uses the full init sequence from the vendor's official Arduino demo (esp_bsp.c). The sequence must end with 0x2C (RAMWR), not 0x29 (DISPLAY_ON).

QSPI clock at 20 MHz.
The QSPI pins on this board route through the ESP32-S3 GPIO matrix. 40 MHz is electrically stable but provides no fps improvement (CPU is the bottleneck in draw_bitmap, not bus bandwidth), so 20 MHz is used for margin.

Touch pin correction.
SCL=GPIO8, SDA=GPIO4 (corrected from library defaults).

Testing

Tested with MicroPython firmware on the physical board. Display initialises correctly, touch reports coordinates, full-frame RGB565 updates work.

Add board configuration for the Jingcai JC3248W535EN development board:
- ESP32-S3 with 16 MB flash, 8 MB Octal PSRAM
- 3.2" 320x480 IPS display, AXS15231B controller, QSPI @ 20 MHz
- Capacitive touch via AXS15231B I2C (SCL=GPIO8, SDA=GPIO4, addr=0x3B)

Key fixes vs default AXS15231B config:
- Vendor init sequence from official esp_bsp.c (default sequence includes
  ALL_PIXELS_OFF command 0x22 which corrupts the display)
- Init sequence must end with RAMWR (0x2C), not DISPLAY_ON (0x29)
- QSPI clock reduced to 20 MHz (40 MHz also works but gives no fps gain;
  CPU is the bottleneck in draw_bitmap, not bus bandwidth)
- Touch pins: SCL=GPIO8, SDA=GPIO4 (corrected from library defaults)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant