FTDI FT800 display not working :(

There is no display on the screen. This is the error message I get when I try to run the code.

In file included from sketch/FT_VM800P43_50.h:64:0,
                 from /Users/rishabhbhardwaj/Documents/Arduino/_5inchLCD/_5inchLCD.ino:30:
sketch/hardware/FT800/FT800.h:542:0: warning: "DISPLAY" redefined [enabled by default]
 #define DISPLAY() ((0UL<<24))

In file included from sketch/_5inchLCD.ino.cpp:1:0:
/Users/rishabhbhardwaj/Downloads/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:55:0: note: this is the location of the previous definition
 #define DISPLAY 0x1
In file included from sketch/FT_VM800P43_50.h:67:0,
                 from /Users/rishabhbhardwaj/Documents/Arduino/_5inchLCD/_5inchLCD.ino:30:
sketch/libraries/FT_GC/FT_Transport_SPI/FT_Transport_SPI.h:215:37: error: 'prog_uchar' has not been declared
  void Writefromflash(uint32_t Addr, prog_uchar *Src, uint32_t NBytes)

In file included from sketch/FT_VM800P43_50.h:68:0,
                 from /Users/rishabhbhardwaj/Documents/Arduino/_5inchLCD/_5inchLCD.ino:30:
sketch/libraries/FT_GC/FT_GC.h:325:32: error: 'prog_uchar' has not been declared
  FT_GEStatus WriteCmdfromflash(prog_uchar *Src,uint32_t NBytes); 

sketch/libraries/FT_GC/FT_GC.h:329:35: error: 'prog_uchar' has not been declared
  FT_GEStatus TransferCmdfromflash(prog_uchar *Src,uint32_t NBytes); 

sketch/libraries/FT_GC/FT_GC.h:1656:52: error: 'FT_GEStatus FT_GC<FT_Trans>::TransferCmdfromflash' is not a static member of 'class FT_GC<FT_Trans>'
 FT_GEStatus FT_GC<FT_Trans>::TransferCmdfromflash( prog_uchar *Src,uint32_t NBytes)

sketch/libraries/FT_GC/FT_GC.h:1656:52: error: template definition of non-template 'FT_GEStatus FT_GC<FT_Trans>::TransferCmdfromflash'
sketch/libraries/FT_GC/FT_GC.h:1656:52: error: 'prog_uchar' was not declared in this scope
sketch/libraries/FT_GC/FT_GC.h:1656:64: error: 'Src' was not declared in this scope
 FT_GEStatus FT_GC<FT_Trans>::TransferCmdfromflash( prog_uchar *Src,uint32_t NBytes)

sketch/libraries/FT_GC/FT_GC.h:1656:77: error: expected primary-expression before 'NBytes'
 FT_GEStatus FT_GC<FT_Trans>::TransferCmdfromflash( prog_uchar *Src,uint32_t NBytes)

sketch/libraries/FT_GC/FT_GC.h:1766:49: error: 'FT_GEStatus FT_GC<FT_Trans>::WriteCmdfromflash' is not a static member of 'class FT_GC<FT_Trans>'
 FT_GEStatus FT_GC<FT_Trans>::WriteCmdfromflash( prog_uchar *Src,uint32_t NBytes)

sketch/libraries/FT_GC/FT_GC.h:1766:49: error: template definition of non-template 'FT_GEStatus FT_GC<FT_Trans>::WriteCmdfromflash'
sketch/libraries/FT_GC/FT_GC.h:1766:49: error: 'prog_uchar' was not declared in this scope
sketch/libraries/FT_GC/FT_GC.h:1766:61: error: 'Src' was not declared in this scope
 FT_GEStatus FT_GC<FT_Trans>::WriteCmdfromflash( prog_uchar *Src,uint32_t NBytes)

sketch/libraries/FT_GC/FT_GC.h:1766:74: error: expected primary-expression before 'NBytes'
 FT_GEStatus FT_GC<FT_Trans>::WriteCmdfromflash( prog_uchar *Src,uint32_t NBytes)

exit status 1
Error compiling for board Arduino/Genuino Uno.

The code I have for the LCD screen

* Copyright (c) Future Technology Devices International 2014
* propriety of Future Technology devices International.
* Software License Agreement
* This code is provided as an example only and is not guaranteed by FTDI. 
* FTDI accept no responsibility for any issues resulting from its use. 
* The developer of the final application incorporating any parts of this 
* sample project is responsible for ensuring its safe and correct operation 
* and for any consequences resulting from its use.
* @file                           HelloWorld.ino
* @brief                          Sketch to display hello world on FT800.
                  Tested platform version: Arduino 1.0.4 and later
* @version                        0.1.0
* @date                           2014/17/05

/* This application demonstrates the usage of FT800 library on VM800P4350 platform */

/* Arduino standard includes */
#include "SPI.h"
#include "Wire.h"

/* Platform specific includes */
#include "FT_VM800P43_50.h"

/* Global object for FT800 Implementation */

/* Api to bootup ft800, verify FT800 hardware and configure display/audio pins */
/* Returns 0 in case of success and 1 in case of failure */
int16_t BootupConfigure()
  uint32_t chipid = 0;
  FTImpl.Init(FT_DISPLAY_RESOLUTION);//configure the display to the WQVGA

  delay(20);//for safer side
  chipid = FTImpl.Read32(FT_ROM_CHIPID);
  /* Identify the chip */
  if(FT800_CHIPID != chipid)
    Serial.print("Error in chip id read ");
    return 1;
  /* Set the Display & audio pins */
  return 0;

/* API to display Hello World string on the screen */
void HelloWorld()
  /* Change the below string for experimentation */
  const char Display_string[12] = "Hello World";
  /* Display list to display "Hello World" at the centre of display area */
  FTImpl.DLStart();//start the display list. Note DLStart and DLEnd are helper apis, Cmd_DLStart() and Display() can also be utilized.
  FTImpl.ColorRGB(0xFF,0xFF,0xFF);//set the color of the string to while color
  FTImpl.Cmd_Text(FT_DISPLAYWIDTH/2, FT_DISPLAYHEIGHT/2, 29, FT_OPT_CENTER, Display_string);//display "Hello World at the center of the screen using inbuilt font handle 29 "
  FTImpl.DLEnd();//end the display list
  FTImpl.Finish();//render the display list and wait for the completion of the DL

/* bootup the module and display "Hello World" on screen */
void setup()
  /* Initialize serial print related functionality */
  /* Set the Display Enable pin*/   
  Serial.println("--Start Application--");
    //error case - do not do any thing
  Serial.println("--End Application--");

/* Nothing in loop api */
void loop()

Please help. I have been stuck for weeks now. :((

Try with the IDE 1.5.6-r2

PD: also try to use the gameduino 2 library

FTDI has been stuck for two years with the first release of the library for the FT80X, its a shame!


Thanks! I tried the older Arduino version and changed the location of some of the FT800 libraries. I am able to compile the code, but when I upload the code. I get this in the Serial

--Start Application--
Error in chip id read 0
--End Application--

What does this mean?! Is there something wrong with the FTDI FT800 touchscreen display??

Before all:

1 Which TFT do you have?
2 And the arduino board is...

I bought this setup from ebay. It came connected to the Arduino Uno board.


Try this: http://forum.arduino.cc/index.php?topic=406170.0

You need identified the wiring on your arduino UNO board.

The program is trying to read the device ID from the FT800 chip, and is returning 0. This is most likely because the pins are not configured correctly in your FT_VM800P43_50.h file.

Take a look at your header file:
Mine was at ...Documents\Arduino\libraries\FTDI_FT800

In this header file the pins are defined for the interface. Make sure they match the hardware setup.

For example here is what I had on my hardware setup:

/* Macros used for CS, PDN, INT pins for SPI - default values */
#define FT_CS_PIN 9
#define FT_PDN_PIN 4
#define FT_INT_PIN 3

That's quite understandable, i can apply this logic to my current project

Keep in mind: the GD2 library is it more powerful

Video: FT800 +GD2 lib


Hi I am sorry. I had been away. I have picked up from where I left.

I checked the pins and fixed the one which was wrong in the header file. Still, the display is not turned on. I want to be able to see the display working.

I still get the error message. I also printed the FT800_CHIPID value - 10008

--Start Application--
Error in chip id read 0
--End Application--


All the pins seems to be fine now on the header file except the "#define FT_DISPENABLE_PIN 7"

I dont have my 7th pin connected to anything on the Arduino. Is that the problem??

Thanks for your help.