29 January 2017

Playing with the Jaycar 2.8" TFT LCD touch screen XC4630

Last year I was playing around with the 2.8" TFT LCD touch screen that's available from Jaycar XC4630 on the Arduino Uno. This is must try for anyone experimenting with Arduino. Easy to use and lots of fun.

If this appears to be not working or broken with a blank screen, then possibly the driver library is not quite right.

Jaycar now have a custom build of libraries on their website, which works fine. Download the file, and follow the instructions in the "XC4630 Notes.txt" file. These drivers and examples work fine for me.

Unfortunately this wasn't available last year when I was trying to first get it working. (I was just sitting down now to write up what you can do, but see that it's all much easier now).

The Jaycar libraries are based on the Adafruit libraries, which are hosted in GitHub. For posterity (or if you want to use a more up to date version of the libraries), I had to do the following to get them to work.

1. Download the libraries
2. Import the libraries into the Arduino software
  • Sketch | Include Library | Add .ZIP Library...  (once for each)
3. Open an example
  • File | Examples | TFTLCD-Library-master | graphicstest
4. Fix the hardware identifier

This is the bit that took a while to figure out. For reference, the serial number on my TFT LCD is: QR4 5265S01 G3/2 TP28017.
  • It seems that the readID() function in the Adafruit library does not work with this particular hardware.
  • In the example graphicstest program, Locate line 60:  uint16_t identifier = tft.readID();
  • Change it to:  uint16_t identifier = 0x9341;
  • Or, equivalently, change line 84 to: tft.begin(0x9341);
The tftpaint program also worked for me with a similar change.

Hope this helps someone.

1 comment:

Tony Cooper said...

Awesome mate, this did the trick