EveApps is a collection of applications that use Eve Series chips (FT80X, FT81X, BT815/6, BT817/8) for reference purposes. The collection includes 28 demo applications and 11 sample applications, all written in ANSI C code, and the complete source code is provided.
The demo applications are designed to simulate real-world projects and are moderately complex. The sample applications are intended for instructional purposes and are simpler to understand, focusing on individual display lists or commands.
For those new to the Eve Series chips, it is recommended to start with the SampleApp project.
All the applications rely on a set of common files located under the "common" folder. Each application has a subfolder named "project," which contains the project file necessary for building the application with the toolchain.
Users are expected to be familiar with the programming guide and data sheet for the Eve Series chips.
It should be noted that certain applications are specifically developed for particular Eve Series chips or host platforms (refer to "Support platforms").
📂 EveApps
├───common
│ ├───application | Application's common functions and fatfs library
│ ├───eve_flash | Blob binary for flash programming
│ └───eve_hal | Hardware abstraction layer to bridge different platforms
│
├───DemoApps
│ ├───AudioPlayback | Audio playback demo
│ ├───CircleView | Image viewer demo
│ ├───EvChargePoint | Electric charging station demo
│ ├───FlashBitbang | Reading flash content in low-level mode
│ ├───Gauges | Gauges demo
│ ├───Gradient | Color gradient demo
│ ├───Graph | Graph demo
│ ├───HDPictureViewer | 4K image viewer demo
│ ├───Imageviewer | Image viewer demo
│ ├───Imageviewer2 | Image viewer demo
│ ├───Instrument | Instrument demo
│ ├───Jackpot | Jackpot game demo
│ ├───Keyboard | Keyboard demo
│ ├───Lift | Lift demo
│ ├───Lift2 | Lift with video background demo
│ ├───Mainmenu | Main menu demo
│ ├───MediaPlayer | Manage and play media content on hard disk/SD card
│ ├───Metaballs | Balls demo
│ ├───Meter | Meter demo
│ ├───Refrigerator | Refrigerator demo
│ ├───RotaryDial | Rotary dial demo
│ ├───RunningBar | Street light moving demo
│ ├───Signals | Wave signals demo
│ ├───Signature | Signature demo
│ ├───Sketch | Sketch demo
│ ├───Unicode | Unicode keyboard demo
│ ├───UnicodeRuntime | Unicode demo with runtime determined characters
│ ├───WashingMachine | Washing machine UI demo
│
├───SampleApp
│ ├───Animation | Sample usage of animation
│ ├───Bitmap | Sample usage of bitmap
│ ├───Flash | Sample usage of flash
│ ├───Font | Sample usage of font
│ ├───Power | Sample usage of power control
│ ├───Primitives | Sample usage of drawing primitives
| ├───Sound | Sample usage of sound functionality
│ ├───Touch | Sample usage of touch functionality
│ ├───Utility | Sample usage of helper utilities
│ ├───Video | Sample usage of video playback
│ ├───Widget | Sample for default widgets
│
├───Tools/EveApps_Configure | An .NET GUI tool to help user select hardware quicly
Note:
- For Eve registers and commands/instructions definition, user can find it at the file common/eve_hal/EVE_GpuDef.h and common/eve_hal/Eve_CoCmd.h.
- For Eve Emulator, it is for windows platform only and located at common/eve_hal/Bin/Simulation and common/eve_hal/Hdr
- For flash blob file used to access the eve connected flash chip, user can find it at common/eve_flash.
Build with VS Code, CMake Tools, and the Raspberry Pi Pico extension.
The following steps build and flash a project for the Raspberry Pi Pico:
-
Install VS Code, the CMake Tools extension, and the Raspberry Pi Pico extension.
-
Install or configure the Pico SDK and ARM toolchain. The project imports the SDK from
PICO_SDK_PATHwhen that environment variable is set. -
Add the following configuration to VS Code's
settings.json:{ "cmake.configureArgs": [ "-DEVE_APPS_PLATFORM=EVE_PLATFORM_RP2040", "-DEVE_APPS_GRAPHICS=EVE_GRAPHICS_FT813", "-DEVE_APPS_DISPLAY=EVE_DISPLAY_WQVGA" ], "raspberry-pi-pico.cmakeAutoConfigure": false, "raspberry-pi-pico.useCmakeTools": true } -
Open the Command Palette with
Ctrl+P, runCMake: Focus on Project Status View, and choose any available project target.AudioPlaybackis one example. -
Connect the RP2040 to the PC and connect the EVE module to the RP2040 according to the wiring table below. If required by the selected debug workflow, use Zadig to install the
WinUSBdriver for the RP2040 USB device. -
Build the selected project in CMake Tools. The build produces a
.uf2file in the project'sdeploy/<project>/executabledirectory. -
Put the RP2040 into BOOTSEL mode, then flash the generated
.uf2file using the Raspberry Pi Pico extension or by copying it to the mountedRPI-RP2drive.
| RP2040 | EVE | UART | SD |
|---|---|---|---|
| GP0 (TX) | RX (debug) | ||
| GP1 (RX) | TX (optional) | ||
| GP2 (SPI0 SCK) | SCK | ||
| GP3 (SPI0 MOSI) | MOSI | ||
| GP4 (SPI0 MISO) | MISO | ||
| GP5 (GPIO) | CS | ||
| GP6 (GPIO) | INT | ||
| GP7 (GPIO) | PWD | ||
| 5V | 5V | ||
| GND | GND |
Way 1: Open EveApps_Emulator.sln or EveApps_MSVC.sln, press F5 to build and run
Way 2: Use Cmake: (Need Cmake 3.19)
#Launch the Developer Command Prompt for VS
cd X:\source\EveApps
mkdir build
cd build
cmake -G "NMake Makefiles" -DEVE_APPS_PLATFORM=EVE_PLATFORM_FT4222 -DEVE_APPS_GRAPHICS=[EVE graphics] ..
nmake [Project name]
# EVE_APPS_PLATFORM can be BT8XXEMU_PLATFORM, FT4222 of MPSSE
# [EVE graphics] can be EVE or module name, such as BT817, BT815, VM800B35A_BK ...
# [Project name] is the folder name of a subfolder inside DemoApps or SampleAppexample:
$ cmake.exe -G "NMake Makefiles" -DEVE_APPS_PLATFORM=EVE_PLATFORM_FT4222 -DEVE_APPS_GRAPHICS=EVE_GRAPHICS_BT817 -DEVE_APPS_DISPLAY=EVE_DISPLAY_WXGA ..
$ nmake
Way 1: Import FT9XX's project inside foler "FT9XX" of any project into FT9XX toolchain. Build and run using GUI.
Way 2: Use Cmake:
cd X:\source\EveApps
mkdir build
cd build
cmake -G "Eclipse CDT4 - Unix Makefiles" -DEVE_APPS_PLATFORM=[FT9XX module name] -DEVE_APPS_GRAPHICS=[EVE graphics] "-DFT9XX_TOOLCHAIN=C:\Program Files (x86)\Bridgetek\FT9xx Toolchain" ..
cmake --build ./ --target [Project name]
# [EVE graphics] can be EVE or module name, such as BT817, BT815, VM800B35A_BK ...
# [FT9XX module name] can be MM900EV3A, MM930LITE ... etc
# [Project name] is the folder name of a subfolder inside DemoApps or SampleAppexample:
$ cmake -G "Eclipse CDT4 - Unix Makefiles" -DEVE_APPS_PLATFORM=MM900EV3A -DEVE_APPS_GRAPHICS=EVE_GRAPHICS_BT817 "-DFT9XX_TOOLCHAIN=C:\Program Files (x86)\Bridgetek\FT9xx Toolchain" ..
$ cmake --build ./
Information for application supported host platforms
| Application | MPSSE PC |
FT4222 PC |
MM900 | MM930 | Emulator PC |
MM2040EV |
|---|---|---|---|---|---|---|
| DemoAudioPlayback | . | . | . | . | . | . |
| DemoCircleView | . | . | . | . | . | . |
| DemoEvChargePoint | . | . | . | x | . | . |
| DemoFlashBitbang | . | . | . | . | . | . |
| DemoGauges | . | . | . | . | . | . |
| DemoGradient | . | . | . | . | . | . |
| DemoGraph | . | . | . | . | . | . |
| DemoHDPictureViewer | . | . | . | . | . | . |
| DemoImageViewer | . | . | . | . | . | . |
| DemoImageViewer2 | . | . | . | x | . | . |
| DemoInstrument | . | . | x | x | . | . |
| DemoJackpot | . | . | . | . | . | . |
| DemoKeyboard | . | . | . | . | . | . |
| DemoLift | . | . | . | x | . | . |
| DemoLift2 | . | . | x | x | . | x |
| DemoMainmenu | . | . | . | . | . | . |
| DemoMediaPlayer | . | . | x | x | . | x |
| DemoMetaballs | . | . | . | . | . | . |
| DemoMeter | . | . | . | x | . | . |
| DemoRefrigerator | . | . | . | . | . | x |
| DemoRotaryDial | . | . | . | . | . | . |
| DemoRunningBar | . | . | . | . | . | . |
| DemoSignals | . | . | . | . | . | . |
| DemoSignature | . | . | . | . | . | . |
| DemoSketch | . | . | . | . | . | . |
| DemoUnicode | . | . | . | . | . | . |
| DemoUnicodeRuntime | . | . | x | x | . | . |
| DemoWashingMachine | . | . | . | . | . | . |
| SampleApp | . | . | . | . | . | . |
| x = unsupport | ||||||
| . = support |
Information for application supported graphics
| Application | FT80X | BT81X | FT81X / BT88X |
|---|---|---|---|
| DemoAudioPlayback | x | . | x |
| DemoCircleView | x | . | x |
| DemoEvChargePoint | x | . | x |
| DemoFlashBitbang | x | . | x |
| DemoGauges | . | . | . |
| DemoGradient | . | . | . |
| DemoGraph | . | . | . |
| DemoHDPictureViewer | x | . | x |
| DemoImageViewer | . | . | . |
| DemoImageViewer2 | x | . | x |
| DemoInstrument | x | . | . |
| DemoJackpot | . | . | . |
| DemoKeyboard | . | . | . |
| DemoLift | . | . | . |
| DemoLift2 | x | . | x |
| DemoMainmenu | . | . | . |
| DemoMediaPlayer | x | . | x |
| DemoMetaballs | . | . | . |
| DemoMeter | . | . | . |
| DemoRefrigerator | . | . | . |
| DemoRotaryDial | . | . | . |
| DemoRunningBar | x | . | . |
| DemoSignals | . | . | . |
| DemoSignature | . | . | . |
| DemoSketch | . | . | . |
| DemoUnicode | x | . | x |
| DemoUnicodeRuntime | x | . | x |
| DemoWashingMachine | . | . | . |
| SampleApp | . | . | . |
| x = unsupport | |||
| . = support |
Information for application supported displays
| Application | QVGA (320x240) | WQVGA (480x272) | WVGA (800x480) | WSVGA (1024x600) | WXGA (1280x800) |
|---|---|---|---|---|---|
| DemoAudioPlayback | . | . | . | x | x |
| DemoCircleView | . | . | . | . | x |
| DemoEvChargePoint | x | x | x | x | . |
| DemoFlashBitbang | . | . | . | . | . |
| DemoGauges | . | . | . | x | x |
| DemoGradient | . | . | . | x | x |
| DemoGraph | . | . | . | x | x |
| DemoHDPictureViewer | . | . | . | x | x |
| DemoImageViewer | . | . | . | x | x |
| DemoImageViewer2 | . | . | . | x | x |
| DemoInstrument | . | . | . | x | x |
| DemoJackpot | . | . | . | x | x |
| DemoKeyboard | . | . | . | . | . |
| DemoLift | . | . | . | x | x |
| DemoLift2 | . | . | . | x | x |
| DemoMainmenu | . | . | . | x | x |
| DemoMediaPlayer | . | . | . | . | . |
| DemoMetaballs | . | . | . | . | . |
| DemoMeter | . | . | . | x | x |
| DemoRefrigerator | x | . | . | . | . |
| DemoRotaryDial | . | . | . | x | x |
| DemoRunningBar | . | . | . | x | x |
| DemoSignals | . | . | . | x | x |
| DemoSignature | . | . | . | x | x |
| DemoSketch | . | . | . | x | x |
| DemoUnicode | . | . | . | x | x |
| DemoUnicodeRuntime | . | . | . | x | x |
| DemoWashingMachine | x | . | . | x | x |
| SampleApp | . | . | . | x | x |
| x = unsupport | |||||
| . = support |
For SD card access, EveApps using FatFs library version R0.14a from http://elm-chan.org/fsw/ff/00index_e.html.
License: BSD (http://elm-chan.org/fsw/ff/doc/appnote.html#license)
FatFs library is locate at folder common/application/fatfs.
EveApps has created an online documentation (https://Bridgetek.github.io/EveApps/Doxygen/html/) for easy and quick access to the functions it offers.
To customize it according to your setup, kindly refer to Docs/Doxygen folder.
This version is v1.8.0-rc1
v1.8.0-rc1
- Remove legacy multi-target and ESD Core integration.
- Move FlashHelper into the EVE HAL library.
- Improve bitmap addressing, image-loading options, media FIFO handling, and coprocessor command processing.
- Update Visual Studio projects, sample applications, assets, and documentation.
- Fix display precision and other minor application issues.
- Add BT817A device support.
- Improve Raspberry Pi Pico SDK and VS Code build integration.
- Update FT4222/D2XX libraries and related HAL implementations.
- Simplify CMake configuration by using explicit platform and graphics targets.
v1.7.0-rc1
- Updated EveAppsConfig tool
- Resolve the Flash blob inconsistency issue and update the README with a reminder
- Address the audio playback freeze problem
- Fix the underrun issue affecting certain demos, including HDPictureViewer, Lift2, and AudioPlayback
- Correct the errors in the inflate function, formatted text display, and bulk transfer function in utility sample application
v1.6.0-rc1
- Add online document support by Doxygen
- Add DXT1, DXT1L2, DXT1PALETTED and DXT1L2PALETTED support in SampleApp / Bitmap
- Fix minor issues
v1.5.1-rc1
- Fix Cmake compile error
- Fix issue: No sound when start Sound project
v1.5.0-rc1
- Update FatFS library in common/application/fatfs to R0.14b
- Add DemoApp.snl and SampleApp.snl to build all the demo projects and sampleApp project in one batch
- Update4d Cmakelist.txt to build every project in one shot for FT90X/Win32/RP2040 platform
- Break the SampleApp into 11 smaller projects
v1.4.0-rc3:
- Fix minor issue: DemoGauges's UI broken on LCD WXGA
v1.4.0-rc2
- Fix QSPI connection issue of MM930LITE and MM817EV
- Code clean up and minor bug fix
v1.4.0-rc1
- Add 28 demo application and 1 sample application
- Add Pico RP2040 platform support
- Trigger the system reset (at bootup) for some platform which has no Power Down pin toggled (such as GD3X)