Author Topic: ILI9341 Read ID not working  (Read 8833 times)


  • Newbie
  • *
  • Posts: 1
  • Karma: 0
    • View Profile
ILI9341 Read ID not working
« on: October 08, 2015, 10:45:40 PM »

I am using the piTFT which uses the ilI9341 controller with the raspberry pi. I am able to load images and send all commands to the controller and have it working but I am not able to read anything back from the controller including the ID. I am using 4 wire spi including the D/C command. I see different sequences all over the internet. Couple of them include

1) Sending 0x04 command to read ID and then sending 0xFF byte to read every byte
2) Send D9 command with 0x10+ index of byte to read and then sending the 0x04 command.

Both of the above sequences did  not work. Are they correct?

2) When i just the send the 0x04 command without anything, the program hangs waiting for data from RX FIFO

Any help would be high appreciated.


  • Administrator
  • Hero Member
  • *****
  • Posts: 357
  • Karma: 34
    • View Profile
Re: ILI9341 Read ID not working
« Reply #1 on: October 09, 2015, 10:01:35 AM »
Can you confirm the full part number of the display you are referring to?
We used to sell 2.4" TFTs with the ILI9341 controller, however they used a 8/16 bit parallel interface.
The serial interface read cycle sequence information begins on page 36 of the ILI9341 datasheet:
I would ultimately use this document to read from the IC correctly, as you may encounter incorrect examples online.
« Last Edit: October 09, 2015, 10:11:57 AM by Michael_L »


  • Newbie
  • *
  • Posts: 1
  • Karma: 0
    • View Profile
Re: ILI9341 Read ID not working
« Reply #2 on: January 11, 2016, 07:38:37 AM »
I am also having this issue. I am using the NHD‐2.4‐240320SF‐CTXL#‐FTN1 with an STM32F407 micro, 16-bit parallel bus.

I have no trouble using the display. I need to be able to read the ID because now that the NHD‐2.4‐240320SF‐CTXL#‐FTN1 is obsolete i have to use the NHD‐2.4‐240320CF‐CTXL#‐FT which uses a different display driver. I want to be able to write my code so that I can detect which display i am using and then setup either up accordingly.

Below is the code I wrote to read the display ID.

*       LCD_X_ReadDisplayID
* Purpose:
*   Read LCD Display ID
unsigned long LCD_X_ReadDisplayID(void) {
   unsigned long rtn_status = 0;
   U16 tmp;
   tmp = LCD_X_Read1_16();   //Dummy read for 1st Parameter, don't cares
   tmp = LCD_X_Read1_16();
   rtn_status |=  (0x00FF & tmp);
   rtn_status <<= 8;
   tmp = LCD_X_Read1_16();
   rtn_status |=  (0x00FF & tmp);
   rtn_status <<= 8;
   tmp = LCD_X_Read1_16();
   rtn_status |=  (0x00FF & tmp);
   rtn_status <<= 8;
   return rtn_status;


Working on NHD‐2.4‐240320SF‐CTXL#‐FTN1, have problem in initialization

Started by sli25Board TFTs

Replies: 6
Views: 9049
Last post June 04, 2015, 09:52:25 PM
by sli25
Arduino LCD library not working with newhaven display NHD‐0420H1Z‐FL‐GWB-3V3

Started by c2hollowBoard Character LCDs

Replies: 9
Views: 19085
Last post July 10, 2014, 08:46:06 AM
by Michael_L
NHD‐1.5‐128128UGC3 some commands not working

Started by lordavonBoard OLEDs

Replies: 4
Views: 5150
Last post January 07, 2016, 10:58:36 PM
by lordavon
NHD-7.0-800480EF-ASXV#-CTP - "Touch" stopped working on part of LCD

Started by coran21Board TFTs

Replies: 1
Views: 1475
Last post February 19, 2019, 11:20:53 AM
by Sergio_M
MOVED: working with nhd-7.0-800480ef-asxv-t with buildroot framebuffer

Started by Saurabh_BBoard Graphic LCDs

Replies: 0
Views: 2820
Last post November 16, 2017, 08:14:59 AM
by Saurabh_B