Skip to content

MRB3511

14 GPIOs are required to drive the 8-bit parallel display. Another 3 GPIOs are needed for the I²C touch sensor. Including the Vcc, Gnd an Rst pins, a total of 23 connections need to be made to the MCU:

Pin Configuration~

Pin Function ESP32 Pin Config Name Display Pin
1 Chip select control pin GPIO33 TFT_CS CS
2 Data Command control pin GPIO15 TFT_DC RS
3 Write control pin GPIO04 TFT_WR WR
4 Read control pin GPIO02 TFT_RD RD
5 LCD Reset pin GPIO32 TFT_RST RST
6 GPIO12 TFT_D0 D0
7 GPIO13 TFT_D1 D1
8 GPIO26 TFT_D2 D2
9 8-bit parallel data GPIO25 TFT_D3 D3
10 GPIO17 TFT_D4 D4
11 GPIO16 TFT_D5 D5
12 GPIO27 TFT_D6 D6
13 GPIO14 TFT_D7 D7
14-21 Not used, don't connect NC D8-15
22 Module Ground GND GND
23 LED Backlight PWM GPIO5 TFT_BCKL BL
24-25 Module Power - VDD
26-27 Module Ground GND GND
28-29 Not connected NC
30 IO, I²C SDA GPIO21 TOUCH_SDA SDA
31 Touch Chip Interrupt GPIO34 TOUCH_IRQ INT
32 Not connected NC
33 Touch IC Reset 3.3V CRST
34 IO, I²C SCL GPIO22 TOUCH_SCL SCL

You need to desolder the 0R resistor on the back side of the panel from the 16-bit position. Then solder back the 0R resistor in the 8-bit position.

There are no pins shared between the touch controller and the LCD controller.

LCD Configuration~

The lcd_config.ini file specifies the different properties of the display, except for the actual pin configuration:

1
2
3
4
5
6
7
8
9
mrb3511 =
    -D ESP32_PARALLEL=1
    -D ILI9488_DRIVER=1
    -D TFT_WIDTH=320
    -D TFT_HEIGHT=480
    -D TFT_ROTATION=0 ; 0=0, 1=90, 2=180 or 3=270 degree
    -D USER_SETUP_LOADED=1
    -D TOUCH_DRIVER=911 ; GT911 Capacitive touch panel driver
    -D SUPPORT_TRANSACTIONS

HASP build_flags~

Specify the LCD Configuration to use and define the 17 GPIOs in the environment build flags:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
build_flags =
    ${flags.esp32_flags}
; -- TFT_eSPI build options ------------------------
    ${lcd.mrb3511}
    -D TFT_BCKL=5  ;None, configurable via web UI (e.g. 2 for D4)
    -D TFT_CS=33  ; Chip select control pin
    -D TFT_DC=15  ; =RS; Data Command control pin - must use a pin in the range 0-31
    -D TFT_RST=32 ; Reset pin
    -D TFT_WR=4   ; Write strobe control pin - must use a pin in the range 0-31
    -D TFT_RD=2
    -D TFT_D0=12  ; Must use pins in the range 0-31 for the data bus
    -D TFT_D1=13  ; so a single register write sets/clears all bits
    -D TFT_D2=26
    -D TFT_D3=25
    -D TFT_D4=17
    -D TFT_D5=16
    -D TFT_D6=27
    -D TFT_D7=14
    -D TOUCH_SDA=21
    -D TOUCH_SCL=22
    -D TOUCH_IRQ=34   ; use 34-39 as these are input only pins
    -D TOUCH_RST=-1   ; not used, connected to 3.3V

Last update: 2023-12-09