High Performance ANSI C Compiler
for Atmel AVR microcontrollers


CodeVisionAVR Development Kits

Arduino - MKR - ESP32 - Pycom - Particle with 9.0" or 5.0" LCD


9 Units in Stock

LCD Type

CPU Version


Combine an XG8900 LCD with your choice of CPU module to create a standalone wireless touchscreen display. It's compatible with many CPU modules: MKR family - ESP32-DevKitC - Pycom family - Particle family - Adafruit Feather - plain old Arduino. The Arduino LittleVGL and/or XGLCD libraries make creating sketches very easy. Start designing products which allow monitoring and controlling remote hardware through WiFi, BLE, LoRa, GSM, SigFox, ... without hardware or software worries. Use the Grove connectors to add any kind of I/O interface without the need for soldering.
XG8900 LittleVGL demo

XG8900 MKR1000 Grove The XG8900 is available with a 9.0" or 5.0" 800x480 TFT LCD with touchscreen.
The 9.0" high resolution LCD allows you to make stunning looking wireless Arduino tablet-size projects. The medium sized 5.0" LCD is perfect for your wireless Arduino project requiring a smartphone-sized LCD.

You can add up to 9 Grove expansion modules. There is also an SDCard socket to store all fonts and images required to build a nice looking graphic user interface for your projects.

The CPU module USB connector is used to power the module. Or use the power input Grove connector. Optional a compact AC/DC plug-in module(100V to 240V) or an on-board 40Volt SMPS are available.

Do you prefer to use a standard Arduino CPU board, the XG8900 is also available with Arduino headers. And also check the CodeVisionAVR website for an Atmel AVR version.

Arduino Library & Examples
Use LittleVGL to design stunning GUI's you thought were never possible with the Arduino platform. We have pre-configured everything, it's just plug-and-play. All LittleVGL examples are converted to Arduino compatible examples, ready to run on the XG8900. (32-bit CPU required)

A complete open-source Arduino LCD library is also available. There are NO configuration settings needed, no I/O ports need to be configured, real Arduino plug-and-play. The library uses the RA8875 hardware acceleration. Fonts, circles, rectangles and so much more are drawn faaaast. The library is compatible with 8-, 16- and 32-bit cpu's.

