EVE Projects

EVE is Bridgetek’s series of Human Machine Interface (HMI) controller ICs. This page provides examples on how to create static and animated displays, control touch features of the TFT panel and playback audio.

EVE2 extends the functionality of the first generation devices (FT80x) with features such as increased pixel count (800 x 600), additional on-chip object memory (G_RAM now 1MByte) and new commands and registers such as CMD_SETROTATE.

To accommodate the extra memory and commands the memory map between EVE2 and EVE is slightly different resulting in slightly different application code.

More details on migrating designs from FT80x to FT81x chipset may be found in AN_390 FT80x Migration Guide.

Projects with (+EVE2) next to the name will also support FT81x series devices via Bridgetek’s MPSSE USB to SPI bridge or the FT90x series of microcontrollers. AN_391 EVE Platform Guide explains which platforms and EVE chipsets are supported by the examples below.

Sample App(+EVE2)

The Sample Application (Sample App) is a superset of design examples, demonstrations, and usages of the EVE command set (pseudo language) developed to assist in designers’ learning curve as well as providing a starting point for projects. The Sample App code is commented for usage with an Arduino platform and Bridgetek’s MPSSE bridge cable from USB to SPI. With this cable the designer can interface between a PC and the development module to experiment, develop, and validate his project. An example Hardware Abstraction Layer is supplied to simplify sending the functional codes to the FT800 to create basic shapes, manipulate bitmaps, control a TFT touch panel and playback audio.

Download the project and source code here

Example 2 – FT App Clocks** 

In this example, Clocks, Track and RTC control functions are used to create an interactive clock application.
Download the project and source code here
Access a video demonstrating this application here

Example 3 – FT App Ftclock*** 

In this example, Lines, Points, Jpeg decode & RTC control functions are used to create an interactive clock application.
Download the project and source code here
Access a video demonstrating this application here

Example 4 – FT App Gauges(+EVE2)

In this example, Lines & custom font functions are used to create an interactive gauge application.
Download the project and source code here
Access a video demonstrating this application here

Example 5 – FT App Gradient(+EVE2)

In this example, String, Gradient slider app functions are used to demonstrate an interactive gradient.
Download the project and source code here
Access a video demonstrating this application here

Example 6 – FT App ImageViewer(+EVE2)***

In this example, Blend function, Bitmap flip and JPEG decode functions are used to demonstrate interactive JPEG decode.
Download the project and source code here
Access a video demonstrating this application here

Example 7 – FT App Keyboard(+EVE2)

In this example, String, Keys & Button functions are used to demonstrate an interactive keyboard.
Download the project and source code here
Access a video demonstrating this application here

Example 8 – FT App MainMenu(+EVE2)***

In this example, JPEG decode, Rectangle & POints are used to demonstrate creating interactive menus.
Download the project and source code here
Access a video demonstrating this application here

Example 9 – FT App Metaball(+EVE2)

In this example, Points & Bitmaps are used to demonstrate interactive random metaballs.
Download the project and source code here
Access a video demonstrating this application here

Example 10 – FT App Music 

In this example, Rectangles, Buttons, Slider & synthesized sound are used to demonstrate an interactive piano.
Download the project and source code here
Access a video demonstrating this application here

Example 11 – FT App Player*** 

In this example, bargraph & Audio functions are used to demonstrate Audio playback.
Download the project and source code here
Access a video demonstrating this application here

Example 12 – FT App RotaryDial(+EVE2) 

In this example, Points, Track & Stencil functions are used to demonstrate an interactive rotary dial.
Download the project and source code here
Access a video demonstrating this application here

Example 13 – FT App Signals(+EVE2)

In this example, Strips, Points & Blend functions are used to demonstrate drawing stencils.
Download the project and source code here
Access a video demonstrating this application here

Example 14 – FT App Signature(+EVE2)

In this example, Sketch, Bitmap rotation & Buttons functions are used to demonstrate an interactive signature.
Download the project and source code here
Access a video demonstrating this application here

 Example 15 – FT App Sketch(+EVE2)

In this example, Sketch, Slider & Buttons functions are used to demonstrate interactive sketch.
Download the project and source code here
Access a video demonstrating this application here

Example 16 – FT App Logo(+EVE2) 

In this example, bitmaps are manipulated to be resized, and animated to move around the display. The demonstration shows how a dynamic logo could be created for a company product.
Download the project and source code here
Access a video demonstrating this application here

Example 17 – JACKPOT(+EVE2)*** 

This application is a custom version of a Slot Machine game and it demonstrates the usage of built-in FT800 widgets and primitives, manipulating bitmaps and playing audio.
Download the project and source code here
Access a video demonstrating this application here

