I accidently purchased a 2.4 inch Parallel display for my ESP32.

After some reading I noticed that perhaps a SPI version would perhaps have been more simple. Display I am talking about is a NHD-2.4-240320CF-CSXN#-FT , I just cannot figure out where to start, how to interface with the display. Their datasheet isn't really helping me out aswell as the support service.

What to do, use this display as a coaster / frisbee and order a SPI version, or is this actually do-able?


  • \$\begingroup\$ Their datasheet isn't really helping me ... what datasheet? \$\endgroup\$
    – jsotola
    Commented Mar 2 at 0:00
  • \$\begingroup\$ newhavendisplay.com/content/specs/NHD-2.4-240320CF-CSXN-F.pdf \$\endgroup\$
    – Mattman944
    Commented Mar 2 at 0:23
  • \$\begingroup\$ Of course it is do-able. The datasheet has wiring diagrams for 8-bit and 16-bit modes. Either mode requires 5 control signals. If you have 13 free GPIOs, you can use 8-bit mode. They also have sample initialization code in the datasheet. If you are starting from scratch, parallel mode is easier. Which is easier for you will depend on what libraries you can find. \$\endgroup\$
    – Mattman944
    Commented Mar 2 at 0:27
  • \$\begingroup\$ Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking. \$\endgroup\$
    – Community Bot
    Commented Mar 2 at 2:12

1 Answer 1


In this case, the LCD, Controller, Backlight and Digitizer need to be thought of as separate items that are bundled together into a module. Somewhat generic controllers are often placed onto the flex or directly onto the glass (COG, or "Chip-on-Glass"), these will have certain parameters, for example maximum resolution... the LCD / glass itself will then have specific characteristics that need to be set on the controller during initialization, like drive voltages.

The module's datasheet describes the pinout, and indicates that the ST7789VI controller is used in either "16-bit 8080-II" or "8-bit 8080-II" mode. Section 8 of the ST7789VI controller's datasheet outlines how to communicate with the panel. Reading into things, we can presume that the signals IM[3:1] are hardwired inside the module (seemingly to 0b100), and you only have control over IM0 (see Table 10 on page 50). While reading, we also need to be concious that the module's DB[15:0] signals appear to be mapped onto the controller's DB[17:10],DB[8:1] signals.

screenshot of Table 1, with the relevant rows highlighted

Section 8.3 (page 54) indicates how to send commands, retrieve status, and read/write data - D/C is "high" for data, and "low" for a command, /RD and /WR idle high and data is latched on the rising edge of the relevant signal.

Section 8.8 outlines the color format, and Section 9 outlines the commands.

It looks like you should be able to operate this display with 11 GPIO pins (D/C, /WR, /RD, DB[15:8]), and the datasheet includes sample initialization code (you'll need to fill in some blanks) and register values - good luck!


Not the answer you're looking for? Browse other questions tagged or ask your own question.