Make sure to order the correct XG8900 version
  • Type A: headers for ESP32-DevKitC - Arduino MKR Family - Particle Photon/Electron/Argon/Boron/Mesh - Pycom - Adafruit Feather
  • Type B: Arduino headers (no Grove connectors)
  • Type C: ESP32-DevKitC installed (no Grove connectors)
  • No CPU module is installed on Type A and B. You should bring your own.

  • AC/DC module: a 100-240Volt AC on-board module (not possible with SMPS)
  • SMPS: a 7V-40V DC on-board power supply (not possible with AC/DC module)
  • CAN: on-board CAN interface with signals routed to a Grove connector or screw terminal (only for ESP32)
  • RS485: on-board RS485 interface with signals routed to a Grove connector or screw terminal

  • Do you need +100 pcs? Get a quote from us. To get the best possible price and fit for your project we'll gladly install only the options you need. For example only the ESP32 headers, 3 grove connectors, CAN-bus IF, AC/DC module, ...

    LCD Features
  • SPI interface
  • Resistive Touchscreen
  • SD Card socket to store fonts & images
  • LittleVGL compatible
  • Free open-source LCD Arduino library included
  • 4 mounting holes for easy installation on front panels
  • -20°C to +70°C operating temperature
  • long term availability

  • Size9.0"5.0"
    LCD DriverRA8875RA8875
    Outline dimensions226.10 x 130.50 mm132.70 x 75.80 mm
    Visual area201.25 x 115.50 mm113.50 x 65.44 mm
    Active area198.00 x 111.70 mm110.88 x 62.83 mm
    Contrast Ratio500:1500:1
    Response Time20 msec12 msec
    Brightness500 cd/m2300 cd/m2
    Power650mA @ 5V500 mA @ 5V

    • 5 Volt DC power supply / CPU Module I/O's are 3.3 Volt compatible only
    • The CPU module micro USB connector can be used to power the LCD.
    • Grove power input connector. Can be used to power the module from an external 5V power supply.
    • Optional AC/DC plug-in module to power the module directly from a 100V-240V AC source. Makes a perfect all-in standalone solution.
    • Optional 40Volt SMPS
    The Grove connector power lines are routed to the CPU module integrated 3.3Volt regulator. Take care the power requirements of the Grove modules do not exceed the CPU module regulator capacity. Exceeded this power capacity will damage the CPU module and void warranty.

    XG8900 - CPU Module Pinout XG8900 Pinout

    Step 1: Install the Arduino IDE (or Pycom / Particle IDE)
    If this is your first Arduino project or if you just do not yet have the Arduino IDE installed on your computer then first visit the Arduino website, download the latest Arduino IDE and follow the installation instructions.
    The Arduino website also has a wealth of information on all aspects of the Arduino environment. If you’re not familiar with Arduino feel free to browse and learn.
    If you want to use a Pycom or Particle module visit their websites and follow the instructions to start using their IDE.

    Step 2: Install the CPU module Arduino plug-ins
    The Arduino IDE supports many different CPU modules for which you need to install CPU module plug-ins. You only need to install the plug-ins for the CPU modules you will actually use, but it might be easier to install all of them in one go.
    For the MKR1000 Arduino has a webpage to get you started: Arduino MKR1000
    The ESP32 CPU modules require board definitions to be added, more info can be found here.
    Similar info can be found here for Nordic nRF5 based CPU boards.
    For Particle CPU modules you can use either the Arduino IDE using generic CPU board definitions, or you can also use the Particle IDE. Get all information about this IDE at Particle. You will need to include the XG8800/8900 Arduino library in the Particle IDE.
    Visit the Pycom website to get all info on the Pycom CPU modules. We do not supply a Python library for the XG8900. But all the Pycom CPU boards are based on the ESP32 CPU and can be loaded with an Arduino bootloader. See above link for Arduino ESP32 support. Or you can use the Pycom IDE and control the RA8875 driver directly with SPI commands.

    Step 3: Install the XG8800/8900 Arduino libraries

    • Download the XG8800/8900 library zip files
    • Also download the LittleVGL Arduino library
    • Launch the Arduino IDE
    • Select Sketch - Include Library - Add ZIP Library. Then select the downloaded zip files.
    • Copy the littlevgl_examples folder found in the xclcd library folder, to the LittleVGL folder and rename this folder to 'examples'
    • Close the Arduino IDE before going to step 4.
    Step 4: Run one of the XG8800/8900 Examples
    • Plug your CPU module in the XG8900. Note: if you use an MKR CPU module you must also place the jumper on the MKR setting.
    • Connect the CPU module with a USB cable to your computer
    • Launch the Arduino IDE
    • Tools - Board - select the CPU module installed on your XG8900
    • Tools - Port - select the correct serial port. MKR only: If the serial port is not shown, double click the button on the MRK module and wait for the serial port to be recognised.
    • File - Examples - XGLCD or LittleVGL - select one of the example programs
    • Select the Upload button and the example will compile, download to the CPU module and run
    Step 5: Start with a blank sketch
    Copy the blank_sketch.ino example and rename it.
    There is no need for any configuration no matter which XG8900 LCD or CPU module you use, all config is done automatically. Note that unsupported CPU modules will fall back to use standard Arduino SPI functions. This will drastically lower the graphic performance. Try to use only supported CPU modules for the best performance.

    #include <XG8800.h>
    XGLCD tft = XGLCD();
    void setup()
    void loop()

    The XGLCD library is RA8875 optimised. I.e. it uses the hardware acceleration embedded in the RA8875. Drawing graphic shapes and fonts does not require any cpu power. By using the XGLCD library you will get an extremely fast GUI, but you will have to design all objects yourselves. Although for many applications this is a perfect solution.

    LittleVGL is highly configurable. There are two drawing modes. Either LittleVGL uses a RAM buffer in the CPU, or LittleVGL draws directly in the video memory buffer of the display driver. The first method is preferred because it results in smoother drawing and adds opacity and anti-aliasing. But not all CPU's have enough RAM for this method. The second method uses a lot less RAM. Direct drawing in the video buffer is less smooth and you loose the advanced functions. But in many cases this method will be sufficient. You just need to understand the drawing speed limits and adapt your GUI.
    Also the second method does require RAM. Reducing the number of used fonts and themes limits the RAM use, but a small CPU will never be able to run LittleVGL.

    The ESP32, nRF52xxx and Particle boards have enough RAM for the first method. The Atmel SAMD21 CPU used on the Arduino MKR boards does not have enough RAM and can only use the second method.

    The XG8900 is a complete package ready to use.
    The LCD, interface board, and expansion connectors are all designed to match the CPU modules perfectly. There is no need for soldering, testing, checking schematics, searching the web, …
    The included Arduino libraries are based on existing open-source code. The libraries are adapted to match the XG8900 hardware perfectly without the need for complicated or difficult to understand configurations. All example code is tested with all XG8900 versions, they are guaranteed to work.

    High speed graphic libraries
    Most libraries are hardware generic which reduces the interface speed. The XG8800/8900 Arduino libraries are optimised for our LCD's and the CPU modules. You get guaranteed the maximum possible communication speed between LCD and CPU, without understanding SPI low level hardware.

    Reduced code size
    All generic code not needed for the XG8900 hardware has been removed from the libraries. This makes the code run faster and generates more compact code.

    Hardware SPI bus
    The XG8900 always uses a hardware SPI bus. Most generic libraries use a much slower software simulated SPI bus to maintain compatibility with hundreds of CPU modules.
    The SDCard library works perfectly with the XG8800/8900 graphic library with all CPU modules. The 4-bit high-speed SPI SD-Card mode is supported on the ESP32 CPU module.
    The RA8875 driver is known for its SPI compatibility issues, these have been solved on the XG8900.

    No-solder hardware using proven parts
    The XG8900 combines well-known parts to a single product. There is no need for soldering. It’s a ready-to-go package.
    You get the complete package from one supplier. If you already own a CPU module there is no need to place different orders at different websites to get your complete product. Else you will need to add your preferred CPU module. Or if you prefer you can also buy the XG8900 with an ESP32 CPU module installed.

    Our website contains all needed information
    You’ll find all the information on our website. You do not need to search the web to find necessary info to get your development started. Our website does not copy data, we do provide links to the latest versions of all necessary data.

    What are the RA8875 benefits
    • Less I/O pins needed because touchscreen and backlight support are integrated
    • Hardware accelerations for graphic primitives
    • Build-in fonts, support for user font, support for external font chips
    • Hardware block transfer engine / hardware scrolling / hardware cursor / hardware patterns / layer support
    • 16-bit and 8-bit color support
    Which power inputs are available
    • You can power the XG8900 directly from your computer USB port. Some computer USB ports will not supply enough power for the 9.0 LCD. In that case you’ll need to use an alternative power input.
    • Every XG8900 has one POWER Grove connector which can be used as a power input (+5V only !!)
    • Connecting the Grove connector power input and the USB port simultaneously is allowed. Make sure the Grove connector power input voltage is slightly higher compared to the USB power voltage.
    • Optional we can install an AC/DC module so you can power the XG8900 from any AC source (100-240Volt).
    • If you want to power the module for a higher voltage DC source, up to 40Volt, we can optionally install an SMPS.
    Do you offer a capacitive touchscreen
    Currently we do not. If you place a minimum order of 100 pcs we will make the necessary changes to the XG8900.

    Do you offer other LCD sizes and LCD resolutions
    The XG8900 design can support 1.8" to 10.1" LCD's. If you require any particular size or resolution feel free to contact us.

    Can I add fonts
    The library includes several standard fonts and the RA8875 also has build-in fonts. But you can add any font to your code. Follow these instructions.

    MKR jumper
    There is one jumper on the board located under the Grove connectors besides the Arduino headers. This jumper is default installed on pins 2-3. Pins 1-2 are marked 'MKR'. The jumper must be installed on 1-2 if you use an MKR CPU module.

    What about SPI pins on Arduino modules
    By default the SPI pins on Arduino modules are available on the ICSP header. If you own such a standard module, the XG8900 will work without modifications.
    Some Arduino modules don't have the ICSP header, the SPI pins are located on I/O pins D11/D12/D13 often marked as MOSI/MISO/SCK. You will need to solder 3 resistor bridges to route the XG8900 SPI pins to those Arduino I/O pins. The 3 resistors are located to the left side of the bottom MKR header, just above the Grove connectors.

    More information can be found here:

    • Model: XG8800
    • 9 Units in Stock
    • Manufactured by: DELCOMp

    Copyright © 2019 CodeVisionAVR and X-Graph.