Example 18 – Restaurant***

This application demonstrates an interactive Restaurant Demo using menu, track and rotation functions based on the FT800 platform with bitmap cells used for the graphic icons.
Download the project and source code here
Access a video demonstrating this application here

Example 19 – Washing Machine(+EVE2)*** 

In this example, multiple bitmaps are used to create animated images. Touch functionality is also used to navigate menu screens.
Download the project and source code here
Access a video demonstrating this application here

Example 20 – Refrigerator*** 

This application demonstrates a Smart Refrigerator application using inbuilt fonts, stencil operation and the scissor command implemented on the FT800 platform.
In this application, the commands screensaver and sketch are also utilised with synchronised audio.
Download the project and source code here
Access a video demonstrating this application here

 Example 21 – FT Dials***

This application demonstrates interactive Absolute and Relative dials using points, track and button commands on an FT800 platform.
Download the project and source code here
Access a video demonstrating this application here

Example 22 – FT Chinese Font 

In this example, creating Chinese UI using the FT800 bitmap and custom font feature is demonstrated.
Download the project and source code here
Access a video demonstrating this application here

Example 23 – FT Lift(+EVE2) 

This application demonstrates a lift simulation drawn using bitmaps for fonts, arrow and audio in sync with the change in floor number with date and time display, on an FT800 platform.
Download the project and source code here
Access a video demonstrating this application here

Example 24 – FT App Graph(+EVE2) 

In this example, a scrollable graph is drawn using an edge strip.
Download the project and source code here

Example 25 – FT App PlayVideo(+EVE2)

In this example, the video playback feature of the FT81x is demonstrated.
Download the project and source code here

Example 26 – FT_App_MeterDemo(+EVE2)

In this example,
Download the project and source code here

 FT801 Specific Example – FT Graph

This example demonstrates zoom-in and zoom-out functionality using the FT801 with multi-touch capability. The application constructs a power graph on the screen. Based on user touch movement, either-zoom in or zoom-out is performed. This application demonstrates the use of two simultaneous touch inputs from the user.
Download the project and source code here

FT801 Specific Example – FT Polygon 

In this example, the multi-touch functionality of the FT801 chip is demonstrated by drawing a polygon on the screen, where the corners are defined by the points on the screen touched by the user.
The polygon created is used to lighten the selected area of a bitmap image.
Download the project and source code here

  Simplified Freescale Application

In this example, a simplified version of the Hardware Abstraction Layer (HAL) is generated to demonstrate targeted code generation for a Freescale MC9S08QE8 microcontroller, using the CodeWarrior development suite.
The example demonstrates how to configure the microcontroller SPI port to match the FT800 settings, then perform read and writes over SPI to wake and configure the FT800 such that it will draw a simple display. The source code is provided with the executable to enable users to customise the code and develop their own applications.
For further reading and explanation of the code please refer to AN_259
Download the project and source code here.

Simplified I2C Freescale Application 

In this example, a simplified version of the Hardware Abstraction Layer (HAL) is generated to demonstrate targeted code generation for a Freescale MC9S08QE8 microcontroller, using the CodeWarrior development suite.
The example demonstrates how to configure the microcontroller I2C port to match the FT800 settings, then perform read and writes over I2C to wake and configure the FT800 such that it will draw a simple display. The source code is provided with the executable to enable users to customise the code and develop their own applications.
For further reading and explanation of the code please refer to AN 308
Download the project and source code here.

 Simplified Arduino Application

In this example, a simplified version of the Hardware Abstraction Layer (HAL) is generated to demonstrate targeted code generation for an ATMEGA 328P, using the Arduino tools and an Arduino PRO board.

The example demonstrates how to configure the microcontroller SPI port to match the FT800 settings, then perform read and writes over SPI to wake and configure the FT800 such that it will draw a simple display. The source code is provided with the executable to enable users to customise the code and develop their own applications.

For further reading and explanation of the code please refer to AN275.

Download the project source code here.

Simplified Arduino I2C Application 

In this example, a simplified version of the Hardware Abstraction Layer (HAL) is generated to demonstrate targeted code generation for an ATMEGA 328P, using the Arduino tools and an Arduino PRO board.
The example demonstrates how to configure the microcontroller I2C port to match the FT800 settings, then perform read and writes over I2C to wake and configure the FT800 such that it will draw a simple display. The source code is provided with the executable to enable users to customise the code and develop their own applications.
For further reading and explanation of the code please refer to AN296.
Download the project source code here.

Arduino Specific Libraries 

