riverdi-eve is an easy-to-use library and example app (good starting poiny for you own projects) for Riverdi Intelligent Display driven by Bridgetek EVE graphics controllers:
- EVE 1 series: FT800 and FT801,
- EVE 2 series: FT810, FT811, FT812 and FT813,
- EVE 3 series: BT815 and BT816,
- EVE 4 series: BT817 and BT818
The library contains support for the most popular hardware/software platforms like:
- Raspberry Pi (and other linux-based Single Board Computers),
- STM32 (with full support for Riverdi STM32 Evaluation Board ('stm32f4') and Riverdi Revelation Board) ('stm32f0'),
- Windows (with FT232H USB-SPI converters - FT232H USB-SPI converter is a part of Riverdi STM32 Evaluation Board),
- Arduino (source code available as a separate GitHub repository - riverdi-eve-arduino).
Library supports instructions in a similar format to the FT80x and FT81x Series Programmers Guides, BT81X Series Programming Guide and the EVE Screen Editor.
Note: this repository contains library code fully integrated with example app (and Makefile files for various platform) - if you need only library, please check riverdi-eve-lib repository and examples of library integration for such platforms like: RP2040, ESP32 or Raspberry Pi
The riverdi-demo.c file can be edited to produce the final application, calling the functions from the underlying layers.
This layer is designed to allow the main application to use syntax close to that of the FT80X/FT81X Programmers Guide and make it more user friendly. The functions provided in this layer handle co-processor operation and assist with creating and executing co-processor lists as well as keeping track of the offset within the FIFO for each command and sending parameters of commands such as text strings.
This layer translates the calls from the API layer above into a series of SPI byte transfers formatted for the protocol used by the FT8XX. It includes a series of functions which send the register address as well as for reading and writing 8/16/32-bit values. It also has functions for checking the read and write pointers of the RAM_CMD FIFO and for checking the free space available, which are used by the layers above.
This layer provides an interface to the hardware. It takes the SPI transfers from the EVE layer and translates them into the low-level operations (SPI and GPIO operations for chip select and power down).
If porting the provided code to another type of hardware/software platform, the code in host_layer directory should be customized to match the peripheral API of the chosen platform whilst keeping the same syntax for calls to this layer from the EVE layer above.
The riverdi-eve project uses a standard Makefile and GNU make to build and customize the source files for all supported platforms.
Note: before compilation edit Makefile.linux file to choose Embedded Video Engine series (-DEVE_1, -DEVE_2 or -DEVE_3 flags), choose type and size of connected TFT module (choose predefined macros for Riverdi EVE modules or edit timings manually in modules.h file for custom displays) or to adjust compilation settings.
- Clone the repository (if you haven't done so already):
git clone https://github.com/riverdi/riverdi-eve.git
- Change directory to the repository folder:
cd riverdi-eve
- Build riverdi-eve project:
make -f Makefile.linux
For Windows OS, riverdi-eve project can be easily compiled under MinGW (minimalist development environment for native Microsoft Windows applications). Please visit official MinGW project website for detailed tutorials:
make -f Makefile.win32
- Before building, please install the GNU compiler toolchain on your Linux platform. You can easily use toolchain shipped with recent Debian and Ubuntu versions:
sudo apt-get install gcc-arm-none-eabi binutils-arm-none-eabi
- You also might want to install some other debuggers or dedicated software for your programmer (for example stlink):
sudo apt-get install openocd gdb-arm-none-eabi
- Clone the repository:
git clone https://github.com/riverdi/riverdi-eve.git
- Change directory to the repository folder:
cd riverdi-eve
- Build riverdi-eve project:
make -f Makefile.stm32f4
- Flash your device:
make -f Makefile.stm32f4 flash
- Clone the repository:
git clone https://github.com/riverdi/riverdi-eve.git
- Start SW4STM32 IDE and import riverdi-eve project by choosing:
File -> New -> Other -> C/C++ -> Makefile Project with Existing Code
-
Rename Makefile.stm32f4 file to Makefile (alternatively, replace defult build command make with make -f Makefile.stm32f4 in Project Properties)
-
Now you can build project by choosing:
Project -> Build All [Ctrl+B]
Please contact Riverdi support - [email protected]
See LICENSE.txt file for details.