This download contains a suite of libraries and examples specific to the Arduino controller. Syntax is compatible with common Arduino programmes. The Arduino Specific library for the FT800 can be accessed here. The library for the FT801 is available here.

AN 318 Arduino Library for FT800 Series can be downloaded to act as a guide for programmers to develop GUI applications using the FT800 series graphics controller with Arduino development boards via SPI.

Simplified ARM Application 

In this example, a simplified version of the Hardware Abstraction Layer (HAL) is generated to demonstrate targeted code generation for STM32F407 ARM based processor, using the Keil tools, a STM32CubeMX development environment and an STM32F4-Discovery board.
The example demonstrates how to configure the microcontroller SPI port to match the FT800 settings, then perform read and writes over SPI to wake and configure the FT800 such that it will draw a simple display. The source code is provided with the executable to enable users to customise the code and develop their own applications.
For further reading and explanation of the code please refer to AN312.
Download the project source code here.

 Simplified PIC Application

This simple example utilises a Microchip PIC16F886 device on a PICkit 28 pin demo board with the standard MPLAB X IDE V.195 to initialise the FT800. Different displays are then created using the graphics processor commands, and low-level SPI function calls are created to provide convenient methods of sending and receiving data to the FT800.
For further reading and explanation of the code please refer to AN320.
Download the project source code here.

**NOTE: If testing this project with an Arduino platform, connecting a real time clock over I2C is also required.
***NOTE: If testing these projects on an Arduino platform, an SD Card with the files from the project, TEST folder must be connected. Pinout to your SD Card can be reconfigured in platform.

FT81x Simple PIC Application

This application note provides an example of creating a simple screen on the FT81x device using the PIC MCU. It explains the low level SPI communication and provides a basic framework for sending EVE commands. Although written specifically for PIC the material could be extended to form a full application on a variety of different MCU types.

Further details are provided in BRT AN 006
Download the project source code here

To compliment the basic instructions in BRT AN 006 an extended project was created to demonstrate how additional features may be added in the Application Layer to demonstrate usage of various FT81x features such as text, bitmaps and touch controls.

Further details are provided in BRT AN 007
Download the project source code here

Optimising Screen Updates with Macro and Append 

This simple example demonstrates the power of EVE’s internal functions for memory management by simplifying display list creation using macros and an append function which may be used to reduce the amount of SPI traffic and hence speed up screen edits when only small sections of the display change e.g. keeping a static background while updating objects in the foreground.

For further reading and explanation of the code please refer to AN 340.
Download the project source code here.

VM800P RS232 Application 

This example demonstrates how the VM800P ‘Plus’ module may be used to access a wider system via the expansion card socket. For this demonstration, two VM800P devices were used, each fitted with a VI800A-232U RS232 daughter card and connected back to back over RS232. Images were stored on an SD card and transferred from one VM800P to the other and displayed on the screen, demonstrating the use of a RS232 interface to control/deliver data as requested from touch input on the VM800P display.

Application notes describing the demonstration and techniques used are available as AN 367 and AN 368.
Download the project source code here.

FT800 Sensor Reading and Display Application 

This example demonstrates how the VM800P ‘Plus’ module may be used to read sensor data via the Arduino controller I2C port and display the data both in terms of digital numbers and in a graphical form with scaling applied to the graph. This particular demonstration is measuring voltage and current supplied to a USB peripheral, but the concepts demonstrated could easily be applied to other sensor applications such as temperature, heart rate, or fluid/gas flow rates.

An application note describing the demonstration and techniques used are available in AN 356.
Download the project source code here.

JPEG Viewer 

Source code supporting AN 339 may be downloaded here to demonstrate validating JPEG compatibility with the FT800 series and how to display the images on an FT800 series device.

New-buttonCreating a Simple EVE library for a PIC MCU

Application note BRT AN 008  builds on techniques discussed in other PIC projects on this site and provides an example of how a developer can create a hardware abstraction layer in the form of libraries that make coding a final application simpler. The libraries could subsequently be used in multiple projects where only the main application has to change.
The target in this example is a relatively simple PIC micro, but the techniques could be applied to any MCU.

Click here  to download the associated source code that supports BRT AN 008

New-buttonFT90x Camera to EVE (+EVE2)

Application note BRT_AN_018 describes a display showing video obtained from a camera module with an FT90x device and an FT81x. The display also shows a graphical overlay for the camera output to resemble a car reversing camera. There is no need to connect the device to a host computer, apart from programming the FT90x, as the application runs standalone. The camera is attached to the FT90x device. The FT8xx device controls the TFT display.

Click here to download the associated source code that supports BRT_AN_018.